Su Kinsta abbiamo a disposizione il client Git. In questo modo potete accedere via SSH e tirare giù la vostra repo Git da Github, Gitlab, Bitbucket, o da qualsiasi altra terza parte. L’accesso SSH è disponibile su tutti i piani di hosting di Kinsta.
Se state appena iniziando, assicuratevi di leggere la nostra guida su git vs Github.
Tuttavia, non abbiamo ancora rilasciato la funzione che vi permette di eseguire git push kinsta my_site
che vi permette di distribuire automaticamente. Ma è in arrivo. In ogni caso, si può sempre utilizzare facilmente Git su Kinsta, basta seguire le istruzioni qui sotto.
Come Utilizzare Git
È possibile creare in pochi minuti uno script di distribuzione che accede via SSH al vostro container Linux di Google Cloud e tirar giù l’ultima versione della vostra repo. I dettagli SSH per il vostro sito Kinsta si trovano nella pagina Info del vostro sito in MyKinsta.

Il comando per spostare il vostro repo nella vostra directory pubblica sarà simile a questo:
ssh [email protected] -p portnumber "cd /www/my_site/public && git pull"
Un altro modo per farlo è con WP Pusher. Lo utilizzano molti dei nostri clienti in quanto è molto semplice da utilizzare perché è necessario sapere come usare Git o SSH.
Austin ha un eccellente tutorial su come impostare la distribuzione automatica di Git con Kinsta utilizzando SSH.
Tra le alternative ricordiamo Beanstalk e DeployBot. Oppure potete seguire le istruzioni più dettagliate su Git che trovate qui sotto.
Clonare una Repo
Per clonare una repo:
git clone https://github.com/USER/REPO.git
Quando utilizzate Git per le repository private, utilizzate il vostro nome utente e la password di GitHub, che vengono quindi passati al server.
git clone https://username:[email protected]/USER/REPO.git
Se è attiva l’autenticazione a due fattori, è necessario utilizzare un token OAuth al posto delle credenziali standard. Seguite queste istruzioni su come creare una token OAuth.
Per clonare una repo con 2FA attivo:
git clone https://[email protected]/USER/REPO.git
Repo Privata
Se si tratta di una repo privata, al git pull devono essere aggiunte le credenziali:
Pull
ssh [email protected] -p portnumber "cd /www/my_site/public && git pull https://username:[email protected]/USER/REPO"
Repo Privata con 2FA
Se è attiva l’autenticazione a due fattori, è necessario utilizzare una token OAuth al posto delle credenziali standard. Seguite queste istruzioni per come creare una token OAuth. Per distribuire una repo con 2FA abilitato:
Pull
ssh [email protected] -p portnumber "cd /www/my_site/public && git pull https://[email protected]/USER/REPO"
Se il git pull di cui sopra non contiene le credenziali e il percorso HTTPS, tenterà di guardare localmente (piuttosto che alla repo ospitata) e di lanciare il messaggio: “Everything up-to-date”.
Gestire i Conflitti Riscontrati
Se si modifica qualcosa in remoto, i comandi di distribuzione di cui sopra verranno interrotti per i conflitti riscontrati. Cosa fare? Dipende da quale si vuole trattare come “King”. Nell’esempio qui sotto, tratteremo la repo Git come “King” e dimenticheremo i conflitti.
Forzare il Pull
Avviso. Il seguente comando sovrascrive le modifiche che esistono in remoto con ciò che è presente nella repo Git.
ssh [email protected] -p portnumber "cd /www/MY_SITE/public && git fetch https://[email protected]/USER/REPO.git && git reset --hard kinsta/mysite"
Se avete domande su come utilizzare Git su Kinsta, il nostro dipartimento di supporto sarà lieto di aiutarvi non appena sarete operativi.
Come Eseguire l’Auto Deploy su Kinsta con GitLab CI/CD (Avanzato)
Per gli utenti più avanzati, GitLab CI/CD (continuous integration/continuous delivery) può essere usato per spingere automaticamente le modifiche di codice al vostro sito Kinsta ogni volta che un nuovo commit viene realizzato verso la branch interessata. Questo metodo permette di spingere continuamente il codice nel vostro ambiente live su Kinsta senza sovrascrivere il database MySQL di WordPress.
Creare un Sito Kinsta (opzionale)
Ai fini di questo tutorial, creeremo un nuovo sito vuoto su Kinsta, e in seguito installeremo WordPress. Se avete già un sito su Kinsta, potete comunque seguire questo tutorial.
In MyKinsta, andate alla vostra pagina Sites e fate clic su Add Site in alto a destra. Selezionate l’opzione Don’t Install WordPress, date un nome al vostro sito, selezionate una località e fate clic sul pulsante Add Site per completare il processo di creazione del sito.

Creare un Progetto GitLab
Per iniziare, andate su GitLab e fate su Create a Project per creare un nuovo repository per il vostro sito Kinsta.

Selezionate l’opzione Blank Project e compilate i campi “Project Name” e “Project Slug”.

Per l’opzione Livello di visibilità, vi consigliamo di rendere il repository privato. Dal momento che questo repository può contenere plugin premium e codice del tema, lasciarlo accessibile su Internet pubblico permetterebbe a chiunque di scaricare i prodotti per i quali avete pagato.
Una volta terminata la configurazione del nuovo progetto, fate clic su Create Project per continuare.
Configurare le Chiavi SSH
Successivamente, sarà necessario aggiungere le chiavi SSH a GitLab e MyKinsta per consentire alle due piattaforme di comunicare tra loro. Cominciamo con l’aggiungere una chiave SSH in GitLab.
Aggiungere la chiave pubblica SSH a GitLab
Prima di tutto, entrate con SSH nel vostro ambiente live Kinsta, ed eseguite il comando cat
qui sotto per visualizzare la vostra chiave pubblica SSH.
cat ~/.ssh/id_rsa.pub
La vostra chiave pubblica dovrebbe essere simile a quella qui sotto. Tenete aperta la finestra del vostro terminale per il momento e tornate a GitLab nel vostro browser.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7zdjwd6UIUJ5t4YnXNi6yhdHgrvIV2xgjvJ3592wd1Hzmnta4dau7yOIxQDU7/oNIr6DIskuIUii5ruGi4YZpIwB/AWGrn/uWb+FXJFiQHMZq9rCFcqtZXT0fyzKiSNkblV4F1RaPQJRvxfSUsSQ3jJU3FX8CF1c4R40CiBKkSHM8uavVIIESzgIHRiWVxkL9F6SKzg8GeTctJaAa3W+q1F1T60OKYmzH3OLdA37ZNmkm1CYWa8SF0JjOszxOnPwhfQ49P5r+rftXRFLz/7hGJ8CnUyzErSiUdUKNknUAB+w4KEZshQSNuiken0+GKqIw83dWWSyjiJJigcyDez2s+3AqDLHPG45NoBEXuBXjPQ9C08hokVyKlbzd/P2qvcnzUT5S6zTuaYOW+50+fiXeYkJlEoYYxoGRVx6FFdFqWyJx5UyaDv7QY3iQH0qct1iq9XGXMhBxIecIAEPUwF8nOp15in8L+5UIFMiNnihztTAXysc+8xvVwbuRlQIeR/E= ansible-generated on fvj-kinstagit
Fate clic sul menu a tendina dell’icona dell’utente nell’angolo in alto a destra di GitLab e poi su Settings.

Nella pagina Settings, fate clic su SSH Keys nella barra laterale.

Incollate la vostra chiave pubblica SSH nel campo di testo. Il campo del titolo dovrebbe auto-popolarsi con un nome, ma sentitevi liberi di cambiarlo se volete. GitLab permette anche di impostare una data di scadenza per la chiave SSH. Questa opzione è utile se si invalidano e si ruotano le chiavi SSH come parte del protocollo di sicurezza dell’infrastruttura. Se non lo fate, sentitevi liberi di lasciare vuoto il campo Expires At.

Dopo aver controllato due volte la configurazione, fate clic su Add Key per finalizzare il processo.
Aggiungere la chiave pubblica SSH a MyKinsta
Ora che la vostra chiave pubblica SSH è stata consegnata a GitLab, dovrete aggiungere la stessa chiave a MyKinsta. In MyKinsta, fate clic sull’icona del vostro utente nell’angolo in basso a sinistra e poi su User Settings. Questo passo aggiunge la chiave pubblica Kinsta al file authorized_keys del vostro sito (scrivibile solo da root e da MyKinsta), e permetterà a GitLab di inserire la chiave pubblica SSH nel vostro sito per spingere le modifiche al codice.

Scorrete verso il basso e fate clic su Add SSH Key.

Nella finestra modale/pop-up, specificate un nome per la chiave SSH, incollate la chiave pubblica nel campo di testo e fate clic su Add SSH Key per finalizzare il processo.

