Hostovat Ghost® na Managed VPS: vaše publikace na vašem serveru

Hostovat Ghost na Managed VPS znamená publikovat své články, shromažďovat členy a rozesílat newslettery z vlastního stroje, který naše týmy udržují aktuální a ve dne i v noci hlídají. Ghost je svobodný software pod licencí MIT. Tento průvodce sleduje jeho oficiální dokumentaci: Ghost-CLI nebo Docker Compose, MySQL, HTTPS, e-maily, zálohy a aktualizace.

Simon Vasconcelos Lee Autor: Publikováno 9. listopadu 2026Doba čtení: 13 minut

Všichni průvodci

To nejdůležitější

  1. Licence MIT dovoluje Ghost volně používat ve firmě, pokud zachováte její licenční upozornění. Název a logo spadají zvlášť pod zásady Ghost Foundation k ochranným známkám.
  2. Projekt doporučuje Ghost-CLI na Ubuntu, s Nginx, Node.js 22, MySQL 8 a alespoň 1 GB paměti. Jeho metoda Docker Compose, ve stavu „preview“, přidává webovou analytiku a vlastní hosting ActivityPub.
  3. MySQL 8 je jediná databáze podporovaná v produkci.
  4. Počítejte se dvěma cestami e-mailů: relé SMTP pro transakční e-maily, nezbytné, a Mailgun pro newslettery, jedinou podporovanou službu pro hromadné odesílání.
  5. Zálohujte databázi a složku content a aktualizujte pomocí ghost update nebo docker compose pull: projekt vydává aktualizace každý týden.

Co Ghost umí

Ghost je profesionální a svobodná publikační platforma napsaná pro Node.js. Spojuje na jednom místě to, co nezávislá publikace často skládá z několika nástrojů.

Podle dokumentace má produkt při vlastním hostingu stejné funkce. To, co ho obklopuje, je na vás: odesílání newsletterů, webová analytika, CDN a úplné zálohy webu.

Licence MIT a ochranná známka

Ghost je vydáván pod licencí MIT. Dovoluje software používat, kopírovat, upravovat, slučovat, publikovat, šířit, sublicencovat a prodávat, za jediné podmínky: ve všech kopiích zachovat upozornění na autorská práva a text licence. Ghost tedy můžete ve firmě provozovat, přizpůsobit a publikovat v něm pro své zákazníky, aniž byste kupovali licenci.

Licence se týká kódu. Název a logo patří Ghost Foundation a spadají pod její zásady k ochranným známkám: přečtěte si je, pokud kolem softwaru stavíte nabídku. Ghost je registrovaná ochranná známka Ghost Foundation.

This publication is independent of and not affiliated with, authorized, sponsored, or approved by Ghost Foundation. Česky: tato publikace je nezávislá na Ghost Foundation a není s ní spojena, ani jí není povolena, sponzorována či schválena.

Ghost-CLI, nebo Docker Compose: dvě oficiální metody

Projekt dokumentuje dvě cesty pro produkci. Ghost-CLI je instalace, kterou oficiálně doporučuje, a Docker Compose je „preview“, kterou označuje za zcela novou. Uvádí také, že směřuje spíše k tomuto nástroji Docker než k dalšímu vývoji Ghost-CLI, a poskytuje průvodce pro přechod z jednoho na druhý.

BodGhost-CLIDocker Compose (preview)
SystémUbuntu 22.04, 24.04 nebo 26.04Linuxový server s Dockerem 20.10.13 nebo novějším
PaměťAlespoň 1 GBProjekt uvádí jako příklad server s 2 GB a 1 procesorem
Webový server a HTTPSNginx a certifikát Let’s Encrypt, které nasadí Ghost-CLICaddy v kontejneru, který obstará TLS
DatabázeMySQL 8.0 nebo 8.4 nainstalovaná na serveruMySQL v kontejneru
Webová analytikaNekompatibilníDostupná, s účtem Tinybird
Sociální síť (ActivityPub)Služba hostovaná projektem, v rámci limitů použití zdarmaStejná služba ve výchozím nastavení, nebo vaše vlastní

Než začnete: doména a server

Nasměrujte doménu na server před instalací: certifikát se nasazuje během zprovoznění. Na VPS Simafri přicházejí návštěvníci na porty 80 a 443, pod doménovým jménem serveru, se záznamy A a AAAA. Adresa webu se píše celá, s protokolem, například https://example.com: adresa IP způsobuje chyby.

