Vai al contenuto

Informazioni tecniche e requisiti

Guida di riferimento per amministratori di sistema e tecnici incaricati di predisporre l'infrastruttura per ospitare gli applicativi di Coding 83 SA.


Ambiente Client (.NET)

Le nostre applicazioni sono sviluppate nativamente in .NET e richiedono un ambiente client Windows per l'esecuzione.

Requisiti Operativi Client

  • Sistema Operativo: Windows 11 oppure Windows Server (versioni ufficialmente supportate da Microsoft).
  • Processore (CPU): Qualsiasi CPU x64 multicore recente. I carichi computazionali lato client sono molto contenuti.
  • Memoria (RAM): Quantitativo base richiesto dal sistema operativo + almeno 2 GB dedicati all'applicativo.

Database Server: Microsoft SQL Server

Tutti i software di Coding 83 SA utilizzano Microsoft SQL Server come motore database. Puoi scegliere tra un deploy moderno containerizzato su Linux oppure un'installazione classica su Windows Server.

Supportiamo ufficialmente l'esecuzione di SQL Server su Linux tramite container Podman (in modalità rootless gestita via systemd Quadlet).

Configurazione Hardware & OS Consigliata

Esempio di configurazione Quadlet (Rootless)

Crea il file di unit systemd per l'utente non privilegiato:

~/.config/containers/systemd/mssql-2022.container
[Container]
ContainerName=mssql_server_2022
Environment=MSSQL_PID=Express # (1)!
Environment=ACCEPT_EULA=Y
Environment=MSSQL_SA_PASSWORD=<STRONG_PASSWORD> # (2)!
Environment=MSSQL_BACKUP_DIR=/var/opt/mssql/backup
Image=mcr.microsoft.com/mssql/server:2022-latest
PublishPort=1433:1433
Volume=/var/mssql_data/mssql_2022:/var/opt/mssql:Z,U # (3)!
AutoUpdate=registry

# --- HEALTHCHECK ---
# Esegue un controllo direttamente sul processo MS SQL dentro al container
HealthCmd=/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P '<PASSWORD>' -C -Q 'SELECT 1'
HealthInterval=60s
HealthRetries=5
HealthStartPeriod=15s
HealthTimeout=3s

[Install]
WantedBy=default.target
  1. Imposta MSSQL_PID su Standard se disponi di licenza commerciale.
  2. Attenzione: Modifica MSSQL_SA_PASSWORD con una password complessa prima del deploy in produzione.
  3. Assicurati che la directory /var/mssql_data/mssql_2022 esista e appartenga all'utente che esegue il container rootless. I flag :Z,U gestiscono automaticamente i contesti SELinux e il mapping UID/GID.

Attivazione del Servizio e Configurazione Firewall

Dopo aver salvato il file, ricarica il demone systemd dell'utente e avvia l'istanza:

systemctl --user daemon-reload
systemctl --user start mssql-2022

Configura inoltre il firewall per consentire le connessioni a SQL Server sulla porta standard 1433:

sudo firewall-cmd --permanent --add-port=1433/tcp
sudo firewall-cmd --reload
(Verifica che la regola sia attiva eseguendo sudo firewall-cmd --list-ports).

Attivazione degli Aggiornamenti Automatici (Podman Auto-Update)

Poiché nel file .container abbiamo inserito la direttiva AutoUpdate=registry, possiamo istruire Podman e systemd affinché verifichino periodicamente la presenza di nuove immagini nel registry Microsoft e aggiornino autonomamente il container.

Per abilitare questa funzione a livello utente (rootless):

Abilita e avvia il timer di systemd per l'auto-update di Podman:

systemctl --user enable --now podman-auto-update.timer

Verifica lo stato del timer per assicurarti che sia attivo:

systemctl --user status podman-auto-update.timer

Nota: Il timer di sistema eseguirà il controllo e l'eventuale aggiornamento in background secondo la pianificazione predefinita di Podman, applicando la nuova immagine solo se l'Healthcheck del container risulta integro.

Per le installazioni tradizionali su ambiente Microsoft è necessario disporre di un sistema operativo server in grado di ospitare un'istanza SQL Server.

Versione minima supportata

La versione minima ufficialmente supportata è Microsoft SQL Server 2019.
(Nota tecnica: il software utilizza funzionalità introdotte a partire da SQL Server 2016; versioni precedenti possono causare errori o arresti anomali).

  • Hardware consigliato: Per carichi di lavoro standard, un server dedicato esclusivamente a SQL Server con 4 GB di RAM e un processore multicore recente garantisce prestazioni ottimali.

Configurazioni Post-Installazione su Windows

Dopo aver completato l'installazione di SQL Server, è necessario verificare e configurare alcuni parametri fondamentali per permettere alle applicazioni di connettersi correttamente:

1. Abilitare il Protocollo TCP/IP

Per impostazione predefinita, su alcune installazioni il protocollo TCP/IP potrebbe essere disabilitato:

  1. Apri Gestione configurazione SQL Server (SQL Server Configuration Manager).
  2. Espandi Configurazione di rete di SQL Server e seleziona Protocolli per <NomeIstanza>.
  3. Fai clic destro su TCP/IP e seleziona Abilita (se disabilitato).
  4. Riavvia il servizio SQL Server per rendere effettiva la modifica.

2. Configurare Porte Fisse (Disattivazione Porte Dinamiche)

Per evitare problemi di connessione attraverso i firewall, è consigliabile assegnare a SQL Server una porta statica (1433) disattivando le porte dinamiche:

  1. Sempre in Gestione configurazione SQL Server, vai su Protocolli per <NomeIstanza> -> TCP/IP -> Proprietà -> scheda IP All.
  2. Svuota il campo Porte dinamiche TCP (lasciandolo completamente vuoto).
  3. Nel campo Porta TCP, inserisci il valore fisso 1433.
  4. Riavvia nuovamente il servizio SQL Server.

3. Apertura delle Porte sul Firewall di Windows

Affinché i client possano raggiungere il database e risolvere correttamente l'istanza (specialmente in caso di istanze denominate), apri le porte necessarie nel Firewall di Windows con PowerShell (eseguito come amministratore):

# Apertura della porta standard per SQL Server (TCP 1433)
New-NetFirewallRule -DisplayName "SQL Server (TCP-In)" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow

# Apertura della porta per SQL Server Browser (UDP 1434) - Necessario se si usano istanze denominate
New-NetFirewallRule -DisplayName "SQL Server Browser (UDP-In)" -Direction Inbound -Protocol UDP -LocalPort 1434 -Action Allow
(Verifica che le regole siano attive eseguendo Get-NetFirewallRule -DisplayName "*SQL*").


Configurazioni da evitare assolutamente

  • No Domain Controller: Non installare mai SQL Server su una macchina che svolge il ruolo di Active Directory Domain Controller (come raccomandato da Microsoft).
  • No Windows Desktop come Server: È fortemente sconsigliato utilizzare PC con Windows 10 o Windows 11 per ospitare l'istanza database in ambienti multi-utente di produzione.

Manutenzione & Sicurezza

Utilizzate sempre sistemi operativi e istanze di SQL Server ufficialmente supportati e regolarmente aggiornati con le ultime patch di sicurezza per prevenire vulnerabilità o malfunzionamenti.