Mitināt Ghost® Managed VPS serverī: jūsu publikācija jūsu serverī

Mitināt Ghost Managed VPS serverī nozīmē publicēt savus rakstus, apvienot dalībniekus un sūtīt jaunumu vēstules no savas mašīnas, ko mūsu komandas uztur atjauninātu un uzrauga dienu un nakti. Ghost ir atvērtā koda programmatūra ar MIT licenci. Šis ceļvedis seko tā oficiālajai dokumentācijai: Ghost-CLI vai Docker Compose, MySQL, HTTPS, e-pasti, rezerves kopijas un atjauninājumi.

Simon Vasconcelos Lee Autors: Publicēts 2026. gada 9. novembrīLasīšanas laiks: 13 minūtes

Visi ceļveži

Galvenais

  1. Ghost MIT licence ļauj to brīvi izmantot uzņēmumā, saglabājot licences norādi. Nosaukums un logotips atsevišķi ir pakļauti Ghost Foundation preču zīmju politikai.
  2. Projekts iesaka Ghost-CLI uz Ubuntu, ar Nginx, Node.js 22, MySQL 8 un vismaz 1 GB atmiņas. Tā Docker Compose metode, «preview» statusā, pievieno tīmekļa analītiku un pašmitinātu ActivityPub.
  3. MySQL 8 ir vienīgā datubāze, ko produkcijā atbalsta.
  4. Paredziet divas e-pastu ķēdes: SMTP releju darījumu e-pastiem, kas ir obligāts, un Mailgun jaunumu vēstulēm, vienīgo atbalstīto masveida sūtīšanas pakalpojumu.
  5. Veidojiet datubāzes un mapes content rezerves kopiju, pēc tam atjauniniet ar ghost update vai docker compose pull: projekts publicē atjauninājumus katru nedēļu.

Ko dara Ghost

Ghost ir profesionāla un atvērta publicēšanas platforma, uzrakstīta Node.js videi. Tā vienuviet apvieno to, ko neatkarīga publikācija bieži saliek no vairākiem rīkiem.

Saskaņā ar dokumentāciju produktam ir tās pašas funkcijas arī mitināšanā savā serverī. Tas, kas ap to, paliek jums: jaunumu vēstuļu sūtīšana, tīmekļa analītika, CDN un pilnas vietnes rezerves kopijas.

MIT licence un preču zīme

Ghost tiek izplatīts ar MIT licenci. Tā atļauj programmatūru izmantot, kopēt, mainīt, apvienot, publicēt, izplatīt, apakšlicencēt un pārdot ar vienu nosacījumu: katrā kopijā saglabāt autortiesību norādi un licences tekstu. Tāpēc Ghost varat darbināt uzņēmumā, pielāgot un publicēt tajā saviem klientiem, nepērkot nekādu licenci.

Licence aptver kodu. Nosaukums un logotips pieder Ghost Foundation un ir pakļauti tās preču zīmju politikai: izlasiet to, ja veidojat piedāvājumu ap programmatūru. Ghost ir Ghost Foundation reģistrēta preču zīme.

This publication is independent of and not affiliated with, authorized, sponsored, or approved by Ghost Foundation. Latviski: šī publikācija ir neatkarīga no Ghost Foundation un nav ne saistīta ar to, ne tās atļauta, ne sponsorēta, ne apstiprināta.

Ghost-CLI vai Docker Compose: divas oficiālās metodes

Projekts dokumentē divus ceļus produkcijai. Ghost-CLI ir instalācija, ko tas oficiāli iesaka, bet Docker Compose ir «preview», ko tas sauc par pavisam jaunu. Tas norāda arī, ka virzās uz šo Docker rīku komplektu, nevis attīsta Ghost-CLI, un nodrošina palīgu pārejai no viena uz otru.

PunktsGhost-CLIDocker Compose (preview)
SistēmaUbuntu 22.04, 24.04 vai 26.04Linux serveris ar Docker 20.10.13 vai jaunāku
AtmiņaVismaz 1 GBProjekts kā piemēru min serveri ar 2 GB un 1 procesoru
Tīmekļa serveris un HTTPSNginx un Let’s Encrypt sertifikāts, ko uzstāda Ghost-CLICaddy konteinerā, kas apstrādā TLS
DatubāzeMySQL 8.0 vai 8.4, uzstādīts serverīMySQL konteinerā
Tīmekļa analītikaNav saderīgaPieejama, ar Tinybird kontu
Sociālais tīkls (ActivityPub)Projekta mitinātais pakalpojums, bez maksas savu lietojuma ierobežojumu ietvarosTas pats pakalpojums pēc noklusējuma vai jūsu pašu, mitināts savā serverī

Pirms sākat: domēns un serveris

Pirms instalēšanas novirziet domēnu uz serveri: sertifikāts tiek uzstādīts iestatīšanas laikā. Simafri VPS serverī apmeklētāji nonāk uz portiem 80 un 443, ar servera domēna vārdu, ar A un AAAA ierakstiem. Vietnes adrese jāraksta pilnībā, ar protokolu, piemēram, https://example.com: IP adrese izraisa kļūdas.

Papildus augstāk norādītajai atmiņai projekts nenosauc ne disku, ne slodzi: izmērs ir atkarīgs no jūsu trafika, attēliem un medijiem. Ar Managed VPS aprakstiet mums savu publikāciju, un mēs jums iesakām piemērotu izmēru.

Ghost uzstādīšana ar Ghost-CLI uz Ubuntu

Ghost-CLI lieto ar lietotāju, kas nav root un kura vārds nav ghost, jo šis vārds konfliktē ar rīku. Izveidojiet to no root konta, aizstājot user ar izvēlēto vārdu:

Terminālis, kā root
adduser <user>
usermod -aG sudo <user>
su - <user>

Nginx un MySQL

Atjauniniet sistēmu, uzstādiet Nginx (SSL vajadzībām vismaz 1.9.5) un MySQL. Rinda ufw atver HTTP un HTTPS, ja šis ugunsmūris ir aktīvs:

Terminālis
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx
sudo ufw allow 'Nginx Full'
sudo apt-get install mysql-server

Jaunākajās Ubuntu versijās MySQL root konts autentificējas ar ligzdu, ko Ghost neatbalsta. Iestatiet tam paroli:

Terminālis, pēc tam MySQL konsole
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<your-new-root-password>';
FLUSH PRIVILEGES;
exit

Node.js un Ghost-CLI

Ghost prasa Node.js 22: versijas 20, 21, 23 un jaunākas netiek atbalstītas. Projekts prasa to uzstādīt visai sistēmai šādi:

Terminālis
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

Instalēšanas palaišana

Ghost tiek uzstādīts savā mapē, ar konkrētu īpašnieku un tiesībām. Aizstājiet sitename ar sev tīkamu nosaukumu:

Terminālis
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

Komanda tad uzdod savus jautājumus, un projekts iesaka katrā piedāvātajā solī atbildēt jā:

Vietne tad atbild, un https://example.com/ghost aicina izveidot īpašnieka kontu. Ja instalēšana tiek pārtraukta, ghost setup turpina konfigurēšanu; ja tā neizdodas, ghost uninstall notīra labāk nekā mapes dzēšana. ghost doctor jebkurā laikā pārbauda sistēmu.

Ghost uzstādīšana ar Docker Compose (preview)

Projekts šo metodi pasniedz kā «preview»: tā viņu acīs ir pavisam jauna. Tieši ar to var mitināt savā serverī tīmekļa analītiku un ActivityPub.

Serverī, kur uzstādīts Docker, iegūstiet oficiālo rīku komplektu mapē /opt/ghost un nokopējiet tā divus piemēra failus:

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

Failā .env norādiet šīs vērtības:

Failā caddy/Caddyfile atkomentējiet bloku, kas atbilst jūsu gadījumam: novirzīšana no www uz tukšo domēnu vai otrādi, vai atsevišķs administrēšanas domēns. Pēc tam palaidiet Ghost un pabeidziet iestatīšanu adresē /ghost:

Terminālis
docker compose pull
docker compose up -d

Tīmekļa analītika un ActivityPub

Analītikai vajadzīgs Tinybird konts, ārējs pakalpojums. No mapes /opt/ghost pieslēdzieties, izvietojiet tā konfigurāciju un iegūstiet marķierus, ko ielīmēt failā .env, sadaļā «Tinybird configuration»:

Terminālis
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 darbojas uzreiz ar projekta mitināto pakalpojumu, kas ir bez maksas lietojuma ierobežojumu ietvaros, kurus publicē tā dokumentācija. Lai mitinātu savu, atkomentējiet ACTIVITYPUB_TARGET=activitypub:8080. Pēc tam failā .env ieslēdziet vajadzīgo profilu vai profilus un restartējiet konteinerus:

.env
COMPOSE_PROFILES=analytics,activitypub
Terminālis
docker compose pull
docker compose up -d

ActivityPub gadījumā projekts prasa no jauna izveidot arī Ghost un Caddy, ar docker compose up -d --force-recreate ghost caddy.

Pāreja no Ghost-CLI uz Docker Compose

Pēc klonēšanas un konfigurēšanas bash scripts/migrate.sh nokopē mapi content, importē datubāzi MySQL konteinerā un startē Caddy Nginx vietā. Tas piedāvā apturēt Nginx, kas vietni padara nepieejamu: atbildiet nē, ja serverī darbojas citas vietnes. Tas neizdzēš nekādus datus. bash recovery_instructions.sh atjauno sākotnējo vietni, ja pārtraucat migrāciju.

HTTPS un administrēšanas domēns

Ghost administrēšanai jānotiek caur HTTPS, un projekts iesaka HTTPS visai vietnei: bez tā identifikatori un paroles ceļo skaidrā tekstā. Ar Docker Compose par to rūpējas Caddy. Ar Ghost-CLI sertifikātu uzstāda instalēšana, un to var izdarīt arī vēlāk ar komandu:

Terminālis, vietnes mapē
ghost setup ssl

Lai mainītu ar Ghost-CLI uzstādītas vietnes adresi, ghost config url https://example.com atjaunina konfigurāciju, bet ghost restart to piemēro.

Projekts iesaka arī atsevišķu administrēšanas domēnu, kas samazina uzbrukuma virsmu. Ceļš paliek /ghost/. Ghost-CLI pusē to deklarē failā config.production.json:

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

Docker Compose pusē norādiet ADMIN_DOMAIN, atkomentējiet tā bloku Caddyfile un palaidiet docker compose up -d --force-recreate ghost caddy. Arī šim domēnam vajadzīgi A un AAAA ieraksti.

MySQL 8, produkcijas datubāze

MySQL 8 ir vienīgā datubāze, ko projekts atbalsta produkcijā. Ghost-CLI uzstādās ar MySQL 8.0 vai 8.4, un Compose fails nodrošina MySQL 8.0 attēlu.

E-pasti un jaunumu vēstules

Ghost izšķir divus sūtījumus, kas neiet pa vienu un to pašu ceļu. Tas ir svarīgākais, kas jāiestata pēc instalēšanas.

SūtījumsPiemēriKas to nodrošina
DarījumuKomandas ielūgumi, aizmirstas paroles, dalībnieku reģistrācijas un pieteikšanās saites, pieteikšanās kods no jaunas ierīcesGhost konfigurācija mail, ar SMTP
Jaunumu vēstulesRaksti, kas nosūtīti jūsu dalībniekiemMailgun API, kura atslēgas ievada iestatījumos «Email newsletter»

SMTP relejs darījumu e-pastiem

Dokumentācija šo konfigurāciju klasificē kā obligātu produkcijā. Ghost sūta e-pastā arī kodu, kad konstatē pieteikšanos no jaunas ierīces: iestatiet šo releju, pirms ielūdzat savu komandu.

Simafri VPS serverī sūtīšana notiek caur autentificētu SMTP releju, izmantojot portu 587: ar jau esoša pasta konta adresi vai Simafri Suite.

config.production.json (Ghost-CLI), pēc tam 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), sadaļa 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>"
Terminālis, pēc faila .env maiņas
docker compose up -d --force-recreate ghost

Mailgun jaunumu vēstulēm

SMTP relejs jaunumu vēstules neaptver. Saskaņā ar dokumentāciju masveida sūtīšana nenotiek ar SMTP, un Mailgun līdz šim ir vienīgais masveida sūtīšanas pakalpojums, ko Ghost atbalsta. Jūs izveidojat savu Mailgun kontu un ievadāt tā API atslēgas Ghost iestatījumos.

Ja savus rakstus nesūtāt pa e-pastu, jums nav vajadzīgs neviens Mailgun konts: šos iestatījumus var ignorēt. Ja dodat priekšroku citam jaunumu vēstuļu rīkam, projekts piedāvā sinhronizēt jūsu dalībniekus uz to, piemēram, ar Zapier vai tā integrācijas ceļvežiem.

Ghost rezerves kopijas un atjaunošana

Ghost piedāvā trīs kopiju līmeņus, un tie nesatur vienu un to pašu. Lai atjaunotu vietni identisku, projekts prasa tieši veidot datubāzes un mapes content rezerves kopiju.

MetodeKo tā saturKādam lietojumam
ghost backup (Ghost-CLI)Zip: saturs JSON formātā, dalībnieki CSV formātā, tēmas, attēli, faili un mediji, maršruti un novirzīšanasPiesardzība pirms atjauninājuma
Eksports no administrēšanasZip: saturs un iestatījumi, dalībnieki, rakstu statistika, tēmas, maršruti un novirzīšanas, pēc izvēles. Bez komentāriem, bez dalībnieku aktivitātes vēstures, bez medijiemSatura pārcelšana uz citu vietni
Datubāze un mape contentVisi datiAtkopšana pēc avārijas vai precīza kopija

Eksports atrodas sadaļā «Settings», «Advanced», «Import/Export», cilnē «Export», pogā «All data». Pilnai kopijai ar Ghost-CLI MySQL konts un datubāzes nosaukums, kas jāpārņem, ir failā config.production.json:

Terminālis, 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/

Ar Docker Compose oficiālais rīku komplekts glabā saturu mapē data/ghost. Dump pārņem MySQL attēla doto formu, un root parole jau ir konteinerā. Glabājiet arī .env un Caddyfile kopiju.

Terminālis, 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

Atjaunošana

Terminālis, 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
Terminālis, 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

Nokopējiet šos failus ārpus servera ar rsync vai scp un veiciet atjaunošanas mēģinājumu uz testa mašīnas. Ja sākat no eksporta ar maksas dalībniekiem, pieslēdziet to pašu Stripe kontu, pirms importējat savus dalībniekus.

Ghost atjaunināšana

Projekts publicē atjauninājumus katru nedēļu un atgādina, ka publiskam tīmekļa serverim jāpaliek atjauninātam. Izlasiet laidiena piezīmes, pēc tam palaidiet savas metodes komandu.

Ar Ghost-CLI

Terminālis, vietnes mapē
ghost check-update
ghost backup
ghost update

Ar Docker Compose

Terminālis
cd /opt/ghost
git pull
docker compose pull
docker compose up -d
docker image prune

Pēdējā rinda, neobligāta, noņem vecos attēlus. Atstājiet GHOST_VERSION failā .env iekomentētu: versijas fiksēšana bloķē šīs atjaunināšanas komandas.

Instances nostiprināšana un izaugsme

Dokumentācija dod vairākus iestatījumus produkcijas serverim:

Slodzei projekts pirms Ghost novieto CDN un kešatmiņas slāni. Tas precizē, ka klasterizācija un sharding netiek atbalstīti: vietni apkalpo viena instance, un kešatmiņa uzņem trafiku.

Kurš ko dara Managed VPS serverī

Mitināšana savā serverī prasa uzturēt serveri papildus lietojumprogrammai. Ar Managed VPS mūsu komandas uzņemas serveri un proaktīvi seko jūsu instancei; Ghost paliek jūsu programmatūra ar saviem iestatījumiem un datiem.

TematsMūsu komandasJūs
ServerisSistēmas un drošības atjauninājumi, ieskaitot iejaukšanos serverīBrīdis, kas der jūsu darbam
UzraudzībaServeris tiek uzraudzīts 24/7, iejaucoties, negaidot jūsu zvanuJūsu saturs, dalībnieki un abonementi
GhostProaktīva sekošana: kļūdas, palēninājumi un diska vieta tiek pamanīti, labojums tiek ieteiktsTā uzstādīšana, atjauninājumi, iestatījumi, SMTP relejs un Mailgun konts, ko ieviešat jūs vai jūsu MI asistents
Rezerves kopijasKatru nakti, šifrētas un glabātas ārpus mašīnas; atjaunošana iekļautaAtjaunošanas pieprasījums, kad tas vajadzīgs
MigrācijaJūsu pašreizējā servera migrācija, bez maksasPārslēgšanās brīdis

