feat(dojobay): add DojoBay app (manifest, image, catalog, ports)

This commit is contained in:
2026-09-11 02:11:42 +00:00
parent db52c06a72
commit 2d41b082d7
61 changed files with 13360 additions and 3 deletions
+25
View File
@@ -0,0 +1,25 @@
// Launcher for the backend, which lives in index.ts.
//
// This file stays plain JavaScript on purpose, for three reasons:
//
// 1. It can be parsed by ANY Node version, so an operator on an older runtime
// gets the message below instead of a syntax error from a .ts file they
// cannot execute. The check must run before the import, hence the dynamic
// import rather than a static one.
// 2. systemd, `npm start` and the README all name index.mjs, so nothing about
// deployment changes.
// 3. self-update.mjs sanity-checks that an update archive contains
// server/index.mjs before accepting it. Renaming this file outright would
// make every legitimate update look malformed.
const major = Number(process.versions.node.split(".")[0]);
if (Number.isNaN(major) || major < 24) {
console.error(
`The Dojo Bay backend needs Node 24 or newer (found ${process.versions.node}).\n` +
"It runs TypeScript directly, which relies on type stripping added in Node 24,\n" +
"and its BIP47 libraries require it too. Upgrade Node, then restart the service.");
process.exit(1);
}
const mod = await import("./index.ts");
export const server = mod.server;
export const routes = mod.routes;