Skip to main content

Configurazione Microservizi e Segreti

Questa pagina documenta tutte le variabili d'ambiente e i segreti utilizzati dai microservizi della piattaforma Visla.

Variabili d'Ambiente

Variabili Comuni

Queste variabili sono condivise dalla maggior parte dei servizi per la configurazione dell'infrastruttura di base.

VariabileDescrizioneServizi Utilizzatori
ENVIRONMENTAmbiente di esecuzione (dev, prod, test). Controlla modalità debug e livelli log.Tutti
DATABASE_HOSTHostname del database PostgreSQL.Auth, Devices, Sharing, Positions, Events, Commands, Geofences, Notifications, Billing
DATABASE_PORTPorta del database PostgreSQL (default: 5432).Auth, Devices, Sharing, Positions, Events, Commands, Geofences, Notifications, Billing
DATABASE_USERUsername del database (spesso coincide con il nome del servizio).Auth, Devices, Sharing, Positions, Events, Commands, Geofences, Notifications, Billing
DATABASE_NAMENome del database (spesso coincide con il nome del servizio).Auth, Devices, Sharing, Positions, Events, Commands, Geofences, Notifications, Billing
REDIS_URL / REDIS_URIURL di connessione a Redis (es. redis://redis:6379).Auth, Devices, Events, Positions, Websocket, Billing, Decoder, Notifications, Commands
AUTH_SERVICE_URLURL interno del servizio Auth per validazione token e chiamate S2S.Sharing, Devices, Positions, Events, Commands, Websocket, Geofences, Notifications, Billing
DEVICES_SERVICE_URLURL interno del servizio Devices per lookup dispositivi.Websocket, Positions, Events, Geofences, Notifications, Simulator
LOKI_URLEndpoint per l'invio dei log a Grafana Loki.Devices, Client-Logs, Decoder, Websocket, Device-Simulator
LOKI_USERNAMEUsername basic auth per Loki (Tenant ID).Devices, Client-Logs, Decoder, Websocket, Device-Simulator
LOKI_PASSWORDPassword basic auth per Loki (API Key).Devices, Client-Logs, Decoder, Websocket, Device-Simulator

Variabili Specifiche per Servizio

ServizioVariabileDescrizione
AuthAPI_BASE_URLURL pubblico delle API per le callback OAuth.
FRONTEND_URL / WEB_URLURL della web app per i redirect post-login.
OPENID_GOOGLE_*Client ID e settings per Login Google.
OPENID_FACEBOOK_*Client ID e settings per Login Facebook.
OPENID_APPLE_*Client ID e settings per Login Apple.
EMAIL_SMTP / PORTHost e porta server SMTP.
EMAIL_USER / FROM_*Credenziali e mittente email.
ACCESS_TOKEN_EXPIRATION_MINUTESDurata dei token JWT (default: 7 giorni).
SharingSHARE_TOKEN_EXPIRATION_DAYSDurata di default dei link di condivisione.
NOTIFICATION_SERVICE_URLURL servizio notifiche per invio email condivisione.
PositionsINPUT_STREAMStream Redis da cui leggere posizioni raw (es. positions:raw).
OUTPUT_STREAMStream Redis dove scrivere posizioni validate (es. positions:validated).
REJECTED_STREAMStream per posizioni scartate.
FILTER_MAX_SPEED_KNOTSVelocità massima per filtro scarto (default: 162 nodi).
FILTER_MAX_HDOPHDOP massimo accettabile.
MOTION_SPEED_THRESHOLD_KNOTSSoglia per considerare il dispositivo in movimento.
EventsINPUT_STREAMStream Redis da monitorare per generazione eventi.
OVERSPEED_THRESHOLD_KNOTSSoglia di velocità per evento eccesso velocità.
NotificationsFIREBASE_PROJECT_IDID progetto Firebase per notifiche push.
BLAND_API_URL / KEYConfigurazioni per chiamate vocali Bland AI.
EMAIL_EVENTS_FROM_*Mittente specifico per email di allarme/evento.
BillingSTRIPE_API_KEYChiave API segreta Stripe.
STRIPE_WEBHOOK_SECRETSegreto per validazione webhook Stripe.
APPLE_SHARED_SECRETSegreto condiviso per validazione ricevute Apple.
BUNDLE_IDBundle ID app iOS.
GOOGLE_PACKAGE_NAMEPackage name app Android.
DecoderDECODER_PORTPorta principale del servizio (Health/Actuator).
*_PORT (es. S21L_PORT)Porte TCP/UDP specifiche per ascolto protocolli GPS.
DECODER_TIMEOUTTimeout in secondi per chiusura connessioni inattive.
Device SimDEVICES_API_URLURL API Devices per sincronizzazione device di test.
DECODER_HOSTHostname del decoder verso cui inviare traffico simulato.
Websocket*_STREAMNomi stream Redis da cui ricevere aggiornamenti real-time.
Client-LogsLOKI_TOKENToken Bearer alternativo per autenticazione Loki (opzionale).

Gestione Segreti (Docker Secrets)

I dati sensibili non vengono passati come variabili d'ambiente ma montati come file tramite Docker Secrets in /run/secrets/. Il file docker-compose.yml mappa questi segreti dai file locali in ./secrets/.

Nome Secret (Docker)File Sorgente (./secrets/)Utilizzato daDescrizione
secret_keysecret_keyAuth, WebsocketChiave privata maestra per firma token JWT.
auth_db_passwordauth_db_passwordPostgres, AuthPassword database Auth.
devices_db_passworddevices_db_passwordPostgres, DevicesPassword database Devices.
sharing_db_passwordsharing_db_passwordPostgres, SharingPassword database Sharing.
positions_db_passwordpositions_db_passwordPostgres, PositionsPassword database Positions.
events_db_passwordevents_db_passwordPostgres, EventsPassword database Events.
commands_db_passwordcommands_db_passwordPostgres, CommandsPassword database Commands.
geofences_db_passwordgeofences_db_passwordPostgres, GeofencesPassword database Geofences.
notifications_db_passwordnotification_db_passwordPostgres, NotificationsPassword database Notifications.
billing_db_passwordbilling_db_passwordPostgres, BillingPassword database Billing.
google_client_secretgoogle_client_secretAuthSecret OAuth2 Google Login.
facebook_client_secretfacebook_client_secretAuthSecret OAuth2 Facebook Login.
apple_private_keyapple_private_keyAuthChiave privata Sign in with Apple.
email_passwordemail_passwordAuth, NotificationsPassword SMTP per invio email.
default_admin_passworddefault_admin_passwordAuthPassword per utente admin di default creato al boot.
firebase_service_accountfirebase_service_account.jsonNotificationsCredenziali JSON Service Account Firebase.
bland_api_keybland_api_keyNotificationsAPI Key per servizio chiamate vocali Bland AI.
stripe_api_keystripe_api_keyBillingChiave Segreta Stripe.
stripe_webhook_secretstripe_webhook_secretBillingSecret verifica webhook Stripe.
apple_shared_secretapple_shared_secretBillingShared Secret per verifica abbonamenti Apple.
google_service_account_billinggoogle_service_account_billing.jsonBillingCredenziali JSON Google Play Developer API.
1nce_credentials1nce_credentialsCommandsCredenziali API 1NCE per gestione SIM.
openvpn_credentialsopenvpn_credentials.txtOpenVPN-ClientUsername/Password per connessione VPN 1NCE.
openvpn_configopenvpn_config.confOpenVPN-ClientFile configurazione CLIENT OpenVPN.