Variabili d’Ambiente
Tutte le configurazioni de Il Carrubo sono gestite tramite variabili d’ambiente nel file .env nella root del progetto.
Non committare mai il file .env nel repository. Contiene credenziali sensibili come chiavi API, password del database e token di accesso. Il file è già incluso nel .gitignore.
Database & Autenticazione
Variabili fondamentali per la connessione a Supabase e l’autenticazione delle API.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
SUPABASE_URL |
Sì | URL del progetto Supabase (es. https://xxxxx.supabase.co) |
SUPABASE_KEY |
Sì | Chiave pubblica anon per le operazioni lato client |
SUPABASE_SERVICE_ROLE_KEY |
Sì | Chiave service_role per operazioni privilegiate lato server |
SUPABASE_DB_URL |
Sì | Stringa di connessione PostgreSQL diretta |
API_KEY |
Sì | Chiave API personalizzata per autenticare le richieste REST |
::: important
Tutte le variabili di questa sezione sono obbligatorie. Il server non si avvierà senza di esse.
:::
Alloggiati Web
Credenziali per l’invio automatico delle schedine alloggiati alla Questura tramite protocollo SOAP.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
ALLOGGIATI_USER |
No | Username fornito dalla Questura |
ALLOGGIATI_PASS |
No | Password fornita dalla Questura |
ALLOGGIATI_WSKEY |
No | Chiave del servizio web (WS Key) |
Queste variabili sono necessarie solo se si utilizza la funzionalità di invio automatico alla Questura. Senza di esse, la sezione Alloggiati Web sarà disabilitata nell’interfaccia.
Generazione PDF (Template Engine)
Configurazione per la generazione automatica di documenti PDF tramite il motore headless Template Engine.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
TEMPLATE_ENGINE_BASE |
Sì | URL base del servizio Template Engine (https://te.cristianobleve.com) |
TEMPLATE_ENGINE_KEY |
Sì | Chiave API di Template Engine con prefisso te_live_ |
TEMPLATE_ENGINE_WELCOME_ID |
No | ID del template per la lettera di benvenuto (84777b23c0de31b0) |
TEMPLATE_ENGINE_CSV_ID |
No | ID del template per il report finanziario CSV (d2577b23c4d40496) |
TEMPLATE_ENGINE_RECEIPT_ID |
No | ID del template per la ricevuta prenotazione (5d777b23f8e187d0) |
Storage Documenti
Configurazione per l’archiviazione dei documenti scansionati su GitHub.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
GITHUB_TOKEN |
No | Personal Access Token di GitHub con permessi repo |
GITHUB_REPO |
No | Repository di destinazione nel formato owner/repo |
Ngrok
Configurazione per il tunneling sicuro con ngrok, utile per esporre il server locale su internet.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
USE_NGROK |
No | Abilita ngrok all’avvio (true / false) |
NGROK_AUTHTOKEN |
No | Token di autenticazione ngrok |
NGROK_DOMAIN |
No | Dominio personalizzato ngrok (es. mio-dominio.ngrok-free.app) |
Email (SMTP)
Configurazione del server SMTP per l’invio di email agli ospiti (conferme, welcome letter, promemoria).
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
SMTP_HOST |
No | Hostname del server SMTP (es. smtp.gmail.com) |
SMTP_PORT |
No | Porta del server SMTP (es. 587 per TLS, 465 per SSL) |
SMTP_USER |
No | Username / email per l’autenticazione SMTP |
SMTP_PASS |
No | Password o App Password per l’autenticazione SMTP |
SMTP_SECURE |
No | Usa connessione sicura (true per SSL, false per STARTTLS) |
SMTP_FROM_EMAIL |
No | Indirizzo email del mittente |
SMTP_FROM_NAME |
No | Nome visualizzato del mittente (es. Il Carrubo B&B) |
Se usi Gmail, abilita le “Password per le app” nelle impostazioni di sicurezza del tuo account Google e usa quella password come SMTP_PASS.
Observability
Configurazione per il monitoraggio e l’osservabilità tramite Axiom.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
AXIOM_TOKEN |
No | Token API di Axiom per l’invio dei log |
AXIOM_DATASET |
No | Nome del dataset Axiom dove salvare gli eventi |
OCR
Configurazione per il riconoscimento ottico dei caratteri (OCR) tramite OCR.Space.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
OCR_API_KEY |
No | Chiave API di OCR.Space per la scansione documenti |
Vercel
Variabili per il deployment e l’integrazione con Vercel.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
VERCEL_PROJECT_ID |
No | ID del progetto Vercel |
VERCEL_TOKEN |
No | Token di accesso Vercel per deploy automatici |
VERCEL |
No | Flag impostata automaticamente da Vercel (1 in ambiente Vercel) |
Altre variabili
| Variabile | Obbligatoria | Default | Descrizione |
|---|---|---|---|
QUERY_PASSWORD |
No | — | Password per l’accesso alla pagina di query SQL |
PORT |
No | 3000 |
Porta su cui avviare il server Express |
NODE_ENV |
No | development |
Ambiente di esecuzione (development, production) |
File .env di esempio
# ===================================
# Il Carrubo — Configurazione
# ===================================
# --- Database & Auth (OBBLIGATORIE) ---
SUPABASE_URL=https://xxxxx.supabase.co
SUPABASE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6...
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6...
SUPABASE_DB_URL=postgresql://postgres:password@db.xxxxx.supabase.co:5432/postgres
API_KEY=la-tua-chiave-api-sicura
# --- Alloggiati Web ---
# ALLOGGIATI_USER=
# ALLOGGIATI_PASS=
# ALLOGGIATI_WSKEY=
# --- PDF Generation (Template Engine) ---
# TEMPLATE_ENGINE_BASE=https://te.cristianobleve.com
# TEMPLATE_ENGINE_KEY=te_live_...
# TEMPLATE_ENGINE_WELCOME_ID=84777b23c0de31b0
# TEMPLATE_ENGINE_CSV_ID=d2577b23c4d40496
# TEMPLATE_ENGINE_RECEIPT_ID=5d777b23f8e187d0
# --- Document Storage ---
# GITHUB_TOKEN=ghp_xxxxx
# GITHUB_REPO=owner/repo
# --- Ngrok ---
# USE_NGROK=false
# NGROK_AUTHTOKEN=
# NGROK_DOMAIN=
# --- Email (SMTP) ---
# SMTP_HOST=smtp.gmail.com
# SMTP_PORT=587
# SMTP_USER=
# SMTP_PASS=
# SMTP_SECURE=false
# SMTP_FROM_EMAIL=info@ilcarrubo.it
# SMTP_FROM_NAME=Il Carrubo B&B
# --- Observability ---
# AXIOM_TOKEN=
# AXIOM_DATASET=il-carrubo
# --- OCR ---
# OCR_API_KEY=
# --- Vercel ---
# VERCEL_PROJECT_ID=
# VERCEL_TOKEN=
# --- Altro ---
# QUERY_PASSWORD=
PORT=3000
NODE_ENV=development
Le variabili commentate con # sono opzionali. Rimuovi il commento e inserisci il valore per abilitare la funzionalità corrispondente.