Sezioni

Node.js e demo locale

Avvia Frontdoor dai sorgenti con Node.js 24, provalo senza Microsoft Entra con il Login Dev ed esegui i controlli del progetto.

In questa pagina

Avviare Frontdoor dai sorgenti è il modo per svilupparlo o per esplorarlo sulla tua macchina. Per un'installazione reale, usa Docker.

Requisiti

  • Node.js 24 o successivo.
  • Una copia del repository di Frontdoor.
  • Una registrazione di app in Microsoft Entra, oppure il Login Dev (vedi sotto).

Avviare in modalità sviluppo

# 1. Install dependencies
npm install

# 2. Configure the environment
cp .env.example.node .env
# Edit .env with your Microsoft Entra credentials, or use Dev Login

# 3. Start Vite and Express in parallel
npm run dev
  • Frontend: http://localhost:5173
  • API: http://localhost:3001

In sviluppo, Vite serve il frontend sulla porta 5173 e inoltra le chiamate API a Express sulla porta 3001. Il backend si riavvia da solo quando cambiano i file in server/ o shared/.

Il file di esempio per Node salva il database in ./frontdoor.db e le cache in ./data/. Vedi il Riferimento della configurazione per tutte le variabili.

Provarlo senza Microsoft Entra (Login Dev)

Per avviare Frontdoor senza una registrazione di app in Entra, imposta questo valore nel .env (è già attivo in .env.example.node):

DEV_LOGIN=true

Quando DEV_LOGIN=true e NODE_ENV non è production:

  • Le credenziali di Microsoft Entra non sono obbligatorie: il server parte anche senza.
  • Se non imposti un JWT_SECRET, ne viene generato uno di riserva in automatico.
  • La pagina di accesso mostra un pannello Login Dev in cui scegli un ruolo (owner, admin, admin_readonly o user) ed entri subito.
  • Al primo utilizzo viene creato nel database un utente di sviluppo locale.

Il Login Dev è sempre disattivato in produzione (NODE_ENV=production), qualunque sia il valore di DEV_LOGIN.

Demo locale con Docker

Per provare Frontdoor in un container senza installare Node.js né configurare Entra, usa il profilo demo:

docker compose -f docker-compose.demo.yml up --build

Apri http://localhost:3001 e usa il pannello Login Dev. La demo non richiede un file .env, disattiva la sincronizzazione dei gruppi Entra, usa un proprio volume di dati e pubblica la porta solo su 127.0.0.1.

Il Login Dev permette a chiunque di scegliere qualsiasi ruolo e firma i token con un secret di riserva pubblico. Non esporre mai la demo in rete e non metterla dietro un reverse proxy. Per rimuoverla:

docker compose -f docker-compose.demo.yml down -v

App demo

Un database nuovo e vuoto viene popolato con app di esempio. Puoi ripristinarle in seguito dal pannello di amministrazione oppure con:

npm run db:seed

Eseguire i controlli

L'integrazione continua esegue questi comandi su ogni pull request. Eseguili prima di aprirne una:

npm run lint         # ESLint (no errors allowed)
npm test             # unit and HTTP tests, each test process gets its own temporary database
npm run check:i18n   # English and Italian dictionaries stay aligned
npm run build        # production frontend build

La CI costruisce anche l'immagine Docker e ne verifica il funzionamento di base (/api/health e la shell dell'app).