Găzduiți Ghost® pe un Managed VPS: publicația dumneavoastră, pe propriul server

A găzdui Ghost pe un Managed VPS înseamnă să vă publicați articolele, să vă strângeți membrii și să vă trimiteți newsletterele de pe o mașină a dumneavoastră, pe care echipele noastre o țin la zi și o supraveghează zi și noapte. Ghost este un software liber sub licență MIT. Acest ghid urmează documentația sa oficială: Ghost-CLI sau Docker Compose, MySQL, HTTPS, e-mailurile, backupurile și actualizările.

Simon Vasconcelos Lee Autor: Publicat la 9 noiembrie 2026Timp de citire: 13 minute

Toate ghidurile

Esențialul

  1. Licența MIT a Ghost permite folosirea lui liberă în firmă, cu păstrarea mențiunii de licență. Numele și logoul țin separat de politica de marcă a Ghost Foundation.
  2. Proiectul recomandă Ghost-CLI pe Ubuntu, cu Nginx, Node.js 22, MySQL 8 și cel puțin 1 GB de memorie. Metoda sa Docker Compose, în „preview”, adaugă analiza traficului web și ActivityPub găzduit pe propriul server.
  3. MySQL 8 este singura bază de date suportată în producție.
  4. Prevedeți două circuite de e-mailuri: un releu SMTP pentru e-mailurile tranzacționale, indispensabil, și Mailgun pentru newslettere, singurul serviciu de trimitere în masă suportat.
  5. Salvați baza și directorul content, apoi actualizați cu ghost update sau docker compose pull: proiectul publică actualizări în fiecare săptămână.

Ce face Ghost

Ghost este o platformă de publicare profesională și liberă, scrisă pentru Node.js. Ea reunește într-un singur loc ceea ce o publicație independentă asamblează adesea din mai multe instrumente.

Potrivit documentației, produsul are aceleași funcții și pe propriul server. Ceea ce îl înconjoară vă revine: trimiterea newsletterelor, analiza traficului web, un CDN și backupurile complete ale site-ului.

Licența MIT și marca

Ghost este publicat sub licența MIT. Ea permite utilizarea, copierea, modificarea, îmbinarea, publicarea, distribuirea, sublicențierea și vânzarea software-ului, cu o singură condiție: păstrarea mențiunii de copyright și a textului licenței în orice copie. Puteți deci rula Ghost în firmă, îl puteți adapta și publica cu el pentru clienții dumneavoastră, fără nicio licență de cumpărat.

Licența acoperă codul. Numele și logoul aparțin Ghost Foundation și țin de politica sa de marcă: citiți-o dacă construiți o ofertă în jurul software-ului. Ghost este o marcă înregistrată a Ghost Foundation.

This publication is independent of and not affiliated with, authorized, sponsored, or approved by Ghost Foundation. În română: această publicație este independentă de Ghost Foundation și nu este nici afiliată la aceasta, nici autorizată, sponsorizată sau aprobată de aceasta.

Ghost-CLI sau Docker Compose: două metode oficiale

Proiectul documentează două căi pentru producție. Ghost-CLI este instalarea pe care o recomandă oficial, iar Docker Compose este o „preview”, pe care o descrie ca fiind complet nouă. El indică și că se îndreaptă spre această unealtă Docker, în loc să facă Ghost-CLI să evolueze, și furnizează un asistent pentru a trece de la una la alta.

PunctGhost-CLIDocker Compose (preview)
SistemUbuntu 22.04, 24.04 sau 26.04Un server Linux cu Docker 20.10.13 sau mai recent
MemorieCel puțin 1 GBProiectul dă ca exemplu un server de 2 GB și 1 procesor
Server web și HTTPSNginx și un certificat Let’s Encrypt, instalate de Ghost-CLICaddy, într-un container, care se ocupă de TLS
Baza de dateMySQL 8.0 sau 8.4 instalat pe serverMySQL într-un container
Analiza traficului webIncompatibilăDisponibilă, cu un cont Tinybird
Rețea socială (ActivityPub)Serviciul găzduit de proiect, gratuit în limitele sale de utilizareAcelași serviciu implicit sau al dumneavoastră, pe propriul server

Înainte de a începe: domeniul și serverul

