Files
Webklar-Kundenbereich/runner/src/config.js
T
ClaudeandClaude Opus 5.5 a2d11ad6c4 Runner: Zeiten-Skript beim Veröffentlichen einsetzen
injectIntoHtml nimmt eine Marke je Tag (geprüft gegen data-wk-[a-z]+),
injectZeiten setzt den data-wk-zeiten-Tag ohne Datenschutzseite ein,
validateJob lässt nur den siteKey durch, ZEITEN_PUBLIC_BASE in der Konfiguration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 03:46:06 +00:00

27 lines
1.3 KiB
JavaScript

// Konfiguration aus Umgebungsvariablen. Pfade sind HOST-Pfade (R6): der Runner mountet sie identisch.
export function loadConfig(env = process.env) {
const analyticsPublicBase = env.ANALYTICS_PUBLIC_BASE || 'https://project.webklar.com/a/';
if (!/^https:\/\/[^\s"'<>]+\/$/.test(analyticsPublicBase)) throw new Error('ANALYTICS_PUBLIC_BASE muss mit https:// beginnen und mit / enden');
const zeitenPublicBase = env.ZEITEN_PUBLIC_BASE || 'https://project.webklar.com/embed/';
if (!/^https:\/\/[^\s"'<>]+\/$/.test(zeitenPublicBase)) throw new Error('ZEITEN_PUBLIC_BASE muss mit https:// beginnen und mit / enden');
return {
analyticsPublicBase,
zeitenPublicBase,
token: env.PREVIEW_RUNNER_TOKEN || '',
giteaUrl: env.GITEA_URL || '',
giteaToken: env.GITEA_TOKEN || '',
baseHost: env.PREVIEW_BASE_HOST || 'project.webklar.com',
previewsRoot: env.PREVIEWS_ROOT || '/var/www/previews',
workRoot: env.RUNNER_WORK_ROOT || '/srv/webklar-preview-runner/work',
cacheRoot: env.RUNNER_CACHE_ROOT || '/srv/webklar-preview-runner/cache',
sandboxSubnet: env.PREVIEW_SANDBOX_SUBNET || '172.30.0.0/24',
apiPort: 8080,
proxyPort: 8081,
minFreeBytes: 1.5 * 1024 ** 3,
buildTimeoutMs: 15 * 60e3,
devIdleMs: 20 * 60e3,
devMax: 3,
devReadyMs: 180e3,
};
}