Sign inSign up

linkitaly/govpay

By linkitaly

Updated 2 days ago

La Porta di Accesso a PagoPA

Image
1

4.5K

linkitaly/govpay repository overview

GovPay Logo

GovPay - Porta di accesso al sistema pagoPA

Quality Gate Status Docker Hub License: GPL v3 Documentation

Descrizione

GovPay è una piattaforma completa per l'integrazione di Enti Pubblici, Intermediari e Partner tecnologici alle componenti centrali del progetto pagoPA.

Fornisce:

  • Gestione Archivio Pagamenti in Attesa (APA)
  • API REST per integrazione con sistemi verticali
  • Portale di Backoffice per configurazione e monitoraggio
  • Portale Cittadino per pagamenti online
  • Integrazione nativa con pagoPA (SANP 3.x, GPD, ACA)
  • Supporto multi-database (PostgreSQL, MySQL/MariaDB, Oracle, SQL Server, HSQL)

Requisiti

  • Database: PostgreSQL, MySQL/MariaDB, Oracle o SQL Server
  • Java: 21 (incluso nell'immagine Docker)
  • Risorse minime: 2GB RAM, 2 CPU cores

Quick Start

1. Pull dell'immagine
docker pull linkitaly/govpay:latest
2. Avvio con Docker Run
docker run -d \
  --name govpay \
  -p 8080:8080 \
  -e GOVPAY_DB_TYPE=postgresql \
  -e GOVPAY_DB_SERVER=postgres:5432 \
  -e GOVPAY_DB_NAME=govpay \
  -e GOVPAY_DB_USER=govpay \
  -e GOVPAY_DB_PASSWORD=govpay \
  -v /opt/govpay/log:/var/log/govpay \
  -v /etc/govpay:/etc/govpay \
  linkitaly/govpay:latest

L'applicazione sarà disponibile su:

3. Docker Compose (consigliato)
version: '3.8'

services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: govpay
      POSTGRES_USER: govpay
      POSTGRES_PASSWORD: govpay
    volumes:
      - govpay-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U govpay"]
      interval: 10s
      timeout: 5s
      retries: 5

  govpay:
    image: linkitaly/govpay:latest
    depends_on:
      postgres:
        condition: service_healthy
    ports:
      - "8080:8080"
    environment:
      # Database
      GOVPAY_DB_TYPE: postgresql
      GOVPAY_DB_SERVER: postgres:5432
      GOVPAY_DB_NAME: govpay
      GOVPAY_DB_USER: govpay
      GOVPAY_DB_PASSWORD: govpay

      # Logging
      GOVPAY_LOG_LEVEL: INFO

      # JVM Memory
      JAVA_OPTS: "-Xms512m -Xmx2g"
    volumes:
      - /var/log/govpay:/var/log/govpay
      - /etc/govpay:/etc/govpay
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/govpay-api-backoffice/rs/basic/v1/info"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 120s

volumes:
  govpay-db:

Avvio dello stack:

docker-compose up -d

Tag disponibili

  • latest
  • 3.9.3.p1, 3.9.3.p1_postgres, 3.9.3.p1_mariadb, 3.9.3.p1_oracle
  • 3.9.3, 3.9.3_postgres, 3.9.3_mariadb, 3.9.3_oracle
  • 3.9.2.p1, 3.9.2.p1_postgres, 3.9.2.p1_mariadb, 3.9.2.p1_oracle
  • 3.9.2, 3.9.2_postgres, 3.9.2_mariadb
  • 3.9.0, 3.9.0_postgres, 3.9.0_mariadb
  • 3.8.2, 3.8.2_postgres, 3.8.2_mariadb
  • 3.8.1, 3.8.1_postgres, 3.8.1_mariadb
  • 3.8.0, 3.8.0_postgres, 3.8.0_mariadb
  • 3.7.8, 3.7.8_postgres, 3.7.8_mariadb
  • 3.7.7, 3.7.7_postgres, 3.7.7_mariadb
  • 3.7.6, 3.7.6_postgres, 3.7.6_mariadb
  • 3.7.5, 3.7.5_postgres, 3.7.5_mariadb
  • 3.7.4, 3.7.4_postgres, 3.7.4_mariadb

Elenco completo: https://hub.docker.com/r/linkitaly/govpay/tags

Configurazione

Variabili d'Ambiente
Database
VariabileDescrizioneDefault
GOVPAY_DB_TYPETipo database: postgresql, mysql, mariadb, oracle, sqlserverpostgresql
GOVPAY_DB_SERVERHost e porta del database (host:port)localhost:5432
GOVPAY_DB_NAMENome del databasegovpay
GOVPAY_DB_USERUsername databasegovpay
GOVPAY_DB_PASSWORDPassword database-
Logging
VariabileDescrizioneDefault
GOVPAY_LOG_LEVELLivello log: TRACE, DEBUG, INFO, WARN, ERRORINFO
GOVPAY_LOG_SQLAbilita log SQLfalse
JVM
VariabileDescrizioneDefault
JAVA_OPTSOpzioni JVM-Xms512m -Xmx1g
Servizi pagoPA
VariabileDescrizioneDefault
GOVPAY_PAGOPA_ENVAmbiente pagoPA: prod, uat, devuat
Volumi
Path ContainerDescrizione
/var/log/govpayDirectory dei log applicativi
/etc/govpayDirectory configurazione (govpay.properties)
/usr/local/tomcat/conf/Catalina/localhostContext descriptor Tomcat
/opt/govpay/uploadDirectory upload tracciati CSV
Porte
PortaServizio
8080HTTP Tomcat (tutte le API e console)
8443HTTPS Tomcat (se configurato)

Configurazione Avanzata

File govpay.properties

Per personalizzare la configurazione oltre le variabili d'ambiente, montare un file govpay.properties:

docker run -d \
  --name govpay \
  -v /percorso/locale/govpay.properties:/etc/govpay/govpay.properties \
  linkitaly/govpay:latest

Esempio govpay.properties:

# Configurazione Cluster
it.govpay.cluster.id=nodo1

# Configurazione Batch
it.govpay.batch.acquisizioneRendicontazioni.cron=0 */10 * * * ?
it.govpay.batch.recuperoRPTPendenti.cron=0 0 * * * ?

# Configurazione Email
it.govpay.email.host=smtp.example.com
it.govpay.email.port=587
[email protected]
it.govpay.email.password=password

# Configurazione AppIO
it.govpay.appio.enabled=true
it.govpay.appio.subscriptionKey=YOUR_SUBSCRIPTION_KEY
Autenticazione

GovPay supporta multiple modalità di autenticazione:

  • Basic Authentication (default)
  • LDAP
  • SSL Client Certificate
  • Header-based
  • OAuth2 / OIDC
  • SPID (per cittadini)

Configurare l'autenticazione tramite:

  1. Variabili d'ambiente (per configurazioni semplici)
  2. File govpay.properties (per configurazioni avanzate)
  3. Spring Security XML (per personalizzazioni complete)
Esempio con SSL
docker run -d \
  --name govpay \
  -p 8443:8443 \
  -v /percorso/certificati:/opt/govpay/ssl \
  -e GOVPAY_SSL_ENABLED=true \
  -e GOVPAY_SSL_KEYSTORE=/opt/govpay/ssl/keystore.jks \
  -e GOVPAY_SSL_KEYSTORE_PASSWORD=changeit \
  linkitaly/govpay:latest

Inizializzazione Database

Al primo avvio, GovPay richiede un database vuoto. Gli script SQL per l'inizializzazione sono inclusi nell'immagine:

# Per PostgreSQL
docker exec -i govpay cat /opt/govpay/sql/postgresql/gov_pay.sql | \
  psql -h localhost -U govpay -d govpay

# Per MySQL
docker exec -i govpay cat /opt/govpay/sql/mysql/gov_pay.sql | \
  mysql -h localhost -u govpay -p govpay

Health Check

L'immagine include endpoint per verificare lo stato dell'applicazione:

# Health check applicazione
curl http://localhost:8080/govpay-api-backoffice/rs/basic/v1/info

# Health check database
curl http://localhost:8080/govpay-api-backoffice/rs/basic/v1/info

Risposta di esempio:

{
  "versione": "3.8.2",
  "ambiente": "PROD",
  "build": "2025-12-10"
}

Backup e Manutenzione

Backup Database
# PostgreSQL
docker exec postgres pg_dump -U govpay govpay > backup_govpay_$(date +%Y%m%d).sql

# MySQL
docker exec govpay-mysql mysqldump -u govpay -p govpay > backup_govpay_$(date +%Y%m%d).sql
Backup Configurazione
docker cp govpay:/etc/govpay ./backup_config_$(date +%Y%m%d)
Aggiornamento Versione
# 1. Backup database
docker exec postgres pg_dump -U govpay govpay > backup_pre_upgrade.sql

# 2. Stop container
docker-compose down

# 3. Pull nuova versione
docker pull linkitaly/govpay:3.8.2

# 4. Aggiorna docker-compose.yml con nuova versione

# 5. Riavvio (applica patch SQL automaticamente)
docker-compose up -d

# 6. Verifica log
docker-compose logs -f govpay

Troubleshooting

Container non si avvia
# Verifica log
docker logs govpay

# Verifica connessione database
docker exec govpay cat /etc/govpay/govpay.properties | grep datasource
Problemi di performance
# Aumenta memoria JVM
docker run -e JAVA_OPTS="-Xms1g -Xmx4g" linkitaly/govpay:latest

# Verifica utilizzo risorse
docker stats govpay
Reset completo
# ATTENZIONE: Cancella tutti i dati
docker-compose down -v
docker volume rm govpay-db
docker-compose up -d

Architettura Multi-Tier

Deployment con Load Balancer
version: '3.8'

services:
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - govpay-1
      - govpay-2

  govpay-1:
    image: linkitaly/govpay:latest
    environment:
      GOVPAY_CLUSTER_ID: node1
      # ... altre configurazioni

  govpay-2:
    image: linkitaly/govpay:latest
    environment:
      GOVPAY_CLUSTER_ID: node2
      # ... altre configurazioni

  postgres:
    image: postgres:16-alpine
    # ... configurazione database

Supporto

Per supporto e domande:

Licenza

Questo progetto è rilasciato sotto licenza GPL-3.0. Vedere il file LICENSE per i dettagli.

Copyright (c) 2014-2026 Link.it srl

Tag summary

Content type

Image

Digest

sha256:8bbbef13f

Size

1 GB

Last updated

2 days ago

docker pull linkitaly/govpay