⚙️ Configuration
Environment Variables
Alle Konfiguration erfolgt über .env:
# === APP ===
NODE_ENV=development
PORT=3000
# === DATABASE ===
DATABASE_URL="postgresql://user:pass@localhost:5432/contract_db"
# === MS GRAPH ===
MS_CLIENT_ID=
MS_CLIENT_SECRET=
MS_TENANT_ID=
# === SEVDESK ===
SEVDESK_API_TOKEN=
# === EVCC ===
EVCC_HOST=http://192.168.x.x:7070
# === ISTA ===
ISTA_USERNAME=
ISTA_PASSWORD=
# === PLANE.SO ===
PLANE_API_KEY=
# === WHITE LABEL ===
WHITELABEL_TENANT_ID=default
Integration Setup
sevDesk
- Login auf my.sevdesk.de
- Einstellungen → API → Token generieren
- Token in
.enveintragen:
evcc
- evcc Installation: docs.evcc.io
- Host-IP in
.enveintragen:
Netzwerk
evcc muss im selben Netzwerk erreichbar sein.
MS Graph (OAuth)
- Azure Portal → App registrieren
- API Permissions:
Calendars.ReadWriteFiles.ReadWrite.All- Client Secret erstellen
- In
.enveintragen:
Cache Configuration
Cache-TTL wird in src/core/cache/index.ts konfiguriert:
export const defaultCacheConfig: Record<string, CacheConfig> = {
'properties': { ttl: 3600, prefix: 'prop' }, // 1h
'contracts': { ttl: 1800, prefix: 'cont' }, // 30min
'evcc/state': { ttl: 10, prefix: 'evcc' }, // 10s
'sevdesk/invoices': { ttl: 600, prefix: 'sd-inv' }, // 10min
};
Multi-Tenant
Tenant-ID wird per Header übergeben: