JG-mirror/Postiz/docker-compose.yaml
James Turland 9d1f5e8f1c postiz
2025-03-08 00:19:58 +00:00

107 lines
No EOL
3.5 KiB
YAML

services:
postiz:
image: ghcr.io/gitroomhq/postiz-app:latest
container_name: postiz
restart: always
env_file:
- .env
environment:
# You must change these. Replace `postiz.your-server.com` with your DNS name - this needs to be exactly the URL you're accessing Postiz on.
# Be sure to add the domain to your local domain resolver e.g., Pi-Hole
MAIN_URL: "https://postiz.${DOMAIN}"
FRONTEND_URL: "https://postiz.${DOMAIN}"
NEXT_PUBLIC_BACKEND_URL: "https://postiz.${DOMAIN}/api"
JWT_SECRET: "sdfjhkj34sdkfhsdkfhsdkjfhsdf"
# These defaults are probably fine, but if you change your user/password, update it in the
# postiz-postgres or postiz-redis services below.
DATABASE_URL: "postgresql://postiz-user:postiz-password@postiz-postgres:5432/postiz-db-local"
REDIS_URL: "redis://postiz-redis:6379"
BACKEND_INTERNAL_URL: "http://localhost:3000"
IS_GENERAL: "true" # Required for self-hosting.
# The container images are pre-configured to use /uploads for file storage.
# You probably should not change this unless you have a really good reason!
STORAGE_PROVIDER: "local"
UPLOAD_DIRECTORY: "/uploads"
NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads"
volumes:
- ${WORKING_DIR}/postiz/config:/config/
- ${WORKING_DIR}/postiz/uploads:/uploads/
# if you prefer volumes
# - postiz-config:/config/
# - postiz-uploads:/uploads/
# ports:
# - 5000:5000
networks:
- proxy
- postiz-network
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.postiz.entrypoints=http"
- "traefik.http.routers.postiz.rule=Host(`postiz.${DOMAIN}`)"
- "traefik.http.middlewares.postiz-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.postiz.middlewares=postiz-https-redirect"
- "traefik.http.routers.postiz-secure.entrypoints=https"
- "traefik.http.routers.postiz-secure.rule=Host(`postiz.${DOMAIN}`)"
- "traefik.http.routers.postiz-secure.tls=true"
- "traefik.http.routers.postiz-secure.tls.certresolver=cloudflare"
- "traefik.http.routers.postiz-secure.service=postiz"
- "traefik.http.services.postiz.loadbalancer.server.port=5000"
depends_on:
postiz-postgres:
condition: service_healthy
postiz-redis:
condition: service_healthy
postiz-postgres:
image: postgres:17-alpine
container_name: postiz-postgres
restart: always
environment:
POSTGRES_PASSWORD: postiz-password
POSTGRES_USER: postiz-user
POSTGRES_DB: postiz-db-local
volumes:
- ${WORKING_DIR}/postiz/postgres:/var/lib/postgresql/data
# if you prefer volumes
# - postgres-volume:/var/lib/postgresql/data
networks:
- postiz-network
healthcheck:
test: pg_isready -U postiz-user -d postiz-db-local
interval: 10s
timeout: 3s
retries: 3
postiz-redis:
image: redis:7.2
container_name: postiz-redis
restart: always
healthcheck:
test: redis-cli ping
interval: 10s
timeout: 3s
retries: 3
volumes:
- ${WORKING_DIR}/postiz/redis:/data
# if you prefer volumes
# - postiz-redis-data:/data
networks:
- postiz-network
# if you prefer volumes
# volumes:
# postgres-volume:
# external: false
# postiz-redis-data:
# external: false
# postiz-config:
# external: false
# postiz-uploads:
# external: false
networks:
proxy:
external: true
postiz-network:
external: false