waybetter-for-x/apps/api/src/index.ts
2026-10-01 06:01:13 +07:00

20 lines
965 B
TypeScript

import { serve } from '@hono/node-server';
import { serveStatic } from '@hono/node-server/serve-static';
import { resolve } from 'node:path';
import { createApp } from './app.js';
const port = Number(process.env.PORT ?? 8787);
// Bind to loopback by default: the API is reached through Cloudflare Tunnel, never a public port.
const hostname = process.env.HOST ?? '127.0.0.1';
const app = createApp({
releasesDir: resolve(process.env.RELEASES_DIR ?? './releases'),
basePath: process.env.BASE_PATH ?? '',
version: process.env.npm_package_version,
// Landing page build (relative to the process cwd, the repo root under pm2).
web: process.env.WEB_DIR ? serveStatic({ root: process.env.WEB_DIR }) : undefined,
notFoundPage: process.env.WEB_DIR ? resolve(process.env.WEB_DIR, '404.html') : undefined,
});
serve({ fetch: app.fetch, port, hostname }, info => {
console.log(`[api] listening on http://${info.address}:${info.port}`);
});