Passa al contenuto principale

Configurazione Variabili GitHub

Il workflow CI/CD richiede variabili e secrets configurati in GitHub → Settings → Environments.

Crea un environment per ogni branch di deploy (es. TEST, LIVE) e inserisci i valori indicati.

informazioni

Le Variables sono visibili nei log. I Secrets sono mascherati e non leggibili dopo l'inserimento.

Variables (non sensibili)

NomeEsempioDescrizione
DOCKERHUB_USERNAMEexpovinUsername DockerHub per pull/push immagini
GCP_HOST34.xxx.xxx.xxxIP pubblico del server GCP (non hostname Cloudflare)
GCP_USERvincenzo.espositoUtente SSH sul server GCP
REGISTRYexpovinPrefisso immagini Docker (uguale a DOCKERHUB_USERNAME)
DOMAINrainty.appDominio principale del progetto
ENV_PREFIXtestPrefisso ambiente (es. test, live)
CORS_ORIGINhttps://rainty.appOrigin permessa per CORS
ACME_EMAILadmin@rainty.appEmail per certificati Let's Encrypt (Traefik)
MYSQL_HOSTmysqlHostname MySQL interno Docker
MYSQL_PORT3306Porta MySQL
MYSQL_DATABASEraintyNome database
MYSQL_USERrainty_userUtente MySQL applicativo
LOG_LEVELinfoLivello di log (debug, info, warn, error)
TIMEZONEEurope/RomeTimezone server
ENABLE_DB_LOGfalseAbilita log query SQL
JWT_EXPIRES_IN24hDurata validità JWT
REDIS_PATTERNS*Pattern chiavi Redis monitorate
VITE_PROJECT_NAMERaintyNome progetto per la UI
COMPOSE_PROFILESauthservice,datahub,schedulerProfili Docker Compose attivi

Secrets (sensibili)

NomeDescrizione
DOCKERHUB_TOKENAccess token DockerHub per push immagini
GH_TOKENPersonal Access Token GitHub (per creare release)
SSH_PRIVATE_KEYChiave privata SSH per accesso al server GCP
MYSQL_ROOT_PASSWORDPassword root MySQL
MYSQL_PASSWORDPassword utente MySQL applicativo
JWT_SECRETChiave segreta per firma JWT

Come inserire i valori

  1. Vai su GitHub → repository → Settings → Environments
  2. Crea o seleziona l'environment (es. TEST)
  3. Clicca Add variable per le variabili normali
  4. Clicca Add secret per i valori sensibili

Note importanti

REGISTRY vs DOCKERHUB_USERNAME

REGISTRY deve avere lo stesso valore di DOCKERHUB_USERNAME. È il prefisso usato nel docker-compose.yml per costruire i nomi delle immagini (es. expovin/datahub:latest). Se è vuoto o errato, Docker cercherà local/datahub e il pull fallirà.

GCP_HOST deve essere l'IP, non l'hostname Cloudflare

Usa l'IP pubblico diretto del server GCP, non hostname tipo ssh.progetto.app che passano per Cloudflare Access. La CI/CD si connette via SSH diretto.

SSH_PRIVATE_KEY

Deve essere la chiave privata completa incluse le righe -----BEGIN e -----END. Vedi la pagina Token e Secrets per come generarla.