Nuova versione della console di backoffice GovPay (riscrittura completa della console legacy Angular 5).
Stack: Angular 21+ standalone, Signals, TailwindCSS 4, Angular Material.
Workspace strutturato come seed riusabile per altri progetti Link.it.
nvm use # usa Node 22 (vedi .nvmrc)
npm install
npm start # backend default: 172.16.2.109:8080 (preset "local")L'app risponderà su http://localhost:4200.
Tutte le chiamate /govpay/backend/api/backoffice/rs/* (e /govway/in/RegioneSiciliana/*) sono inoltrate al backend tramite proxy.config.js. Il backend è selezionabile via preset:
| Comando | Preset | Target |
|---|---|---|
npm start |
local |
http://172.16.2.109:8080 |
npm run start:local-alt |
local-alt |
http://172.16.1.121:8082 |
npm run start:dev |
dev-cloud |
https://dev.govcloud.it |
npm run start:demo |
demo |
https://demo.govcloud.it |
npm run start:sicilia |
sicilia |
https://gestionepagopatest.regione.sicilia.it |
Override manuale:
GP_BACKEND=dev-cloud ng serve --proxy-config proxy.config.jsPer aggiungere/modificare un preset, edita BACKENDS in proxy.config.js.
npm run build # development
npm run build:prod # production con outputHashingL'output finisce in dist/govpay-console/browser/.
npm test # vitest watch
npm run test:run # singolo run
npm run test:coverage # con coverage v8Il file projects/govpay-console/src/environments/version.ts viene rigenerato
automaticamente come prebuild da scripts/generate-version.js (legge
package.json, raccoglie info git, scrive VERSION).
npm run version:generate # rigenera version.ts
npm run version:patch # 0.0.0 → 0.0.1 + rigenera
npm run version:minor # 0.1.0
npm run version:major # 1.0.0
npm run version:set 1.2.3 # imposta versione esattaLa pagina About (/about) mostra getFullVersion().
L'applicazione carica al boot un file di configurazione JSON (vedi
src/assets/config/app-config*.json). La selezione tra dev/prod avviene tramite
environment.configFile. La struttura è documentata in
CALUDE-NOTE/ARCHITETTURA.md.
L'app supporta più tenant senza rebuild. La selezione iniziale segue questo ordine:
- query param
?tenant=<name> - sottodominio (
<name>.dominio.it) localStorage(chiavelnk-tenant)AppConfig.CurrentTenant
ConfigService.applyTenant(name) cambia tema, branding e titolo del documento.
projects/govpay-console/src/app/
├── core/ config, auth, interceptors, layout, system, version
├── features/ dashboard, pendenze, ricevute, pagamenti, … (placeholder M1)
└── shared/ componenti / directive / pipe condivise
Vedi CALUDE-NOTE/PIANO-LAVORO.md per il piano
completo e le fasi di lavoro.
- Selettori prefissati
lnk-. - Tutti i componenti standalone + OnPush.
- Stato globale signals-only, no NgRx.
- Header licenza GPL v3 in cima ad ogni file
.ts. - Path alias:
@core/*,@feature/*,@shared/*,@environment,@environments.
Il progetto include docker/Dockerfile, un Dockerfile multi-stage che builda
l'applicazione dai sorgenti (stage Node) e la serve come contenuto statico
tramite nginx.
# Build dell'immagine (eseguire dalla root del repo: il build context è la root)
docker build -t govpay-console:local -f docker/Dockerfile .
# Avvio: l'app è servita su http://localhost:8080
docker run --rm -p 8080:8080 govpay-console:localOppure con docker compose (espone la console su http://localhost:10012):
docker compose up --build| Variabile | Default | Descrizione |
|---|---|---|
SERVER_PORT |
8080 |
Porta su cui ascolta nginx nel container |
GOVPAY_API_BACKEND |
(vuota) | Se valorizzata, nginx fa da reverse proxy per /govpay-api-backoffice verso questo backend, evitando problemi di CORS |
GOVPAY_API_BACKEND_PATH |
/govpay-api-backoffice |
Path upstream sul backend a cui mappare /govpay-api-backoffice/*. Usare / se il backend serve gli endpoint alla radice (/rs/form/v1/...): il prefisso /govpay-api-backoffice viene rimosso prima dell'inoltro |
Esempio con proxy verso un backend GovPay reale:
docker run --rm -p 8080:8080 \
-e GOVPAY_API_BACKEND=https://lab.link.it \
govpay-console:localEsempio con backend che espone gli endpoint alla radice (proxy same-origin, nessun CORS):
docker run --rm -p 8080:8080 \
-e GOVPAY_API_BACKEND=http://govpay-console-api:8080 \
-e GOVPAY_API_BACKEND_PATH=/ \
govpay-console:localLa configurazione dell'app (titoli, endpoint, temi, ecc.) resta in
assets/config/app-config.jsoned è servita staticamente: può essere sovrascritta montando un volume su/usr/share/nginx/html/assets/config/app-config.json.
Per le immagini basate su release pubblicate (download da GitHub o build locale già pronta) sono disponibili gli script in
docker/(build_image.sh, con i relativiDockerfile.github/Dockerfile.daFile).
GPL-3.0-or-later — Link.it srl.