# Unraid stack that *pulls* prebuilt images from the Gitea registry. # Use this after CI/CD has pushed at least one tag. # # Place next to a `.env` (see .env.example) and run: # docker compose -f compose.pull.yml pull # docker compose -f compose.pull.yml up -d name: investor-flow services: backend: image: ${GITEA_REGISTRY:-unraid.local:3003}/transnet/investor-flow-backend:${IFLOW_TAG:-latest} restart: unless-stopped ports: - "${IFLOW_BACKEND_PORT:-3001}:3001" environment: NODE_ENV: production HOST: 0.0.0.0 PORT: 3001 IFLOW_DB_PATH: /app/data/investor-flow.db IFLOW_SESSION_SECRET: ${IFLOW_SESSION_SECRET:?set IFLOW_SESSION_SECRET} IFLOW_CRYPTO_KEY: ${IFLOW_CRYPTO_KEY:-} SEC_OPERATOR_EMAIL: ${SEC_OPERATOR_EMAIL:-operator@example.com} YF_OPERATOR_EMAIL: ${YF_OPERATOR_EMAIL:-${SEC_OPERATOR_EMAIL:-operator@example.com}} FRED_API_KEY: ${FRED_API_KEY:-} LLM_PROVIDER_URL: ${LLM_PROVIDER_URL:-} ORNITH_LLM_URL: ${ORNITH_LLM_URL:-${LLM_PROVIDER_URL:-}} volumes: - ${IFLOW_DATA_DIR}:/app/data healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3001/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 30s timeout: 5s retries: 3 start_period: 40s frontend: image: ${GITEA_REGISTRY:-unraid.local:3003}/transnet/investor-flow-frontend:${IFLOW_TAG:-latest} restart: unless-stopped depends_on: backend: condition: service_healthy ports: - "${IFLOW_WEB_PORT:-3000}:3000" environment: NODE_ENV: production HOSTNAME: 0.0.0.0 PORT: 3000 IFLOW_BACKEND_URL: http://backend:3001 healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3000/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 30s timeout: 5s retries: 3 start_period: 40s