| 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: landppt-dev:latest | |
| container_name: landppt-dev | |
| shm_size: '2gb' | |
| ports: | |
| - "8000:8000" | |
| volumes: | |
| - ./:/app | |
| - 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:-1} | |
| - RELOAD=${RELOAD:-true} | |
| - HOST=${HOST:-0.0.0.0} | |
| - PORT=${PORT:-8000} | |
| - LOG_LEVEL=${LOG_LEVEL:-info} | |
| - OPENAI_USE_RESPONSES_API=${OPENAI_USE_RESPONSES_API:-false} | |
| - OPENAI_ENABLE_REASONING=${OPENAI_ENABLE_REASONING:-false} | |
| - OPENAI_REASONING_EFFORT=${OPENAI_REASONING_EFFORT:-medium} | |
| - 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 | |
| ports: | |
| - "5432:5432" | |
| environment: | |
| POSTGRES_DB: ${POSTGRES_DB:-landppt} | |
| POSTGRES_USER: ${POSTGRES_USER:-landppt} | |
| POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-landppt} | |
| 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 | |