4 ms·
Show HN: DCD – Deploy Docker Compose apps to any VPS with one command
Hi HN, I built DCD (https://github.com/g1ibby/dcd https://github.com/g1ibby/dcd ) to simplify deploying my Docker Compose based personal projects and side-hustles to cheap VPS instances.
I found managed platforms could get pricey/restrictive, and full K8s/complex CI felt like overkill for simple apps. Manual SSHing, git pull, docker-compose up was tedious and error-prone.
DCD aims for Heroku-like simplicity on your own server. If docker-compose up works locally, you deploy with: dcd up user@ssh-ip
It syncs your compose files, relevant local volumes, and .env files to your server via SSH/SFTP, then runs docker compose up -d. It can also (optionally) help install Docker/Compose on the remote server if needed (Debian/Ubuntu focused for now).
Key things:
* Single command deploy: dcd up user@your-server.com
* Cost-effective: Use any cheap VPS.
* GitHub Actions integration: Simple YAML for CI/CD. Example: https://github.com/g1ibby/homellm/blob/main/.github/workflows/deploy.yml https://github.com/g1ibby/homellm/blob/main/.github/workflow...
* Written in Rust.
Current Limitations (Important!):
* No build: support yet: DCD expects pre-built images from a Docker registry. It won't build images on the remote server from a build: context in your compose file.
* Platform focus: Best tested on Debian/Ubuntu. Other Linux distros might work but are less tested.
Installation:
* Homebrew: brew install g1ibby/dcd/dcd
* Cargo: cargo install dcd
* Binaries: https://github.com/g1ibby/dcd/releases https://github.com/g1ibby/dcd/releases
I built this to solve my own pain point and hope it might be useful for others running personal projects, self-hosting, or small applications where you want control without heavy orchestration.
Would love to get your feedback and hear how you're currently deploying similar setups!
- johng 1y agoNeat, looks like a time saver. Edit: Would be neat if this opened up ports with UFW... I still uses it on quite a few servers.
- krstak 1y agoI use Docker Compose a lot in production because my clients are businesses that need internal software. There’s no need for big scaling or complex tools like Kubernetes, docker compose works great for what I need. I usually deploy everything over SSH, just like you described. To send images to the server, I build them locally, save them to a file using docker save, copy that file to the server, and load it there with docker load. This way, I don’t need to use any remote image registry. I have a script that handles it all, and it might be helpful for others who also want to avoid using a registry. I also manually copy over the nginx.conf file and run it once when setting up a new project. For SSL, I run certbot manually as well. When I move files to the server, I like to put everything—including the volumes—in a specific folder so it stays organized the way I like. Just wanted to share how I’m using it, maybe it gives you some ideas for future improvements to your tool. Anyway, your tool looks really promising. If I were you, I’d definitely keep working on it. There are plenty of developers who would find it useful.