Talpinkite Ghost® Managed VPS serveryje: jūsų leidinys jūsų serveryje

Ghost talpinimas Managed VPS serveryje reiškia, kad savo straipsnius skelbiate, narius telkiate ir naujienlaiškius siunčiate iš savo mašinos, kurią mūsų komandos prižiūri atnaujintą ir stebi dieną bei naktį. Ghost yra laisva programinė įranga su MIT licencija. Šis gidas seka oficialią jos dokumentaciją: Ghost-CLI ar Docker Compose, MySQL, HTTPS, el. laiškus, atsargines kopijas ir atnaujinimus.

Simon Vasconcelos Lee Autorius: Paskelbta 2026 m. lapkričio 9 d.Skaitymo trukmė: 13 min.

Visi gidai

Svarbiausia

  1. Ghost MIT licencija leidžia laisvai naudoti programą įmonėje, išsaugant jos licencijos nuorodą. Pavadinimui ir logotipui atskirai taikoma Ghost Foundation prekių ženklų politika.
  2. Projektas rekomenduoja Ghost-CLI Ubuntu sistemoje, su Nginx, Node.js 22, MySQL 8 ir bent 1 GB atminties. Jo Docker Compose metodas, „preview“ būsenoje, prideda žiniatinklio analitiką ir savo serveryje talpinamą ActivityPub.
  3. MySQL 8 yra vienintelė gamyboje palaikoma duomenų bazė.
  4. Paruoškite du el. laiškų kelius: SMTP persiuntimo serverį transakciniams el. laiškams, būtiną, ir Mailgun naujienlaiškiams, vienintelę palaikomą masinio siuntimo paslaugą.
  5. Kurkite duomenų bazės ir katalogo content atsargines kopijas, o atnaujinkite su ghost update arba docker compose pull: projektas atnaujinimus skelbia kiekvieną savaitę.

Ką daro Ghost

Ghost yra profesionali laisva leidybos platforma, parašyta Node.js aplinkai. Ji vienoje vietoje sujungia tai, ką nepriklausomas leidinys dažnai surenka iš kelių įrankių.

Pagal dokumentaciją, produktas savo serveryje turi tas pačias funkcijas. Tai, kas jį supa, tenka jums: naujienlaiškių siuntimas, žiniatinklio analitika, CDN ir pilnos svetainės atsarginės kopijos.

MIT licencija ir prekių ženklas

Ghost platinama pagal MIT licenciją. Ji leidžia naudoti, kopijuoti, keisti, sujungti, skelbti, platinti, suteikti sublicencijas ir parduoti programinę įrangą su viena sąlyga: kiekvienoje kopijoje išsaugoti autorių teisių pranešimą ir licencijos tekstą. Todėl Ghost galite paleisti įmonėje, pritaikyti ir skelbti joje savo klientams, nieko nepirkdami dėl licencijos.

Licencija apima kodą. Pavadinimas ir logotipas priklauso Ghost Foundation ir jiems taikoma jos prekių ženklų politika: perskaitykite ją, jei kuriate pasiūlymą aplink programinę įrangą. Ghost yra Ghost Foundation registruotasis prekių ženklas.

This publication is independent of and not affiliated with, authorized, sponsored, or approved by Ghost Foundation. Lietuviškai: ši publikacija nepriklauso nuo Ghost Foundation ir nėra su ja susijusi, jos įgaliota, remiama ar patvirtinta.

Ghost-CLI ar Docker Compose: du oficialūs metodai

Projektas aprašo du kelius gamybai. Ghost-CLI yra diegimas, kurį jis oficialiai rekomenduoja, o Docker Compose yra „preview“, kurią jis vadina visiškai nauja. Jis taip pat nurodo kryptį į šį Docker įrankių rinkinį, o ne Ghost-CLI tobulinimą, ir pateikia vedlį perėjimui iš vieno į kitą.

PunktasGhost-CLIDocker Compose (preview)
SistemaUbuntu 22.04, 24.04 ar 26.04Linux serveris su Docker 20.10.13 ar naujesne versija
AtmintisBent 1 GBProjektas kaip pavyzdį mini serverį su 2 GB ir 1 procesoriumi
Žiniatinklio serveris ir HTTPSNginx ir Let's Encrypt sertifikatas, įdiegti Ghost-CLICaddy konteineryje, kuri tvarko TLS
Duomenų bazėMySQL 8.0 ar 8.4, įdiegta serveryjeMySQL konteineryje
Žiniatinklio analitikaNesuderinamaPrieinama, su Tinybird paskyra
Socialinis tinklas (ActivityPub)Projekto talpinama paslauga, nemokama jos naudojimo riboseTa pati paslauga numatytai arba jūsų pačių, savo serveryje talpinama

Prieš pradedant: domenas ir serveris

Prieš diegimą nukreipkite domeną į serverį: sertifikatas įdiegiamas diegimo metu. Simafri VPS serveryje lankytojai atvyksta 80 ir 443 prievadais, serverio domeno vardu, su A ir AAAA įrašais. Svetainės adresas rašomas pilnas, su protokolu, pavyzdžiui, https://example.com: IP adresas sukelia klaidų.

Be pirmiau nurodytos atminties, projektas nenurodo nei disko, nei apkrovos dydžio: jis priklauso nuo jūsų srauto, paveikslėlių ir medijos. Naudojant Managed VPS, papasakokite mums apie savo leidinį, ir mes rekomenduosime tinkamą dydį.

Ghost diegimas su Ghost-CLI Ubuntu sistemoje

Ghost-CLI naudojamas su naudotoju, kuris nėra root ir kurio vardas nėra ghost, nes šis vardas konfliktuoja su įrankiu. Sukurkite jį iš root paskyros, user pakeisdami pasirinktu vardu:

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

Nginx ir MySQL

Atnaujinkite sistemą, įdiekite Nginx (SSL reikia bent 1.9.5) ir MySQL. Eilutė su ufw atveria HTTP ir HTTPS, jei ši ugniasienė aktyvi:

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

Naujesnėse Ubuntu versijose MySQL root paskyra autentifikuojasi per lizdą, ko Ghost nepalaiko. Suteikite jai slaptažodį:

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

Node.js ir Ghost-CLI

Ghost reikalauja Node.js 22: 20, 21, 23 ir vėlesnės versijos nepalaikomos. Projektas prašo jį įdiegti visai sistemai, taip:

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

Diegimo paleidimas

Ghost diegiamas savo kataloge, su tiksliu savininku ir teisėmis. sitename pakeiskite pasirinktu pavadinimu:

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

Komanda tada užduoda klausimus, o projektas rekomenduoja atsakyti taip į kiekvieną siūlomą žingsnį:

Tada svetainė atsako, o https://example.com/ghost kviečia sukurti savininko paskyrą. Jei diegimas nutrauktas, ghost setup tęsia konfigūravimą; jei jis nepavyksta, ghost uninstall sutvarko geriau nei katalogo ištrynimas. ghost doctor bet kada patikrina sistemą.

Ghost diegimas su Docker Compose (preview)

Projektas pristato šį metodą kaip „preview“: jo požiūriu, jis visiškai naujas. Būtent juo galima savo serveryje talpinti žiniatinklio analitiką ir ActivityPub.

Serveryje, kuriame įdiegtas Docker, atsisiųskite oficialų įrankių rinkinį į /opt/ghost ir nukopijuokite du jo pavyzdinius failus:

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

Faile .env nurodykite šias reikšmes:

Faile caddy/Caddyfile atkomentuokite jūsų atvejį atitinkantį bloką: www nukreipimas į domeną be jo, arba atvirkščiai, arba atskiras administravimo domenas. Tada paleiskite Ghost ir užbaikite nustatymą ties /ghost:

Terminal
docker compose pull
docker compose up -d

Žiniatinklio analitika ir ActivityPub

Analitikai reikia Tinybird paskyros, išorinės paslaugos. Iš /opt/ghost prisijunkite, įdiekite jos konfigūraciją ir gaukite žetonus, kuriuos reikia įklijuoti į .env, skyriuje „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 iš karto veikia su projekto talpinama paslauga, nemokama naudojimo ribose, kurias skelbia jos dokumentacija. Norėdami savo serveryje talpinti savo, atkomentuokite ACTIVITYPUB_TARGET=activitypub:8080. Tada faile .env įjunkite norimą profilį ar profilius ir iš naujo paleiskite konteinerius:

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

