mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-10 00:15:28 +02:00
The postgres:18-alpine image moved PGDATA from /var/lib/postgresql/data
to /var/lib/postgresql, so mounting the volume at the old path made the
entrypoint abort and the db container restart forever, failing the
service_healthy dependency for dash and status-page.
- Mount db_data at /var/lib/postgresql (postgres 18 layout)
- Remove host port mappings (Dokploy routes via domains/Traefik)
- Generate POSTGRES_PASSWORD and CLICKHOUSE_PASSWORD with ${password:32}
instead of hardcoded credentials
- Drop unused DASH_PORT/STATUS_PAGE_PORT env and dangling empty
[[config.mounts]] section in template.toml
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
91 lines
2.2 KiB
YAML
91 lines
2.2 KiB
YAML
services:
|
|
dash:
|
|
image: ghcr.io/uptimekit/dash:latest
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/uptimekit
|
|
- CLICKHOUSE_URL=http://clickhouse:8123
|
|
- CLICKHOUSE_USER=default
|
|
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD}
|
|
- REDIS_URL=redis://redis:6379
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
"IP=$$(hostname -i | awk '{print $$1}'); wget -qO- \"http://$$IP:3000/api/health\" >/dev/null 2>&1",
|
|
]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 12
|
|
start_period: 20s
|
|
restart: always
|
|
|
|
status-page:
|
|
image: ghcr.io/uptimekit/status-page:latest
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/uptimekit
|
|
- CLICKHOUSE_URL=http://clickhouse:8123
|
|
- CLICKHOUSE_USER=default
|
|
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD}
|
|
- REDIS_URL=redis://redis:6379
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
clickhouse:
|
|
condition: service_started
|
|
dash:
|
|
condition: service_healthy
|
|
restart: always
|
|
|
|
db:
|
|
image: postgres:18-alpine
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: uptimekit
|
|
volumes:
|
|
- db_data:/var/lib/postgresql
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres -d uptimekit"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 12
|
|
start_period: 10s
|
|
restart: always
|
|
|
|
redis:
|
|
image: redis:8.0-alpine
|
|
volumes:
|
|
- redis_data:/data
|
|
restart: always
|
|
|
|
clickhouse:
|
|
image: clickhouse/clickhouse-server:latest
|
|
volumes:
|
|
- clickhouse_data:/var/lib/clickhouse
|
|
environment:
|
|
CLICKHOUSE_DB: uptimekit
|
|
CLICKHOUSE_USER: default
|
|
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
|
|
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
|
|
user: "root"
|
|
ulimits:
|
|
nofile:
|
|
soft: 262144
|
|
hard: 262144
|
|
restart: always
|
|
|
|
volumes:
|
|
db_data:
|
|
clickhouse_data:
|
|
redis_data: |