Show HN: Pooshit – Sync local code to remote Docker containers

34 marktolson 27 9/15/2025, 9:46:19 PM
Pronounced Push-It....

I'm a lazy developer for the most part, so this is for people like me. Sometimes I just want my local code running in live remote containers quickly, without building images and syncing to cloud docker repos or setting up git workflows or any of the other draining ways to get your code running remotely.

With pooshit (and a simple config file), you can simply push your local dev files to a remote folder on a VM then automatically remove relevant running containers, then build and run an updated container with one command line call.

It works well with reverse proxies like nginx or caddy as you can specify the docker run arguments in the pooshit_config files.

https://github.com/marktolson/pooshit

Comments (27)

WastedCucumber · 2h ago
Dumb question, out of real curiosity - is the double fecal pun deliberate?
robertlagrant · 1h ago
I can't wait for version number 2 to drop
electroglyph · 1h ago
shitty joke if you ask me =)
marktolson · 56m ago
Yes.
CBLT · 2h ago
Line 1 of the readme has a poop emoji
bilekas · 19m ago
Can't wait to try and get this greenlit at work.
marktolson · 17m ago
Better off trying to get it brownlit.
mhuffman · 1h ago
Useful project. Name that no reasonable company would allow IT department to use. 10 out of 10! It worked for CockroachDB. I hope it turns into a unicorn and I'm not joking about that.
chillfox · 19m ago
I have never worked at or heard of a company caring about the names of software, at most it's been a bit of a chuckle. Best guess is being concerned about software names is a super conservative culture thing.
manquer · 11m ago
Perhaps not directly in a review.

Names can be troublesome though, badly named products get caught in spam filters, or blocked in some firewall blacklist.

another-dave · 1h ago
I can't remember what the package was, but when I was working for "large bank", one of the npm dependencies we wanted to use had a licence file that just said 'Do whatever the fuck you want'.

Legal came back saying that it was "highly unorthodox, but approved for use"

spacebanana7 · 1h ago
I believe people chose to pay Adobe subscriptions simply to avoid explaining the acronym for the GNU Image Manipulation Program in meetings.
sippeangelo · 2h ago
Neat project, but what does this do differently than docker compose with the --host flag? https://docs.docker.com/reference/cli/docker/#host

It uploads your whole local docker context, source code and all, builds the image on the remote server and up's the container(s) all with a single command. I use this all the time when deploying simple services to avoid all of the complexity of registries etc.

    docker -H ssh://remote compose up -d
zsimjee · 1h ago
To me, it looks like this new project is aimed more at being able to develop remotely and share your localhost:3000 env instead of getting a real production box up. Bidi sync etc... hints at that, it's like having a 2-interface dev env.
sippeangelo · 1h ago
I don't see that at all?
robertlagrant · 1h ago
Wow - never seen that before.
marktolson · 51m ago
Probably pretty similar except you get to just write "pooshit" instead.
fny · 1h ago
This is a steaming pile of SFTP. Why not use rsync or wrap it if you must?

For anyone who's interested in proper bidirectional sync check out Mutagen.[0]

[0]: https://mutagen.io/documentation/synchronization/

marktolson · 56m ago
wolttam · 14m ago
`docker context`?
ElCapitanMarkla · 2h ago
I had a similar script a few years ago when I refused to give up my aging Macbook Air and built a server to host my dev env. I had an rsync command that would sync the differences from my local machine up to the remote box. It was surprisingly quick considering the size of the projects.
_def · 1h ago
I don't really understand the use case and wonder if containers are the right tool here at all.
marktolson · 44m ago
Here is my main use case. I have lightweight services that I need to update and deploy regularly (until I movee to K8s or a proper production env). Using pooshit, I can push my entire local dev folder to a remote server then destroy the old image, rebuild the new image and spin up a new container with one call. Your config file contains your remote config. You need nothing in between you and your remote server and it only relies on SSH and docker, nothing else, no middleman, repos, and no deployment containers running on your VM.
eightnoneone · 2h ago
How does this compare to https://www.devspace.sh/ ?
marktolson · 41m ago
It's not based on k8s, it's just pushing your local app to a server and spinning up a conainer with one CLI call.
lagniappe · 2h ago
no middlemane i like it
mouse_ · 2h ago
good post