Aggiungere la chiave privata SSH a GitLab
Successivamente, dovrete aggiungere la chiave privata SSH del vostro ambiente live Kinsta come variabile in GitLab. La chiave privata permetterà a GitLab di inserire SSH nel vostro sito Kinsta per spingere direttamente i cambiamenti di codice.
Per trovare la vostra chiave privata, eseguite il comando Terminal qui sotto nel vostro ambiente live Kinsta. Assicuratevi di non condividere la vostra chiave privata SSH al di fuori di GitLab.
cat ~/.ssh/id_rsa
In GitLab, fate sul progetto che avete creato in precedenza. Nella barra laterale, passate il mouse su “Settings” e fate clic su CI/CD.

Scorrete fino alla sezione Variables, fate clic sul pulsante Expand e poi su Add Variable. Usate SSH_PRIVATE_KEY
per il nome della chiave, incollate la chiave privata nel campo di testo e fate clic su Add Variable per continuare.
Dopo che la variabile è stata aggiunta, potrete vederla nelle impostazioni del vostro repository.

Clonare la Repo GitLab su MyKinsta
Ora che sono state aggiunte le necessarie chiavi SSH, potete clonare il repository di GitLab nell’ambiente live di Kinsta. In GitLab, navigate verso il vostro repository, fate clic sul pulsante blu Clone e copiate l’URL sotto Clone with SSH.

Poi, entrate con SSH nel vostro ambiente live di Kinsta e navigate verso la vostra directory home. Se non siete sicuri di come raggiungere la vostra directory home, usate il comando qui sotto.
cd ~/
Una volta nella directory home, eseguite il comando git clone
con l’URL copiato da GitLab.
git clone [your-repository-url-here]
Dopo aver clonato il repository, vedrete un avviso che dice “you appear to have cloned an empty repository”. Questo è un risultato normale perché il repo è vuoto al momento.

A Kinsta, la nostra configurazione Nginx serve contenuti dalla cartella ~/public. Così, vorrete cancellare la cartella ~/public corrente e rinominare la vostra cartella repo clonata in ~/public. Per farlo, eseguite i due comandi qui sotto.
rm -rf ~/public
mv ~/your-repo-folder-name ~/public
Configurare la Repo GitLab
Successivamente, usate il comando sottostante per navigare nella cartella ~/public.
cd ~/public
Eseguite i due comandi qui sotto per configurare il vostro repo GitLab. Assicuratevi di specificare un indirizzo email valido e un nome utente a vostra scelta.
git config --global user.email "[email protected]"
git config --global user.name "brian"
Installazione di WordPress con WP-CLI
Ora che il repo GitLab è stato clonato nel vostro ambiente live Kinsta e lo abbiamo configurato, installiamo WordPress. Potete installare WordPress manualmente scaricandolo da wordpress.org, oppure potete installarlo con WP-CLI. Per questo esempio, useremo WP-CLI per installare WordPress con il comando qui sotto nella cartella ~/public.
wp core download
Dopo aver installato WordPress, la vostra cartella ~/public dovrebbe avere questo aspetto.

Andate quindi alla pagina Domains in MyKinsta per il vostro sito e visitate il vostro Primary Domain.

Sarete accolti con il processo di installazione di WordPress, che dura cinque minuti. Se non siete sicuri di come impostare WordPress, abbiamo qui una guida approfondita.

Dopo l’installazione di WordPress, dovreste essere in grado di vedere il vostro nuovo sito WordPress visitando il vostro dominio principale.

Configurare la Pipeline GitLab CI/CD
Successivamente, sarà necessario impostare un file di configurazione speciale per istruire GitLab ad avviare le distribuzioni automatiche dopo l’aggiornamento del brand master del repo. Per farlo, navigate nella cartella ~/public del vostro ambiente live Kinsta e create un nuovo file chiamato .gitlab-ci.yml con il comando sottostante.
cd ~/public && touch .gitlab-ci.yml
Dopo la creazione del file, aggiungete il seguente testo al file. È possibile modificare il file con nano o vim in Terminal, oppure con un editor SFTP. Se usate un client SFTP, assicuratevi di abilitare i file nascosti per vedere il file .gitlab-ci.yml.
before_script:
- apt-get update -qq
- apt-get install -qq git
# Setup SSH deploy keys
- 'which ssh-agent || ( apt-get install -qq openssh-client )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh- '[[ -f /.dockerenv ]] && echo -e "Host *ntStrictHostKeyChecking nonn" > ~/.ssh/config'
deploy_live:
type: deploy
environment:
name: Live
url: your-primary-domain
script:
- ssh [email protected] -p port-number "cd public-root && git checkout main && git pull origin main && exit"
only:
- main
Assicuratevi di modificare i parametri dell’url
e dello script
nel blocco deploy_live
. Vorrete sostituire i valori in grassetto con le impostazioni del vostro sito dal cruscotto di MyKinsta.
- Sostituite your-domain con il dominio primario del vostro sito.
- Sostituite ssh [email protected] -p port-number con “SSH Terminal Command” in MyKinsta.
- Sostituite public root con il Path in MyKinsta.

