Skip to content

Instantly share code, notes, and snippets.

@frankievalentine
Last active September 10, 2024 18:25
Show Gist options
  • Save frankievalentine/a6b99ae8f04d42b148008438c6877d4a to your computer and use it in GitHub Desktop.
Save frankievalentine/a6b99ae8f04d42b148008438c6877d4a to your computer and use it in GitHub Desktop.
openpanel compose
services:
op-geo:
image: observabilitystack/geoip-api:latest
container_name: openpanel-geo
networks:
- openpanel_default
- database
- store
restart: always
op-ch:
image: clickhouse/clickhouse-server:23.3.7.5-alpine
container_name: openpanel-clickhouse
restart: always
networks:
- openpanel_default
- database
- store
volumes:
- op-ch-data:/var/lib/clickhouse
- op-ch-logs:/var/log/clickhouse-server
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/op-config.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/op-user-config.xml:ro
environment:
- CLICKHOUSE_DB
- CLICKHOUSE_USER
- CLICKHOUSE_PASSWORD
healthcheck:
test:
- CMD-SHELL
- clickhouse-client --query "SELECT 1"
interval: 10s
timeout: 5s
retries: 5
ulimits:
nofile:
soft: 262144
hard: 262144
ports:
- 9001:9000
- 8123:8123
op-ch-migrator:
image: clickhouse/clickhouse-server:23.3.7.5-alpine
container_name: openpanel-clickhouse-migrator
networks:
- openpanel_default
- database
- store
depends_on:
- op-ch
volumes:
- ../packages/db/clickhouse_init.sql:/migrations/clickhouse_init.sql
environment:
- CLICKHOUSE_DB
- CLICKHOUSE_USER
- CLICKHOUSE_PASSWORD
entrypoint: /bin/sh -c
command: >
" echo 'Waiting for ClickHouse to start...'; while ! clickhouse-client
--host op-ch --user=$CLICKHOUSE_USER --password=$CLICKHOUSE_PASSWORD
--query 'SELECT 1;' 2>/dev/null; do
echo 'ClickHouse is unavailable - sleeping 1s...';
sleep 1;
done;
echo 'ClickHouse started. Running migrations...'; clickhouse-client --host op-ch --database=$CLICKHOUSE_DB --user=$CLICKHOUSE_USER --password=$CLICKHOUSE_PASSWORD --queries-file /migrations/clickhouse_init.sql; "
op-api:
image: lindesvard/openpanel-api:latest
container_name: openpanel-api
restart: always
command: sh -c "sleep 10 && pnpm -r run migrate:deploy && pnpm start"
networks:
- openpanel_default
- database
- store
depends_on:
- op-ch
- op-geo
env_file:
- .env
op-dashboard:
image: lindesvard/openpanel-dashboard:latest
container_name: openpanel-dashboard
restart: always
networks:
- openpanel_default
- database
- store
ports:
- 3050:3000
depends_on:
- op-ch
env_file:
- .env
op-worker:
image: lindesvard/openpanel-worker:latest
restart: always
networks:
- openpanel_default
- database
- store
depends_on:
- op-ch
env_file:
- .env
deploy:
mode: replicated
replicas: 2
volumes:
op-ch-data:
driver: local
op-ch-logs:
driver: local
networks:
openpanel_default:
external: true
database:
external: true
store:
external: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment