गाइड
Docker Compose के साथ डिप्लॉय करें
साथ दिए गए docker-compose.prod.yml और install.sh के साथ सिंगल-होस्ट प्रोडक्शन डिप्लॉयमेंट।
एक दमदार सर्वर है और चाहते हैं कि AskAIs Customer Service 10 मिनट में चलने लगे? यही रास्ता है। यह ~500 से कम एक साथ आने वाले विज़िटर्स के लिए उपयुक्त है; बड़े पैमाने के लिए Kubernetes गाइड पर जाएँ।
पूर्वापेक्षाएँ
- Docker 24+ और `docker compose` v2 वाला एक Linux होस्ट
- ≥ 2 vCPU, 4 GB RAM (8 GB अनुशंसित)
- होस्ट की ओर इंगित करने वाला एक डोमेन (Caddy / Cloudflare / nginx के माध्यम से TLS के लिए)
एक-लाइन इंस्टॉल
git clone https://github.com/singlink/singlink
cd singlink
APP_DOMAIN=chat.acme.com bash scripts/install.shयह स्क्रिप्ट:
- docker + openssl की जाँच करती है
- मज़बूत रैंडम सीक्रेट्स के साथ
.env.prodजनरेट करती है (मोड 600) - तीन इमेज (web / ws / worker) बनाती है
docker compose -f docker-compose.prod.yml up -dसे पूरा स्टैक चालू करती है- web कंटेनर के अंदर
prisma migrate deployचलाती है
क्या चलता है
- postgres — pgvector PG16
- redis — pub/sub + क्यू (पासवर्ड से सुरक्षित)
- minio — अटैचमेंट के लिए S3-संगत स्टोरेज
- web / ws / worker — तीन ऐप प्रोसेस
- nginx — पोर्ट 8080 पर रिवर्स प्रॉक्सी, WS अपग्रेड के साथ
TLS जोड़ना
साथ दिया गया nginx पोर्ट 8080 पर HTTP/1.1 को टर्मिनेट करता है। आगे एक TLS-टर्मिनेटिंग प्रॉक्सी लगाएँ:
Caddy (सबसे आसान)
# /etc/caddy/Caddyfile
chat.acme.com {
reverse_proxy localhost:8080
}Cloudflare Tunnel (कोई इनबाउंड पोर्ट बिल्कुल नहीं)
cloudflared tunnel create singlink
cloudflared tunnel route dns singlink chat.acme.com
cloudflared tunnel run --url http://localhost:8080 singlinkDay-2 ऑपरेशंस
# Logs
docker compose -f docker-compose.prod.yml logs -f
# Restart everything
docker compose -f docker-compose.prod.yml restart
# Stop (data persists in named volumes)
docker compose -f docker-compose.prod.yml down
# Upgrade
git pull
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d --build
docker compose -f docker-compose.prod.yml exec web pnpm db:deploy
# Backups (run from cron daily)
docker compose -f docker-compose.prod.yml exec -T postgres \
pg_dump -U singlink singlink | gzip > /backups/singlink-$(date +%F).sql.gzworker को स्केल आउट करना
अधिक AI worker रेप्लिका चलाएँ (Redis BullMQ वितरण संभालता है):
docker compose -f docker-compose.prod.yml up -d --scale worker=4Kubernetes पर कब जाएँ
- आपको HA postgres / redis चाहिए (मैनेज्ड RDS / ElastiCache)
- आपको ट्रैफ़िक के उछाल पर ऑटोस्केलिंग चाहिए
- आप इसे कई रीजन में चला रहे हैं
- आपके SLA के लिए सिंगल-होस्ट डाउनटाइम अस्वीकार्य है
तो Kubernetes / Helm पर जाएँ।