services: backend: image: python:3.12-alpine container_name: uvpn-backend working_dir: /app volumes: - .:/app - /app/.venv environment: - UV_COMPILE_BYTECODE=1 - UV_LINK_MODE=copy expose: - 8000 command: > sh -c "pip install --no-cache-dir uv && uv sync --frozen --no-dev && uv run uvicorn main:app --host 0.0.0.0 --port 8000 --reload" networks: - remnawave-network restart: unless-stopped healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/health', timeout=3).read()"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: remnawave-network: external: true