diff --git a/server.ts b/server.ts new file mode 100644 index 0000000..3402fe9 --- /dev/null +++ b/server.ts @@ -0,0 +1,61 @@ +/** + * agentify.help — standalone Express server + * Deployed on Fly.io (fra region), database on Fly.io Postgres. + * DNS: Bunny DNS → agentify.help + * Git: git.wellspr.ing/wellspring/agentify-help + */ +import express from "express"; +import { pool } from "./db.js"; +import { registerAgentifyHelpRoutes } from "./routes/agentify-help.js"; +import { registerAgentifyRoutes } from "./routes/agentify.js"; +import { registerStage5Routes } from "./routes/stage5.js"; +import { registerSkillsAgentifyHelpRoutes } from "./routes/skills.js"; +import { registerCorpusRoutes } from "./routes/corpus.js"; +import { registerCorpusGatherRoutes } from "./routes/corpus-gather.js"; +import { registerPersonaForgeRoutes, initPersonaForge } from "./routes/personaforge.js"; +import { registerStewardRoutes, initStewardDash } from "./routes/steward.js"; + +const app = express(); +const PORT = parseInt(process.env.PORT || "3000"); + +app.set("trust proxy", true); +app.use(express.json({ limit: "10mb" })); +app.use(express.urlencoded({ extended: true, limit: "10mb" })); + +app.get("/health", (_req, res) => { + res.json({ ok: true, app: "agentify-help", ts: new Date().toISOString() }); +}); + +registerAgentifyHelpRoutes(app); +registerAgentifyRoutes(app); +registerStage5Routes(app); +registerSkillsAgentifyHelpRoutes(app); +registerCorpusRoutes(app); +registerCorpusGatherRoutes(app); + +async function start() { + try { + await pool.query("SELECT 1"); + console.log("[db] pool connected"); + } catch (e: any) { + console.error("[db] connection failed:", e.message); + process.exit(1); + } + + await initPersonaForge().catch((e: any) => console.error("[personaforge] init:", e.message)); + await initStewardDash().catch((e: any) => console.error("[steward] init:", e.message)); + + await registerPersonaForgeRoutes(app).catch((e: any) => + console.error("[personaforge] routes:", e.message) + ); + registerStewardRoutes(app); + + app.listen(PORT, "0.0.0.0", () => { + console.log(`[agentify-help] listening on :${PORT}`); + }); +} + +start().catch((err) => { + console.error("Fatal startup error:", err); + process.exit(1); +});