{"id":39733141,"url":"https://github.com/link-it/govway-docker","last_synced_at":"2026-01-18T11:02:15.604Z","repository":{"id":45385662,"uuid":"155564300","full_name":"link-it/govway-docker","owner":"link-it","description":"Docker image for GovWay","archived":false,"fork":false,"pushed_at":"2025-11-14T10:12:18.000Z","size":510,"stargazers_count":10,"open_issues_count":0,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-11-14T12:12:42.268Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/link-it.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-31T13:43:34.000Z","updated_at":"2025-11-14T10:12:22.000Z","dependencies_parsed_at":"2024-02-06T13:08:51.045Z","dependency_job_id":"ea3f23d4-59ae-4312-b51c-fe4d54f1db87","html_url":"https://github.com/link-it/govway-docker","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/link-it/govway-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-it%2Fgovway-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-it%2Fgovway-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-it%2Fgovway-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-it%2Fgovway-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/link-it","download_url":"https://codeload.github.com/link-it/govway-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-it%2Fgovway-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T11:02:15.544Z","updated_at":"2026-01-18T11:02:15.595Z","avatar_url":"https://github.com/link-it.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Immagine docker per GovWay\n\nQuesto progetto fornisce tutto il necessario per produrre un'ambiente di prova GovWay funzionante, containerizzato in formato Docker. L'ambiente consente di produrre immagini in due modalità:\n- **standalone** : in questa modalità l'immagine contiene oltre al gateway anche un database HSQL con persistenza su file, dove vengongono memorizzate le configurazioni e le informazioni elaborate durante l'esercizio del gateway.\n- **orchestrate** : in questa modalità l'immagine viene preparata in modo da collegarsi ad un database esterno\n\n## Build immagine Docker\nPer semplificare il più possibile la preparazione dell'ambiente, sulla root del progetto è presente uno script di shell che si occupa di prepare il buildcontext e di avviare il processo di build con tutti gli argomenti necessari. \n\nLo script può essere avviato senza parametri per ottenere il build dell'immagine di default, ossia una immagine in modalità standalone realizzata a partire dalla release binaria disponibile su GitHub.\n\nEseguendo invece lo scropt con il parametro '-h' è possibile conoscere i parametri di personalizzazione esistenti.\n\n## Avvio immagine Docker\n\nUna volta eseguito il build dell'immagine tramite lo script fornito, l'immagine puo essere eseguita con i normali comandi di run docker:\n```shell\n./build_image.sh \n\ndocker run \\\n  -v ~/govway_log:/var/log/govway -v ~/govway_conf:/etc/govway \\\n  -e GOVWAY_POP_DB_SKIP=false \\\n  -e GOVWAY_DEFAULT_ENTITY_NAME=Ente \\\n  -p 8080:8080 \\\n  -p 8081:8081 \\\n  -p 8082:8082 \\\nlinkitaly/govway:3.4.1.p1\n\n```\n\nIn modalità orchestrate al termine delle operazioni di build, lo script predispone uno scenario di test avviabile con docker-compose, all'interno della directory **\"compose\"**; lo scenario di test può quindi essere avviato come segue:\n\n```\n./build_image.sh -d postgresql\ncd compose\ndocker compose up\n```\n\nSotto la directory compose vengono create le sottodirectories **govway_conf** e **govway_log**, su cui il container montera' i path _**/etc/govway**_ ed _**/var/log/govway**_  rispettivamente.\nL'accesso è previsto in protocollo HTTP sulle porte _**8080, 8081, 8082**_ .\n\n## Informazioni di Base\n\n### File interni all'immagine\n\nA prescindere dalla modalità di costruzione dell'immagine, vengono utilizzati i seguenti path:\n- **/etc/govway** path le properties di configurazione (riconfigurabile al momento del build). \n- **/var/log/govway** path dove vengono scritti i files di log (riconfigurabile al momento del build).\n\nSe l'immagine è stata prodotta in modalità standalone: \n- **/opt/hsqldb-2.7.4/hsqldb/database** database interno HSQL \n\nsi possono rendere queste location persistenti, montando dei volumi su queste directory.\n\n### Servizi attivi\n\nLe immagini prodotte utilizzano un application server ospite, in ascolto per default sia in protocollo _**AJP**_ sulla porta **8009** sia in _**HTTP**_ su 3 porte in modo da gestire il traffico su ogni porta, con un listener dedicato:\n- **8080**: Listener dedicato al traffico in erogazione (max-thread-pool default: 100)\n- **8081**: Listener dedicato al traffico in fruizione (max-thread-pool default: 100)\n- **8082**: Listener dedicato al traffico di gestione (max-thread-pool default: 20)\n\nE' possibile personalizzare i listener da attivare tramite variabili d'ambiente descritte nei paragrafi successivi.\nTutte queste porte sono esposte dal container e per accedere ai servizi dall'esterno si devono pubblicare al momento dell'avvio del immagine. \nLe interfacce web di monitoraggio configurazione sono quindi disponibili sulle URL:\n\n```\n http://\u003cindirizzo IP\u003e:8082/govwayConsole/\n http://\u003cindirizzo IP\u003e:8082/govwayMonitor/\n```\nL'account di default per l'interfaccia **govwayConsole** è:\n * username: amministratore\n * password: 123456\n\nL'account di default per l'interfaccia **govwayMonitor** è:\n * username: operatore\n * password: 123456\n\nIl contesto di accesso ai servizi dell`API gateway per le erogazioni di API:\n```\n http://\u003cindirizzo IP\u003e:8080/govway/\n```\n\nIl contesto di accesso ai servizi dell`API gateway per le fruizioni di API:\n```\n http://\u003cindirizzo IP\u003e:8081/govway/\n```\n\n### Script SQL di inizializzazione della Base Dati\n\nAll'avvio del container, sia in modalità standalone che con immagini orchestrate, vengono eseguite delle verifiche sul database per assicurarne la raggiungibilità ed il corretto popolamento; in caso venga riconosciuto uno o più database non inizializzati è possibile utilizzare gli scripts SQL interni per effettuare l'inizializzazione, valorizzando la variabile **'GOVWAY_POP_DB_SKIP'** al valore **false**.\n\nSe si vuole esaminare gli script o utilizzarli manualmente, è possibile recuperarli dall'immagine in una delle directory standard  **/opt/hsql**, **/opt/postgresql** o **/opt/oracle**.  Ad esempio per l'immagine che utilizza un database 'postgresql' è possibile utilizzare il comando:\n\n```shell\nCONTAINER_ID=$(docker run -d -e GOVWAY_DEFAULT_ENTITY_NAME=Ente linkitaly/govway:3.4.1.p1_postgres initsql); \ndocker wait ${CONTAINER_ID};\ndocker cp ${CONTAINER_ID}:/opt/postgresql .;\ndocker rm ${CONTAINER_ID}\n```\n\n#### Condivisione Database tra Categorie\n\nQuando più categorie di dati di GovWay (Runtime, Tracciamento, Statistiche e Configurazione) condividono lo stesso database, gli script SQL generati possono includere tabelle duplicate, provocando errori durante l’esecuzione manuale. \n\nPer evitare questo problema, è possibile utilizzare la variabile **GOVWAY_DB_MAPPING**, che consente di indica quali categorie condividono il database con la categoria di default (Runtime).\n\n**Sintassi:**\n```\nGOVWAY_DB_MAPPING=\"\u003clista_categorie\u003e\"\n```\n\nDove `\u003clista_categorie\u003e` è una lista separata da virgole delle categorie che condividono il database con Runtime:\n- **T** = Tracciamento (GovWayTracciamento.sql)\n- **S** = Statistiche (GovWayStatistiche.sql)\n- **C** = Configurazione (GovWayConfigurazione.sql)\n\n**Esempi:**\n\nTracciamento e Statistiche condividono il database con Runtime:\n```shell\nCONTAINER_ID=$(docker run -d \\\n  -e GOVWAY_DEFAULT_ENTITY_NAME=Ente \\\n  -e GOVWAY_DB_MAPPING=\"T,S\" \\\n  linkitaly/govway:3.4.1.p1_postgres initsql); \ndocker wait ${CONTAINER_ID};\ndocker cp ${CONTAINER_ID}:/opt/postgresql .;\ndocker rm ${CONTAINER_ID}\n```\n\nSolo Tracciamento condivide il database con Runtime:\n```shell\nGOVWAY_DB_MAPPING=\"T\"\n```\n\nTutte le categorie condividono lo stesso database:\n```shell\nGOVWAY_DB_MAPPING=\"T,S,C\"\n```\n\n**Comportamento:**\n- Se **GOVWAY_DB_MAPPING** non è impostata: ogni categoria ha il proprio database (comportamento predefinito)\n- Se impostata: le categorie indicate condividono il database con Runtime e gli script SQL vengono automaticamente modificati per rimuovere le tabelle duplicate\n\n\n**ATTENZIONE:** quando il conainer viene avviato bisogna assicurarsi di aver configurato le variabili di **Connessione ai database esterni** coerentemente con quanto dichiarato nella fase di generazione degli scripts nella variabile **GOVWAY_DB_MAPPING**\n\n### Comandi di inizializzazione aggiuntiva\n\nLa sequenza di avvio avvio del container, sia in modalità standalone che con immagini orchestrate, consente di valutare dei comandi di inizializzazione aggiuntiva, inserendoli sotto la directory **/docker-entrypoint-govway.d/**\n\nTutti i files trovati sotto quella directory vengono valutati in ordine alfabetico, suddivisi e gestiti come segue:\n- files con estensione **'.sh'** non eseguibili:  vengono trattati come scripts di shell e viene fatto il source del contenuto (import nella shell attuale)\n- files con estensione **'.sh'** eseguibili:  vengono eseguiti con l'utente di sistema **wildfly** o **tomcat**\n- files con estensione **'.cli'**: vengono trattati come script di command line wildfly e vengono passati all 'interprete **${JBOSS_HOME}/bin/jboss-cli.sh** o **/usr/local/bin/tomcat-cli.sh**\n- tutti gli altri files : vengono ignorati\n\nLa valutazione dei comandi di inizializzazione viene fatta dopo le verifiche e l'eventuale inizializzazione del database, ma prima dell'avvio dell'application server; inoltre la valutazione avviene solamente al primo avvio del container. \n\nQualsiasi errore generato da uno qualsiasi dei comandi eseguiti viene ignorato, ed il processo di valutazione avanza al file successivo.\n\n## Informazioni sulle immagini batch\nUtilizzando lo switch \"-a\" dello script di build è possibile costruire una immmagine contenente solamente il software necessario all'esecuzione dei batch di generazione statistiche.\nQuesto tipo di immagini si differenzia dalle immagini run, manager e full per il fatto che non viene istanziato un server che rimane in ascolto, ma viene eseguito un singolo task destinato a terminare in un tempo finito.\n\n### Tipo di statistiche da generare ###\nIl batch è in grado di gestire:\n- generazione di statistiche con campionamentoorario;\n- generazione di statistiche con campionamento giornaliero; \n- generazione di report CSV nel formato atteso dalla PDND;\n- pubblicazione dei report CSV prodotti tramite le API Interop della PDND.\n\nIl tipo di batch da eseguire viene deciso attraverso un'argomento passato a runtime che può essere valorizzato tramite uno dei seguenti valori, in relazione ai tipi di gestione precedentemente descritti:\n- orarie\n- giornaliere\n- generaReportPDND\n- pubblicaReportPDND\n\nI comandi forniti possono variare tra minuscole e maiuscole poichè viene verificata la corrispondenza dell'argomento rispettivamente con i pattern **\"[oO]rari[ea]\"** , **\"[gG]iornalier[ea]\"**, **\"[gG]enera[Rr]eport[Pp][Dd][Nn][Dd]\"** e **\"[pP]ubblica[Rr]eport[Pp][Dd][Nn][Dd]\"**.\n\nSe non viene passato alcun argomento il default è orarie\nEs:\n```bash\ndocker run \n-e \u003cVARIABILI_DI_CONFIGURAZIONE\u003e \\\n.... \\\nlinkitaly/govway:3.4.1.p1_batch_postgres giornaliere\n```\n\n### Modalita Cron ###\nIl batch è stato creato per essere eseguito da uno schedulatore orchestrato (es Cronjobs kubernetes), quindi la schedulazione è demandata a questi sistemi. \n\nSe non disponibile è possibile abilitare la modalità cron. In questa modalità, il container creato schedula autonomamente l'esecuzione del batch; inoltre è possibile indicare con quali intervallo eseguire il batch.\n\n## Personalizzazioni\nAttraverso l'impostazione di alcune variabili d'ambiente note è possibile personalizzare alcuni aspetti del funzionamento dei container. Le variabili supportate al momento sono queste:\n\n* GOVWAY_DEFAULT_ENTITY_NAME: Indica il nome del soggetto di default utilizzato  (Obbligatorio)\n\n### Controlli all'avvio del container\n\nA runtime il container esegue i controlli di: raggiungibilita del database, di popolamento del database e di avvio di govway. Questi controlli possono essere abilitati o meno impostando le seguenti variabili d'ambiente:\n\n* GOVWAY_LIVE_DB_CHECK_SKIP: Salta il controllo di raggiungibilità dei server database allo startup (default: FALSE)\n\n* GOVWAY_READY_DB_CHECK_SKIP: Salta il controllo di popolamento dei database allo startup (default: FALSE)\n\n* GOVWAY_STARTUP_CHECK_SKIP: Salta il controllo di avvio di govway allo startup (default: FALSE)\n\n* GOVWAY_POP_DB_SKIP: Salta il popolamento automatico delle tabelle (default: TRUE)\n\nE' possibile personalizzare il ciclo di controllo di raggiungibilità dei server database impostando le seguenti variabili d'ambiente:\n* GOVWAY_LIVE_DB_CHECK_FIRST_SLEEP_TIME: tempo di attesa, in secondi, prima di effettuare la prima verifica (default: 0)\n* GOVWAY_LIVE_DB_CHECK_SLEEP_TIME: tempo di attesa, in secondi, tra un tentativo di connessione faallito ed il successivo (default: 2)\n* GOVWAY_LIVE_DB_CHECK_MAX_RETRY: Numero massimo di tentativi di connessione (default: 30)\n* GOVWAY_LIVE_DB_CHECK_CONNECT_TIMEOUT: Timeout di connessione al server, in secondi (default: 5)\n\n\nE' possibile personalizzare il ciclo di controllo di popolamento dei server database impostando le seguenti variabili d'ambiente:\n* GOVWAY_READY_DB_CHECK_SLEEP_TIME: tempo di attesa, in secondi, tra un tentativo di connessione faallito ed il successivo (default: 2)\n* GOVWAY_READY_DB_CHECK_MAX_RETRY: Numero massimo di tentativi di connessione (default: 5)\n\n\nE' possibile personalizzare il ciclo di controllo di avvio di govway impostando le seguenti variabili d'ambiente:\n* GOVWAY_STARTUP_CHECK_FIRST_SLEEP_TIME: tempo di attesa, in secondi, prima di effettuare il primo controllo (default: 20)\n* GOVWAY_STARTUP_CHECK_SLEEP_TIME: tempo di attesa, in secondi, tra un controllo fallito ed il successivo  (default: 5)\n* GOVWAY_STARTUP_CHECK_MAX_RETRY: Numero massimo di controlli effettuati (default: 60)\n\n### Connessione a database esterni \n\n* GOVWAY_DS_JDBC_LIBS: path sul filesystem del container, ad una directory dove sono contenuti uno o più file jar necessari per l'interfacciamento al database\ndi cui almeno uno deve implementare l'interfaccia JDBC java.sql.Driver (obbligatorio per tutti i database tranne HSQL)\n\n  ***AVVISO COMPORTAMENTO DEPRECATO: le immagini PostgreSQL al momento contengono un driver JDBC interno, che viene utilizzato per le connessioni JDBC. Nelle prossime versioni, il driver interno sarà eliminato e sara quindi obbligatorio fornire le librerie attraverso la variabile GOVWAY_DS_JDBC_LIBS***\n  \n* GOVWAY_DB_SERVER: nome dns o ip address del server database (obbligatorio in modalita orchestrate)\n* GOVWAY_DB_NAME: Nome del database (obbligatorio in modalita orchestrate)\n* GOVWAY_DB_USER: username da utiliizare per l'accesso al database (obbligatorio in modalita orchestrate)\n* GOVWAY_DB_PASSWORD: password di accesso al database (obbligatorio in modalita orchestrate)\n\nSe la configurazione lo richiede è possibile suddividere i dati prodotti o utilizzati da govway, su piu' database, a seconda della categoria di dati contenuti.\nLe categorie di dati gestite sono:  CONFIGURAZIONE, TRACCIAMENTO e STATISTICHE.\n\nE' possibile quindi, aggiungere puntamenti ai database, indicando in aggiunta al set di variabili indicato in precedenza, uno o piu di quelli indicati di seguito:  \n\nCONFIGURAZIONE\n* GOVWAY_CONF_DB_SERVER (default: GOVWAY_DB_SERVER)\n* GOVWAY_CONF_DB_NAME (default: GOVWAY_DB_NAME)\n* GOVWAY_CONF_DB_USER (default: GOVWAY_DB_USER)\n* GOVWAY_CONF_DB_PASSWORD (default: GOVWAY_DB_PASSWORD)\n\nSTATISTICHE\n* GOVWAY_STAT_DB_SERVER (default: GOVWAY_DB_SERVER)\n* GOVWAY_STAT_DB_NAME (default: GOVWAY_DB_NAME)\n* GOVWAY_STAT_DB_USER (default: GOVWAY_DB_USER)\n* GOVWAY_STAT_DB_PASSWORD (default: GOVWAY_DB_PASSWORD)\n\nTRACCIAMENTO\n* GOVWAY_TRAC_DB_SERVER (default: GOVWAY_DB_SERVER)\n* GOVWAY_TRAC_DB_NAME (default: GOVWAY_DB_NAME)\n* GOVWAY_TRAC_DB_USER (default: GOVWAY_DB_USER)\n* GOVWAY_TRAC_DB_PASSWORD (default: GOVWAY_DB_PASSWORD)\n\n#### Connessione a database Oracle ####\nQuando ci si connette ad un database esterno Oracle devono essere indicate anche le seguenti variabili d'ambiente\n\n* GOVWAY_ORACLE_JDBC_URL_TYPE (SID/SERVICENAME): indica se connettersi ad un SID o ad un ServiceName Oracle (default: SERVICENAME)\n* ~GOVWAY_ORACLE_JDBC_PATH: path sul filesystem del container, al driver jdbc da utilizzare~ **[DEPRECATA in favore di GOVWAY_DS_JDBC_LIBS]**\n\n### Pooling connessioni database\n\nE' possibile personalizzare alcuni aspetti relativi ai datasource utilizzati da GovWay per accedere al database; per farlo si possono impostare i valori delle variabili d'ambiente elencate di seguito:\n\n* GOVWAY_MAX_POOL: Numero massimo di connessioni stabilite (default: 10)\n* GOVWAY_MIN_POOL: Numero minimo di connessioni stabilite (default: 2)\n* GOVWAY_INITIALSIZE_POOL: Numero di connessioni stabilite ad inizializzazione del datasource (default: 2)\n* GOVWAY_DS_BLOCKING_TIMEOUT: Tempo di attesa, im millisecondi, per una connessione libera dal pool (default: 30000)\n* GOVWAY_DS_IDLE_TIMEOUT: Tempo trascorso, in minuti, prima di eliminare una connessione dal pool per inattivita (default: 5)\n* GOVWAY_DS_CONN_PARAM: parametri JDBC aggiuntivi (default: vuoto)\n* GOVWAY_DS_PSCACHESIZE: dimensione della cache usata per le prepared statements (default: 20)\n\nSe la configurazione di GovWay prevede di suddividere i dati su più database (configurazione, tracciamento e statistiche) è possibile personalizzare i datasource in funzione dello specifico database, utilizzando le seguenti variabili.\n\nDatasource TRACCIAMENTO\n* GOVWAY_TRAC_MAX_POOL (default: 50)\n* GOVWAY_TRAC_MIN_POOL (default: 2)\n* GOVWAY_TRAC_INITIALSIZE_POOL (default: 2)\n* GOVWAY_TRAC_DS_BLOCKING_TIMEOUT (default: 30000)\n* GOVWAY_TRAC_DS_CONN_PARAM (default: vuoto)\n* GOVWAY_TRAC_DS_IDLE_TIMEOUT (default: 5)\n* GOVWAY_TRAC_DS_PSCACHESIZE (default: 20)\n\nDatasource CONFIGURAZIONE\n* GOVWAY_CONF_MAX_POOL (default: 10)\n* GOVWAY_CONF_MIN_POOL (default: 2)\n* GOVWAY_CONF_INITIALSIZE_POOL (default: 2)\n* GOVWAY_CONF_DS_BLOCKING_TIMEOUT (default: 30000)\n* GOVWAY_CONF_DS_CONN_PARAM (default: vuoto)\n* GOVWAY_CONF_DS_IDLE_TIMEOUT (default: 5)\n* GOVWAY_CONF_DS_PSCACHESIZE (default: 20)\n\nDatasource STATISTICHE\n* GOVWAY_STAT_MAX_POOL (default: 5)\n* GOVWAY_STAT_MIN_POOL (default: 1)\n* GOVWAY_STAT_INITIALSIZE_POOL (default: 1)\n* GOVWAY_STAT_DS_BLOCKING_TIMEOUT (default: 30000)\n* GOVWAY_STAT_DS_CONN_PARAM (default: vuoto)\n* GOVWAY_STAT_DS_IDLE_TIMEOUT (default: 5)\n* GOVWAY_STAT_DS_PSCACHESIZE (default: 20)\n\n\n### Configurazione Listener \nPer configurare con quali protocolli i listener di wildfly accetteranno le richieste, è possibile utilizzare le seguenti variabili:\n\n* GOVWAY_AS_AJP_LISTENER: Abilita o disabilita i listener AJP  (default: ajp-8009, valori ammissibili [true, false, ajp-8009] )\n* GOVWAY_AS_HTTP_LISTENER: Abilita o disabilita i listener HTTP (default: true, valori ammissibili [true, false, http-8080] )\n\nA seconda del protocollo che si vuole configurare, valorizzando la relativa variabile a **true** si abiliteranno tutti e tre listener previsti di erogazione, fruizione e gestione. Viceversa valorizzando a **false** i tre listener verranno disabilitati.\nUtilizzando i valori speciali **http-8080** o **ajp-8009** verrà abilitato un solo un listener per il protocollo scelto, sulla rispettiva porta di default.\n\n\nI listener possono essere ulteriormente configurati tramite le seguenti variabili:\n\n* GOVWAY_AS_HTTP_IN_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener HTTP per il traffico in erogazione, (default: 100) \n* GOVWAY_AS_HTTP_OUT_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener HTTP per il traffico in fruizione, (default: 100) \n* GOVWAY_AS_HTTP_GEST_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener HTTP per il traffico di gestione, (default: 20)\n\n* GOVWAY_AS_AJP_IN_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener AJP per il traffico in erogazione, (default: 100) \n* GOVWAY_AS_AJP_OUT_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener AJP per il  traffico in fruizione, (default: 100) \n* GOVWAY_AS_AJP_GEST_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener AJP per il traffico di gestione, (default: 20)\n\n* GOVWAY_AS_MAX_POST_SIZE: Dimensione massima consentita per il body dei messaggi. Si applica a tutti i listener abilitati (default: 10485760 bytes)\n* GOVWAY_AS_MAX_HTTP_SIZE: Dimensione massima cumulata di tutti gli header http inviati. Si applica a tutti i listener abilitati (default: 10485760 bytes)\n\n#### Avviso variabili deprecate\nDi seguito una lista di variabili usate in precedenza per la configurazione dei Listener. Queste variabili sono state deprecate e verrano rimosse nelle versioni successive:\n\n* ~WILDLFY_AJP_LISTENER: Abilita o disabilita i listener AJP  (default: ajp-8009, valori ammissibili [true, false, ajp-8009] )~ **[DEPRECATA in favore di GOVWAY_AS_AJP_LISTENER]**\n* ~WILDLFY_HTTP_LISTENER: Abilita o disabilita i listener HTTP (default: true, valori ammissibili [true, false, http-8080] )~ **[DEPRECATA in favore di GOVWAY_AS_HTTP_LISTENER]**\n\n* ~WILDFLY_HTTP_IN_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener HTTP per il traffico in erogazione, (default: 100)~ **[DEPRECATA in favore di GOVWAY_AS_HTTP_IN_WORKER_MAX_THREADS]**\n* ~WILDFLY_HTTP_OUT_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener HTTP per il traffico in fruizione, (default: 100)~ **[DEPRECATA in favore di GOVWAY_AS_HTTP_OUT_WORKER_MAX_THREADS]**\n* ~WILDFLY_HTTP_GEST_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener HTTP per il traffico di gestione, (default: 20)~ **[DEPRECATA in favore di GOVWAY_AS_HTTP_GEST_WORKER_MAX_THREADS]**\n\n* ~WILDFLY_AJP_IN_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener AJP per il traffico in erogazione, (default: 100)~ **[DEPRECATA in favore di GOVWAY_AS_AJP_IN_WORKER_MAX_THREADS]**\n* ~WILDFLY_AJP_OUT_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener AJP per il  traffico in fruizione, (default: 100)~ **[DEPRECATA in favore di GOVWAY_AS_AJP_OUT_WORKER_MAX_THREADS]**\n* ~WILDFLY_AJP_GEST_WORKER_MAX_THREADS: impostazione del numero massimo di thread, sul worker del listener AJP per il traffico di gestione, (default: 20)~ **[DEPRECATA in favore di GOVWAY_AS_AJP_GEST_WORKER_MAX_THREADS]**\n* ~WILDFLY_MAX_POST_SIZE: Dimensione massima consentita per i messaggi. Si applica a tutti i listener abilitati (default: 10485760 bytes)~ **[DEPRECATA in favore di GOVWAY_AS_MAX_POST_SIZE]**\n\n### Configurazioni avanzate\n* GOVWAY_SUSPEND_TIMEOUT: Tempo massimo di attesa per la chiusura delle richiesta attive in fase di spegnimento dell'application server. (default: 20s)\n* GOVWAY_JVM_AGENT_JAR: Path ad un jar agent da caricare all'avvio dell'application server (Ex OpenTelemetry)\n* GOVWAY_UUID_ALG: Algoritmo utilizzato internamente per la generazione degli UUID. (default: v1, valori ammissibili [v1, v4, {ID Algoritmo}] )\n\n  La lista degli algoritmi utilizzabili si puo recuperare dal file __govway.classRegistry.properties__  dalle proprietà del tipo **org.openspcoop2.id.{ID Algoritmo}**. Inoltre si possono utilizzare le seguenti abbreviazioni:\n  - v1 o V1 -\u003e  UUIDv1\n  - v4 o V4 -\u003e  UUIDv4sec\n\n#### Proprietà JVM Personalizzate\n\nÈ possibile iniettare proprietà JVM personalizzate nel container montando un file di configurazione esterno.\n\n**Path supportati:**\n* `/etc/govway_as_jvm.properties` (raccomandato)\n* `/etc/wildfly/wildfly.properties` (deprecato, mantenuto per retrocompatibilità)\n\n**Funzionamento:**\nAll'avvio del container, se esiste uno dei file sopra indicati, il suo contenuto viene automaticamente iniettato nelle proprietà di sistema della JVM:\n- **Tomcat**: il contenuto viene aggiunto a `${CATALINA_HOME}/conf/catalina.properties`\n- **WildFly**: le proprietà vengono configurate tramite system-properties della JVM\n\n**Esempio di utilizzo:**\n\nCreare un file `custom.properties`:\n```properties\norg.govway.custom.property=valore\nmy.application.setting=123\n```\n\nMontare il file nel container tramite docker-compose:\n```yaml\nservices:\n  govway:\n    image: linkitaly/govway:3.4.1.p1_postgres\n    volumes:\n      - ./custom.properties:/etc/govway_as_jvm.properties:ro\n```\n\nO tramite docker run:\n```bash\ndocker run -v ./custom.properties:/etc/govway_as_jvm.properties:ro linkitaly/govway:3.4.1.p1_postgres\n```\n\nLe proprietà definite nel file diventano accessibili come system properties all'interno dell'applicazione GovWay.\n\n#### Configurazione Memoria JVM\n\nLe seguenti variabili permettono di configurare l'utilizzo della memoria da parte della JVM.\nLe impostazioni utilizzano RAM Percentage per adattarsi automaticamente ai limiti di memoria del container.\n\n**Heap Memory (RAM Percentage):**\n* GOVWAY_JVM_INITIAL_RAM_PERCENTAGE: Percentuale di RAM allocata all'heap all'avvio della JVM tramite property -XXInitialRAMPercentage (default: non impostato, utilizza il default della JVM)\n* GOVWAY_JVM_MIN_RAM_PERCENTAGE: Percentuale minima di RAM riservata all'heap tramite property -XX:MinRAMPercentage (default: non impostato, utilizza il default della JVM)\n* GOVWAY_JVM_MAX_RAM_PERCENTAGE: Percentuale massima di RAM del container utilizzabile per l'heap JVM tramite property -XX:MaxRAMPercentage (default: 50 per immagini manager/all, 80 per immagini runtime e batch)\n\n**Metaspace e Direct Memory:**\n* GOVWAY_JVM_MAX_METASPACE_SIZE: Dimensione massima del metaspace per il caricamento delle classi tramite property -XX:MaxMetaspaceSize (es: \"256m\", \"512m\", default: illimitato)\n* GOVWAY_JVM_MAX_DIRECT_MEMORY_SIZE: Dimensione massima dei buffer di memoria diretta usati per operazioni I/O tramite property -XX:MaxDirectMemorySize (es: \"512m\", \"1g\", default: uguale a MaxHeapSize)\n\n**Nota:** Le impostazioni basate su percentuale si adattano automaticamente quando il container viene ridimensionato o spostato su nodi con limiti di memoria diversi, rendendole ideali per ambienti Kubernetes e altri orchestratori.\n\n**Esempio:**\n```yaml\nenvironment:\n  - GOVWAY_JVM_MAX_RAM_PERCENTAGE=70\n  - GOVWAY_JVM_INITIAL_RAM_PERCENTAGE=50\n  - GOVWAY_JVM_MAX_METASPACE_SIZE=256m\n```\n\n#### Avviso variabili deprecate\nDi seguito una lista di variabili usate in precedenza per la configurazione avanzata. Queste variabili sono state deprecate e verrano rimosse nelle versioni successive:\n\n* ~WILDFLY_SUSPEND_TIMEOUT~: Tempo massimo di attesa per la chiusura delle richiesta attive in fase di spegnimento di wildfly. Non ha effetti per le immagini che usano Tomcat. (default: 20s) **[DEPRECATA in favore di GOVWAY_SUSPEND_TIMEOUT]**\n* ~MAX_JVM_PERC~: Percentuale massima di RAM utilizzabile dalla JVM (default: 80) **[DEPRECATA in favore di GOVWAY_JVM_MAX_RAM_PERCENTAGE]**\n\n## Personalizzazioni Batch\n\n### Modalita Cron\n\n* GOVWAY_BATCH_USA_CRON: indica se abilitare la modalità cron (default: no , valori ammissibili [si, yes, 1, true])\n* GOVWAY_BATCH_INTERVALLO_CRON: indica l'intervallo di schedulazione del batch in minuti (default: 5 per statistiche orarie | 30 per statisiche giornaliere, generazione e pubblicazione di report PDND) \n\n\n### Connessione a database esterni \n\nIl batch richiede l'accesso alle tabelle che memorizzano i dati delle seguenti categorie CONFIGURAZIONE, TRACCIAMENTO e STATISTICHE.\nPer default si suppone che queste siano presenti sullo stesso database indicato dalle seguenti variabili obbligatorie:\n\n* GOVWAY_DS_JDBC_LIBS: path sul filesystem del container, ad una directory dove sono contenuti uno o più file jar necessari per l'interfacciamento al database\ndi cui almeno uno deve implementare l'interfaccai JDBC java.sql.Driver (obbligatorio solo per tutti i database tranne HSQL)\n\n  ***AVVISO COMPORTAMENTO DEPRECATO: le immagini PostgreSQL al momento contengono un driver JDBC interno, che viene utilizzato per le connessioni JDBC. Nelle prossime versioni, il driver interno sarà eliminato e sara quindi obbligatorio fornire le librerie attraverso la variabile GOVWAY_DS_JDBC_LIBS***\n\n* GOVWAY_STAT_DB_SERVER: nome dns o ip address del server database (obbligatorio)\n* GOVWAY_STAT_DB_NAME: Nome del database delle statistiche (obbligatorio)\n* GOVWAY_STAT_DB_USER: username da utilizzare per l'accesso al database (obbligatorio)\n* GOVWAY_STAT_DB_PASSWORD: password di accesso al database (obbligatorio)\n  \nSe la configurazione lo richiede è possibile\nindicare puntamenti differenti per le tabelle delle restanti categorie, usando i seguenti set di variabili\n\nCONFIGURAZIONE\n* GOVWAY_CONF_DB_SERVER (default: GOVWAY_STAT_DB_SERVER)\n* GOVWAY_CONF_DB_NAME (default: GOVWAY_STAT_DB_NAME)\n* GOVWAY_CONF_DB_USER (default: GOVWAY_STAT_DB_USER)\n* GOVWAY_CONF_DB_PASSWORD (default: GOVWAY_STAT_DB_PASSWORD)\n\nTRACCIAMENTO\n* GOVWAY_TRAC_DB_SERVER (default: GOVWAY_STAT_DB_SERVER)\n* GOVWAY_TRAC_DB_NAME (default: GOVWAY_STAT_DB_NAME)\n* GOVWAY_TRAC_DB_USER (default: GOVWAY_STAT_DB_USER)\n* GOVWAY_TRAC_DB_PASSWORD (default: GOVWAY_STAT_DB_PASSWORD)\n\n#### Connessione a database Oracle ####\nQuando ci si connette ad un database esterno Oracle devono essere indicate anche le seguenti variabili d'ambiente\n\n* GOVWAY_ORACLE_JDBC_URL_TYPE (SID/SERVICENAME): indica se connettersi ad un SID o ad un ServiceName Oracle (default: SERVICENAME)\n* ~GOVWAY_ORACLE_JDBC_PATH: path sul filesystem del container, al driver jdbc da utilizzare~ **[DEPRECATA in favore di GOVWAY_DS_JDBC_LIBS]**\n\n\n### Configurazioni avanzate\n* GOVWAY_JVM_AGENT_JAR: Path ad un jar agent da caricare all'avvio dell'applicazione (Ex. OpenTelemetry)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flink-it%2Fgovway-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flink-it%2Fgovway-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flink-it%2Fgovway-docker/lists"}