Vanyapond / deploy_amd64 /docker-compose.yml
VanyaJ's picture
v2.3: fix document API auth key mismatch + IndexError fix (amd64)
e785e3e verified
Raw
History Blame Contribute Delete
3.82 kB
# ============================================
# BADA docs โ€” Air-Gapped Production Deployment
# ============================================
# v2.0 (2026-03-10)
# ์—์–ด๊ฐญ(์ธํ„ฐ๋„ท ์ฐจ๋‹จ) ํ™˜๊ฒฝ ์ „์šฉ ๊ตฌ์„ฑ
# Ollama: ์™ธ๋ถ€ ๋ณ„๋„ ์„œ๋ฒ„์—์„œ ์šด์˜
#
# ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ:
# docker load < presenton-airgap.tar.gz
# docker load < postgres16-alpine-amd64.tar
#
# ์‹คํ–‰:
# cp .env.example .env # ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • (OLLAMA_URL ์ˆ˜์ • ํ•„์ˆ˜)
# docker compose up -d
# open http://localhost:5050
#
# ์ค‘์ง€:
# docker compose down
#
# ๋ฐ์ดํ„ฐ ์™„์ „ ์ดˆ๊ธฐํ™” (์ฃผ์˜!):
# docker compose down -v
# ============================================
services:
presenton:
image: presenton:latest
# ์—์–ด๊ฐญ: build ์—†์ด ์‚ฌ์ „ ๋นŒ๋“œ ์ด๋ฏธ์ง€ ์‚ฌ์šฉ
platform: linux/amd64
container_name: presenton-app
ports:
- "${APP_PORT:-5050}:80"
volumes:
- presenton_data:/app_data
environment:
# --- LLM Provider ---
# Docker ์ด๋ฏธ์ง€์— Ollama ๋ฏธํฌํ•จ โ†’ ์™ธ๋ถ€ LLM ์„œ๋น„์Šค ํ•„์ˆ˜
# โš ๏ธ OLLAMA_URL์„ ์‹ค์ œ Ollama ์„œ๋ฒ„ IP๋กœ ์„ค์ •ํ•˜์„ธ์š”
- CAN_CHANGE_KEYS=${CAN_CHANGE_KEYS:-true}
- LLM=${LLM:-ollama}
# ์™ธ๋ถ€ Ollama ์„œ๋ฒ„ (๋ณ„๋„ GPU ์„œ๋ฒ„)
- OLLAMA_URL=${OLLAMA_URL:-http://192.168.1.100:11434}
- OLLAMA_MODEL=${OLLAMA_MODEL:-qwen2.5:3b,qwen3-vl:8b,llama3.2:3b}
# OpenAI-ํ˜ธํ™˜ LLM (vLLM, LM Studio ๋“ฑ)
- CUSTOM_LLM_URL=${CUSTOM_LLM_URL:-}
- CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY:-}
- CUSTOM_MODEL=${CUSTOM_MODEL:-}
# ์™ธ๋ถ€ API ํ‚ค (์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์‹œ์—๋งŒ)
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- OPENAI_MODEL=${OPENAI_MODEL:-}
- GOOGLE_API_KEY=${GOOGLE_API_KEY:-}
- GOOGLE_MODEL=${GOOGLE_MODEL:-}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- ANTHROPIC_MODEL=${ANTHROPIC_MODEL:-}
# --- Image ---
- IMAGE_PROVIDER=${IMAGE_PROVIDER:-pexels}
- DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION:-true}
- PEXELS_API_KEY=${PEXELS_API_KEY:-}
- PIXABAY_API_KEY=${PIXABAY_API_KEY:-}
- COMFYUI_URL=${COMFYUI_URL:-}
- COMFYUI_WORKFLOW=${COMFYUI_WORKFLOW:-}
# --- Database ---
- DATABASE_URL=postgresql://presenton:${DB_PASSWORD:-presenton_secure_2026}@presenton-db:5432/presenton
# --- Storage ---
- STORAGE_BACKEND=${STORAGE_BACKEND:-local}
- STORAGE_LOCAL_PATH=/app_data/documents
- STORAGE_EXTERNAL_URL=${STORAGE_EXTERNAL_URL:-http://localhost:5050}
# --- Misc ---
- DISABLE_ANONYMOUS_TRACKING=true
- WEB_GROUNDING=false
- EXTENDED_REASONING=${EXTENDED_REASONING:-}
- TOOL_CALLS=${TOOL_CALLS:-}
- DISABLE_THINKING=${DISABLE_THINKING:-}
- CODEX_MODEL=${CODEX_MODEL:-}
# --- Security ---
- API_SECRET_KEY=${API_SECRET_KEY:-presenton_ext_api_2026}
- MAX_CONCURRENT_JOBS=${MAX_CONCURRENT_JOBS:-3}
depends_on:
presenton-db:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: [ "CMD-SHELL", "curl -sf http://localhost:80/ || exit 1" ]
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
presenton-db:
hostname: presenton-db
image: postgres:16-alpine
platform: linux/amd64
container_name: presenton-db
volumes:
- pg_data:/var/lib/postgresql/data
- ./scripts/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh:ro
environment:
POSTGRES_DB: presenton
POSTGRES_USER: presenton
POSTGRES_PASSWORD: ${DB_PASSWORD:-presenton_secure_2026}
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U presenton -d presenton" ]
interval: 10s
timeout: 10s
retries: 10
start_period: 30s
restart: unless-stopped
volumes:
presenton_data:
pg_data: