quorlasocial/docker-compose.yml
metatroncubeswdev c309581df0 Initial commit: Quorla social media manager
Dashboard (content library, publishing queue with approvals, inbox, team
management, AI runs), Meta connector, branded PDF reports, agent skills,
and Docker packaging (Dockerfile, docker-compose with Caddy HTTPS,
backup and path-relocation scripts).

Client data, live data and secrets are excluded via .gitignore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:02:29 -04:00

44 lines
1.2 KiB
YAML

# Quorla on one server: docker compose up -d --build
# - app: the dashboard + publishing queue (port 4310 inside the Docker network only)
# - caddy: HTTPS for APP_DOMAIN with automatic Let's Encrypt certificates
# Live data stays in the folders next to this file, so rebuilding the image never touches it.
services:
app:
build: .
image: quorla:latest
restart: unless-stopped
env_file: .env
environment:
DASHBOARD_HOST: 0.0.0.0
DASHBOARD_COOKIE_SECURE: "true"
TRUST_PROXY: uniquelocal
SCHEDULER_ENABLED: "true"
volumes:
- ./data:/app/data
- ./clients:/app/clients
- ./team:/app/team
- ./reports:/app/reports
- ./branding:/app/branding
expose:
- "4310"
caddy:
image: caddy:2.8
restart: unless-stopped
depends_on: [app]
environment:
APP_DOMAIN: ${APP_DOMAIN:?Set APP_DOMAIN in .env, e.g. app.quorlasocial.com}
ACME_EMAIL: ${ACME_EMAIL:?Set ACME_EMAIL in .env (certificate expiry notices go here)}
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./deploy/Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config: