File size: 3,407 Bytes
6aecb2e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | 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
|