Variabili d’Ambiente
Tutte le configurazioni de Il Carrubo sono gestite tramite variabili d’ambiente nel file .env nella root del progetto.
::: callout[caution]
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 |
<span class=“status-badge required”><i class=“fa-solid fa-check”></i> Sì</span> | URL del progetto Supabase (es. https://xxxxx.supabase.co) |
SUPABASE_KEY |
<span class=“status-badge required”><i class=“fa-solid fa-check”></i> Sì</span> | Chiave pubblica anon per le operazioni lato client |
SUPABASE_SERVICE_ROLE_KEY |
<span class=“status-badge required”><i class=“fa-solid fa-check”></i> Sì</span> | Chiave service_role per operazioni privilegiate lato server |
SUPABASE_DB_URL |
<span class=“status-badge required”><i class=“fa-solid fa-check”></i> Sì</span> | Stringa di connessione PostgreSQL diretta |
API_KEY |
<span class=“status-badge required”><i class=“fa-solid fa-check”></i> Sì</span> | Chiave API personalizzata per autenticare le richieste REST |
::: callout[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 |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Username fornito dalla Questura |
ALLOGGIATI_PASS |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Password fornita dalla Questura |
ALLOGGIATI_WSKEY |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Chiave del servizio web (WS Key) |
::: callout[note]
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
Configurazione per la generazione automatica di documenti PDF tramite APITemplate.io.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
API_TEMPLATE_KEY |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Chiave API di APITemplate.io |
API_TEMPLATE_ID |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | ID del template PDF principale (es. ricevute) |
API_TEMPLATE_BASE |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | URL base dell’API di APITemplate.io |
API_TEMPLATE_WELCOME_ID |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | ID del template per la lettera di benvenuto |
Storage Documenti
Configurazione per l’archiviazione dei documenti scansionati su GitHub.
| Variabile | Obbligatoria | Descrizione |
|---|---|---|
GITHUB_TOKEN |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Personal Access Token di GitHub con permessi repo |
GITHUB_REPO |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | 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 |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Abilita ngrok all’avvio (true / false) |
NGROK_AUTHTOKEN |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Token di autenticazione ngrok |
NGROK_DOMAIN |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | 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 |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Hostname del server SMTP (es. smtp.gmail.com) |
SMTP_PORT |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Porta del server SMTP (es. 587 per TLS, 465 per SSL) |
SMTP_USER |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Username / email per l’autenticazione SMTP |
SMTP_PASS |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Password o App Password per l’autenticazione SMTP |
SMTP_SECURE |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Usa connessione sicura (true per SSL, false per STARTTLS) |
SMTP_FROM_EMAIL |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Indirizzo email del mittente |
SMTP_FROM_NAME |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Nome visualizzato del mittente (es. Il Carrubo B&B) |
::: callout[tip]
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 |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Token API di Axiom per l’invio dei log |
AXIOM_DATASET |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | 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 |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | 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 |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | ID del progetto Vercel |
VERCEL_TOKEN |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Token di accesso Vercel per deploy automatici |
VERCEL |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | Flag impostata automaticamente da Vercel (1 in ambiente Vercel) |
Altre variabili
| Variabile | Obbligatoria | Default | Descrizione |
|---|---|---|---|
QUERY_PASSWORD |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | — | Password per l’accesso alla pagina di query SQL |
PORT |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | 3000 |
Porta su cui avviare il server Express |
NODE_ENV |
<span class=“status-badge optional”><i class=“fa-solid fa-minus”></i> No</span> | 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 ---
# API_TEMPLATE_KEY=
# API_TEMPLATE_ID=
# API_TEMPLATE_BASE=https://rest.apitemplate.io
# API_TEMPLATE_WELCOME_ID=
# --- 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
::: callout[tip]
Le variabili commentate con # sono opzionali. Rimuovi il commento e inserisci il valore per abilitare la funzionalità corrispondente.
:::