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.
Autors: Simon Vasconcelos Lee
Publicēts 2026. gada 9. novembrīLasīšanas laiks: 13 minūtes
content rezerves kopiju, pēc tam atjauniniet ar ghost update vai docker compose pull: projekts publicē atjauninājumus katru nedēļu.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.
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.
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.
| Punkts | Ghost-CLI | Docker Compose (preview) |
|---|---|---|
| Sistēma | Ubuntu 22.04, 24.04 vai 26.04 | Linux serveris ar Docker 20.10.13 vai jaunāku |
| Atmiņa | Vismaz 1 GB | Projekts kā piemēru min serveri ar 2 GB un 1 procesoru |
| Tīmekļa serveris un HTTPS | Nginx un Let’s Encrypt sertifikāts, ko uzstāda Ghost-CLI | Caddy konteinerā, kas apstrādā TLS |
| Datubāze | MySQL 8.0 vai 8.4, uzstādīts serverī | MySQL konteinerā |
| Tīmekļa analītika | Nav saderīga | Pieejama, ar Tinybird kontu |
| Sociālais tīkls (ActivityPub) | Projekta mitinātais pakalpojums, bez maksas savu lietojuma ierobežojumu ietvaros | Tas pats pakalpojums pēc noklusējuma vai jūsu pašu, mitināts savā serverī |
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-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:
adduser <user>
usermod -aG sudo <user>
su - <user>
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:
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:
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<your-new-root-password>';
FLUSH PRIVILEGES;
exit
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:
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
Ghost tiek uzstādīts savā mapē, ar konkrētu īpašnieku un tiesībām. Aizstājiet sitename ar sev tīkamu nosaukumu:
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ā:
https://.localhost resursdatoram, root un iepriekš iestatītā parole, pēc tam datubāzes nosaukums, ko izveido Ghost-CLI.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.
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:
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:
DOMAIN: vietnes domēns, piemēram, example.com.ADMIN_DOMAIN: atsevišķs domēns administrēšanai, ja vēlaties.DATABASE_ROOT_PASSWORD un DATABASE_PASSWORD: divas paroles, iegūtas ar openssl rand -hex 32. Tās tiek iestatītas uz visiem laikiem: kad datubāze ir inicializēta, to maiņa pārtrauc savienojumu.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:
docker compose pull
docker compose up -d
HTTP_PORT un HTTPS_PORT, ja Ghost nonāk aiz cita reversā starpniekservera. MySQL paliek konteineru iekšējā tīklā.data/ghost un datubāze mapē data/mysql, abas vietas ir pielāgojamas failā .env.-f compose.yml -f compose.ipv6.yml savām komandām docker compose up.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»:
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:
COMPOSE_PROFILES=analytics,activitypub
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ē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.
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:
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:
"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 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.
ghost config database.client, vietnes mapē, norāda izmantoto datubāzi.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ījums | Piemēri | Kas to nodrošina |
|---|---|---|
| Darījumu | Komandas ielūgumi, aizmirstas paroles, dalībnieku reģistrācijas un pieteikšanās saites, pieteikšanās kods no jaunas ierīces | Ghost konfigurācija mail, ar SMTP |
| Jaunumu vēstules | Raksti, kas nosūtīti jūsu dalībniekiem | Mailgun API, kura atslēgas ievada iestatījumos «Email newsletter» |
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.
"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"
}
}
}
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>"
docker compose up -d --force-recreate ghost
secure un requireTLS: Ghost sūta ar Nodemailer, kura dokumentācija prasa secure uz false portam 587, savienojumam pēc tam pārejot uz STARTTLS. requireTLS atsaka sūtīšanu, ja šī pāreja neizdodas. Repozitorija piemēra failā norādīts ports 465 un secure=true: aizstājiet šīs divas rindas.from satur īstu un lasītu adresi, kas pēc projekta domām uzlabo piegādi, un sūtīšanas domēna SPF, DKIM un DMARC ieraksti papildina iestatījumu.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 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.
| Metode | Ko tā satur | Kā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īšanas | Piesardzība pirms atjauninājuma |
| Eksports no administrēšanas | Zip: 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 medijiem | Satura pārcelšana uz citu vietni |
Datubāze un mape content | Visi dati | Atkopš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:
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.
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
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
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.
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.
ghost check-update
ghost backup
ghost update
ghost update --rollback atgriežas pie iepriekšējās versijas, ja atjauninājums neizdodas.content atjauninājumu laikā paliek vietā.ghost update [version] --force ar savu pašreizējo versiju, jo tā bināro atkarību komponenti tiek kompilēti konkrētai Node.js versijai.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.
Dokumentācija dod vairākus iestatījumus produkcijas serverim:
mysql_secure_installation.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.
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.
| Temats | Mūsu komandas | Jūs |
|---|---|---|
| Serveris | Sistēmas un drošības atjauninājumi, ieskaitot iejaukšanos serverī | Brīdis, kas der jūsu darbam |
| Uzraudzība | Serveris tiek uzraudzīts 24/7, iejaucoties, negaidot jūsu zvanu | Jūsu saturs, dalībnieki un abonementi |
| Ghost | Proaktīva sekošana: kļūdas, palēninājumi un diska vieta tiek pamanīti, labojums tiek ieteikts | Tā uzstādīšana, atjauninājumi, iestatījumi, SMTP relejs un Mailgun konts, ko ieviešat jūs vai jūsu MI asistents |
| Rezerves kopijas | Katru nakti, šifrētas un glabātas ārpus mašīnas; atjaunošana iekļauta | Atjaunošanas pieprasījums, kad tas vajadzīgs |
| Migrācija | Jūsu pašreizējā servera migrācija, bez maksas | Pā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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Simafri
Parunāsim par jūsu ieceri
Pasakiet mums dažos vārdos, kas jums vajadzīgs: mēs jums ātri atbildam.
Paldies! Jūsu pieprasījums ir nosūtīts. Drīzumā ar jums sazināsimies.
Labāk e-pastu? Rakstiet mums uz support@simafri.com.