postiz/stack.production.yml

70 lines
2.1 KiB
YAML

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