/
← All products
Building

Docker Compose Production Stack

Everything you need to run a production workload on a single VPS. SSL, monitoring, backups, and alerts — configured and running in under 30 minutes.

The problem

Production infra from scratch takes days. Every time.

You've shipped a product. Now you need it to actually run in production — with SSL, reverse proxy, health checks, monitoring, and backups. None of this is your product. All of it takes time.

SSL setup is manual and error-prone

Certbot, renewal crons, Traefik label configuration — it's 2–3 hours of work that needs to be redone every time you start a new project.

Monitoring is always 'I'll add it later'

Prometheus scraping, Grafana dashboards, Alertmanager rules — standing this up properly from scratch is a 2-day project.

Backups are easy to skip and hard to recover from

PostgreSQL dump crons, volume snapshots, offsite storage — this is 4 hours of work that most projects skip until data loss happens.

The solution

A production-hardened docker-compose.yml you can actually deploy.

Run install.sh on a fresh Ubuntu VPS and get SSL, monitoring, backups, and Telegram alerts running in under 30 minutes. The entire stack is standard Docker Compose — no proprietary tooling, no lock-in.

What's included

docker-compose.yml (production-hardened, multi-service)
Traefik reverse proxy config + Let's Encrypt
Prometheus + Grafana monitoring stack
Alertmanager + Telegram notification setup
PostgreSQL automated backup scripts + S3 upload
install.sh bootstrap (Docker install, firewall, systemd)
.env.example with all required variables documented
README with deployment walkthrough

How it works

01

Provision a VPS

Ubuntu 22.04, minimum 2 vCPU / 4GB RAM. Any provider works: Hetzner, DigitalOcean, Vultr, Linode.

02

Clone and configure

git clone the repo, copy .env.example to .env, fill in your domain, DB credentials, and Telegram bot token.

03

Run install.sh

The bootstrap script installs Docker, configures UFW firewall rules, sets up systemd for auto-restart, then runs docker compose up.

04

Production ready

Traefik issues SSL certs automatically. Prometheus starts scraping. Backups are scheduled. Telegram fires a 'stack deployed' notification.

Features

Core (free)

Traefik reverse proxy with automatic SSL (Let's Encrypt)
Health checks and restart policies on all services
Prometheus metrics scraping (node, container, DB)
Grafana dashboards for infra overview
Alertmanager with Telegram integration
Daily PostgreSQL dump + local retention
Environment variable management
install.sh bootstrap script

Pro (paid)

+Hardened security configs (fail2ban, SSH lockdown)
+Off-site S3 backup upload + rotation
+Extended Grafana dashboards (per-service metrics)
+Loki log aggregation + Grafana log viewer
+Uptime Kuma service uptime monitoring
+Multi-environment support (staging + prod)
+Priority updates as the stack evolves

vs. alternatives

FeatureThis stackBuild from scratchCoolify/PortainerRender/Railway
Production-ready out of the box
Self-hostable, no lock-in
Monitoring + alerts included
Automated backups included
Full source code ownership
One-time cost

Pricing

Core

Free

Open source

Full docker-compose.yml stack
Traefik + SSL config
Basic Prometheus + Grafana
Alertmanager + Telegram
PostgreSQL daily backups (local)
install.sh bootstrap
GitHub

Pro (one-time)

$49

One-time

+Everything in Core
+Hardened security configs
+S3 off-site backup + rotation
+Extended Grafana dashboards
+Loki log aggregation
+Uptime monitoring
+Multi-env support
+Priority updates

FAQ

What VPS providers does this work with?

Any Ubuntu 22.04 VPS. Tested on Hetzner, DigitalOcean, and Vultr. The install.sh script handles provider-specific differences.

Do I need to know Docker to use this?

Basic Docker Compose familiarity helps, but the README walks through every step. If you can run a command in a terminal, you can deploy this stack.

Can I add my own services?

Yes — the stack is standard Docker Compose. Add new services following the same pattern as the existing ones. Traefik picks them up automatically via labels.

What's the difference between Core (free) and Pro?

Core is everything you need to get a production system running. Pro adds hardened security, off-site backups, extended monitoring, and log aggregation — useful when you need the extra layer.

Is this a subscription?

No. One-time purchase. You get all current files plus updates while the stack is in active development.

Ready to deploy?

Core is free and open-source. Clone the repo, configure your .env, run install.sh.