ActivityPub atveju projektas prašo iš naujo sukurti ir Ghost bei Caddy, su docker compose up -d --force-recreate ghost caddy.

Perėjimas iš Ghost-CLI į Docker Compose

Po klonavimo ir konfigūravimo bash scripts/migrate.sh nukopijuoja katalogą content, importuoja duomenų bazę į MySQL konteinerį ir paleidžia Caddy vietoj Nginx. Jis siūlo sustabdyti Nginx, dėl ko svetainė tampa nepasiekiama: atsakykite ne, jei serveryje veikia kitos svetainės. Jis nieko neištrina. bash recovery_instructions.sh atkuria pradinę svetainę, jei nutraukiate migraciją.

HTTPS ir administravimo domenas

Ghost administravimas turi vykti per HTTPS, o projektas rekomenduoja HTTPS visai svetainei: be jo prisijungimo vardai ir slaptažodžiai keliauja atviru tekstu. Su Docker Compose tuo rūpinasi Caddy. Su Ghost-CLI sertifikatą įdiegia diegimas, o vėliau tai atlieka komanda:

Terminal, svetainės kataloge
ghost setup ssl

Norėdami pakeisti su Ghost-CLI įdiegtos svetainės adresą, ghost config url https://example.com atnaujina konfigūraciją, o ghost restart ją pritaiko.

Projektas taip pat pataria atskirą administravimo domeną, kuris sumažina atakos paviršių. Kelias lieka /ghost/. Ghost-CLI atveju jis nurodomas faile config.production.json:

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

Docker Compose atveju nurodykite ADMIN_DOMAIN, atkomentuokite jo bloką faile Caddyfile ir paleiskite docker compose up -d --force-recreate ghost caddy. Šiam domenui taip pat reikia savo A ir AAAA įrašų.

MySQL 8, gamybos duomenų bazė

MySQL 8 yra vienintelė duomenų bazė, kurią projektas palaiko gamyboje. Ghost-CLI diegiamas su MySQL 8.0 ar 8.4, o Compose faile pateikiamas MySQL 8.0 atvaizdas.

El. laiškai ir naujienlaiškiai

Ghost skiria du siuntimus, kurie eina skirtingais keliais. Tai svarbiausias dalykas, kurį reikia sureguliuoti po diegimo.

SiuntimasPavyzdžiaiKas jį palaiko
TransakcinisKomandos kvietimai, pamiršti slaptažodžiai, narių registracijos ir prisijungimo nuorodos, prisijungimo kodas iš naujo įrenginioGhost konfigūracija mail, per SMTP
NaujienlaiškiaiJūsų nariams siunčiami straipsniaiMailgun API, kurio raktai įvedami nustatymuose „Email newsletter“

SMTP persiuntimo serveris transakciniams el. laiškams

Dokumentacija priskiria šią konfigūraciją prie būtinų gamyboje. Ghost taip pat siunčia kodą el. paštu, kai aptinka prisijungimą iš naujo įrenginio: nustatykite šį persiuntimo serverį prieš pakviesdami savo komandą.

Simafri VPS serveryje siuntimas vyksta per autentifikuotą SMTP persiuntimo serverį 587 prievadu: tai gali būti jau turimos pašto paskyros adresas arba Simafri Suite.

config.production.json (Ghost-CLI), tada 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), skyrius 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, pakeitus failą .env
docker compose up -d --force-recreate ghost

Mailgun naujienlaiškiams

SMTP persiuntimo serveris naujienlaiškių neapima. Pagal dokumentaciją, masinis siuntimas nevyksta per SMTP, o Mailgun šiuo metu yra vienintelė masinio siuntimo paslauga, kurią Ghost palaiko. Susikuriate savo Mailgun paskyrą ir jos API raktus įvedate Ghost nustatymuose.

Jei savo straipsnių nesiunčiate el. paštu, Mailgun paskyros jums nereikia: šių nustatymų galima nepaisyti. Jei teikiate pirmenybę kitam naujienlaiškių įrankiui, projektas siūlo sinchronizuoti narius su juo, pavyzdžiui, per Zapier ar jo integracijos gidus.

Ghost atsarginės kopijos ir atkūrimas

Ghost siūlo tris kopijų lygius, ir juose nėra to paties. Norint atkurti identišką svetainę, projektas prašo tiesiogiai kopijuoti duomenų bazę ir katalogą content.

MetodasKą jis apimaKam skirtas
ghost backup (Ghost-CLI)Zip: turinys JSON formatu, nariai CSV formatu, temos, paveikslėliai, failai ir medija, maršrutai ir nukreipimaiAtsargumo priemonė prieš atnaujinimą
Eksportas iš administravimoZip: turinys ir nustatymai, nariai, straipsnių statistika, temos, maršrutai ir nukreipimai, pagal pasirinkimą. Be komentarų, be narių veiklos istorijos, be medijosTurinio perkėlimas į kitą svetainę
Duomenų bazė ir katalogas contentVisi duomenysAtkūrimas po avarijos arba tikslus egzempliorius

Eksportas yra skiltyse „Settings“, „Advanced“, „Import/Export“, skirtuke „Export“, mygtukas „All data“. Visai kopijai su Ghost-CLI MySQL paskyra ir duomenų bazės pavadinimas, kuriuos reikia perkelti, yra faile 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/

Su Docker Compose oficialus įrankių rinkinys turinį laiko kataloge data/ghost. Išrašas atkartoja MySQL atvaizdo pateiktą formą, o root slaptažodis jau yra konteineryje. Taip pat pasilikite .env ir Caddyfile kopiją.

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

Atkūrimas

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

Nukopijuokite šiuos failus už serverio ribų su rsync ar scp ir išbandykite atkūrimą bandomojoje mašinoje. Jei pradedate iš eksporto su mokančiais nariais, prieš importuodami narius prijunkite tą pačią Stripe paskyrą.

Ghost atnaujinimas

Projektas atnaujinimus skelbia kiekvieną savaitę ir primena, kad viešas žiniatinklio serveris turi likti atnaujintas. Perskaitykite versijų pastabas, tada paleiskite savo metodo komandą.

Su Ghost-CLI

Terminal, svetainės kataloge
ghost check-update
ghost backup
ghost update

Su Docker Compose

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

Paskutinė eilutė, nebūtina, pašalina senus atvaizdus. Faile .env palikite GHOST_VERSION užkomentuotą: užfiksavus versiją, šios atnaujinimo komandos užblokuojamos.

Egzemplioriaus sustiprinimas ir augimas

Dokumentacija pateikia keletą nustatymų gamybiniam serveriui:

Apkrovai projektas prieš Ghost pastato CDN ir talpyklos sluoksnį. Jis nurodo, kad klasterizavimas ir sharding nepalaikomi: svetainę aptarnauja vienas egzempliorius, o talpykla sugeria srautą.

Kas ką daro Managed VPS serveryje

Talpinant savo serveryje, be programos reikia prižiūrėti ir patį serverį. Naudojant Managed VPS, mūsų komandos perima serverį ir proaktyviai stebi jūsų egzempliorių; Ghost lieka jūsų programa su savo nustatymais ir duomenimis.

TemaMūsų komandosJūs
ServerisSistemos ir saugumo atnaujinimai, įskaitant įsikišimą serveryjeJūsų veiklai tinkamas momentas
StebėsenaServeris stebimas 24 val. per parą, 7 dienas per savaitę, įsikišant nelaukiant jūsų skambučioJūsų turinys, nariai ir prenumeratos
GhostProaktyvi stebėsena: klaidos, sulėtėjimai ir disko vieta pastebimi, rekomenduojamas pataisymasJos diegimas, atnaujinimai, nustatymai, SMTP persiuntimo serveris ir Mailgun paskyra, kuriuos pritaikote jūs arba jūsų DI asistentas
Atsarginės kopijosKiekvieną naktį, šifruotos ir saugomos už mašinos ribų; atkūrimas įskaičiuotasAtkūrimo prašymas, kai jo prireikia
PerkėlimasJūsų dabartinis serveris perkeliamas nemokamaiPerjungimo momentas