L’unica only: - main
del file si riferisce al ramo del repository che innescherà il processo CI/CD di GitLab. Con questa configurazione, i push al main branch avvieranno un deployment nel vostro ambiente live Kinsta. Se volete specificare un altro branch per attivare il deploy, sentitevi liberi di cambiare la configurazione.
Se volete implementare una granularità aggiuntiva alla configurazione per contabilizzare un ambiente di staging, potete aggiungere un ulteriore blocco deploy_staging
con l’URL e i dettagli SSH per il vostro ambiente di staging Kinsta.
deploy_staging:
type: deploy
environment:
name: Staging
url: your-staging-domain
script:
- ssh [email protected] -p port-number "cd public-root && git checkout main && git pull origin staging && exit"
only:
- staging
Notate anche l’unica only: - staging
– questo significa che i push al brand di staging
avvieranno il processo CI/CD di GitLab.
Commit Iniziale a GitLab
Ora che WordPress e il file di configurazione di GitLab sono impostati, facciamo un primo commit su GitLab. Per farlo, creeremo una nuova branch chiamato v0.1, inizieremo a tracciare i file nel repo, faremo il commit delle modifiche e spingeremo le modifiche a GitLab sulla branch v0.1. Eseguite i comandi qui sotto da ~/public per attivare il commit iniziale.
git checkout -b v0.1
git add .
git commit -a -m 'Initial Commit'
git push origin v0.1
Se controllate il vostro repository in GitLab, ora vedrete i file del vostro commit iniziale.

Configurare l’Ambiente di Staging di Kinsta
Il passo successivo è quello di creare e configurare un ambiente di staging in MyKinsta in modo da avere un luogo sicuro per testare nuovi plugin, temi e codice senza impattare il vostro ambiente di produzione.

Entrate con SSH nell’ambiente di staging, ed eseguite il comando sottostante per controllare eventuali modifiche al codice.
cd ~/public && git status
Dovreste vedere un messaggio come quello qui sotto. Come potete vedere, la branch è quella v0.1 che avete creato in precedenza. Inoltre, il file wp-config.php è cambiato. Questo accade perché Kinsta aggiunge alcune linee aggiuntive a wp-config.php durante il push dal live allo staging.

Commit e Spinta delle Modifiche al Sito Live
Infine, facciamo alcune modifiche all’ambiente di staging e spingiamo un nuovo commit per l’ambiente live di Kinsta usando GitLab. Tenete presente che lo scopo di questo metodo è quello di bypassare la normale funzione “push to live” di Kinsta che sovrascrive anche il database di WordPress.
Per questo esempio, installiamo il plugin Yoast SEO usando WP-CLI con il comando sottostante.
cd ~/public && wp plugin install wordpress-seo
Dopo che il plugin SEO di Yoast è stato installato, eseguite i comandi qui sotto per fare un commit e spingere le modifiche alla branch v0.1.
git add .
git commit -a -m ‘Installed Yoast SEO plugin.’
git push origin v0.1
Infine, passiamo alla branch main, uniamo la v0.1 al main e spingiamo il main su GitLab con i comandi sottostanti. Questo farà sì che GitLab avvii un processo di distribuzione nel vostro ambiente live Kinsta a causa dell’unica only: - main
nel file di configurazione di GitLab.
git checkout main
git merge v0.1
git push origin main
In GitLab, andate su CI/CD > Jobs nella barra laterale del vostro repo, e vedrete il lavoro in corso. Questo job è GitLab che spinge il plugin Yoast SEO nel vostro ambiente live di Kinsta.

Dopo che il lavoro è finito, eseguite wp plugin list
sul vostro ambiente live Kinsta. Dovreste vedere wordpress-seo
, cioè il plugin Yoast SEO che è stato installato in precedenza nell’ambiente di staging.

Se sviluppate temi o plugin che girano su siti Kinsta, impostare l’auto deploy tramite GitLab CI/CD può aiutare a velocizzare il vostro flusso di lavoro. Questa configurazione vi permette di distribuire il codice sia dal vostro ambiente locale che dall’ambiente di staging di Kinsta senza dover sovrascrivere il database MySQL sul vostro sito di produzione live.