148 lines
3.4 KiB
YAML
148 lines
3.4 KiB
YAML
networks:
|
|
1panel-network:
|
|
external: true
|
|
glean-network:
|
|
driver: bridge
|
|
services:
|
|
admin:
|
|
container_name: glean-admin
|
|
depends_on:
|
|
- backend
|
|
env_file:
|
|
- ./envs/global.env
|
|
- .env
|
|
image: ghcr.io/leslieleung/glean-admin:0.1.4
|
|
networks:
|
|
- glean-network
|
|
ports:
|
|
- ${PANEL_APP_PORT_ADMIN:-3001}:80
|
|
restart: always
|
|
backend:
|
|
command:
|
|
- uv
|
|
- run
|
|
- --no-sync
|
|
- uvicorn
|
|
- glean_api.main:app
|
|
- --host
|
|
- 0.0.0.0
|
|
- --port
|
|
- '8000'
|
|
container_name: glean
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
env_file:
|
|
- ./envs/global.env
|
|
- .env
|
|
environment:
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-}
|
|
ADMIN_ROLE: ${ADMIN_ROLE:-super_admin}
|
|
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
|
|
CORS_ORIGINS: '["http://localhost", "http://localhost:3000", "http://localhost:3001"]'
|
|
CREATE_ADMIN: ${CREATE_ADMIN:-true}
|
|
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-glean}:${POSTGRES_PASSWORD:-glean}@postgres:5432/${POSTGRES_DB:-glean}
|
|
DEBUG: ${DEBUG:-false}
|
|
REDIS_URL: redis://redis:6379/0
|
|
RUN_MIGRATIONS: 'true'
|
|
SECRET_KEY: ${SECRET_KEY:-change-me-in-production-use-a-long-random-string}
|
|
healthcheck:
|
|
interval: 10s
|
|
retries: 5
|
|
start_period: 30s
|
|
test:
|
|
- CMD
|
|
- curl
|
|
- -f
|
|
- http://localhost:8000/api/health
|
|
timeout: 5s
|
|
image: ghcr.io/leslieleung/glean-backend:0.1.4
|
|
labels:
|
|
createdBy: Apps
|
|
networks:
|
|
- glean-network
|
|
restart: always
|
|
postgres:
|
|
container_name: glean-postgres
|
|
env_file:
|
|
- ./envs/global.env
|
|
- .env
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-glean}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-glean}
|
|
POSTGRES_USER: ${POSTGRES_USER:-glean}
|
|
healthcheck:
|
|
interval: 10s
|
|
retries: 5
|
|
test:
|
|
- CMD-SHELL
|
|
- pg_isready -U ${POSTGRES_USER:-glean}
|
|
timeout: 5s
|
|
image: postgres:16-alpine
|
|
networks:
|
|
- glean-network
|
|
restart: always
|
|
volumes:
|
|
- ${GLEAN_ROOT_PATH}/postgres:/var/lib/postgresql/data
|
|
redis:
|
|
command: redis-server --appendonly yes
|
|
container_name: glean-redis
|
|
env_file:
|
|
- ./envs/global.env
|
|
- .env
|
|
healthcheck:
|
|
interval: 10s
|
|
retries: 5
|
|
test:
|
|
- CMD
|
|
- redis-cli
|
|
- ping
|
|
timeout: 5s
|
|
image: redis:7-alpine
|
|
networks:
|
|
- glean-network
|
|
restart: always
|
|
volumes:
|
|
- ${GLEAN_ROOT_PATH}/redis:/data
|
|
web:
|
|
container_name: glean-web
|
|
depends_on:
|
|
- backend
|
|
env_file:
|
|
- ./envs/global.env
|
|
- .env
|
|
image: ghcr.io/leslieleung/glean-web:0.1.4
|
|
networks:
|
|
- glean-network
|
|
ports:
|
|
- ${PANEL_APP_PORT_HTTP:-80}:80
|
|
restart: always
|
|
worker:
|
|
command:
|
|
- uv
|
|
- run
|
|
- --no-sync
|
|
- arq
|
|
- glean_worker.main.WorkerSettings
|
|
container_name: glean-worker
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
env_file:
|
|
- ./envs/global.env
|
|
- .env
|
|
environment:
|
|
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-glean}:${POSTGRES_PASSWORD:-glean}@postgres:5432/${POSTGRES_DB:-glean}
|
|
REDIS_URL: redis://redis:6379/0
|
|
SECRET_KEY: ${SECRET_KEY:-}
|
|
image: ghcr.io/leslieleung/glean-backend:0.1.4
|
|
networks:
|
|
- glean-network
|
|
restart: always
|