Faceți ca domeniul să indice spre server înaintea instalării: certificatul se instalează în timpul configurării. Pe un VPS Simafri, vizitatorii ajung pe porturile 80 și 443, sub numele de domeniu al serverului, cu înregistrări A și AAAA. Adresa site-ului se scrie întreagă, cu protocolul ei, precum https://example.com: o adresă IP provoacă erori.

Dincolo de memoria indicată mai sus, proiectul nu indică nici discul, nici sarcina necesare: dimensiunea depinde de traficul, de imaginile și de fișierele media ale dumneavoastră. Pe un Managed VPS, descrieți-ne publicația și vă recomandăm dimensiunea potrivită.

Instalarea Ghost cu Ghost-CLI pe Ubuntu

Ghost-CLI se folosește cu un utilizator care nu este root și al cărui nume nu este ghost, căci acest nume intră în conflict cu unealta. Creați-l din contul root, înlocuind user cu numele ales:

Terminal, ca root
adduser <user>
usermod -aG sudo <user>
su - <user>

Nginx și MySQL

Actualizați sistemul, instalați Nginx (1.9.5 minimum pentru SSL) și MySQL. Linia ufw deschide HTTP și HTTPS dacă acest firewall este activ:

Terminal
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx
sudo ufw allow 'Nginx Full'
sudo apt-get install mysql-server

Pe versiunile recente de Ubuntu, contul root MySQL se autentifică prin socket, lucru pe care Ghost nu îl suportă. Dați-i o parolă:

Terminal, apoi consola MySQL
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<your-new-root-password>';
FLUSH PRIVILEGES;
exit

Node.js și Ghost-CLI

Ghost cere Node.js 22: versiunile 20, 21, 23 și următoarele nu sunt suportate. Proiectul cere să-l instalați pentru întregul sistem, în felul acesta:

Terminal
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=22
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y
sudo npm install ghost-cli@latest -g

Lansarea instalării

Ghost se instalează în propriul director, cu un proprietar și drepturi precise. Înlocuiți sitename cu numele ales de dumneavoastră:

Terminal
sudo mkdir -p /var/www/sitename
sudo chown <user>:<user> /var/www/sitename
sudo chmod 775 /var/www/sitename
cd /var/www/sitename
ghost install

Comanda pune apoi întrebările ei, iar proiectul recomandă să răspundeți da la fiecare etapă propusă:

Site-ul răspunde atunci, iar https://example.com/ghost vă invită să creați contul proprietarului. Dacă instalarea este întreruptă, ghost setup reia configurarea; dacă eșuează, ghost uninstall curăță mai bine decât ștergerea directorului. ghost doctor verifică sistemul în orice moment.

Instalarea Ghost cu Docker Compose (preview)

Proiectul prezintă această metodă ca pe o „preview”: ea este complet nouă în ochii lui. Ea permite găzduirea pe propriul server a analizei traficului web și a ActivityPub.

Pe un server unde Docker este instalat, preluați unealta oficială în /opt/ghost și copiați cele două fișiere de exemplu ale ei:

Terminal
git clone https://github.com/TryGhost/ghost-docker.git /opt/ghost && cd /opt/ghost
cp .env.example .env
cp caddy/Caddyfile.example caddy/Caddyfile

În fișierul .env, completați aceste valori:

În caddy/Caddyfile, decomentați blocul care corespunde cazului dumneavoastră: redirecționarea de la www către domeniul simplu sau invers, ori un domeniu de administrare separat. Lansați apoi Ghost și terminați configurarea pe /ghost:

Terminal
docker compose pull
docker compose up -d

Analiza traficului web și ActivityPub

Analiza cere un cont Tinybird, serviciu extern. Din /opt/ghost, conectați-vă, implementați configurația lui și preluați tokenurile de lipit în .env, secțiunea „Tinybird configuration”:

Terminal
docker compose run --rm tinybird-login
docker compose run --rm tinybird-sync
docker compose run --rm tinybird-deploy
docker compose run --rm tinybird-login get-tokens

ActivityPub funcționează din prima cu serviciul găzduit de proiect, gratuit în limite de utilizare pe care le publică documentația sa. Pentru a-l găzdui pe al dumneavoastră, decomentați ACTIVITYPUB_TARGET=activitypub:8080. Activați apoi în .env profilul sau profilurile dorite, apoi relansați containerele:

