Files
codeandClaude Fable 5 8ab413804a normalize all stacks to conventions
- VOL_PATH always defaults to /data; vscode/opencode VOL_PROJECTS nests it
- TZ defaults to America/Vancouver (was UTC in etherpad, ntfy, redis)
- compose section order fixed (volumes before environment, command after networks)
- all default secrets are the literal ChangeThisPassword (grep-friendly,
  users must change them); removed a real key from ollama sample.env
- sample.env synced with compose: missing vars added with defaults, dead vars removed
- invoiceninja_dev/openarchiver_dev: app services had no environment block,
  wired all sample.env vars through so the stacks actually work
- opencode: sample.env OLLAMA_HOST renamed to OLLAMA_HOST_URL to match compose
- TZ values unquoted consistently

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 06:24:54 +00:00

127 lines
4.4 KiB
YAML

services:
postgres:
image: ${POSTHOG_POSTGRES_IMAGE:-postgres:15-alpine}
restart: ${POSTHOG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/posthog/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_DB=${POSTHOG_DB_NAME:-posthog}
- POSTGRES_USER=${POSTHOG_DB_USER:-posthog}
- POSTGRES_PASSWORD=${POSTHOG_DB_PASSWORD:-ChangeThisPassword}
networks:
- internal
redis:
image: ${POSTHOG_REDIS_IMAGE:-redis:7-alpine}
restart: ${POSTHOG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/posthog/redis:/data
networks:
- internal
clickhouse:
image: ${POSTHOG_CLICKHOUSE_IMAGE:-clickhouse/clickhouse-server:24-alpine}
restart: ${POSTHOG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/posthog/clickhouse:/var/lib/clickhouse
environment:
- CLICKHOUSE_DB=${POSTHOG_CLICKHOUSE_DB:-posthog}
- CLICKHOUSE_USER=${POSTHOG_CLICKHOUSE_USER:-clickhouse}
- CLICKHOUSE_PASSWORD=${POSTHOG_CLICKHOUSE_PASSWORD:-ChangeThisPassword}
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1
networks:
- internal
kafka:
image: ${POSTHOG_KAFKA_IMAGE:-docker.io/bitnami/kafka:3.7}
restart: ${POSTHOG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/posthog/kafka:/bitnami/kafka
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
- KAFKA_CFG_LOG_RETENTION_MS=3600000
- KAFKA_CFG_LOG_RETENTION_CHECK_INTERVAL_MS=300000
- KAFKA_CFG_LOG_RETENTION_HOURS=1
networks:
- internal
posthog:
image: ${POSTHOG_IMAGE:-posthog/posthog:latest}
restart: ${POSTHOG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/posthog/data:/data
- ${VOL_PATH:-/data}/posthog/logs:/var/log
environment:
- SITE_URL=${POSTHOG_SITE_URL:-http://localhost:8000}
- SECRET_KEY=${POSTHOG_SECRET_KEY:?must_be_set}
- DATABASE_URL=postgres://${POSTHOG_DB_USER:-posthog}:${POSTHOG_DB_PASSWORD:-ChangeThisPassword}@postgres:5432/${POSTHOG_DB_NAME:-posthog}
- REDIS_URL=redis://redis:6379/
- CLICKHOUSE_HOST=clickhouse
- CLICKHOUSE_DATABASE=${POSTHOG_CLICKHOUSE_DB:-posthog}
- CLICKHOUSE_USER=${POSTHOG_CLICKHOUSE_USER:-clickhouse}
- CLICKHOUSE_PASSWORD=${POSTHOG_CLICKHOUSE_PASSWORD:-ChangeThisPassword}
- CLICKHOUSE_SECURE=false
- CLICKHOUSE_VERIFY=false
- KAFKA_HOSTS=kafka:9092
- DEPLOYMENT=hobby
- OPT_OUT_CAPTURE=true
- DISABLE_SECURITY=0
- EMAIL_HOST=${POSTHOG_EMAIL_HOST:-}
- EMAIL_HOST_USER=${POSTHOG_EMAIL_USER:-}
- EMAIL_HOST_PASSWORD=${POSTHOG_EMAIL_PASSWORD:-}
- EMAIL_PORT=${POSTHOG_EMAIL_PORT:-587}
- EMAIL_USE_TLS=${POSTHOG_EMAIL_TLS:-true}
ports:
- "${POSTHOG_PORT:-8000}:8000"
networks:
- proxy
- internal
depends_on:
- postgres
- redis
- clickhouse
- kafka
command: /compose/start
worker:
image: ${POSTHOG_IMAGE:-posthog/posthog:latest}
restart: ${POSTHOG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/posthog/data:/data
environment:
- SITE_URL=${POSTHOG_SITE_URL:-http://localhost:8000}
- SECRET_KEY=${POSTHOG_SECRET_KEY:?must_be_set}
- DATABASE_URL=postgres://${POSTHOG_DB_USER:-posthog}:${POSTHOG_DB_PASSWORD:-ChangeThisPassword}@postgres:5432/${POSTHOG_DB_NAME:-posthog}
- REDIS_URL=redis://redis:6379/
- CLICKHOUSE_HOST=clickhouse
- CLICKHOUSE_DATABASE=${POSTHOG_CLICKHOUSE_DB:-posthog}
- CLICKHOUSE_USER=${POSTHOG_CLICKHOUSE_USER:-clickhouse}
- CLICKHOUSE_PASSWORD=${POSTHOG_CLICKHOUSE_PASSWORD:-ChangeThisPassword}
- CLICKHOUSE_SECURE=false
- CLICKHOUSE_VERIFY=false
- KAFKA_HOSTS=kafka:9092
- DEPLOYMENT=hobby
- OPT_OUT_CAPTURE=true
networks:
- internal
depends_on:
- postgres
- redis
- clickhouse
- kafka
- posthog
command: /compose/worker
networks:
proxy:
external: true
internal: