Hostovať Ghost na Managed VPS znamená publikovať články, združovať členov a odosielať newslettery zo stroja, ktorý máte pod kontrolou a ktorý naše tímy udržiavajú aktuálny a dohliadajú naň vo dne v noci. Ghost je slobodný softvér pod licenciou MIT. Tento sprievodca postupuje podľa jeho oficiálnej dokumentácie: Ghost-CLI alebo Docker Compose, MySQL, HTTPS, e-maily, zálohy a aktualizácie.
Autor: Simon Vasconcelos Lee
Publikované 9. novembra 2026Čas čítania: 13 minút
content a aktualizujte príkazom ghost update alebo docker compose pull: projekt zverejňuje aktualizácie každý týždeň.Ghost je profesionálna a slobodná publikačná platforma napísaná pre Node.js. Združuje na jednom mieste to, čo nezávislá publikácia často skladá z viacerých nástrojov.
Podľa dokumentácie má produkt pri vlastnom hostovaní rovnaké funkcie. Čo ho obklopuje, je na vás: odosielanie newsletterov, webová analytika, CDN a úplné zálohy webu.
Ghost vychádza pod licenciou MIT. Dovoľuje softvér používať, kopírovať, upravovať, zlučovať, zverejňovať, šíriť, udeľovať podlicencie a predávať, s jednou podmienkou: v každej kópii zachovať upozornenie o autorských právach a text licencie. Ghost teda môžete prevádzkovať vo firme, prispôsobovať ho a publikovať v ňom pre svojich zákazníkov, bez licencie, ktorú by ste museli kupovať.
Licencia pokrýva kód. Názov a logo patria Ghost Foundation a spadajú pod jej politiku ochranných známok: prečítajte si ju, ak okolo softvéru budujete ponuku. Ghost je registrovaná ochranná známka Ghost Foundation.
This publication is independent of and not affiliated with, authorized, sponsored, or approved by Ghost Foundation. Po slovensky: táto publikácia je nezávislá od Ghost Foundation a nie je s ňou prepojená, ani ňou autorizovaná, sponzorovaná či schválená.
Projekt dokumentuje dve cesty pre produkciu. Ghost-CLI je inštalácia, ktorú oficiálne odporúča, a Docker Compose je „preview“, o ktorej hovorí, že je celkom nová. Uvádza tiež, že sa posúva k tomuto nástroju Docker, a nie k ďalšiemu rozvoju Ghost-CLI, a poskytuje sprievodcu na prechod z jedného na druhý.
| Bod | Ghost-CLI | Docker Compose (preview) |
|---|---|---|
| Systém | Ubuntu 22.04, 24.04 alebo 26.04 | Linuxový server s Dockerom 20.10.13 alebo novším |
| Pamäť | Aspoň 1 GB | Projekt uvádza ako príklad server s 2 GB a 1 procesorom |
| Webový server a HTTPS | Nginx a certifikát Let’s Encrypt, nastavené cez Ghost-CLI | Caddy, v kontajneri, ktorý zabezpečuje TLS |
| Databáza | MySQL 8.0 alebo 8.4 nainštalovaná na serveri | MySQL v kontajneri |
| Webová analytika | Nekompatibilná | Dostupná, s účtom Tinybird |
| Sociálna sieť (ActivityPub) | Služba hostovaná projektom, v rámci limitov používania zadarmo | Rovnaká služba predvolene, alebo vaša vlastná, hostovaná samostatne |
Doménu nasmerujte na server pred inštaláciou: certifikát sa nastavuje počas zavedenia. Na VPS Simafri prichádzajú návštevníci na porty 80 a 443, pod doménovým menom servera, so záznamami A a AAAA. Adresa webu sa píše celá, s protokolom, ako https://example.com: adresa IP spôsobuje chyby.
Nad rámec vyššie uvedenej pamäte projekt neuvádza nároky na disk ani záťaž: veľkosť závisí od vašej návštevnosti, obrázkov a médií. Na spravovanom VPS (Managed VPS) nám opíšte svoju publikáciu a odporučíme vám vhodnú veľkosť.
Ghost-CLI sa používa s používateľom, ktorý nie je root a ktorého meno nie je ghost, pretože toto meno koliduje s nástrojom. Vytvorte ho z účtu root a nahraďte user zvoleným menom:
adduser <user>
usermod -aG sudo <user>
su - <user>
Aktualizujte systém, nainštalujte Nginx (minimálne 1.9.5 pre SSL) a MySQL. Riadok ufw otvára HTTP a HTTPS, ak je tento firewall aktívny:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx
sudo ufw allow 'Nginx Full'
sudo apt-get install mysql-server
Na novších verziách Ubuntu sa účet root v MySQL overuje cez socket, čo Ghost nepodporuje. Nastavte mu heslo:
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<your-new-root-password>';
FLUSH PRIVILEGES;
exit
Ghost vyžaduje Node.js 22: verzie 20, 21, 23 a novšie nie sú podporované. Projekt žiada nainštalovať ho pre celý systém, takto:
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 sa inštaluje do vlastného priečinka, s presným vlastníkom a právami. Nahraďte sitename zvoleným menom:
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
Príkaz sa potom pýta a projekt odporúča odpovedať áno na každý navrhovaný krok:
https://.localhost ako hostiteľ, root a heslo nastavené vyššie, potom názov databázy, ktorú Ghost-CLI vytvorí.Web potom odpovedá a https://example.com/ghost vás vyzve na vytvorenie účtu vlastníka. Ak sa inštalácia preruší, ghost setup pokračuje v konfigurácii; ak zlyhá, ghost uninstall upratuje lepšie než odstránenie priečinka. ghost doctor kedykoľvek skontroluje systém.
Projekt predstavuje túto metódu ako „preview“: podľa neho je celkom nová. Práve ona umožňuje hostovať webovú analytiku a ActivityPub samostatne.
Na serveri s nainštalovaným Dockerom stiahnite oficiálne nástroje do /opt/ghost a skopírujte jeho dva ukážkové súbory:
git clone https://github.com/TryGhost/ghost-docker.git /opt/ghost && cd /opt/ghost
cp .env.example .env
cp caddy/Caddyfile.example caddy/Caddyfile
V súbore .env vyplňte tieto hodnoty:
DOMAIN: doména webu, napríklad example.com.ADMIN_DOMAIN: samostatná doména pre administráciu, ak si ju želáte.DATABASE_ROOT_PASSWORD a DATABASE_PASSWORD: dve heslá vygenerované príkazom openssl rand -hex 32. Nastavujú sa raz navždy: po inicializácii databázy ich zmena preruší pripojenie.V caddy/Caddyfile odkomentujte blok, ktorý zodpovedá vášmu prípadu: presmerovanie z www na holú doménu alebo naopak, či samostatná administračná doména. Potom spustite Ghost a dokončite zavedenie na /ghost:
docker compose pull
docker compose up -d
HTTP_PORT a HTTPS_PORT, ak Ghost prejde za inú reverznú proxy. MySQL zostáva vo vnútornej sieti kontajnerov.data/ghost a databáza v data/mysql, dve umiestnenia nastaviteľné v .env.docker compose up potom pridajte -f compose.yml -f compose.ipv6.yml.Analytika vyžaduje účet Tinybird, externú službu. Z /opt/ghost sa prihláste, nasaďte jej konfiguráciu a získajte tokeny, ktoré vložíte do .env, sekcia „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 funguje hneď so službou hostovanou projektom, zadarmo v rámci limitov používania, ktoré uvádza jej dokumentácia. Ak chcete hostovať vlastnú, odkomentujte ACTIVITYPUB_TARGET=activitypub:8080. Potom v .env aktivujte požadovaný profil alebo profily a znova spustite kontajnery:
COMPOSE_PROFILES=analytics,activitypub
docker compose pull
docker compose up -d
Pre ActivityPub projekt žiada znova vytvoriť aj Ghost a Caddy príkazom docker compose up -d --force-recreate ghost caddy.
Po naklonovaní a konfigurácii bash scripts/migrate.sh skopíruje priečinok content, importuje databázu do kontajnera MySQL a spustí Caddy namiesto Nginx. Ponúkne zastavenie Nginx, čo web vyradí z prevádzky: odpovedzte nie, ak na serveri bežia ďalšie weby. Neodstráni žiadne údaje. bash recovery_instructions.sh obnoví pôvodný web, ak migráciu prerušíte.
Administrácia Ghost musí prechádzať cez HTTPS a projekt odporúča HTTPS pre celý web: bez neho cirkulujú identifikátory a heslá v čistom texte. S Docker Compose sa o to stará Caddy. S Ghost-CLI nainštaluje certifikát inštalácia a dodatočne to urobí príkaz:
ghost setup ssl
Na zmenu adresy webu nainštalovaného cez Ghost-CLI aktualizuje konfiguráciu ghost config url https://example.com a ghost restart ju uplatní.
Projekt radí aj samostatnú administračnú doménu, ktorá zmenšuje plochu útoku. Cesta zostáva /ghost/. V prípade Ghost-CLI sa deklaruje v config.production.json:
"admin": {
"url": "https://admin.example.com"
}
V prípade Docker Compose vyplňte ADMIN_DOMAIN, odkomentujte jeho blok v Caddyfile a spustite docker compose up -d --force-recreate ghost caddy. Aj táto doména potrebuje svoje záznamy A a AAAA.
MySQL 8 je jediná databáza, ktorú projekt v produkcii podporuje. Ghost-CLI sa inštaluje s MySQL 8.0 alebo 8.4 a súbor Compose poskytuje obraz MySQL 8.0.
ghost config database.client, v priečinku webu, ukazuje použitú databázu.Ghost rozlišuje dve odosielania, ktoré nejdú rovnakou cestou. Je to najdôležitejší bod, ktorý treba po inštalácii nastaviť.
| Odosielanie | Príklady | Čo ho nesie |
|---|---|---|
| Transakčné | Pozvánky tímu, zabudnuté heslá, registrácie a prihlasovacie odkazy členov, prihlasovací kód z nového zariadenia | Konfigurácia mail v Ghost, cez SMTP |
| Newslettery | Články odoslané vašim členom | API Mailgun, ktorého kľúče sa zadávajú v nastaveniach „Email newsletter“ |
Dokumentácia označuje túto konfiguráciu ako povinnú v produkcii. Ghost posiela e-mailom aj kód, keď zistí prihlásenie z nového zariadenia: toto relé nastavte skôr, než pozvete svoj tím.
Na VPS Simafri odosielanie prechádza cez overené relé SMTP na porte 587: adresa poštového účtu, ktorý už máte, alebo 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 a requireTLS: Ghost odosiela cez Nodemailer, ktorého dokumentácia žiada secure na false na porte 587, pričom spojenie potom prejde na STARTTLS. requireTLS odmietne odoslanie, ak tento prechod zlyhá. Ukážkový súbor repozitára uvádza port 465 a secure=true: tieto dva riadky nahraďte.from obsahuje skutočnú a čítanú adresu, čo podľa projektu zlepšuje doručiteľnosť, a záznamy SPF, DKIM a DMARC odosielacej domény nastavenie dopĺňajú.Relé SMTP newslettery nepokrýva. Podľa dokumentácie sa hromadné odosielanie nerobí cez SMTP a Mailgun je dnes jediná služba hromadného odosielania, ktorú Ghost podporuje. Vytvoríte si účet Mailgun a jeho kľúče API zadáte v nastaveniach Ghost.
Ak články e-mailom neodosielate, žiadny účet Mailgun nepotrebujete: tieto nastavenia sa ignorujú. Ak uprednostňujete iný newsletterový nástroj, projekt navrhuje synchronizovať do neho vašich členov, napríklad cez Zapier alebo jeho integračné príručky.
Ghost ponúka tri úrovne kópie a neobsahujú to isté. Na zostavenie identického webu projekt žiada zálohovať priamo databázu a priečinok content.
| Metóda | Čo obsahuje | Na aké použitie |
|---|---|---|
ghost backup (Ghost-CLI) | Zip: obsah v JSON, členovia v CSV, témy, obrázky, súbory a médiá, trasy a presmerovania | Opatrnosť pred aktualizáciou |
| Export z administrácie | Zip: obsah a nastavenia, členovia, štatistiky článkov, témy, trasy a presmerovania, podľa výberu. Bez komentárov, histórie aktivity členov a médií | Presun obsahu na iný web |
Databáza a priečinok content | Všetky údaje | Obnova po havárii alebo presná kópia |
Export nájdete v „Settings“, „Advanced“, „Import/Export“, karta „Export“, tlačidlo „All data“. Pre úplnú kópiu s Ghost-CLI sú účet MySQL a názov databázy, ktoré treba uviesť, v 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/
S Docker Compose uchováva oficiálny nástroj obsah v data/ghost. Dump preberá tvar, ktorý dáva obraz MySQL, a heslo root je už v kontajneri. Uchovajte tiež kópiu súboru .env a Caddyfile.
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
Tieto súbory skopírujte mimo servera cez rsync alebo scp a vyskúšajte obnovu na testovacom stroji. Ak vychádzate z exportu s platiacimi členmi, pred importom členov pripojte rovnaký účet Stripe.
Projekt zverejňuje aktualizácie každý týždeň a pripomína, že verejný webový server musí zostať aktuálny. Prečítajte si poznámky k vydaniu a potom spustite príkaz svojej metódy.
ghost check-update
ghost backup
ghost update
ghost update --rollback sa vráti na predchádzajúcu verziu, ak aktualizácia dopadne zle.content zostáva počas aktualizácií na mieste.ghost update [version] --force so svojou aktuálnou verziou, pretože jeho binárne závislosti sú skompilované pre konkrétnu verziu Node.js.cd /opt/ghost
git pull
docker compose pull
docker compose up -d
docker image prune
Posledný riadok, voliteľný, odstraňuje staré obrazy. Nechajte GHOST_VERSION v .env zakomentovaný: pripnutie verzie tieto aktualizačné príkazy zablokuje.
Dokumentácia uvádza viacero nastavení pre produkčný server:
mysql_secure_installation.Pre záťaž projekt umiestňuje CDN a vrstvu vyrovnávacej pamäte pred Ghost. Upresňuje, že klastrovanie a sharding nie sú podporované: web obsluhuje jediná inštancia a vyrovnávacia pamäť absorbuje prevádzku.
Hostovanie na vlastnom serveri vyžaduje popri aplikácii starať sa aj o server. Na Managed VPS preberajú server naše tímy a vašu inštanciu proaktívne sledujú; Ghost zostáva vaším softvérom, s vašimi nastaveniami a údajmi.
| Téma | Naše tímy | Vy |
|---|---|---|
| Server | Aktualizácie systému a zabezpečenia, vrátane zásahov na serveri | Čas, ktorý vyhovuje vašej činnosti |
| Dohľad | Server sledovaný 24 hodín denne, 7 dní v týždni, so zásahom bez čakania na vaše zavolanie | Váš obsah, vaši členovia a vaše predplatné |
| Ghost | Proaktívne sledovanie: chyby, spomalenia a miesto na disku, s odporúčanou opravou | Jeho inštalácia, aktualizácie, nastavenia, relé SMTP a účet Mailgun, ktoré zapracujete vy alebo váš AI asistent |
| Zálohy | Každú noc, šifrované a uchovávané mimo stroja; obnova je v cene | Žiadosť o obnovu, keď ju potrebujete |
| Migrácia | Váš súčasný server prenesený zdarma | Čas prepnutia |
Ak by ste uprednostnili, aby naše tímy zasiahli priamo v aplikácii, táto služba sa fakturuje hodinovo alebo paušálne, s cenovou ponukou oznámenou pred zásahom.
S Managed VPS od Simafri udržiavajú naše tímy server vašej inštancie Ghost aktuálny, sledujú ho vo dne v noci a zasahujú bez čakania na vaše zavolanie; vašu inštanciu navyše proaktívne sledujú a odporúčajú vám užitočné opravy, ktoré zapracujete vy alebo váš AI asistent. Zálohy sa každú noc šifrujú a uchovávajú mimo stroja, ich obnova je v cene a migrácia vášho súčasného servera je zdarma.
Áno. Ghost vychádza pod licenciou MIT: môžete ho používať vo firme a prispôsobovať, pokiaľ zachováte jeho licenčné upozornenie. Zostávajú služby okolo neho: server, relé na e-maily, Mailgun, ak odosielate newslettery, a Tinybird, ak chcete jeho analytiku.
Projekt odporúča Ubuntu 22.04, 24.04 alebo 26.04, Nginx, Node.js 22, MySQL 8.0 alebo 8.4, systemd, aspoň 1 GB pamäte, doménu a používateľa, ktorý nie je root. Pre Docker Compose uvádza ako príklad server s 2 GB a 1 procesorom.
Ghost-CLI je inštalácia, ktorú projekt odporúča pre produkciu. Docker Compose je preview, jediná, ktorá umožňuje webovú analytiku a samostatne hostovaný ActivityPub, a projekt hovorí, že sa posúva k tomuto nástroju. Sprievodca umožňuje prejsť z Ghost-CLI na Docker Compose.
V produkcii je MySQL 8 jediná podporovaná databáza. Projekt odporúča reinštaláciu na MySQL 8 zo SQLite a migráciu na MySQL 8 z MariaDB. Jeho dokumentácia PostgreSQL nepredpokladá.
Nie. SMTP slúži na transakčné e-maily: pozvánky, heslá, prihlasovacie odkazy členov. Newslettery vyžadujú API Mailgun, jedinú podporovanú službu hromadného odosielania. Ak články e-mailom neodosielate, žiadny účet Mailgun nie je potrebný.
Pre úplnú obnovu zálohujte databázu MySQL cez mysqldump a priečinok content cez tar. Príkaz ghost backup vytvorí zip pred aktualizáciou. Export z administrácie vynecháva komentáre, históriu aktivity členov a médiá.
S Ghost-CLI spustite v priečinku webu ghost backup a potom ghost update, a v prípade problému ghost update --rollback. S Docker Compose spustite v /opt/ghost príkazy git pull, docker compose pull a docker compose up -d.
Managed VPS pokrýva server: systém, zabezpečenie, dohľad a zálohy. Naše tímy vašu inštanciu aj proaktívne sledujú a odporúčajú vám užitočné opravy, ktoré zapracujete vy. Zásah v samotnej aplikácii sa fakturuje hodinovo alebo paušálne.
Simafri
Porozprávajme sa o vašom zámere
Povedzte nám v pár slovách, čo potrebujete: rýchlo sa vám ozveme.
Ďakujeme! Vaša žiadosť bola odoslaná. Čoskoro sa vám ozveme.
Máte radšej e-mail? Napíšte nám na support@simafri.com.