.env
COMPOSE_PROFILES=analytics,activitypub
Terminal
docker compose pull
docker compose up -d

Pentru ActivityPub, proiectul cere să recreați și Ghost și Caddy, cu docker compose up -d --force-recreate ghost caddy.

Trecerea de la Ghost-CLI la Docker Compose

După clonare și configurare, bash scripts/migrate.sh copiază directorul content, importă baza în containerul MySQL și pornește Caddy în locul Nginx. El propune oprirea Nginx, ceea ce scoate site-ul offline: răspundeți nu dacă pe server rulează și alte site-uri. Nu șterge nicio dată. bash recovery_instructions.sh restabilește site-ul inițial dacă întrerupeți migrarea.

HTTPS și domeniul de administrare

Administrarea Ghost trebuie să treacă prin HTTPS, iar proiectul recomandă HTTPS pentru întregul site: fără el, identificatorii și parolele circulă în clar. Cu Docker Compose, Caddy se ocupă de asta. Cu Ghost-CLI, instalarea pune certificatul, iar o comandă o face și ulterior:

Terminal, în directorul site-ului
ghost setup ssl

Pentru a schimba adresa unui site instalat cu Ghost-CLI, ghost config url https://example.com actualizează configurația, iar ghost restart o aplică.

Proiectul sfătuiește și un domeniu de administrare separat, care reduce suprafața de atac. Calea rămâne /ghost/. Cu Ghost-CLI, el se declară în config.production.json:

config.production.json
"admin": {
  "url": "https://admin.example.com"
}

Cu Docker Compose, completați ADMIN_DOMAIN, decomentați blocul său din Caddyfile și rulați docker compose up -d --force-recreate ghost caddy. Acest domeniu are nevoie și el de înregistrările sale A și AAAA.

MySQL 8, baza de date de producție

MySQL 8 este singura bază de date pe care proiectul o suportă în producție. Ghost-CLI se instalează cu MySQL 8.0 sau 8.4, iar fișierul Compose furnizează o imagine MySQL 8.0.

E-mailurile și newsletterele

Ghost distinge două trimiteri, care nu trec pe același drum. Este cel mai important punct de setat după instalare.

TrimitereExempleCe o poartă
TranzacționalăInvitațiile echipei, parolele uitate, înscrierile și linkurile de conectare ale membrilor, codul de conectare de pe un dispozitiv nouConfigurația mail a Ghost, în SMTP
NewslettereArticolele trimise membrilor dumneavoastrăAPI-ul Mailgun, ale cărui chei se introduc în setările „Email newsletter”

Releul SMTP, pentru e-mailurile tranzacționale

Documentația clasează această configurație ca fiind necesară în producție. Ghost trimite și un cod prin e-mail când detectează o conectare de pe un dispozitiv nou: setați acest releu înainte de a vă invita echipa.

Pe un VPS Simafri, trimiterea trece printr-un releu SMTP autentificat, pe portul 587: adresa unui cont de e-mail pe care îl aveți deja sau Simafri Suite.

config.production.json (Ghost-CLI), apoi ghost restart
"mail": {
  "transport": "SMTP",
  "from": "'Acme Support' <support@example.com>",
  "options": {
    "host": "smtp.example.com",
    "port": 587,
    "secure": false,
    "requireTLS": true,
    "auth": {
      "user": "support@example.com",
      "pass": "1234567890"
    }
  }
}
.env (Docker Compose), secțiunea SMTP Email
mail__transport=SMTP
mail__options__host=smtp.example.com
mail__options__port=587
mail__options__secure=false
mail__options__requireTLS=true
mail__options__auth__user=support@example.com
mail__options__auth__pass=1234567890
mail__from="'Acme Support' <support@example.com>"
Terminal, după o modificare a fișierului .env
docker compose up -d --force-recreate ghost

Mailgun, pentru newslettere

Releul SMTP nu acoperă newsletterele. Potrivit documentației, trimiterea în masă nu se face prin SMTP, iar Mailgun este, în prezent, singurul serviciu de trimitere în masă pe care Ghost îl suportă. Vă creați contul Mailgun și introduceți cheile sale API în setările Ghost.

