mirror of
https://github.com/Dokploy/templates.git
synced 2026-06-19 06:05:26 +02:00
* feat(blueprint): initial attempt at peerdb template * fix: entrypoint and healthcheck * fix: entrypoint * fix: temporarily remove network * fix: temporal port * chore: remove 36987 for minio * fix: remove peerdb 9900 port exposure * fix: port for console * fix: minio env fix * fix: expose peerdb and minio to dokploy network * fix(peerdb): add defaults * fix: remove extra hosts * fix: remove network entries * fix: use consistent environment variables
188 lines
5.9 KiB
YAML
188 lines
5.9 KiB
YAML
name: peerdb-quickstart
|
|
|
|
x-minio-config: &minio-config
|
|
PEERDB_CLICKHOUSE_AWS_CREDENTIALS_AWS_ACCESS_KEY_ID: ${MINIO_ROOT_USER}
|
|
PEERDB_CLICKHOUSE_AWS_CREDENTIALS_AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD}
|
|
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
|
|
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
|
|
PEERDB_CLICKHOUSE_AWS_CREDENTIALS_AWS_REGION: ${PEERDB_CLICKHOUSE_AWS_REGION}
|
|
PEERDB_CLICKHOUSE_AWS_CREDENTIALS_AWS_ENDPOINT_URL_S3: ${PEERDB_CLICKHOUSE_AWS_ENDPOINT_URL_S3}
|
|
PEERDB_CLICKHOUSE_AWS_S3_BUCKET_NAME: ${PEERDB_CLICKHOUSE_AWS_S3_BUCKET_NAME}
|
|
|
|
x-catalog-config: &catalog-config
|
|
PEERDB_CATALOG_HOST: ${PEERDB_CATALOG_HOST}
|
|
PEERDB_CATALOG_PORT: ${PEERDB_CATALOG_PORT}
|
|
PEERDB_CATALOG_USER: ${PEERDB_CATALOG_USER}
|
|
PEERDB_CATALOG_PASSWORD: ${PEERDB_CATALOG_PASSWORD}
|
|
PEERDB_CATALOG_DATABASE: ${PEERDB_CATALOG_DATABASE}
|
|
|
|
x-flow-worker-env: &flow-worker-env
|
|
TEMPORAL_HOST_PORT: temporal:7233
|
|
TEMPORAL_CLIENT_CERT:
|
|
TEMPORAL_CLIENT_KEY:
|
|
PEERDB_TEMPORAL_NAMESPACE: default
|
|
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
|
|
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
|
|
AWS_REGION: ${AWS_REGION:-}
|
|
AWS_ENDPOINT: ${AWS_ENDPOINT:-}
|
|
|
|
services:
|
|
catalog:
|
|
image: postgres:18-alpine@sha256:eca6fb2d91fda290eb8cfb8ba53dd0dcbf3508a08011e30adb039ea7c8e1e9f2
|
|
command: -c config_file=/etc/postgresql.conf
|
|
restart: unless-stopped
|
|
expose:
|
|
- 5432
|
|
environment:
|
|
PGUSER: ${PEERDB_CATALOG_USER}
|
|
POSTGRES_PASSWORD: ${PEERDB_CATALOG_PASSWORD}
|
|
POSTGRES_DB: ${PEERDB_CATALOG_DATABASE}
|
|
POSTGRES_INITDB_ARGS: --locale=C.UTF-8
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
- ../files/postgresql.conf:/etc/postgresql.conf
|
|
- ../files/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
|
healthcheck:
|
|
test: ["CMD", "pg_isready", "-d", "${PEERDB_CATALOG_DATABASE}", "-U", "${PEERDB_CATALOG_USER}"]
|
|
interval: 10s
|
|
timeout: 30s
|
|
retries: 5
|
|
start_period: 60s
|
|
|
|
temporal:
|
|
restart: unless-stopped
|
|
depends_on:
|
|
catalog:
|
|
condition: service_healthy
|
|
environment:
|
|
DB: postgres12
|
|
DB_PORT: ${PEERDB_CATALOG_PORT}
|
|
POSTGRES_USER: ${PEERDB_CATALOG_USER}
|
|
POSTGRES_PWD: ${PEERDB_CATALOG_PASSWORD}
|
|
POSTGRES_SEEDS: catalog
|
|
DYNAMIC_CONFIG_FILE_PATH: config/dynamicconfig/production-sql.yaml
|
|
image: temporalio/auto-setup:1.29@sha256:5b3502a3b685f9eff1b925af90c57c9e3dbeccbef367cc28a2a9712c63379312
|
|
expose:
|
|
- 7233
|
|
volumes:
|
|
- ../files/temporal-dynamicconfig:/etc/temporal/config/dynamicconfig
|
|
|
|
temporal-admin-tools:
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- temporal
|
|
environment:
|
|
TEMPORAL_ADDRESS: temporal:7233
|
|
TEMPORAL_CLI_ADDRESS: temporal:7233
|
|
TEMPORAL_CLI_SHOW_STACKS: 1
|
|
image: temporalio/admin-tools:1.25.2-tctl-1.18.1-cli-1.1.1@sha256:da0c7a7982b571857173ab8f058e7f139b3054800abb4dcb100445d29a563ee8
|
|
stdin_open: true
|
|
tty: true
|
|
entrypoint: ["sh", "/etc/temporal/entrypoint.sh"]
|
|
healthcheck:
|
|
test: ["CMD", "tctl", "workflow", "list"]
|
|
interval: 10s
|
|
timeout: 30s
|
|
retries: 5
|
|
volumes:
|
|
- ../files/scripts/mirror-name-search.sh:/etc/temporal/entrypoint.sh
|
|
|
|
temporal-ui:
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- temporal
|
|
environment:
|
|
TEMPORAL_ADDRESS: temporal:7233
|
|
TEMPORAL_CORS_ORIGINS: http://localhost:3000
|
|
TEMPORAL_CSRF_COOKIE_INSECURE: "true"
|
|
image: temporalio/ui:2.43.3@sha256:31f0d8c1ed0bfc49c9c20ea9613ee9dd5c52f5f989bacb8a30210f847028e9cd
|
|
expose:
|
|
- 8080
|
|
|
|
flow-api:
|
|
image: ghcr.io/peerdb-io/flow-api:stable-v0.35.5
|
|
restart: unless-stopped
|
|
expose:
|
|
- 8112
|
|
- 8113
|
|
environment:
|
|
<<: [*catalog-config, *flow-worker-env, *minio-config]
|
|
PEERDB_ALLOWED_TARGETS: ${PEERDB_ALLOWED_TARGETS}
|
|
depends_on:
|
|
temporal-admin-tools:
|
|
condition: service_healthy
|
|
|
|
flow-snapshot-worker:
|
|
image: ghcr.io/peerdb-io/flow-snapshot-worker:stable-v0.35.5
|
|
restart: unless-stopped
|
|
environment:
|
|
<<: [*catalog-config, *flow-worker-env, *minio-config]
|
|
depends_on:
|
|
temporal-admin-tools:
|
|
condition: service_healthy
|
|
|
|
flow-worker:
|
|
image: ghcr.io/peerdb-io/flow-worker:stable-v0.35.5
|
|
restart: unless-stopped
|
|
environment:
|
|
<<: [*catalog-config, *flow-worker-env, *minio-config]
|
|
depends_on:
|
|
temporal-admin-tools:
|
|
condition: service_healthy
|
|
|
|
peerdb:
|
|
stop_signal: SIGINT
|
|
image: ghcr.io/peerdb-io/peerdb-server:stable-v0.35.5
|
|
restart: unless-stopped
|
|
environment:
|
|
<<: *catalog-config
|
|
PEERDB_PASSWORD: ${PEERDB_PASSWORD}
|
|
PEERDB_FLOW_SERVER_ADDRESS: ${PEERDB_FLOW_SERVER_ADDRESS}
|
|
RUST_LOG: info
|
|
RUST_BACKTRACE: 1
|
|
expose:
|
|
- 9900
|
|
depends_on:
|
|
catalog:
|
|
condition: service_healthy
|
|
|
|
peerdb-ui:
|
|
image: ghcr.io/peerdb-io/peerdb-ui:stable-v0.35.5
|
|
restart: unless-stopped
|
|
expose:
|
|
- 3000
|
|
environment:
|
|
<<: *catalog-config
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
PEERDB_FLOW_SERVER_HTTP: ${PEERDB_FLOW_SERVER_HTTP}
|
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
|
NEXTAUTH_URL: ${NEXTAUTH_URL}
|
|
PEERDB_ALLOWED_TARGETS: ${PEERDB_ALLOWED_TARGETS}
|
|
PEERDB_CLICKHOUSE_ALLOWED_DOMAINS: ${PEERDB_CLICKHOUSE_ALLOWED_DOMAINS}
|
|
PEERDB_EXPERIMENTAL_ENABLE_SCRIPTING: ${PEERDB_EXPERIMENTAL_ENABLE_SCRIPTING}
|
|
depends_on:
|
|
- flow-api
|
|
|
|
minio:
|
|
image: minio/minio:latest@sha256:14cea493d9a34af32f524e538b8346cf79f3321eff8e708c1e2960462bd8936e
|
|
restart: unless-stopped
|
|
volumes:
|
|
- minio-data:/data
|
|
expose:
|
|
- 9000
|
|
- 9001
|
|
environment:
|
|
<<: *minio-config
|
|
entrypoint: >
|
|
/bin/sh -c "
|
|
minio server /data --console-address=:9001 &
|
|
sleep 2;
|
|
mc alias set myminiopeerdb http://minio:9000 $$MINIO_ROOT_USER $$MINIO_ROOT_PASSWORD;
|
|
mc mb myminiopeerdb/$$PEERDB_CLICKHOUSE_AWS_S3_BUCKET_NAME;
|
|
wait
|
|
"
|
|
|
|
volumes:
|
|
pgdata:
|
|
minio-data:
|