Come recuperare tutti i Token e i Secrets
Questa pagina spiega dove generare ogni credenziale richiesta dal progetto.
SSH_PRIVATE_KEY — Chiave SSH per il server GCP
Genera una nuova coppia di chiavi dedicata alla CI/CD (non usare la chiave personale):
ssh-keygen -t ed25519 -C "github-actions-deploy" -f ~/.ssh/rainty_deploy -N ""
Questo crea due file:
~/.ssh/rainty_deploy→ chiave privata (va in GitHub comeSSH_PRIVATE_KEY)~/.ssh/rainty_deploy.pub→ chiave pubblica (va sul server)
Aggiungi la chiave pubblica al server:
ssh-copy-id -i ~/.ssh/rainty_deploy.pub utente@<IP_SERVER>
# oppure manualmente:
cat ~/.ssh/rainty_deploy.pub >> ~/.ssh/authorized_keys
Copia la chiave privata in GitHub:
cat ~/.ssh/rainty_deploy
Copia l'intero output (incluso -----BEGIN OPENSSH PRIVATE KEY-----) e incollalo nel secret SSH_PRIVATE_KEY.
DOCKERHUB_TOKEN — Access Token DockerHub
- Vai su hub.docker.com → Account Settings → Security → Access Tokens
- Clicca New Access Token
- Nome:
github-actions-rainty - Permessi: Read, Write, Delete
- Copia il token generato (mostrato una sola volta)
Inseriscilo come secret DOCKERHUB_TOKEN in GitHub.
GH_TOKEN — Personal Access Token GitHub
Usato dal workflow per creare le release GitHub.
- Vai su github.com/settings/tokens → Generate new token (classic)
- Nome:
rainty-release - Scadenza: a scelta (o
No expiration) - Seleziona i permessi:
repo(accesso completo ai repository)
- Clicca Generate token e copia il valore
Inseriscilo come secret GH_TOKEN in GitHub.
MYSQL_ROOT_PASSWORD e MYSQL_PASSWORD
Genera password sicure casuali:
# Root password (usata solo internamente da Docker)
openssl rand -base64 32
# Password utente applicativo
openssl rand -base64 24
Salva entrambe in un password manager prima di inserirle in GitHub.
JWT_SECRET — Chiave firma JWT
Deve essere una stringa lunga e casuale:
openssl rand -base64 64
Inserisci il risultato come secret JWT_SECRET.
ACME_EMAIL — Email per Let's Encrypt
Usa un indirizzo email reale e accessibile. Let's Encrypt invia notifiche di scadenza certificato a questo indirizzo. Non richiede nessuna generazione — è solo un'email.
Riepilogo
| Secret/Variable | Dove si genera |
|---|---|
SSH_PRIVATE_KEY | ssh-keygen in locale |
DOCKERHUB_TOKEN | hub.docker.com → Account Settings → Access Tokens |
GH_TOKEN | github.com/settings/tokens |
MYSQL_ROOT_PASSWORD | openssl rand -base64 32 |
MYSQL_PASSWORD | openssl rand -base64 24 |
JWT_SECRET | openssl rand -base64 64 |
ACME_EMAIL | Email già esistente |
REGISTRY | Stesso valore di DOCKERHUB_USERNAME |
GCP_HOST | GCP Console → VM instances → IP esterno |
Tutti i secrets vengono mostrati una sola volta al momento della generazione. Salvali in un password manager (es. 1Password, Bitwarden) prima di inserirli in GitHub.