| services: |
| landppt: |
| build: |
| context: . |
| dockerfile: Dockerfile |
| args: |
| - APT_DEBIAN_URL=${APT_DEBIAN_URL:-http://deb.debian.org/debian} |
| - APT_SECURITY_URL=${APT_SECURITY_URL:-http://deb.debian.org/debian-security} |
| image: bradleylzh/landppt:latest |
| container_name: landppt |
| |
| shm_size: '4gb' |
|
|
| ports: |
| - "8000:8000" |
| volumes: |
| |
| - ./.env:/app/.env |
| |
| |
| |
| - landppt_data:/app/data |
| - landppt_uploads:/app/uploads |
| - landppt_reports:/app/research_reports |
| - landppt_cache:/app/temp |
| |
| - landppt_lib:/app/lib |
| environment: |
| - PYTHONPATH=/opt/venv/lib/python3.11/site-packages:/app/src |
| - PYTHONUNBUFFERED=1 |
| |
| - WORKERS=${WORKERS:-2} |
| - RELOAD=${RELOAD:-false} |
| - HOST=${HOST:-0.0.0.0} |
| - PORT=${PORT:-8000} |
| - LOG_LEVEL=${LOG_LEVEL:-info} |
|
|
| |
| - SECRET_KEY=${SECRET_KEY:-your-secret-key-change-me} |
| |
| - LANDPPT_API_KEY=${LANDPPT_API_KEY:-} |
| - LANDPPT_API_KEY_USER=${LANDPPT_API_KEY_USER:-admin} |
| - LANDPPT_API_KEYS=${LANDPPT_API_KEYS:-} |
| - LANDPPT_BOOTSTRAP_ADMIN_ENABLED=${LANDPPT_BOOTSTRAP_ADMIN_ENABLED:-false} |
| - LANDPPT_BOOTSTRAP_ADMIN_USERNAME=${LANDPPT_BOOTSTRAP_ADMIN_USERNAME:-} |
| - LANDPPT_BOOTSTRAP_ADMIN_PASSWORD=${LANDPPT_BOOTSTRAP_ADMIN_PASSWORD:-} |
| - LANDPPT_ENABLE_API_DOCS=${LANDPPT_ENABLE_API_DOCS:-true} |
| - LANDPPT_ALLOW_HEADER_SESSION_AUTH=${LANDPPT_ALLOW_HEADER_SESSION_AUTH:-false} |
|
|
| |
| - DATABASE_URL=postgresql://${POSTGRES_USER:-landppt}:${POSTGRES_PASSWORD:-landppt}@postgres:5432/${POSTGRES_DB:-landppt} |
| |
| - CACHE_BACKEND=valkey |
| - VALKEY_URL=valkey://valkey:${VALKEY_PORT:-6379} |
|
|
|
|
| depends_on: |
|
|
| postgres: |
| condition: service_healthy |
| valkey: |
| condition: service_started |
| restart: unless-stopped |
| healthcheck: |
| test: ["CMD", "/usr/local/bin/docker-healthcheck.sh"] |
| interval: 30s |
| timeout: 30s |
| retries: 3 |
| start_period: 40s |
| networks: |
| - landppt_network |
|
|
| postgres: |
| image: postgres:16-alpine |
| container_name: landppt-postgres |
| environment: |
| POSTGRES_DB: ${POSTGRES_DB:-landppt} |
| POSTGRES_USER: ${POSTGRES_USER:-landppt} |
| POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-landppt} |
| ports: |
| - "6004:5432" |
| volumes: |
| - postgres_data:/var/lib/postgresql/data |
| healthcheck: |
| test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-landppt} -d ${POSTGRES_DB:-landppt}"] |
| interval: 10s |
| timeout: 5s |
| retries: 5 |
| networks: |
| - landppt_network |
| restart: unless-stopped |
|
|
| valkey: |
| image: valkey/valkey:8-alpine |
| container_name: landppt-valkey |
| command: valkey-server --appendonly yes |
| volumes: |
| - valkey_data:/data |
| healthcheck: |
| test: ["CMD", "valkey-cli", "ping"] |
| interval: 10s |
| timeout: 5s |
| retries: 5 |
| networks: |
| - landppt_network |
| restart: unless-stopped |
|
|
| volumes: |
| landppt_data: |
| driver: local |
| landppt_uploads: |
| driver: local |
| landppt_reports: |
| driver: local |
| landppt_cache: |
| driver: local |
| landppt_lib: |
| driver: local |
| postgres_data: |
| driver: local |
| valkey_data: |
| driver: local |
|
|
| networks: |
| landppt_network: |
| driver: bridge |
|
|