# Application NODE_ENV=development PORT=3001 API_PREFIX=api # Database # NOTE: App uses tos_app (separate from Keycloak's tos_db) DATABASE_URL="postgresql://tos_user:tos_secret_password@localhost:5432/tos_app?schema=public" # JWT / Keycloak # IMPORTANT: Change JWT_SECRET in production! Use a cryptographically secure random string. JWT_SECRET=your-super-secret-jwt-key-change-in-production KEYCLOAK_URL=http://localhost:8080 KEYCLOAK_REALM=tOS # NOTE: Client ID must match the Keycloak realm configuration in docker/keycloak/realm-export.json KEYCLOAK_CLIENT_ID=tos-backend KEYCLOAK_CLIENT_SECRET=your-keycloak-backend-client-secret # CORS CORS_ORIGINS=http://localhost:3000,http://localhost:5173 # Swagger SWAGGER_ENABLED=true # ============================================================================= # Phase 3: Integrations & Sync Jobs # ============================================================================= # Encryption # IMPORTANT: Generate a secure 32+ character key for production! # You can generate one with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" ENCRYPTION_KEY=your-32-byte-encryption-key-change-in-production # Redis (required for BullMQ in production) REDIS_HOST=localhost REDIS_PORT=6379 # Sync Jobs # Set to 'true' to enable automatic background sync jobs ENABLE_SYNC_JOBS=false # Sync Intervals (in minutes) SYNC_INTERVAL_PLENTYONE=15 SYNC_INTERVAL_ZULIP=5 SYNC_INTERVAL_TODOIST=10 SYNC_INTERVAL_FREESCOUT=10 SYNC_INTERVAL_NEXTCLOUD=30 SYNC_INTERVAL_ECODMS=60 SYNC_INTERVAL_GEMBADOCS=30 # ============================================================================= # Phase 3: API Connector Credentials # ============================================================================= # PlentyONE (OAuth2 Client Credentials) PLENTYONE_BASE_URL= PLENTYONE_CLIENT_ID= PLENTYONE_CLIENT_SECRET= # ZULIP (Basic Auth with API Key) ZULIP_BASE_URL= ZULIP_EMAIL= ZULIP_API_KEY= # Todoist (Bearer Token) TODOIST_API_TOKEN= # FreeScout (API Key) FREESCOUT_API_URL= FREESCOUT_API_KEY= # Nextcloud (Basic Auth / App Password) NEXTCLOUD_URL= NEXTCLOUD_USERNAME= NEXTCLOUD_PASSWORD= # ecoDMS (Session-based Auth) ECODMS_API_URL= ECODMS_USERNAME= ECODMS_PASSWORD=