Jei norite, kad mūsų komandos įsikištų į pačią programą, ši paslauga apmokestinama valandomis arba fiksuota kaina, o skaičiavimas pateikiamas prieš įsikišimą.

Serveris, prižiūrimas jūsų Ghost svetainei

Su Simafri Managed VPS mūsų komandos palaiko jūsų Ghost egzemplioriaus serverį atnaujintą, stebi jį dieną ir naktį ir įsikiša nelaukdamos jūsų skambučio; jos taip pat proaktyviai stebi jūsų egzempliorių ir rekomenduoja naudingus pataisymus, kuriuos pritaikote jūs arba jūsų DI asistentas. Atsarginės kopijos kiekvieną naktį šifruojamos ir saugomos už mašinos ribų, jų atkūrimas įskaičiuotas, o jūsų dabartinio serverio perkėlimas nemokamas.

Žiūrėti Managed VPS

Dažni klausimai

Ar Ghost nemokamas talpinant savo serveryje?

Taip. Ghost platinama pagal MIT licenciją: galite ją naudoti įmonėje ir pritaikyti, išsaugodami jos licencijos nuorodą. Lieka ją supančios paslaugos: serveris, el. laiškų persiuntimo serveris, Mailgun, jei siunčiate naujienlaiškius, Tinybird, jei norite jos analitikos.

Kokios konfigūracijos reikia Ghost talpinti?

Projektas rekomenduoja Ubuntu 22.04, 24.04 ar 26.04, Nginx, Node.js 22, MySQL 8.0 ar 8.4, systemd, bent 1 GB atminties, domeną ir naudotoją, kuris nėra root. Docker Compose atveju kaip pavyzdį jis mini serverį su 2 GB ir 1 procesoriumi.

Ar Ghost diegti su Ghost-CLI, ar su Docker?

Ghost-CLI yra diegimas, kurį projektas rekomenduoja gamybai. Docker Compose yra preview, vienintelė leidžianti žiniatinklio analitiką ir savo serveryje talpinamą ActivityPub, o projektas sako judantis link šio įrankių rinkinio. Vedlys leidžia pereiti iš Ghost-CLI į Docker Compose.

Ar Ghost veikia su SQLite, MariaDB ar PostgreSQL?

Gamyboje MySQL 8 yra vienintelė palaikoma duomenų bazė. Projektas rekomenduoja iš SQLite iš naujo įdiegti su MySQL 8, o iš MariaDB migruoti į MySQL 8. Jo dokumentacija PostgreSQL nenumato.

Ar Ghost naujienlaiškius galima siųsti per SMTP?

Ne. SMTP skirtas transakciniams el. laiškams: kvietimams, slaptažodžiams, narių prisijungimo nuorodoms. Naujienlaiškiams reikia Mailgun API, vienintelės palaikomos masinio siuntimo paslaugos. Nesiunčiant straipsnių el. paštu, Mailgun paskyros nereikia.

Kaip sukurti savo serveryje talpinamos Ghost svetainės atsarginę kopiją?

Visam atkūrimui sukurkite MySQL duomenų bazės kopiją su mysqldump, o katalogo content su tar. Komanda ghost backup prieš atnaujinimą sukuria zip. Administravimo eksportas praleidžia komentarus, narių veiklos istoriją ir mediją.

Kaip atnaujinti Ghost?

Su Ghost-CLI svetainės kataloge paleiskite ghost backup, tada ghost update, o iškilus problemai ghost update --rollback. Su Docker Compose kataloge /opt/ghost paleiskite git pull, docker compose pull ir docker compose up -d.

Ar Managed VPS apima Ghost?

Managed VPS apima serverį: sistemą, saugumą, stebėseną ir atsargines kopijas. Mūsų komandos taip pat proaktyviai stebi jūsų egzempliorių ir rekomenduoja naudingus pataisymus, kuriuos pritaikote jūs. Įsikišimas į pačią programą apmokestinamas valandomis arba fiksuota kaina.

Susisiekite su mumis