Ja vēlaties, lai mūsu komandas iejaucas pašā lietojumprogrammā, šis pakalpojums tiek rēķināts par stundu vai par fiksētu summu, ar novērtējumu, kas paziņots pirms iejaukšanās.

Serveris, ko uzturam jūsu Ghost vietnei

Ar Simafri Managed VPS mūsu komandas uztur jūsu Ghost instances serveri atjauninātu, uzrauga to dienu un nakti un iejaucas, negaidot jūsu zvanu; tās arī proaktīvi seko jūsu instancei un iesaka noderīgus labojumus, ko ieviešat jūs paši vai jūsu MI asistents. Rezerves kopijas katru nakti tiek šifrētas un glabātas ārpus mašīnas, to atjaunošana ir iekļauta, un jūsu pašreizējā servera migrācija ir bez maksas.

Skatīt Managed VPS

Biežāk uzdotie jautājumi

Vai Ghost mitināšana savā serverī ir bez maksas?

Jā. Ghost ir ar MIT licenci: varat to izmantot uzņēmumā un pielāgot, saglabājot licences norādi. Paliek pakalpojumi ap to: serveris, e-pastu relejs, Mailgun, ja sūtāt jaunumu vēstules, Tinybird, ja vēlaties tā analītiku.

Kāda konfigurācija vajadzīga, lai mitinātu Ghost?

Projekts iesaka Ubuntu 22.04, 24.04 vai 26.04, Nginx, Node.js 22, MySQL 8.0 vai 8.4, systemd, vismaz 1 GB atmiņas, domēnu un lietotāju, kas nav root. Docker Compose gadījumā tas kā piemēru min serveri ar 2 GB un 1 procesoru.

Vai Ghost uzstādīt ar Ghost-CLI vai ar Docker?

Ghost-CLI ir instalācija, ko projekts iesaka produkcijai. Docker Compose ir preview, vienīgā, kas ļauj mitināt savā serverī tīmekļa analītiku un ActivityPub, un projekts saka, ka virzās uz šo rīku komplektu. Palīgs ļauj pāriet no Ghost-CLI uz Docker Compose.

Vai Ghost darbojas ar SQLite, MariaDB vai PostgreSQL?

Produkcijā MySQL 8 ir vienīgā atbalstītā datubāze. Projekts iesaka pārinstalēšanu uz MySQL 8 no SQLite un migrāciju uz MySQL 8 no MariaDB. Tā dokumentācija PostgreSQL neparedz.

Vai Ghost jaunumu vēstules var sūtīt ar SMTP?

Nē. SMTP kalpo darījumu e-pastiem: ielūgumiem, parolēm, dalībnieku pieteikšanās saitēm. Jaunumu vēstulēm vajadzīgs Mailgun API, vienīgais atbalstītais masveida sūtīšanas pakalpojums. Ja rakstus nesūtāt pa e-pastu, Mailgun konts nav vajadzīgs.

Kā veidot savā serverī mitinātas Ghost vietnes rezerves kopiju?

Pilnai atkopšanai veidojiet MySQL datubāzes kopiju ar mysqldump un mapes content kopiju ar tar. Komanda ghost backup pirms atjauninājuma izveido zip. Eksports no administrēšanas neietver komentārus, dalībnieku aktivitātes vēsturi un medijus.

Kā atjaunināt Ghost?

Ar Ghost-CLI vietnes mapē palaidiet ghost backup, pēc tam ghost update, un problēmas gadījumā ghost update --rollback. Ar Docker Compose mapē /opt/ghost palaidiet git pull, docker compose pull un docker compose up -d.

Vai Managed VPS aptver Ghost?

Managed VPS aptver serveri: sistēmu, drošību, uzraudzību un rezerves kopijas. Mūsu komandas proaktīvi seko arī jūsu instancei un iesaka noderīgus labojumus, ko ieviešat jūs. Iejaukšanās lietojumprogrammā tiek rēķināta par stundu vai par fiksētu summu.

Sazinieties ar mums