const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); const fs = require('fs'); const app = express(); const INTERNAL_PSK = process.env.INTERNAL_PSK; const OR_PORT = parseInt(process.env.OMNIROUTE_PORT || '20128', 10); const GATE_PORT = parseInt(process.env.EXPOSED_PORT || '7860', 10); const OR_API_KEY = fs.readFileSync('/data/.or-api-key', 'utf8').trim(); app.get('/healthz', async (req, res) => { const r = await fetch(`http://127.0.0.1:${OR_PORT}/api/monitoring/health`).catch(() => null); r?.ok ? res.json({ ok: true }) : res.status(503).json({ ok: false }); }); app.use((req, res, next) => { if (!req.path.startsWith('/v1')) return next(); const bearer = (req.headers.authorization || '').replace('Bearer ', ''); if (bearer !== INTERNAL_PSK) return res.status(401).json({ error: 'unauthorized' }); req.headers.authorization = `Bearer ${OR_API_KEY}`; next(); }); app.use('/', createProxyMiddleware({ target: `http://127.0.0.1:${OR_PORT}`, changeOrigin: true })); app.listen(GATE_PORT, '0.0.0.0');