Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 58 additions & 4 deletions blueprints/postiz/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ services:
postiz-app:
image: ghcr.io/gitroomhq/postiz-app:latest
restart: always

environment:
MAIN_URL: "https://${POSTIZ_HOST}"
FRONTEND_URL: "https://${POSTIZ_HOST}"
Expand All @@ -21,6 +20,10 @@ services:
STORAGE_PROVIDER: "local"
UPLOAD_DIRECTORY: "/uploads"
NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads"
<<<<<<< HEAD
TEMPORAL_WORKER_URL: "postiz-temporal:7233"
TEMPORAL_URL: "postiz-temporal:7233"
=======

# === Social Media API Settings ===
# These variables should be defined in the Dokploy Environment tab.
Expand All @@ -32,6 +35,7 @@ services:
X_API_KEY: ${X_API_KEY}
X_API_SECRET: ${X_API_SECRET}

>>>>>>> origin/canary
volumes:
- postiz-config:/config/
- postiz-uploads:/uploads/
Expand All @@ -40,13 +44,60 @@ services:
condition: service_healthy
postiz-redis:
condition: service_healthy
<<<<<<< HEAD
postiz-temporal:
condition: service_healthy

postiz-temporal:
image: temporalio/server:1.27.2
restart: always
environment:
- DB=postgresql
- DB_PORT=5432
- POSTGRES_USER=${DB_USER}
- POSTGRES_PWD=${DB_PASSWORD}
- POSTGRES_SEEDS=postiz-temporal-postgres
depends_on:
postiz-temporal-postgres:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "tctl --address localhost:7233 cluster health || exit 1"]
interval: 10s
timeout: 5s
retries: 10
Comment on lines +63 to +67

Copilot AI Apr 19, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The postiz-temporal healthcheck runs tctl, but this compose file does not include a temporalio/admin-tools sidecar (and in this repo tctl is typically run from that image, e.g. blueprints/peerdb/docker-compose.yml:78-85). If tctl isn’t present in the temporalio/server image, the healthcheck will fail indefinitely and postiz-app (which depends on condition: service_healthy) will never start. Consider switching the healthcheck to a simple port/TCP probe on 7233, or add an admin-tools container and move the tctl-based healthcheck there (and depend on that instead).

Copilot uses AI. Check for mistakes.
start_period: 30s
Comment on lines +63 to +68

Copilot AI Apr 17, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

postiz-app depends on postiz-temporal being service_healthy, but the Temporal healthcheck runs tctl inside the temporalio/auto-setup container. This is relatively brittle (CLI availability/behavior changes) and differs from existing patterns in the repo (e.g. blueprints/peerdb/docker-compose.yml uses a dedicated temporalio/admin-tools container for tctl). Consider switching to a simpler healthcheck (port/grpc probe) or adding an admin-tools container for CLI-based checks so postiz-app startup doesn't get blocked by a failing healthcheck.

Copilot uses AI. Check for mistakes.

postiz-temporal-ui:
image: temporalio/ui:2.30.0
restart: always
environment:
- TEMPORAL_ADDRESS=postiz-temporal:7233
- TEMPORAL_CORS_ORIGINS=https://${POSTIZ_HOST}
depends_on:
postiz-temporal:
condition: service_healthy
Comment on lines +70 to +78

Copilot AI Apr 19, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR description says it “adds the Temporal Web UI”, but the template currently doesn’t expose postiz-temporal-ui through Dokploy (no [[config.domains]] entry exists in blueprints/postiz/template.toml). As a result the UI won’t be reachable after deployment unless Dokploy is configured manually. Consider adding a domain mapping for postiz-temporal-ui (e.g., a temporal.${domain} subdomain) or updating the PR description if the UI is intended to remain internal-only.

Copilot uses AI. Check for mistakes.

postiz-temporal-postgres:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USER}
volumes:
- postiz-temporal-db-data:/var/lib/postgresql/data
healthcheck:
test: pg_isready -U ${DB_USER}
interval: 10s
timeout: 3s
retries: 3
=======
temporal:
condition: service_started
>>>>>>> origin/canary

postiz-postgres:
image: postgres:17-alpine
restart: always

environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USER}
Expand All @@ -63,7 +114,6 @@ services:
postiz-redis:
image: redis:7.2
restart: always

healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
Expand Down Expand Up @@ -127,5 +177,9 @@ volumes:
postiz-redis-data:
postiz-config:
postiz-uploads:
<<<<<<< HEAD
postiz-temporal-db-data:
=======
temporal-es-data:
temporal-pg-data:
temporal-pg-data:
>>>>>>> origin/canary
Loading