Kromě výše uvedené paměti projekt neuvádí nároky na disk ani zátěž: velikost závisí na vašem provozu, obrázcích a médiích. Na Managed VPS nám popište svou publikaci a doporučíme vám vhodnou velikost.

Instalace Ghost pomocí Ghost-CLI na Ubuntu

Ghost-CLI se používá s uživatelem, který není root a jehož jméno není ghost, protože toto jméno je v konfliktu s nástrojem. Vytvořte ho z účtu root a nahraďte user zvoleným jménem:

Terminál, jako root
adduser <user>
usermod -aG sudo <user>
su - <user>

Nginx a MySQL

Aktualizujte systém, nainstalujte Nginx (alespoň 1.9.5 kvůli SSL) a MySQL. Řádek ufw otevře HTTP a HTTPS, pokud je tento firewall aktivní:

Terminál
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ějších verzích Ubuntu se účet root v MySQL ověřuje přes socket, což Ghost nepodporuje. Dejte mu heslo:

Terminál, poté konzole MySQL
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<your-new-root-password>';
FLUSH PRIVILEGES;
exit

Node.js a Ghost-CLI

Ghost vyžaduje Node.js 22: verze 20, 21, 23 a novější nejsou podporovány. Projekt žádá nainstalovat ho pro celý systém, takto:

Terminál
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

Spuštění instalace

Ghost se instaluje do vlastní složky, s přesným vlastníkem a právy. Nahraďte sitename jménem podle svého výběru:

Terminál
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

Příkaz pak klade své otázky a projekt doporučuje odpovědět ano na každý navržený krok:

Web pak odpovídá a https://example.com/ghost vás vyzve k vytvoření účtu vlastníka. Pokud je instalace přerušena, ghost setup konfiguraci obnoví; pokud selže, ghost uninstall uklidí lépe než smazání složky. ghost doctor kontroluje systém kdykoli.

Instalace Ghost pomocí Docker Compose (preview)

Projekt tuto metodu označuje za „preview“: v jeho očích je zcela nová. Právě ona umožňuje vlastní hosting webové analytiky a ActivityPub.

Na serveru s nainstalovaným Dockerem stáhněte oficiální nástroje do /opt/ghost a zkopírujte jeho dva ukázkové soubory:

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

Do souboru .env doplňte tyto hodnoty:

V souboru caddy/Caddyfile odkomentujte blok, který odpovídá vašemu případu: přesměrování z www na holou doménu, nebo naopak, nebo samostatná doména pro správu. Poté spusťte Ghost a dokončete zprovoznění na /ghost:

Terminál
docker compose pull
docker compose up -d

Webová analytika a ActivityPub

Analytika vyžaduje účet Tinybird, externí službu. Z /opt/ghost se přihlaste, nasaďte její konfiguraci a získejte tokeny, které vložíte do .env, do sekce „Tinybird configuration“:

Terminál
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 hned se službou hostovanou projektem, zdarma v rámci limitů použití, které zveřejňuje její dokumentace. Chcete-li hostovat vlastní, odkomentujte ACTIVITYPUB_TARGET=activitypub:8080. Potom v .env zapněte požadovaný profil nebo profily a kontejnery spusťte znovu:

.env
COMPOSE_PROFILES=analytics,activitypub
Terminál
docker compose pull
docker compose up -d

Pro ActivityPub projekt žádá znovu vytvořit také Ghost a Caddy pomocí docker compose up -d --force-recreate ghost caddy.

Přechod z Ghost-CLI na Docker Compose

Po naklonování a konfiguraci bash scripts/migrate.sh zkopíruje složku content, importuje databázi do kontejneru MySQL a spustí Caddy místo Nginx. Nabídne zastavení Nginx, čímž se web odpojí: odpovězte ne, pokud na serveru běží i jiné weby. Žádná data nemaže. bash recovery_instructions.sh obnoví původní web, pokud migraci přerušíte.

HTTPS a doména pro správu

Správa Ghost musí vést přes HTTPS a projekt doporučuje HTTPS pro celý web: bez něj putují přihlašovací údaje a hesla v čitelné podobě. S Docker Compose to obstará Caddy. S Ghost-CLI nasadí certifikát instalace a dodatečně to udělá jeden příkaz:

Terminál, ve složce webu
ghost setup ssl

Chcete-li změnit adresu webu nainstalovaného pomocí Ghost-CLI, ghost config url https://example.com aktualizuje konfiguraci a ghost restart ji uplatní.

Projekt radí také samostatnou doménu pro správu, která zmenšuje plochu útoku. Cesta zůstává /ghost/. U Ghost-CLI se deklaruje v config.production.json:

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

