services: postiz-postgres: image: postgres:17-alpine environment: POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_DB: ${POSTGRES_DB} volumes: - /mnt/tank/persist/nixc.us/postiz/production/postiz-postgres:/var/lib/postgresql/data networks: - default deploy: placement: constraints: - node.hostname == macmini14 postiz-keydb: image: eqalpha/keydb:latest volumes: - /mnt/tank/persist/nixc.us/postiz/production/postiz-keydb:/data networks: - default deploy: placement: constraints: - node.hostname == macmini14 postiz: image: ghcr.io/gitroomhq/postiz-app:latest environment: MAIN_URL: "${MAIN_URL}" FRONTEND_URL: "${FRONTEND_URL}" NEXT_PUBLIC_BACKEND_URL: "${NEXT_PUBLIC_BACKEND_URL}" JWT_SECRET: "${JWT_SECRET}" LINKEDIN_CLIENT_ID: "${LINKEDIN_CLIENT_ID}" LINKEDIN_CLIENT_SECRET: "${LINKEDIN_CLIENT_SECRET}" DATABASE_URL: "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postiz-postgres:5432/${POSTGRES_DB}" REDIS_URL: "redis://postiz-keydb:6379" BACKEND_INTERNAL_URL: "http://localhost:3000" IS_GENERAL: "true" STORAGE_PROVIDER: "local" UPLOAD_DIRECTORY: "/uploads" NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads" volumes: - /mnt/tank/persist/nixc.us/postiz/production/config:/config - /mnt/tank/persist/nixc.us/postiz/production/uploads:/uploads networks: - traefik - default deploy: labels: traefik.docker.network: traefik traefik.enable: "true" traefik.http.routers.postiz.entrypoints: "websecure" traefik.http.routers.postiz.rule: Host(`postiz.nixc.us`) traefik.http.routers.postiz.service: "postiz" traefik.http.routers.postiz.tls: "true" traefik.http.routers.postiz.tls.certresolver: "letsencryptresolver" traefik.http.services.postiz.loadbalancer.server.port: "5000" placement: constraints: - node.hostname == macmini14 networks: default: traefik: external: true