Files
appstore-1panel/dockge/glean/docker-compose.yml
2025-12-04 06:35:30 +00:00

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