Dokploy / Traefik
docker-compose.dokploy.yml tek başına çalışan bir compose dosyasıdır: her servis tanımını docker-compose.yml'den extends ile alır, dosya üstüne Traefik ağını ve TLS için router etiketlerini ekler. Hiçbir şey host portu yayınlamaz: loopback bağlamaları docker-compose.override.yml'dadır ve Compose onu yalnızca örtük olarak yükler — Dokploy kurulumu onu hiç görmez (3000 portu zaten Dokploy'un kendi arayüzüdür). Worker gelen trafik almaz; dahili ağda kalır.
Yapılandır
# .env
API_DOMAIN=push.example.com
DASHBOARD_DOMAIN=push-admin.example.com
DOCS_DOMAIN=docs.example.com
TRAEFIK_NETWORK=dokploy-network # ya da Traefik ağınızın adı neyse
TRAEFIK_CERT_RESOLVER=letsencrypt
API_PUBLIC_URL=https://push.example.com
CORS_ORIGINS=https://www.example.com,https://app.example.com
Çalıştır
docker compose -f docker-compose.dokploy.yml up -d
Dokploy'da
- Bir Compose uygulaması oluşturup deponuzun fork'una yönlendirin.
- Compose yolunu
docker-compose.dokploy.ymlyapın. Başka bir şey yok: ek dosya da, custom command de gerekmez. (Yalnızcadocker-compose.ymlçalışırsa konteynerler sağlıklı kalkar ama router etiketi taşımaz ve Traefik iki alan adında da404 page not founddöner.) .env'inizi Environment sekmesine yapıştırın.ENCRYPTION_KEY,HMAC_SECRETve panel sırları (ADMIN_API_TOKEN,SESSION_SECRET,ADMIN_PASSWORD_HASH) orada olmalı; Compose aksi halde başlamayı reddeder.- Deploy edin. Traefik etiketleri alır ve üç alan adı için sertifika çıkarır.
Etiketler ne yapar
traefik.http.routers.opennotification-api.rule: Host(`${API_DOMAIN}`)
traefik.http.routers.opennotification-api.entrypoints: websecure
traefik.http.routers.opennotification-api.tls.certresolver: ${TRAEFIK_CERT_RESOLVER}
traefik.http.services.opennotification-api.loadbalancer.server.port: "3000"
Küçük bir middleware X-Powered-By'ı siler. Push SDK'ları bu ucu telefonlardan ve tarayıcılardan çağırır; proxy timeout'larını kısa tutun — takılan bir upstream kuyruğa alınmamalı, düşürülmeli.
Traefik arkasında ölçekleme
docker compose -f docker-compose.dokploy.yml up -d --scale worker=3
Kuyruklar Redis'te paylaşılır; worker'lar yükü bölüşür. API durumsuzdur ve aynı şekilde ölçeklenir; Traefik kopyalar arasında round-robin yapar.
Panel
Dosya paneli aynı TLS çözümleyiciyle DASHBOARD_DOMAIN üzerinden yönlendirir; API'ye dahili ağdan http://api:3000 olarak ulaşır. Bir yönetim yüzeyidir: hiç dışarı açmak istemiyorsanız dosyadaki dashboard etiketlerini silin ve 127.0.0.1:3001'e VPN ya da SSH tüneliyle ulaşın.
Dokümantasyon sitesi
Dokümanlar aynı stack'in parçasıdır: DOCS_DOMAIN üzerinden yönlendirilen bir docs servisi (nginx arkasında statik dosyalar). Environment sekmesinde diğer iki alan adının yanına yazın; ayrıca deploy edilecek bir şey yok.