manifest
Version:
Self-hosted Manifest LLM router with embedded server, SQLite database, and dashboard
48 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.appConfig = void 0;
const config_1 = require("@nestjs/config");
const path_1 = require("path");
const os_1 = require("os");
function sanitizeDbPath(raw) {
if (!raw)
return '';
return (0, path_1.resolve)(raw);
}
function resolveLocalDbPath() {
const explicit = process.env['MANIFEST_DB_PATH'];
if (explicit)
return sanitizeDbPath(explicit);
if (process.env['MANIFEST_MODE'] !== 'local')
return '';
return (0, path_1.join)((0, os_1.homedir)(), '.openclaw', 'manifest', 'manifest.db');
}
function resolveDatabaseUrl() {
const url = process.env['DATABASE_URL'];
if (url)
return url;
if (process.env['MANIFEST_MODE'] === 'local')
return '';
if (process.env['NODE_ENV'] === 'test')
return 'postgresql://myuser:mypassword@localhost:5432/mydatabase';
throw new Error('DATABASE_URL is required in cloud mode. Set it in your .env file.');
}
exports.appConfig = (0, config_1.registerAs)('app', () => ({
port: Number(process.env['PORT'] ?? 3001),
nodeEnv: process.env['NODE_ENV'] ?? 'development',
databaseUrl: resolveDatabaseUrl(),
manifestMode: process.env['MANIFEST_MODE'] ?? 'cloud',
dbPath: resolveLocalDbPath(),
corsOrigin: process.env['CORS_ORIGIN'] ?? 'http://localhost:3000',
betterAuthUrl: process.env['BETTER_AUTH_URL'] ?? '',
throttleTtl: Number(process.env['THROTTLE_TTL'] ?? 60000),
throttleLimit: Number(process.env['THROTTLE_LIMIT'] ?? 100),
apiKey: process.env['API_KEY'] ?? '',
bindAddress: process.env['BIND_ADDRESS'] ?? '127.0.0.1',
mailgunApiKey: process.env['MAILGUN_API_KEY'] ?? '',
mailgunDomain: process.env['MAILGUN_DOMAIN'] ?? '',
notificationFromEmail: process.env['NOTIFICATION_FROM_EMAIL'] ?? 'noreply@manifest.build',
pluginOtlpEndpoint: process.env['PLUGIN_OTLP_ENDPOINT'] ?? '',
dbPoolMax: Number(process.env['DB_POOL_MAX'] ?? 20),
}));
//# sourceMappingURL=app.config.js.map