Dacă nu vă trimiteți articolele prin e-mail, nu aveți nevoie de niciun cont Mailgun: aceste setări se ignoră. Dacă preferați un alt instrument de newsletter, proiectul propune sincronizarea membrilor dumneavoastră către el, de exemplu cu Zapier sau cu ghidurile sale de integrare.

Backup și restaurare pentru Ghost

Ghost propune trei niveluri de copie, iar ele nu conțin același lucru. Pentru a reconstrui un site identic, proiectul cere salvarea directă a bazei și a directorului content.

MetodaCe conținePentru ce utilizare
ghost backup (Ghost-CLI)Un zip: conținut în JSON, membri în CSV, teme, imagini, fișiere și media, rute și redirecționăriPrecauția înainte de o actualizare
Exportul din administrareUn zip: conținut și setări, membri, statistici ale articolelor, teme, rute și redirecționări, la alegere. Fără comentarii, fără istoricul de activitate al membrilor, fără mediaMutarea conținutului către un alt site
Baza și directorul contentTotalitatea datelorReluarea după un dezastru sau o copie exactă

Exportul se găsește în „Settings”, „Advanced”, „Import/Export”, fila „Export”, butonul „All data”. Pentru copia completă, cu Ghost-CLI, contul MySQL și numele bazei de reluat se află în config.production.json:

Terminal, Ghost-CLI
mkdir -p ~/ghost-backups
mysqldump -u ghost_user -p ghost_production > ~/ghost-backups/ghost_backup.sql
cd /var/www/sitename
tar czf ~/ghost-backups/ghost_content_backup.tar.gz content/

Cu Docker Compose, unealta oficială păstrează conținutul în data/ghost. Dump-ul reia forma dată de imaginea MySQL, iar parola root se află deja în container. Păstrați și o copie a lui .env și a Caddyfile.

Terminal, Docker Compose
cd /opt/ghost
mkdir -p ~/ghost-backups
docker compose exec -T db sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" ghost' > ~/ghost-backups/ghost_backup.sql
tar czf ~/ghost-backups/ghost_content_backup.tar.gz data/ghost

Restaurarea

Terminal, Ghost-CLI
cd /var/www/sitename
ghost stop
mysql -u ghost_user -p ghost_production < ~/ghost-backups/ghost_backup.sql
tar xzf ~/ghost-backups/ghost_content_backup.tar.gz
sudo chown -R ghost:ghost content
ghost restart
Terminal, Docker Compose
cd /opt/ghost
docker compose stop ghost
docker compose exec -T db sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" ghost' < ~/ghost-backups/ghost_backup.sql
tar xzf ~/ghost-backups/ghost_content_backup.tar.gz
docker compose start ghost

Copiați aceste fișiere în afara serverului, cu rsync sau scp, și faceți o probă de restaurare pe o mașină de test. Dacă reluați de la un export cu membri plătitori, conectați același cont Stripe înainte de a vă importa membrii.

Actualizarea Ghost

Proiectul publică actualizări în fiecare săptămână și amintește că un server web public trebuie ținut la zi. Citiți notele de versiune, apoi rulați comanda metodei dumneavoastră.

Cu Ghost-CLI

Terminal, în directorul site-ului
ghost check-update
ghost backup
ghost update

Cu Docker Compose

Terminal
cd /opt/ghost
git pull
docker compose pull
docker compose up -d
docker image prune

Ultima linie, facultativă, elimină imaginile vechi. Lăsați GHOST_VERSION comentat în .env: fixarea unei versiuni blochează aceste comenzi de actualizare.

Securizarea și creșterea instanței dumneavoastră

Documentația dă mai multe setări pentru un server în producție:

Pentru sarcină, proiectul plasează un CDN și un strat de cache în fața Ghost. El precizează că clusteringul și sharding-ul nu sunt suportate: o singură instanță servește site-ul, iar cache-ul absoarbe traficul.

Cine ce face pe un Managed VPS

Găzduirea pe propriul server cere să țineți serverul pe lângă aplicație. Pe un Managed VPS, echipele noastre preiau serverul și vă urmăresc proactiv instanța; Ghost rămâne software-ul dumneavoastră, cu setările și datele sale.

SubiectEchipele noastreDumneavoastră
ServerulActualizări de sistem și de securitate, intervenții pe server incluseMomentul potrivit activității dumneavoastră
MonitorizareaServer urmărit 24 de ore din 24, 7 zile din 7, cu intervenție fără a vă aștepta apelulConținutul, membrii și abonamentele dumneavoastră
GhostUrmărire proactivă: erori, încetiniri și spațiu pe disc depistate, corectură recomandatăInstalarea, actualizările, setările, releul SMTP și contul Mailgun, pe care le aplicați dumneavoastră sau asistentul dumneavoastră AI
BackupurileÎn fiecare noapte, criptate și păstrate în afara mașinii; restaurare inclusăCererea de restaurare, când aveți nevoie de ea
MigrareaServerul dumneavoastră actual migrat, gratuitMomentul trecerii

Dacă preferați ca echipele noastre să intervină în aplicația însăși, această prestație se facturează la oră sau la preț fix, cu o ofertă comunicată înainte de intervenție.

Un server întreținut pentru site-ul dumneavoastră Ghost

Cu un Managed VPS Simafri, echipele noastre țin la zi serverul instanței dumneavoastră Ghost, îl monitorizează zi și noapte și intervin fără a vă aștepta apelul; ele vă urmăresc proactiv și instanța și vă recomandă corecturile utile, pe care le aplicați dumneavoastră sau asistentul dumneavoastră AI. Backupurile sunt criptate în fiecare noapte și păstrate în afara mașinii, restaurarea lor este inclusă, iar migrarea serverului actual este gratuită.

Descoperiți gama Managed VPS

Întrebări frecvente

Este Ghost gratuit pe propriul server?

Da. Ghost este sub licență MIT: îl puteți folosi în firmă și îl puteți adapta, păstrând mențiunea de licență. Rămân serviciile din jurul lui: serverul, releul de e-mailuri, Mailgun dacă trimiteți newslettere, Tinybird dacă doriți analiza sa de trafic.

Ce configurație trebuie pentru a găzdui Ghost?

Proiectul recomandă Ubuntu 22.04, 24.04 sau 26.04, Nginx, Node.js 22, MySQL 8.0 sau 8.4, systemd, cel puțin 1 GB de memorie, un domeniu și un utilizator care nu este root. Pentru Docker Compose, dă ca exemplu un server de 2 GB și 1 procesor.

Trebuie să instalez Ghost cu Ghost-CLI sau cu Docker?

Ghost-CLI este instalarea pe care proiectul o recomandă pentru producție. Docker Compose este o preview, singura care permite analiza traficului web și ActivityPub găzduit pe propriul server, iar proiectul spune că se îndreaptă spre această unealtă. Un asistent permite trecerea de la Ghost-CLI la Docker Compose.

Funcționează Ghost cu SQLite, MariaDB sau PostgreSQL?

În producție, MySQL 8 este singura bază de date suportată. Proiectul recomandă o reinstalare pe MySQL 8 de la SQLite și o migrare spre MySQL 8 de la MariaDB. Documentația sa nu prevede PostgreSQL.

Se pot trimite newsletterele Ghost prin SMTP?

Nu. SMTP servește e-mailurilor tranzacționale: invitații, parole, linkuri de conectare ale membrilor. Newsletterele cer API-ul Mailgun, singurul serviciu de trimitere în masă suportat. Fără trimiterea articolelor prin e-mail, nu este necesar niciun cont Mailgun.

Cum fac backup la un site Ghost găzduit pe propriul server?

Pentru o reluare completă, salvați baza MySQL cu mysqldump și directorul content cu tar. Comanda ghost backup produce un zip înainte de o actualizare. Exportul din administrare lasă deoparte comentariile, istoricul de activitate al membrilor și fișierele media.

Cum actualizez Ghost?

Cu Ghost-CLI, rulați ghost backup apoi ghost update în directorul site-ului și ghost update --rollback în caz de problemă. Cu Docker Compose, rulați git pull, docker compose pull și docker compose up -d în /opt/ghost.

Acoperă un Managed VPS și Ghost?

Un Managed VPS acoperă serverul: sistemul, securitatea, monitorizarea și backupurile. Echipele noastre vă urmăresc proactiv și instanța și vă recomandă corecturile utile, pe care le aplicați dumneavoastră. O intervenție în aplicație se facturează la oră sau la preț fix.

Surse și documentație oficială

Contactați-ne