Passa al contenuto principale

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_deploychiave privata (va in GitHub come SSH_PRIVATE_KEY)
  • ~/.ssh/rainty_deploy.pubchiave 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

  1. Vai su hub.docker.comAccount Settings → Security → Access Tokens
  2. Clicca New Access Token
  3. Nome: github-actions-rainty
  4. Permessi: Read, Write, Delete
  5. 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.

  1. Vai su github.com/settings/tokensGenerate new token (classic)
  2. Nome: rainty-release
  3. Scadenza: a scelta (o No expiration)
  4. Seleziona i permessi:
    • repo (accesso completo ai repository)
  5. 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.


Secret/VariableDove si genera
SSH_PRIVATE_KEYssh-keygen in locale
DOCKERHUB_TOKENhub.docker.com → Account Settings → Access Tokens
GH_TOKENgithub.com/settings/tokens
MYSQL_ROOT_PASSWORDopenssl rand -base64 32
MYSQL_PASSWORDopenssl rand -base64 24
JWT_SECRETopenssl rand -base64 64
ACME_EMAILEmail già esistente
REGISTRYStesso valore di DOCKERHUB_USERNAME
GCP_HOSTGCP Console → VM instances → IP esterno
warning

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.