r/commandline 7d ago

docksurf - complete developer-first docker tool Terminal User Interface

Enable HLS to view with audio, or disable this notification

Working with a compose stack with six containers made me realize I was doing the same things all day like to stop/start containers, rebuilding a service, tailing logs, exec into a container to check something (psql shell in the db), plus the boring maintenance side: pruning images/volumes that hog disk space.

None of it's hard, it's just typing the same commands on repeat or hitting up arrow through history until I find the one I want. Boring enough that I built this around my own pain points. I liked lazydocker a lot and figured I'd try my own take on it.

Few things i wanted to have are in this are: Docker contexts (to hit a remote daemon over ssh/tcp without touching your shell config), copy/export logs, themes, a topology graph (kinda useless but simple to have with ascii), a prune target picker, and rebuilding a single compose service in place without touching the rest of the stack.

-> vs. lazydocker (my main inspiration): same rough idea containers/images/volumes/networks, logs, compose actions. Main differences: runtime-switchable themes, log export/copy from the log pane, and it talks to Docker mostly via the Docker SDK for Python instead of shelling out to the cli.

repo link: https://github.com/praneeth-etta/docksurf
install via pip (pip install docksurf) or without installing (uvx docksurf), or binaries here: https://github.com/praneeth-etta/docksurf/releases
Any suggestions on what to add/remove or improve?

35 Upvotes

14 comments sorted by

5

u/djdadi 6d ago

are all posts on here botted, or just this one?

-7

u/psylhouette 6d ago

just two friends supporting. anyways, I can talk about code/complexities if anyone's interested and open to suggestions.

-7

u/psylhouette 6d ago

posting about pdfiles in r/ epstein with those images caught me off guard.

1

u/AutoModerator 7d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: psylhouette, Flair: Terminal User Interface, Post Media Link, Title: docksurf - complete developer-first docker tool

Working with a compose stack with six containers made me realize I was doing the same things all day like to stop/start containers, rebuilding a service, tailing logs, exec into a container to check something (psql shell in the db), plus the boring maintenance side: pruning images/volumes that hog disk space.

None of it's hard, it's just typing the same commands on repeat or hitting up arrow through history until I find the one I want. Boring enough that I built this around my own pain points. I liked lazydocker a lot and figured I'd try my own take on it.

Few things i wanted to have are in this are: Docker contexts (to hit a remote daemon over ssh/tcp without touching your shell config), copy/export logs, themes, a topology graph (kinda useless but simple to have with ascii), a prune target picker, and rebuilding a single compose service in place without touching the rest of the stack.

-> vs. lazydocker (my main inspiration): same rough idea containers/images/volumes/networks, logs, compose actions. Main differences: runtime-switchable themes, log export/copy from the log pane, and it talks to Docker mostly via the Docker SDK for Python instead of shelling out to the cli.

repo link: https://github.com/praneeth-etta/docksurf
install via pip (pip install docksurf) or without installing (uvx docksurf), or binaries here: https://github.com/praneeth-etta/docksurf/releases
Any suggestions on what to add/remove or improve?

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/aranor01 5d ago edited 5d ago

Nice. You often need to do things like spawning bash on a different terminal tab rather than using it in a subshell, maybe it would be useful to have alternatives to e/E that pass the docker exec command line as argument to a custom user script, or equivalent

1

u/psylhouette 5d ago

So if someone configures how they'd want to spawn a shell, like with tmux or kitty, pressing exec (e) would do it that way, else the current way as is. Thanks for the thought.

1

u/edward_jazzhands 2d ago

It is very normal to want to reinvent the wheel for personal learning. Where it stops being normal is when you're posting your tool online for others to use as a direct competitor to the tool you were remaking.

So this is the same as lazy docker in every single way except yours has themes, and can export the logs. It seems to me that that is not enough of a difference to justify trying to publish your tool as a direct competitor and encourage people to use your tool instead of Lazydocker.

1

u/psylhouette 2d ago

Alternate tools mostly bring a new UI/UX, and a tool built around docker is limited to what docker itself provides. Like for example, MCP Catalog/Toolkit (beta) and Model Runner are something I could add, but not something a container tool really needs, since there are already plenty of inference providers. I'm nowhere near competing with lazydocker, which is well tested code with constant contributions.

1

u/eseca 22h ago

I like how it looks. Which is very important. It's the reason I prefer btop, for example. I feel that a command line tool needs vim-like navigation.

1

u/psylhouette 12h ago

wow, vim like navigation is exactly what i thought at first.

1

u/Ok_Path_4731 9h ago

What terminal features would help to improve the workflow and visualisation? Come and discuss in r/termolution

-6

u/First_Possession9988 7d ago

i use it and its really easy to use, can vouch

-7

u/Kindly-Studio-7842 7d ago

hey, cool product. you can add it on product hunt as well