Docker Compose beschrijft een multi-container-stack in één bestand en draait hem met één commando. Dit is de deploy-handleiding; installeer eerst Docker als je dat nog niet hebt gedaan. Voor een AI-agent-specifieke stack (agent + vector-DB + Redis) zie docker-compose voor AI-agents.
1. Een stack: app + database + reverse proxy
# /opt/stack/docker-compose.yml
services:
app:
image: your/app:latest
restart: unless-stopped
env_file: [.env]
depends_on: [db]
# no ports: — reached only through the proxy below
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes: ["pg:/var/lib/postgresql/data"] # internal only
caddy: # HTTPS automatically
image: caddy:2
restart: unless-stopped
ports: ["80:80", "443:443"] # the only public entrypoint
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
volumes: { pg: {}, caddy_data: {} }
Secrets leven in .env, nooit in het compose-bestand:
# /opt/stack/.env (chmod 600, git-ignored)
DB_PASSWORD=a-long-random-string
Een minimale Caddyfile proxyt je domein naar de app en haalt zelf HTTPS op:
app.yourdomain.com {
reverse_proxy app:8080
}
2. Breng hem omhoog
cd /opt/stack
docker compose up -d
docker compose ps
docker compose logs -f app
restart: unless-stopped op elke service + Docker ingeschakeld bij het opstarten = de stack komt na een reboot vanzelf terug.
3. Dagelijkse commando's
docker compose pull && docker compose up -d # update images
docker compose down # stop the stack
docker compose restart app # restart one service
Het deel dat mensen fout doen: blootgestelde poorten
Docker publiceert poorten via iptables, dus een container met ports: ["5432:5432"] is vanaf internet bereikbaar, zelfs achter een UFW-firewall die je gesloten waande. Publiceer alleen het publieke toegangspunt (de proxy op 80/443); houd databases en caches op het compose-netwerk of gebonden aan 127.0.0.1. Alles dat webverkeer aanbiedt heeft een plan met dedicated IP nodig; combineer met een UFW-firewall.
Voor een hele stack achter één IP zie meerdere services zelf hosten. Root in ongeveer een minuut, NVMe, geen KYC, betalen in crypto.
Schijfruimte vrijmaken op een VPS zonder iets kapot te maken →
Reacties
Nog geen reacties. Wees de eerste.