import 'dotenv/config' export const config = { port: Number(process.env.PORT) || 3000, sessionSecret: process.env.SESSION_SECRET || '', cookieName: process.env.SESSION_COOKIE_NAME || 'webklar_portal_session', allowedCustomerStatuses: (process.env.ALLOWED_CUSTOMER_STATUSES || 'active') .split(',') .map((s) => s.trim()) .filter(Boolean), appwrite: { endpoint: process.env.APPWRITE_ENDPOINT || 'https://ticket.webklar.com/v1', projectId: process.env.APPWRITE_PROJECT_ID || '6a1058610003c5a13a05', databaseId: process.env.APPWRITE_DATABASE_ID || 'woms-database', apiKey: process.env.APPWRITE_API_KEY || '', }, collections: { customers: process.env.APPWRITE_COLLECTION_CUSTOMERS || 'customers', customerPortalAccess: process.env.APPWRITE_COLLECTION_CUSTOMER_PORTAL_ACCESS || 'customerPortalAccess', websiteProjects: process.env.APPWRITE_COLLECTION_WEBSITE_PROJECTS || 'websiteProjects', portalFeatures: process.env.APPWRITE_COLLECTION_PORTAL_FEATURES || 'portalFeatures', }, gitea: { webhookToken: process.env.GITEA_WEBHOOK_TOKEN || '', baseUrl: process.env.GITEA_BASE_URL || 'https://git.webklar.com', apiToken: process.env.GITEA_API_TOKEN || '', }, preview: { baseHost: process.env.PREVIEW_BASE_HOST || 'project.webklar.com', deployRoot: process.env.PREVIEW_DEPLOY_ROOT || '', }, } export function assertServerConfig() { if (!config.sessionSecret || config.sessionSecret.length < 32) { console.warn('[config] SESSION_SECRET fehlt oder ist zu kurz (min. 32 Zeichen).') } if (!config.appwrite.apiKey) { console.warn('[config] APPWRITE_API_KEY fehlt – DB-Zugriff und Webhook schlagen fehl.') } }