75 lines
2.2 KiB
YAML
75 lines
2.2 KiB
YAML
services:
|
|
db:
|
|
image: postgres:15-alpine
|
|
container_name: tz-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER:-tz_user}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-tz_password}
|
|
POSTGRES_DB: ${POSTGRES_DB:-tz_db}
|
|
ports:
|
|
- "${POSTGRES_PORT:-5432}:5432"
|
|
volumes:
|
|
- tz_db_data:/var/lib/postgresql/data
|
|
networks:
|
|
- tz-net
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: ../docker/backend/Dockerfile
|
|
container_name: tz-backend
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
# строка подключения к БД — backend соберёт её из этих переменных
|
|
DB_HOST: db
|
|
DB_PORT: 5432
|
|
DB_USER: ${POSTGRES_USER:-tz_user}
|
|
DB_PASSWORD: ${POSTGRES_PASSWORD:-tz_password}
|
|
DB_NAME: ${POSTGRES_DB:-tz_db}
|
|
# базовый URL для LLM — пока может быть облачный, позже поменяем на Qwen/Ollama
|
|
LLM_BASE_URL: ${LLM_BASE_URL:-https://api.openai.com/v1}
|
|
LLM_API_KEY: ${LLM_API_KEY:-changeme}
|
|
LLM_MODEL: ${LLM_MODEL:-gpt-4.1-mini}
|
|
# пути к хранилищу и шаблонам внутри контейнера
|
|
STORAGE_INPUT_PATH: /app/storage/input
|
|
STORAGE_OUTPUT_PATH: /app/storage/output
|
|
TEMPLATES_PATH: /app/templates
|
|
PORT: ${BACKEND_PORT:-3000}
|
|
depends_on:
|
|
- db
|
|
ports:
|
|
- "${BACKEND_PORT:-3000}:3000"
|
|
volumes:
|
|
- ./storage/input:/app/storage/input
|
|
- ./storage/output:/app/storage/output
|
|
- ./templates:/app/templates
|
|
networks:
|
|
- tz-net
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: ../docker/frontend/Dockerfile
|
|
container_name: tz-frontend
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
# фронт будет ходить к backend по этому URL внутри браузера
|
|
VITE_API_BASE_URL: ${VITE_API_BASE_URL:-http://localhost:3000}
|
|
depends_on:
|
|
- backend
|
|
ports:
|
|
- "${FRONTEND_PORT:-5173}:5173"
|
|
networks:
|
|
- tz-net
|
|
|
|
volumes:
|
|
tz_db_data:
|
|
|
|
networks:
|
|
tz-net:
|
|
driver: bridge |