Skip to content

Instantly share code, notes, and snippets.

@smitmartijn
Created February 9, 2026 15:06
Show Gist options
  • Select an option

  • Save smitmartijn/e7bbbb783c7b8ab10d5a1db15078a0a9 to your computer and use it in GitHub Desktop.

Select an option

Save smitmartijn/e7bbbb783c7b8ab10d5a1db15078a0a9 to your computer and use it in GitHub Desktop.
services:
postiz:
image: ghcr.io/gitroomhq/postiz-app:latest
container_name: postiz
restart: always
env_file: ".env"
volumes:
- postiz-config:/config/
- postiz-uploads:/uploads/
ports:
- 5000:5000
networks:
- postiz-network
- temporal-network
depends_on:
postiz-postgres:
condition: service_healthy
postiz-redis:
condition: service_healthy
temporal:
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:
- 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:
- postiz-redis-data:/data
networks:
- postiz-network
# For Application Monitoring / Debugging
spotlight:
pull_policy: always
container_name: postiz-spotlight
ports:
- 8969:8969/tcp
image: ghcr.io/getsentry/spotlight:latest
networks:
- postiz-network
# -----------------------
# Temporal Stack
# -----------------------
temporal-elasticsearch:
container_name: postiz-temporal-elasticsearch
image: elasticsearch:7.17.27
environment:
- cluster.routing.allocation.disk.threshold_enabled=true
- cluster.routing.allocation.disk.watermark.low=512mb
- cluster.routing.allocation.disk.watermark.high=256mb
- cluster.routing.allocation.disk.watermark.flood_stage=128mb
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms256m -Xmx256m
- xpack.security.enabled=false
networks:
- temporal-network
expose:
- 9200
volumes:
- /var/lib/elasticsearch/data
temporal-postgresql:
container_name: postiz-temporal-postgresql
image: postgres:16
environment:
POSTGRES_PASSWORD: temporal
POSTGRES_USER: temporal
networks:
- temporal-network
expose:
- "5432:5432"
volumes:
- /var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U temporal"]
interval: 5s
timeout: 5s
retries: 60
start_period: 30s
temporal:
container_name: postiz-temporal
ports:
- '7233:7233'
image: temporalio/auto-setup:1.28.2
depends_on:
- temporal-postgresql
- temporal-elasticsearch
environment:
- DB=postgres12
- DB_PORT=5432
- POSTGRES_USER=temporal
- POSTGRES_PWD=temporal
- POSTGRES_SEEDS=postiz-temporal-postgresql
- DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development-sql.yaml
- ENABLE_ES=true
- ES_SEEDS=temporal-elasticsearch
- ES_VERSION=v7
- TEMPORAL_NAMESPACE=default
- BIND_ON_IP=0.0.0.0
networks:
- temporal-network
volumes:
- ./dynamicconfig:/etc/temporal/config/dynamicconfig
labels:
kompose.volume.type: configMap
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "7233"]
interval: 5s
timeout: 3s
start_period: 30s
retries: 60
temporal-admin-tools:
container_name: postiz-temporal-admin-tools
image: temporalio/admin-tools:1.28.1-tctl-1.18.4-cli-1.4.1
environment:
- TEMPORAL_ADDRESS=temporal:7233
- TEMPORAL_CLI_ADDRESS=temporal:7233
networks:
- temporal-network
stdin_open: true
depends_on:
- temporal
tty: true
temporal-ui:
container_name: postiz-temporal-ui
image: temporalio/ui:2.34.0
environment:
- TEMPORAL_ADDRESS=temporal:7233
- TEMPORAL_CORS_ORIGINS=http://127.0.0.1:3000
networks:
- temporal-network
ports:
- '8080:8080'
volumes:
postgres-volume:
external: false
postiz-redis-data:
external: false
postiz-config:
external: false
postiz-uploads:
external: false
networks:
postiz-network:
external: false
temporal-network:
external: false
driver: bridge
name: temporal-network
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment