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.
Le Variables sono visibili nei log. I Secrets sono mascherati e non leggibili dopo l'inserimento.
Variables (non sensibili)
| Nome | Esempio | Descrizione |
|---|---|---|
DOCKERHUB_USERNAME | expovin | Username DockerHub per pull/push immagini |
GCP_HOST | 34.xxx.xxx.xxx | IP pubblico del server GCP (non hostname Cloudflare) |
GCP_USER | vincenzo.esposito | Utente SSH sul server GCP |
REGISTRY | expovin | Prefisso immagini Docker (uguale a DOCKERHUB_USERNAME) |
DOMAIN | rainty.app | Dominio principale del progetto |
ENV_PREFIX | test | Prefisso ambiente (es. test, live) |
CORS_ORIGIN | https://rainty.app | Origin permessa per CORS |
ACME_EMAIL | admin@rainty.app | Email per certificati Let's Encrypt (Traefik) |
MYSQL_HOST | mysql | Hostname MySQL interno Docker |
MYSQL_PORT | 3306 | Porta MySQL |
MYSQL_DATABASE | rainty | Nome database |
MYSQL_USER | rainty_user | Utente MySQL applicativo |
LOG_LEVEL | info | Livello di log (debug, info, warn, error) |
TIMEZONE | Europe/Rome | Timezone server |
ENABLE_DB_LOG | false | Abilita log query SQL |
JWT_EXPIRES_IN | 24h | Durata validità JWT |
REDIS_PATTERNS | * | Pattern chiavi Redis monitorate |
VITE_PROJECT_NAME | Rainty | Nome progetto per la UI |
COMPOSE_PROFILES | authservice,datahub,scheduler | Profili Docker Compose attivi |
Secrets (sensibili)
| Nome | Descrizione |
|---|---|
DOCKERHUB_TOKEN | Access token DockerHub per push immagini |
GH_TOKEN | Personal Access Token GitHub (per creare release) |
SSH_PRIVATE_KEY | Chiave privata SSH per accesso al server GCP |
MYSQL_ROOT_PASSWORD | Password root MySQL |
MYSQL_PASSWORD | Password utente MySQL applicativo |
JWT_SECRET | Chiave segreta per firma JWT |
Come inserire i valori
- Vai su GitHub → repository → Settings → Environments
- Crea o seleziona l'environment (es.
TEST) - Clicca Add variable per le variabili normali
- 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.