FlotillasGPS - Sistema completo de monitoreo de flotillas GPS
Sistema completo para monitoreo y gestion de flotas de vehiculos con: - Backend FastAPI con PostgreSQL/TimescaleDB - Frontend React con TypeScript y TailwindCSS - App movil React Native con Expo - Soporte para dispositivos GPS, Meshtastic y celulares - Video streaming en vivo con MediaMTX - Geocercas, alertas, viajes y reportes - Autenticacion JWT y WebSockets en tiempo real Documentacion completa y guias de usuario incluidas.
This commit is contained in:
197
backend/.env.example
Normal file
197
backend/.env.example
Normal file
@@ -0,0 +1,197 @@
|
||||
# =============================================================================
|
||||
# Adan Fleet Monitor - Environment Variables
|
||||
# =============================================================================
|
||||
# Copy this file to .env and fill in your values
|
||||
# NEVER commit the .env file to version control
|
||||
# =============================================================================
|
||||
|
||||
# =============================================================================
|
||||
# Application Settings
|
||||
# =============================================================================
|
||||
APP_NAME="Adan Fleet Monitor"
|
||||
APP_VERSION="1.0.0"
|
||||
ENVIRONMENT=development # development, staging, production
|
||||
DEBUG=true
|
||||
HOST=0.0.0.0
|
||||
PORT=8000
|
||||
WORKERS=4 # Number of workers for production
|
||||
|
||||
# =============================================================================
|
||||
# API Settings
|
||||
# =============================================================================
|
||||
API_V1_PREFIX=/api/v1
|
||||
|
||||
# =============================================================================
|
||||
# Database (PostgreSQL with TimescaleDB)
|
||||
# =============================================================================
|
||||
# Format: postgresql+asyncpg://user:password@host:port/database
|
||||
DATABASE_URL=postgresql+asyncpg://adan:your_password_here@localhost:5432/adan_fleet
|
||||
|
||||
# Database pool settings
|
||||
DB_POOL_SIZE=20
|
||||
DB_MAX_OVERFLOW=10
|
||||
DB_POOL_TIMEOUT=30
|
||||
|
||||
# =============================================================================
|
||||
# Redis (Caching & Real-time)
|
||||
# =============================================================================
|
||||
# Format: redis://[:password@]host:port/db
|
||||
REDIS_URL=redis://localhost:6379/0
|
||||
|
||||
# =============================================================================
|
||||
# JWT Authentication
|
||||
# =============================================================================
|
||||
# Generate with: openssl rand -hex 32
|
||||
SECRET_KEY=your_super_secret_key_change_this_in_production_minimum_32_characters
|
||||
JWT_ALGORITHM=HS256
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
||||
REFRESH_TOKEN_EXPIRE_DAYS=7
|
||||
|
||||
# =============================================================================
|
||||
# Password Hashing
|
||||
# =============================================================================
|
||||
PASSWORD_MIN_LENGTH=8
|
||||
|
||||
# =============================================================================
|
||||
# CORS Settings
|
||||
# =============================================================================
|
||||
# Comma-separated list of allowed origins
|
||||
CORS_ORIGINS=http://localhost:3000,http://localhost:5173,http://127.0.0.1:3000
|
||||
CORS_ALLOW_CREDENTIALS=true
|
||||
CORS_ALLOW_METHODS=GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
CORS_ALLOW_HEADERS=*
|
||||
|
||||
# =============================================================================
|
||||
# Traccar GPS Server Integration
|
||||
# =============================================================================
|
||||
TRACCAR_URL=http://localhost:8082
|
||||
TRACCAR_API_URL=http://localhost:8082/api
|
||||
TRACCAR_USERNAME=admin
|
||||
TRACCAR_PASSWORD=admin
|
||||
TRACCAR_ENABLED=true
|
||||
|
||||
# =============================================================================
|
||||
# MediaMTX Video Streaming Server
|
||||
# =============================================================================
|
||||
MEDIAMTX_URL=http://localhost:8554
|
||||
MEDIAMTX_API_URL=http://localhost:9997
|
||||
MEDIAMTX_ENABLED=false
|
||||
|
||||
# =============================================================================
|
||||
# MQTT Broker (IoT Communication)
|
||||
# =============================================================================
|
||||
MQTT_BROKER=localhost
|
||||
MQTT_PORT=1883
|
||||
MQTT_USERNAME=
|
||||
MQTT_PASSWORD=
|
||||
MQTT_ENABLED=false
|
||||
|
||||
# Meshtastic MQTT Topic
|
||||
MESHTASTIC_TOPIC=meshtastic/#
|
||||
|
||||
# =============================================================================
|
||||
# Email (SMTP)
|
||||
# =============================================================================
|
||||
SMTP_HOST=smtp.gmail.com
|
||||
SMTP_PORT=587
|
||||
SMTP_USERNAME=
|
||||
SMTP_PASSWORD=
|
||||
SMTP_FROM_EMAIL=noreply@example.com
|
||||
SMTP_FROM_NAME="Adan Fleet Monitor"
|
||||
SMTP_TLS=true
|
||||
SMTP_ENABLED=false
|
||||
|
||||
# =============================================================================
|
||||
# Push Notifications (Firebase)
|
||||
# =============================================================================
|
||||
FIREBASE_CREDENTIALS_PATH=
|
||||
FIREBASE_ENABLED=false
|
||||
|
||||
# =============================================================================
|
||||
# Geocoding & Maps
|
||||
# =============================================================================
|
||||
# OpenStreetMap Nominatim (free, rate-limited)
|
||||
NOMINATIM_USER_AGENT=adan-fleet-monitor
|
||||
|
||||
# Google Maps API (optional, for premium geocoding)
|
||||
GOOGLE_MAPS_API_KEY=
|
||||
|
||||
# =============================================================================
|
||||
# File Storage
|
||||
# =============================================================================
|
||||
UPLOAD_DIR=./uploads
|
||||
MAX_UPLOAD_SIZE_MB=50
|
||||
|
||||
# AWS S3 (optional, for cloud storage)
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_S3_BUCKET=
|
||||
AWS_S3_REGION=us-east-1
|
||||
|
||||
# =============================================================================
|
||||
# Logging
|
||||
# =============================================================================
|
||||
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR, CRITICAL
|
||||
LOG_FORMAT=json # json, text
|
||||
LOG_FILE=./logs/adan.log
|
||||
|
||||
# =============================================================================
|
||||
# Sentry (Error Tracking)
|
||||
# =============================================================================
|
||||
SENTRY_DSN=
|
||||
SENTRY_ENVIRONMENT=development
|
||||
SENTRY_ENABLED=false
|
||||
|
||||
# =============================================================================
|
||||
# Rate Limiting
|
||||
# =============================================================================
|
||||
RATE_LIMIT_REQUESTS=100
|
||||
RATE_LIMIT_PERIOD_SECONDS=60
|
||||
|
||||
# =============================================================================
|
||||
# Background Tasks (Celery)
|
||||
# =============================================================================
|
||||
CELERY_BROKER_URL=redis://localhost:6379/1
|
||||
CELERY_RESULT_BACKEND=redis://localhost:6379/2
|
||||
CELERY_ENABLED=false
|
||||
|
||||
# =============================================================================
|
||||
# Alert Settings
|
||||
# =============================================================================
|
||||
# Default speed limit (km/h) for new vehicles
|
||||
DEFAULT_SPEED_LIMIT=120
|
||||
|
||||
# Time without signal before generating alert (seconds)
|
||||
NO_SIGNAL_THRESHOLD_SECONDS=300
|
||||
|
||||
# Battery level threshold for low battery alert (%)
|
||||
LOW_BATTERY_THRESHOLD=20
|
||||
|
||||
# Minimum stop duration to register as a stop (seconds)
|
||||
MIN_STOP_DURATION_SECONDS=120
|
||||
|
||||
# =============================================================================
|
||||
# Trip Detection
|
||||
# =============================================================================
|
||||
# Minimum movement to start a trip (meters)
|
||||
TRIP_START_DISTANCE_METERS=100
|
||||
|
||||
# Minimum idle time to end a trip (seconds)
|
||||
TRIP_END_IDLE_SECONDS=300
|
||||
|
||||
# =============================================================================
|
||||
# WebSocket Settings
|
||||
# =============================================================================
|
||||
WS_HEARTBEAT_INTERVAL=30
|
||||
WS_MAX_CONNECTIONS=1000
|
||||
|
||||
# =============================================================================
|
||||
# Report Settings
|
||||
# =============================================================================
|
||||
REPORTS_OUTPUT_DIR=./reports
|
||||
REPORTS_RETENTION_DAYS=90
|
||||
|
||||
# =============================================================================
|
||||
# Timezone
|
||||
# =============================================================================
|
||||
TIMEZONE=America/Mexico_City
|
||||
Reference in New Issue
Block a user