- Implemented Telegram cancellation parsing logic in `telegramCancellationParser.js`. - Created unit tests for cancellation parsing in `telegramCancellationParser.test.js`. - Developed integration tests for Telegram import service in `telegramImport.integration.test.js`. - Added API tests for Telegram import endpoints in `telegramImportApi.test.js`. - Introduced service tests for Telegram import logic in `telegramImportService.test.js`. - Documented the Telegram cancellation import process in `telegram-cancellation-import.md`. - Built a React component for managing Telegram imports in `TelegramImportPanel.jsx`.
67 lines
2.4 KiB
Plaintext
67 lines
2.4 KiB
Plaintext
# Database
|
|
DB_PASSWORD=your_secure_password_here
|
|
|
|
# API Configuration
|
|
API_KEY_SALT=generate_random_salt_with_openssl
|
|
CORS_ORIGIN=http://localhost:3001
|
|
|
|
# Backend runtime (used when starting backend directly, outside Docker Compose)
|
|
PORT=3000
|
|
DATABASE_URL=postgresql://transit_admin:your_secure_password_here@localhost:5432/polotsk_transit
|
|
REDIS_URL=redis://localhost:6379
|
|
JWT_SECRET=replace_with_a_long_random_string
|
|
|
|
# Passkeys (WebAuthn). HTTP works only on localhost; production requires HTTPS.
|
|
WEBAUTHN_RP_NAME=RideBus DE
|
|
WEBAUTHN_RP_ID=localhost
|
|
WEBAUTHN_ORIGIN=http://localhost,http://localhost:3001
|
|
|
|
# Firebase Cloud Messaging (server-side alert notifications)
|
|
# Keep disabled to run without Firebase credentials.
|
|
FCM_ENABLED=false
|
|
FCM_TOPIC=route_alerts
|
|
FCM_ANDROID_CHANNEL_ID=route_alerts
|
|
FIREBASE_PROJECT_ID=
|
|
# Directory on the Docker host (VM/LXC inside Proxmox), mounted read-only.
|
|
FIREBASE_SECRETS_DIR=/opt/polotsk-transit/secrets
|
|
# Path inside the backend container. For a direct Node.js launch, replace it
|
|
# with the absolute host path to the JSON file.
|
|
GOOGLE_APPLICATION_CREDENTIALS=/run/secrets/firebase-service-account.json
|
|
|
|
# Telegram cancellation import through a separate user account (MTProto).
|
|
# Get API credentials at my.telegram.org. Never put a session in the checkout.
|
|
TELEGRAM_IMPORT_ENABLED=false
|
|
TELEGRAM_AUTO_PUBLISH=true
|
|
TELEGRAM_API_ID=
|
|
TELEGRAM_API_HASH=
|
|
TELEGRAM_CHANNEL=avp2Polotsk
|
|
TELEGRAM_CITY_SLUG=polotsk
|
|
TELEGRAM_POLL_INTERVAL_MS=60000
|
|
# Host directory, mounted read-only into the backend container.
|
|
TELEGRAM_SECRETS_DIR=/opt/polotsk-transit/telegram-secrets
|
|
# For direct Node.js launches, replace this with the absolute host path.
|
|
TELEGRAM_SESSION_FILE=/run/telegram-secrets/account.session
|
|
|
|
# Bootstrap admin
|
|
BOOTSTRAP_ADMIN=true
|
|
BOOTSTRAP_ADMIN_RESET_PASSWORD=false
|
|
ADMIN_USERNAME=admin
|
|
ADMIN_PASSWORD=change_this_admin_password
|
|
ADMIN_FULL_NAME=Main administrator
|
|
ADMIN_EMAIL=admin@polotsk-transit.local
|
|
|
|
# Frontend
|
|
API_URL=/api/v1
|
|
|
|
# Required by the passenger telemetry endpoint to verify Firebase ID tokens.
|
|
# Use the same Firebase project as the mobile app; keep the service account JSON outside the repo.
|
|
FIREBASE_PROJECT_ID=your-firebase-project-id
|
|
GOOGLE_APPLICATION_CREDENTIALS=/absolute/private/path/firebase-service-account.json
|
|
|
|
# Production settings (uncomment for production)
|
|
# NODE_ENV=production
|
|
# CORS_ORIGIN=https://admin.yourdomain.com
|
|
# API_URL=/api/v1
|
|
# WEBAUTHN_RP_ID=admin.yourdomain.com
|
|
# WEBAUTHN_ORIGIN=https://admin.yourdomain.com
|