U Docker Compose vyplňte ADMIN_DOMAIN, odkomentujte jeho blok v Caddyfile a spusťte docker compose up -d --force-recreate ghost caddy. Také tato doména potřebuje své záznamy A a AAAA.

MySQL 8, produkční databáze

MySQL 8 je jediná databáze, kterou projekt v produkci podporuje. Ghost-CLI se instaluje s MySQL 8.0 nebo 8.4 a soubor Compose poskytuje obraz MySQL 8.0.

E-maily a newslettery

Ghost rozlišuje dvě odesílání, která nevedou toutéž cestou. Je to nejdůležitější bod k nastavení po instalaci.

OdesíláníPříkladyCo ho nese
TransakčníPozvánky týmu, zapomenutá hesla, registrace a přihlašovací odkazy členů, kód pro přihlášení z nového zařízeníKonfigurace mail v Ghost, přes SMTP
NewsletteryČlánky odeslané vašim členůmAPI Mailgun, jehož klíče se zadávají v nastavení „Email newsletter“

Relé SMTP pro transakční e-maily

Dokumentace řadí toto nastavení mezi povinná v produkci. Ghost také posílá e-mailem kód, když zjistí přihlášení z nového zařízení: relé nastavte dřív, než pozvete svůj tým.

Na VPS Simafri vede odesílání přes ověřené relé SMTP na portu 587: adresa poštovního účtu, který už máte, nebo Simafri Suite.

config.production.json (Ghost-CLI), poté 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), sekce 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ál, po změně souboru .env
docker compose up -d --force-recreate ghost

Mailgun pro newslettery

Relé SMTP newslettery nepokrývá. Podle dokumentace se hromadné odesílání přes SMTP nedělá a Mailgun je dosud jedinou službou pro hromadné odesílání, kterou Ghost podporuje. Založíte si účet Mailgun a jeho klíče API zadáte v nastavení Ghost.

Pokud své články e-mailem neposíláte, žádný účet Mailgun nepotřebujete: tato nastavení ignorujte. Pokud dáváte přednost jinému nástroji pro newslettery, projekt nabízí synchronizovat do něj vaše členy, například pomocí Zapieru nebo jeho integračních příruček.

Záloha a obnova Ghost

Ghost nabízí tři úrovně kopie a neobsahují totéž. K přesné rekonstrukci webu projekt žádá zálohovat přímo databázi a složku content.

MetodaCo obsahujeK čemu slouží
ghost backup (Ghost-CLI)Zip: obsah ve formátu JSON, členové ve formátu CSV, šablony, obrázky, soubory a média, trasy a přesměrováníOpatření před aktualizací
Export ze správyZip: obsah a nastavení, členové, statistiky článků, šablony, trasy a přesměrování, podle výběru. Bez komentářů, historie aktivity členů a médiíPřesun obsahu na jiný web
Databáze a složka contentVšechna dataObnova po havárii nebo přesná kopie

Export najdete v „Settings“, „Advanced“, „Import/Export“, na kartě „Export“, tlačítko „All data“. Pro úplnou kopii s Ghost-CLI jsou účet MySQL a jméno databáze, které je třeba přenést, v config.production.json:

Terminál, 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/

S Docker Compose uchovávají oficiální nástroje obsah v data/ghost. Výpis má podobu danou obrazem MySQL a heslo root už je v kontejneru. Uchovejte také kopii .env a Caddyfile.

Terminál, 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

Obnova

Terminál, 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ál, 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

Tyto soubory zkopírujte mimo server pomocí rsync nebo scp a vyzkoušejte obnovu na testovacím stroji. Pokud vycházíte z exportu s placenými členy, připojte před importem členů stejný účet Stripe.

Aktualizace Ghost

Projekt vydává aktualizace každý týden a připomíná, že veřejný webový server musí zůstat aktuální. Přečtěte si poznámky k vydání a spusťte příkaz své metody.

S Ghost-CLI

Terminál, ve složce webu
ghost check-update
ghost backup
ghost update

S Docker Compose

Terminál
cd /opt/ghost
git pull
docker compose pull
docker compose up -d
docker image prune

Poslední řádek, nepovinný, odstraní staré obrazy. Nechte GHOST_VERSION v .env zakomentované: pevné určení verze tyto aktualizační příkazy zablokuje.

Zabezpečení a růst vaší instance

Dokumentace uvádí několik nastavení pro produkční server:

Pro zátěž projekt staví před Ghost CDN a vrstvu mezipaměti. Upřesňuje, že clustering a sharding nejsou podporovány: web obsluhuje jediná instance a mezipaměť pohlcuje provoz.

