Integrazione GitHub Actions
Per gli utenti avanzati, GitHub CI/CD (Continuous Integration/Continuous Delivery o Continuous Deployment) può distribuire automaticamente le modifiche al codice sul sito Kinsta ogni volta che un nuovo commit viene inviato al branch designato. Questa configurazione consente l’implementazione senza soluzione di continuità del codice dal tuo ambiente locale tramite SSH e GitHub actions, consentendo aggiornamenti continui al sito.
Per seguire questi passaggi, è necessario disporre di un sito esistente ospitato su Kinsta e di un account GitHub.
1. Scaricare un backup del proprio sito
È possibile scaricare un backup del proprio sito per configurare il repository GitHub e lavorarci localmente. In alternativa, puoi utilizzare DevKinsta per estrarre il tuo sito dal server Kinsta e lavorarci localmente.
In MyKinsta, vai su Siti > nome del sito > Backup > Scarica > Crea backup ora.

Quando il backup è pronto, clicca su Scarica, salvalo sul computer locale e decomprimi i file in una cartella.
2. Configurare il repository GitHub
Apri la cartella contenente i file del sito nel tuo editor di codice preferito. Per evitare di caricare file core di WordPress non necessari, upload multimediali o informazioni sensibili, aggiungi un file .gitignore alla directory principale del progetto. Puoi utilizzare un template standard di WordPress .gitignore, copiarne il contenuto e salvarlo per assicurarti che vengano tracciati solo i file essenziali.
Crea un repository GitHub e invia i file del sito su GitHub.
3. Configurare i GitHub Secrets per Kinsta
Per automatizzare le distribuzioni da GitHub a Kinsta, sono necessari i dettagli chiave SSH, inclusi nome utente, password, porta e indirizzo IP. Poiché si tratta di informazioni sensibili, è necessario conservarle in modo sicuro come segreti GitHub.
All’interno di GitHub, vai al repository, clicca su Settings > Secrets and variables > Actions > New repository secret.
Aggiungi i seguenti segreti utilizzando i dettagli dell’utente SFTP/SSH primario dalla pagina Info del sito in MyKinsta:
| Secret name | Segreto |
| KINSTA_SERVER_IP | Host, ad esempio 12.34.56.78 |
| KINSTA_USERNAME | Nome utente, ad esempio kinstahelp |
| PASSWORD | Password |
| PORTA | Porta, ad esempio 12345 |

4. Generare una chiave SSH sul server Kinsta
Apri un nuovo terminale ed esegui l’SSH sul server Kinsta utilizzando il comando terminale SSH dalla pagina Info del sito in MyKinsta.

Inserisci la password del sito, quindi genera una nuova chiave SSH utilizzando il seguente comando, sostituendo [email protected] con il tuo indirizzo e-mail:
ssh-keygen -t rsa -b 4096 -C “[email protected]”Premi Invio per salvare la chiave nella posizione predefinita e lascia vuoto il campo della passphrase quando richiesto.

5. Aggiungere la chiave SSH a GitHub
Accedi al contenuto del file della chiave pubblica (ad esempio, ~/.ssh/id_rsa.pub), con il seguente comando:
cat ~/.ssh/id_rsa.pubIn GitHub, vai su Settings > SSH and GPG keys > New SSH Key, inserisci un titolo (ad esempio, “Chiave server Kinsta”), assicurati che il Key type sia Authentication Key, incolla la chiave pubblica in Key e fai clic su Add SSH Key. Se sei membro di un’organizzazione che utilizza chiavi di distribuzione, devi aggiungere la tua chiave SSH come chiave di distribuzione. Per maggiori dettagli, consulta la documentazione GitHub sulle chiavi di distribuzione.
6. Configurare Git per utilizzare SSH sul server Kinsta
In MyKinsta, nella pagina Info, copia il Percorso da Dettagli ambiente.

Nel terminale, naviga nella directory live del tuo sito con il seguente comando, sostituendo /www/your-site/public con il percorso copiato da MyKinsta.
cd /www/tuo-sito/publicInizializza la directory come repository Git e imposta l’URL remoto per utilizzare SSH con il seguente comando, sostituendo your-username e your-repo con le tue credenziali git e il tuo repository:
git init
git remote add origin [email protected]:your-username/your-repo.gitVerifica che la configurazione SSH funzioni eseguendo il seguente comando:
ssh -T [email protected]Dovresti vedere un messaggio simile a: “Hi your-username! You’ve successfully authenticated, but GitHub does not provide shell access”. Il tuo server Kinsta è ora pronto per ricevere e distribuire gli aggiornamenti da GitHub direttamente tramite GitHub Actions.
7. Creare il flusso di lavoro GitHub Actions
Questo flusso di lavoro distribuisce automaticamente le modifiche a Kinsta ogni volta che si esegue il push sul branch main. Per automatizzare la distribuzione, è necessario definire come avverrà la distribuzione utilizzando un file YAML.
Nel tuo repository GitHub, crea una nuova directory chiamata .github/workflows all’interno di questa directory, crea un nuovo file chiamato deploy.yml e aggiungi il seguente contenuto al file, sostituendo your-site con il nome della cartella dal percorso sul tuo sito Kinsta:
name: Deploy to Kinsta
on:
push:
branches:
- main # Trigger the workflow only when changes are pushed to the main branch
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# Setup Node.js (only if needed for build tasks)
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
# Checkout the latest code from the GitHub repository
- name: Checkout code
uses: actions/[email protected]
# Deploy to Kinsta via SSH
- name: Deploy via SSH
uses: appleboy/[email protected]
with:
host: ${{ secrets.KINSTA_SERVER_IP }}
username: ${{ secrets.KINSTA_USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }} # Optional, default is 22
script: |
# Navigate to the live site directory
cd /www/your-site/public
# Pull the latest changes from the GitHub repository
git fetch origin main
git reset --hard origin/main # Ensure the live site matches the latest main branchQuesto flusso di lavoro esegue le seguenti operazioni:
- Trigger. Il flusso di lavoro viene attivato ogni volta che il codice viene inviato al branch
maindel repository GitHub. - Job. Il flusso di lavoro contiene un
jobchiamatodeploy, che viene eseguito su una macchina virtuale Ubuntu (ubuntu-latest). - Checkout del codice. Utilizza l’azione
actions/[email protected]per recuperare il codice più recente dal repository GitHub. - Distribuzione su Kinsta tramite SSH:
- Il plugin
appleboy/ssh-actionstabilisce una connessione SSH con il server Kinsta utilizzando i segreti memorizzati in GitHub (host, nome utente, password e, facoltativamente, la porta). Lo script all’interno di questo passaggio esegue i seguenti comandi: - Comandi di distribuzione:
cd /www/your-site/private. Naviga nella directory live in cui è ospitato WordPress.git fetch origin main. Recupera le ultime modifiche dal branchmainnel tuo repository GitHub.git reset --hard origin/main. Aggiorna il sito live con l’ultimo codice dal branch.
- Il plugin
8. Testare il flusso di lavoro
Una volta impostato il flusso di lavoro, è possibile testarlo inviando una piccola modifica al branch main del repository GitHub. Ogni volta che si invia una modifica, GitHub Actions attiva automaticamente la distribuzione, recuperando l’ultima versione del codice e distribuendola sul sito live su Kinsta.
Puoi monitorare lo stato della tua distribuzione andando alla scheda Actions nel tuo repository GitHub. Se il flusso di lavoro incontra degli errori, vedrai dei log dettagliati che ti aiuteranno a risolvere i problemi.