Ghost è una piattaforma di blog open source che sta guadagnando popolarità tra gli sviluppatori e gli utenti ordinari dalla sua versione del 2013. Si concentra su contenuti e blog . La cosa più interessante di Ghost è il suo design semplice, pulito e reattivo. Puoi scrivere i post del tuo blog da un telefono cellulare. Il contenuto per Ghost è scritto usando il linguaggio Markdown. Ghost è perfetto per singoli o piccoli gruppi di scrittori.
In questa guida installeremo e distribuiremo un blog Ghost sicuro su un Fedora 25 VPS usando Let's Encrypt , Certbot , Node.js , Nginx e PM2 .
Requisiti
- Istanza del server Fedora 25 con almeno 1 GB di RAM .
- Probabilmente dovrai aprire la porta 2368 con
semanage port -a -t http_port_t -p tcp 2368.
Crittografiamo
Prima di iniziare questo passaggio, assicurati di aver impostato i record DNS per il tuo dominio.
Utilizzeremo Let's Encrypt CA e il client Certbot di EFF per ottenere il certificato TLS per il nostro blog Ghost. Non dimenticare di sostituire tutte le istanze di example.comcon il tuo nome di dominio.
-
Sistema di aggiornamento:
dnf check-update || dnf upgrade -y
-
Installa gli strumenti necessari:
dnf install @development-tools -y
-
Installa Certbot (aka client Let's Encrypt):
dnf install certbot -y
-
Controlla la versione di Certbot:
certbot --version
# certbot 0.12.0
-
Ottieni un certificato usando la modalità standalone ”:
certbot certonly --standalone --domains example.com,www.example.com --email john.doe@example.com --agree-tos --rsa-key-size 2048
Dopo aver eseguito i passaggi precedenti, il certificato e la chiave privata saranno nella /etc/letsencrypt/live/example.comdirectory.
Installa NodeJS
Ghost attualmente supporta solo le versioni Node 0.12.x , 4.2+ e 6.9+ .
Installeremo la versione supportata per Ghost che è v6 Boron LTSal momento della stesura di questo documento.
-
Scarica e installa l'ultima versione LTS di Node.js:
dnf install nodejs -y
-
Controlla la versione di Node e NPM:
node -v && npm -v
# v6.10.2
# 3.10.10
Installa Nginx
-
Scarica e installa Nginx:
dnf install nginx -y
-
Controlla la versione di Nginx:
nginx -v
# nginx version: nginx/1.10.2
-
Avviare e abilitare il servizio Nginx:
systemctl start nginx.service && systemctl enable nginx.service
-
Configura Nginx come proxy inverso:
vi /etc/nginx/conf.d/ghost.conf
-
Incolla quanto segue in /etc/nginx/conf.d/ghost.conf:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2368;
}
}
-
Controlla la sintassi di Nginx:
nginx -t
-
Ricarica la configurazione di Nginx:
systemctl reload nginx.service
Installa Ghost
Se desideri ospitare più blog Ghost sullo stesso VPS , ogni istanza Ghost deve essere in esecuzione su una porta separata.
-
Crea webrootdirectory:
mkdir -p /var/www/
-
Crea un nuovo utente fantasma:
useradd -c "Ghost Application" ghost
-
Scarica Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.8/Ghost-0.11.8.zip -o ghost.zip
-
Decomprimi Ghost:
unzip -uo ghost.zip -d /var/www/ghost
rm -f ghost.zip
-
Vai a Webroot:
cd /var/www/ghost
-
Modifica la proprietà della directory webroot:
chown -R ghost:ghost .
-
Passa al nuovo utente fantasma:
su - ghost
-
Vai a Webroot:
cd /var/www/ghost
-
Installa Ghost:
npm install --production
-
Configura Ghost cambiando urle mailproprietà productiondell'oggetto all'interno del config.jsfile:
cp config.example.js config.js
vi config.js
var path = require('path'),
config;
config = {
// ### Production
// When running Ghost in the wild, use the production environment.
// Configure your URL and mail settings here
production: {
url: 'https://example.com',
mail: {
options: {
service: '',
auth: {
user: '',
pass: ''
}
}
},
. . .
. . .
},
}
. . .
. . .
NOTA : è necessario configurare mailanche. Consulta la documentazione ufficiale di Ghost su come farlo.
-
Avvia Ghost:
npm start --production
Ghost ora funzionerà. Sia il front-end del blog che l'interfaccia di amministrazione sono protetti con HTTPS e anche HTTP / 2 funziona. È possibile aprire il browser e visitare il sito all'indirizzo https://example.com. Non dimenticare di sostituire example.comcon il tuo nome di dominio.
-
Chiudi il processo Ghost premendo CTRL+ Ced esci da utente fantasma di nuovo all'utente root:
exit
Installa PM2
Se chiudi la sessione terminale con il tuo VPS , anche il tuo blog diminuirà. Questo non è buono. Per evitare ciò, useremo il gestore dei processi PM2 . Manterrà il nostro blog attivo 24/7.
-
Installa l'ultima versione stabile del gestore processi PM2:
npm install -g pm2@latest
-
Controlla la versione PM2:
pm2 -v
# 2.4.6
-
Passa di nuovo all'utente fantasma:
su - ghost
-
Imposta NODE_ENVla variabile d'ambiente su produzione:
echo "export NODE_ENV=production" >> ~/.bashrc && source ~/.bashrc
-
Avvia (daemonize) l'applicazione Ghost con PM2:
pm2 start /var/www/ghost/index.js --name "Ghost Blog"
-
Passare a https://example.com/ghost/e creare l'utente amministratore Ghost. Fallo il prima possibile.
Conclusione
Questo è tutto. Ora abbiamo un blog Ghost completamente funzionale. Se vuoi cambiare il tema Ghost predefinito chiamato Casper in uno personalizzato, puoi semplicemente scaricare e decomprimere il tema nella /var/www/ghost/content/themescartella e selezionarlo tramite l'interfaccia di amministrazione Ghost, situata in https://example.com/ghost.