Kdo co dělá na Managed VPS

Vlastní hosting vyžaduje, abyste kromě aplikace udržovali i server. Na Managed VPS se serveru ujímají naše týmy a vaši instanci proaktivně sledují; Ghost zůstává vaším softwarem, s jeho nastavením a daty.

TémaNaše týmyVy
ServerAktualizace systému a zabezpečení, včetně zásahů na serveruOkamžik, který vyhovuje vašemu provozu
DohledServer sledovaný 24 hodin denně, 7 dní v týdnu, se zásahem bez čekání na vaše voláníVáš obsah, vaši členové a vaše předplatná
GhostProaktivní sledování: chyby, zpomalení a místo na disku zachycené, doporučená opravaJeho instalace, aktualizace, nastavení, jeho relé SMTP a účet Mailgun, které zapracujete vy nebo váš AI asistent
ZálohyKaždou noc, šifrované a uchovávané mimo stroj; obnova v ceněŽádost o obnovu, když ji potřebujete
MigraceVáš stávající server přenesen zdarmaOkamžik přepnutí

Pokud dáváte přednost tomu, aby naše týmy zasáhly přímo v aplikaci, tato služba se účtuje po hodinách nebo paušálem, s cenovou nabídkou sdělenou před zásahem.

Ghost na serveru, o který se staráme za vás

S Managed VPS od Simafri udržují naše týmy server vaší instance Ghost aktuální, hlídají ho ve dne i v noci a zasahují bez čekání na vaše volání; vaši instanci také proaktivně sledují a doporučí vám užitečné opravy, které zapracujete vy nebo váš AI asistent. Zálohy se každou noc šifrují a uchovávají mimo stroj, jejich obnova je v ceně a migrace vašeho stávajícího serveru je zdarma.

Objevit Managed VPS

Časté otázky

Je Ghost při vlastním hostingu zdarma?

Ano. Ghost je pod licencí MIT: můžete ho používat ve firmě a přizpůsobit, pokud zachováte její licenční upozornění. Zbývají služby kolem něj: server, relé e-mailů, Mailgun, pokud posíláte newslettery, Tinybird, pokud chcete jeho analytiku.

Jaká konfigurace je potřeba k hostování Ghost?

Projekt doporučuje Ubuntu 22.04, 24.04 nebo 26.04, Nginx, Node.js 22, MySQL 8.0 nebo 8.4, systemd, alespoň 1 GB paměti, doménu a uživatele, který není root. Pro Docker Compose uvádí jako příklad server s 2 GB a 1 procesorem.

Instalovat Ghost pomocí Ghost-CLI, nebo pomocí Dockeru?

Ghost-CLI je instalace, kterou projekt pro produkci doporučuje. Docker Compose je preview, jediná, která umožňuje vlastní hosting webové analytiky a ActivityPub, a projekt uvádí, že k tomuto nástroji směřuje. Průvodce umožňuje přejít z Ghost-CLI na Docker Compose.

Funguje Ghost s SQLite, MariaDB nebo PostgreSQL?

V produkci je MySQL 8 jediná podporovaná databáze. Projekt doporučuje novou instalaci na MySQL 8 ze SQLite a migraci na MySQL 8 z MariaDB. Jeho dokumentace PostgreSQL nepočítá.

Lze newslettery Ghost odesílat přes SMTP?

Ne. SMTP slouží transakčním e-mailům: pozvánkám, heslům, přihlašovacím odkazům členů. Newslettery vyžadují API Mailgun, jedinou podporovanou službu pro hromadné odesílání. Pokud články e-mailem neposíláte, žádný účet Mailgun není potřeba.

Jak zálohovat web Ghost s vlastním hostingem?

Pro úplnou obnovu zálohujte databázi MySQL pomocí mysqldump a složku content pomocí tar. Příkaz ghost backup vytvoří před aktualizací zip. Export ze správy vynechává komentáře, historii aktivity členů a média.

Jak aktualizovat Ghost?

S Ghost-CLI spusťte ve složce webu ghost backup a poté ghost update, a v případě potíží ghost update --rollback. S Docker Compose spusťte v /opt/ghost git pull, docker compose pull a docker compose up -d.

Pokrývá Managed VPS i Ghost?

Managed VPS pokrývá server: systém, zabezpečení, dohled a zálohy. Naše týmy také proaktivně sledují vaši instanci a doporučí vám užitečné opravy, které zapracujete vy. Zásah v samotné aplikaci se účtuje po hodinách nebo paušálem.

Kontaktujte nás