diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..e1ca4c8 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,38 @@ +services: + freellmapi: + image: ghcr.io/tashfeenahmed/freellmapi:latest + container_name: freellmapi + environment: + NODE_ENV: production + PORT: "3001" + ENCRYPTION_KEY: ${ENCRYPTION_KEY:?required} + CATALOG_BASE_URL: "http://catalog-proxy:8080" + ports: + - "${HOST_IP:-192.168.1.101}:3002:3001" + volumes: + - ${DATA_DIR:-/sata/freellmapi/data}:/app/server/data + extra_hosts: + - "host.docker.internal:host-gateway" + restart: unless-stopped + depends_on: + - catalog-proxy + healthcheck: + test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3001/api/ping').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"] + interval: 30s + timeout: 5s + start_period: 15s + retries: 3 + + catalog-proxy: + image: python:3.13-slim + container_name: freellmapi-catalog-proxy + restart: unless-stopped + volumes: + - ${DATA_DIR:-/sata/freellmapi/data}:/data + environment: + PORT: "8080" + PROXY_HOST: "${PROXY_HOST:-77.239.127.49}" + PROXY_PORT: "${PROXY_PORT:-18322}" + PROXY_USER: "${PROXY_USER:-}" + PROXY_PASS: "${PROXY_PASS:-}" + command: ["python", "-u", "/data/catalog_proxy.py"]