services: # ─── Redis Cache ────────────────────────────────────────────────────────── - type: redis name: opticparse-cache region: singapore plan: free ipAllowList: [] # only allow internal connections # ─── Opticparse Python Vision Scraper (Singapore, Docker) ───────────────── - type: web name: opticparse-python-sg runtime: docker repo: https://github.com/parastejpal987-cmyk/opticparse branch: main region: singapore plan: free dockerfilePath: ./Dockerfile buildCommand: pip install -r requirements.txt && PLAYWRIGHT_BROWSERS_PATH=0 playwright install chromium --with-deps envVars: - key: GROQ_API_KEY sync: false - key: OPENROUTER_KEY sync: false - key: OPTICPARSE_API_KEY sync: false - key: DATABASE_URL sync: false - key: CLOUDFLARE_AI_GATEWAY_ACCOUNT_ID sync: false value: "3b63a0448b1b9677d01fab1c74ed52f7" - key: PORT value: "8000" - key: SUPABASE_URL sync: false - key: SUPABASE_SERVICE_KEY sync: false - key: BROWSERLESS_API_KEY sync: false - key: REDIS_URL fromService: type: redis name: opticparse-cache property: connectionString # ─── PhishVision Node Server (Singapore) ────────────────────────────────── - type: web name: opticparse-node-sg runtime: node repo: https://github.com/parastejpal987-cmyk/opticparse branch: main rootDir: opticparse-js region: singapore plan: free buildCommand: npm install --production=false && npm run build startCommand: npm start envVars: - key: GROQ_API_KEY sync: false - key: OPENROUTER_KEY sync: false - key: CLOUDFLARE_AI_GATEWAY_ACCOUNT_ID sync: false value: "3b63a0448b1b9677d01fab1c74ed52f7" - key: NODE_ENV value: production - key: REDIS_URL fromService: type: redis name: opticparse-cache property: connectionString