I have a small app (Node + Postgres) currently running locally with docker-compose. I want to deploy it to DigitalOcean but I’m not sure what the “right” approach is.
I’ve seen options like:
I don’t expect huge traffic (maybe a few hundred users/day), but I still want something reliable and easy to maintain.
What are people using in practice for setups like this? Would love to hear pros/cons before I go too deep into one approach.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Accepted Answer
Hi there,
For a small Docker app with a few hundred users per day, I would honestly try to keep it simple and start with either a Droplet + Docker Compose setup or App Platform.
In practice, I’d think about it like this:
Droplet + Docker Compose is usually the simplest and most flexible option if you’re comfortable managing the server yourself. You get full control, predictable pricing, and it works really well for small apps.
App Platform is nice if you want less server management and a more streamlined deployment experience.
Managed Kubernetes would probably be overkill for this size unless you already know you need container orchestration, more complex scaling, or a Kubernetes-based workflow.
If it were me, I’d probably start with a single Droplet and Docker Compose, then move to something more advanced only if the app actually outgrows that setup. A lot of small apps can run perfectly fine like that for a long time.
For the database, I’d also seriously consider using a managed PostgreSQL database rather than running Postgres in the same Compose stack, just because it makes backups, maintenance, and reliability easier: https://www.digitalocean.com/products/managed-databases-postgresql
And for the app side, these might be useful depending on which route you choose:
App Platform: https://www.digitalocean.com/products/app-platform
Docker on Ubuntu on DigitalOcean: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04
So overall, my rough recommendation would be:
Start with a Droplet + Docker Compose if you want maximum simplicity and control.
Use Managed Postgres if budget allows.
Use Kubernetes once you already have a clear reason for needing it.
That would usually be the most practical path for a setup like the one you described.
For that size, I’d keep it pretty boring and just use a Droplet.
Your app is already in docker-compose, traffic is small, and you want to avoid overengineering. That’s kind of the perfect case for a single Droplet with Docker Compose and maybe Caddy or Nginx in front. Easy to understand, easy to debug, and cheap.
App Platform is also a valid option if you really don’t want to touch the server much, but for a small Node app I usually feel a Droplet gives more control for less money.
Managed Kubernetes would be way too much here unless you already know you want Kubernetes for learning or for some future reason.
What I’d probably do is: app on a Droplet, and if the project matters enough, use managed Postgres instead of running the DB in the same compose stack. That keeps the app side simple without putting everything on one box.
So yeah, for a small app like this, Droplet + docker-compose is still a very normal and good way to do it on DigitalOcean.
Heya, @11575c6d695643cdb40ad47d0f1aea
Droplet + docker-compose is probably your sweet spot. You already have the compose file, so it’s basically scp it over, docker compose up -d, done. Throw a $6 Droplet at it, add a Managed Postgres database if you don’t want to deal with DB backups yourself, and you’re set. Total cost under $20/mo and you have full control.
App Platform is even simpler if you don’t mind less control — connect your repo, it builds and deploys. It supports Docker and can attach a managed Postgres. You pay a bit more but you don’t think about server maintenance at all.
I’d start with the Droplet + compose approach since you already have the setup working locally. You can always move to App Platform later if you get tired of managing the server.
Hope that this helps!
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.