Implementiere Kundenportal mit zentraler Appwrite-Anbindung.
Express-Server für Appwrite-Auth, Session, Projekt-Dashboard und Gitea-Webhook; statisches Frontend und Schema-Dokumentation für woms-database. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
45
server/config.js
Normal file
45
server/config.js
Normal file
@@ -0,0 +1,45 @@
|
||||
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.')
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user