गाइड

VPS पर एक उत्पादन Docker Compose स्टैक

मध्यवर्ती25 मिनट पढ़ेंअपडेट किया गया 27 जून 2026
संक्षिप्त उत्तर

एक काम करने वाला उत्पादन स्टैक है Caddy स्वचालित TLS के लिए, आपका एप्लिकेशन, PostgreSQL और Redis, एक Compose फ़ाइल में नामित वॉल्यूम और स्वास्थ्य जांच के साथ परिभाषित। 8 GB RAM और NVMe पर यह पर्याप्त ट्रैफ़िक संभालता है, और प्रत्येक डिप्लॉय से पहले स्नैपशॉट रोलबैक को दो मिनट का ऑपरेशन बनाता है।

01 आधिकारिक रिपॉजिटरी से Docker इंस्टॉल करें

Distribution packages lag significantly. The convenience script is fine on a fresh instance.

curl -fsSL https://get.docker.com | sh
systemctl enable --now docker

02 Compose फ़ाइल लिखें

Caddy obtains and renews certificates automatically, which removes the single most common source of production breakage.

services:
  caddy:
    image: caddy:2-alpine
    restart: unless-stopped
    ports: ["80:80", "443:443", "443:443/udp"]
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy_data:/data
  app:
    build: .
    restart: unless-stopped
    depends_on: { db: { condition: service_healthy } }
    environment:
      DATABASE_URL: postgres://app:${DB_PASS}@db:5432/app
  db:
    image: postgres:17-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: ${DB_PASS}
    volumes: [pgdata:/var/lib/postgresql/data]
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U app"]
      interval: 10s
volumes: { caddy_data: {}, pgdata: {} }

03 Caddy कॉन्फ़िगर करें

Three lines is a complete TLS-terminating reverse proxy with automatic certificate renewal.

app.example.com {
  encode zstd gzip
  reverse_proxy app:8000
}

04 डेटाबेस का बैकअप लें, कंटेनर का नहीं

A file copy of a running Postgres data directory produces a corrupt backup that appears to succeed. Dump it properly.

docker compose exec -T db pg_dump -U app app | zstd > /backups/app-$(date +%F).sql.zst

05 प्रत्येक डिप्लॉय से पहले स्नैपशॉट लें

Free, instant, and it converts a failed deployment from an incident into a rollback.

अक्सर पूछे जाने वाले प्रश्न

इसके लिए कितनी RAM चाहिए?

कंटेनर मेमोरी सीमाएँ जोड़ें और होस्ट के लिए लगभग 1 GB जोड़ें। यह स्टैक 8 GB में आरामदायक है।

क्या मुझे इसके बजाय Docker Swarm या Kubernetes उपयोग करना चाहिए?

एकल सर्वर के लिए नहीं। Compose सही उपकरण है जब तक आपके पास वास्तव में एक से अधिक नोड न हों।