Kun hostaatte Ghostin Managed VPS:llä, julkaisette artikkelinne, kokoatte jäsenenne ja lähetätte uutiskirjeenne koneelta, joka on teidän ja jota tiimimme pitävät ajan tasalla ja valvovat yötä päivää. Ghost on MIT-lisenssillä julkaistu avoimen lähdekoodin ohjelma. Tämä opas seuraa sen virallista dokumentaatiota: Ghost-CLI tai Docker Compose, MySQL, HTTPS, sähköpostit, varmuuskopiot ja päivitykset.
Kirjoittaja: Simon Vasconcelos Lee
Julkaistu 9. marraskuuta 2026Lukuaika: 13 minuuttia
content-kansio ja päivittäkää komennolla ghost update tai docker compose pull: projekti julkaisee päivityksiä joka viikko.Ghost on ammattimainen avoimen lähdekoodin julkaisualusta, joka on kirjoitettu Node.js:lle. Se kokoaa yhteen paikkaan sen, minkä itsenäinen julkaisu usein kokoaa useista työkaluista.
Dokumentaation mukaan tuotteella on omassa hostauksessa samat toiminnot. Sen ympärillä oleva jää teille: uutiskirjeiden lähetys, verkkoanalytiikka, CDN ja sivuston täydelliset varmuuskopiot.
Ghost julkaistaan MIT-lisenssillä. Se sallii ohjelman käyttämisen, kopioimisen, muokkaamisen, yhdistämisen, julkaisemisen, jakelun, alilisensoinnin ja myymisen yhdellä ehdolla: tekijänoikeusmerkintä ja lisenssin teksti säilytetään jokaisessa kopiossa. Voitte siis ajaa Ghostia yrityksessä, mukauttaa sitä ja julkaista sillä asiakkaillenne ilman ostettavaa lisenssiä.
Lisenssi kattaa koodin. Nimi ja logo kuuluvat Ghost Foundationille ja sen tavaramerkkikäytännölle: lukekaa se, jos rakennatte tarjouksen ohjelmiston ympärille. Ghost on Ghost Foundationin rekisteröity tavaramerkki.
This publication is independent of and not affiliated with, authorized, sponsored, or approved by Ghost Foundation. Suomeksi: tämä julkaisu on riippumaton Ghost Foundationista, eikä se ole sidoksissa siihen eikä sen valtuuttama, sponsoroima tai hyväksymä.
Projekti dokumentoi kaksi tietä tuotantoon. Ghost-CLI on asennus, jota se virallisesti suosittelee, ja Docker Compose on ”preview”, jonka se kertoo olevan aivan uusi. Se kertoo myös etenevänsä kohti tätä Docker-työkalustoa sen sijaan, että kehittäisi Ghost-CLI:tä, ja tarjoaa ohjatun toiminnon siirtymiseen toisesta toiseen.
| Seikka | Ghost-CLI | Docker Compose (preview) |
|---|---|---|
| Järjestelmä | Ubuntu 22.04, 24.04 tai 26.04 | Linux-palvelin, jossa on Docker 20.10.13 tai uudempi |
| Muisti | Vähintään 1 Gt | Projekti mainitsee esimerkkinä palvelimen, jossa on 2 Gt ja 1 suoritin |
| Verkkopalvelin ja HTTPS | Nginx ja Let’s Encrypt -varmenne, jotka Ghost-CLI asentaa | Caddy kontissa, joka huolehtii TLS:stä |
| Tietokanta | Palvelimelle asennettu MySQL 8.0 tai 8.4 | MySQL kontissa |
| Verkkoanalytiikka | Ei yhteensopiva | Saatavilla, Tinybird-tilillä |
| Sosiaalinen verkko (ActivityPub) | Projektin hostaama palvelu, maksuton käyttörajojensa puitteissa | Sama palvelu oletuksena tai oma, itse hostattu |
Osoittakaa verkkotunnus palvelimeen ennen asennusta: varmenne asennetaan käyttöönoton aikana. Simafrin VPS:llä kävijät saapuvat portteihin 80 ja 443 palvelimen verkkotunnuksella, A- ja AAAA-tietueilla. Sivuston osoite kirjoitetaan kokonaan protokollineen, kuten https://example.com: IP-osoite aiheuttaa virheitä.
Edellä mainitun muistin lisäksi projekti ei ilmoita levyn eikä kuorman tarvetta: koko riippuu liikenteestänne, kuvistanne ja medioistanne. Managed VPS -palvelimella kuvailkaa meille julkaisunne, niin suosittelemme sopivaa kokoa.
Ghost-CLI:tä käytetään käyttäjällä, joka ei ole root ja jonka nimi ei ole ghost, koska tämä nimi on ristiriidassa työkalun kanssa. Luokaa se root-tililtä korvaten user valitsemallanne nimellä:
adduser <user>
usermod -aG sudo <user>
su - <user>
Päivittäkää järjestelmä, asentakaa Nginx (vähintään 1.9.5 SSL:ää varten) ja MySQL. Rivi ufw avaa HTTP:n ja HTTPS:n, jos tämä palomuuri on käytössä:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx
sudo ufw allow 'Nginx Full'
sudo apt-get install mysql-server
Ubuntun uusissa versioissa MySQL:n root-tili todentautuu socketilla, mitä Ghost ei tue. Antakaa sille salasana:
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<your-new-root-password>';
FLUSH PRIVILEGES;
exit
Ghost vaatii Node.js 22:n: versiot 20, 21, 23 ja sitä uudemmat eivät ole tuettuja. Projekti pyytää asentamaan sen koko järjestelmään tällä tavalla:
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 asennetaan omaan kansioonsa, tietyllä omistajalla ja tietyin oikeuksin. Korvatkaa sitename valitsemallanne nimellä:
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
Komento esittää sitten kysymyksensä, ja projekti suosittelee vastaamaan kyllä jokaiseen ehdotettuun vaiheeseen:
https:// mukaan lukien.localhost isännäksi, root ja edellä asetettu salasana, sitten tietokannan nimi, jonka Ghost-CLI luo.Sivusto vastaa nyt, ja osoite https://example.com/ghost kehottaa luomaan omistajan tilin. Jos asennus keskeytyy, ghost setup jatkaa määritystä; jos se epäonnistuu, ghost uninstall siivoaa paremmin kuin kansion poistaminen. ghost doctor tarkistaa järjestelmän milloin tahansa.
Projekti esittelee tämän menetelmän ”previewna”: sen mielestä se on aivan uusi. Juuri sillä voi hostata itse verkkoanalytiikan ja ActivityPubin.
Hakekaa palvelimella, jolle Docker on asennettu, virallinen työkalusto kansioon /opt/ghost ja kopioikaa sen kaksi esimerkkitiedostoa:
git clone https://github.com/TryGhost/ghost-docker.git /opt/ghost && cd /opt/ghost
cp .env.example .env
cp caddy/Caddyfile.example caddy/Caddyfile
Täyttäkää tiedostoon .env nämä arvot:
DOMAIN: sivuston verkkotunnus, esimerkiksi example.com.ADMIN_DOMAIN: erillinen verkkotunnus ylläpitoa varten, jos haluatte.DATABASE_ROOT_PASSWORD ja DATABASE_PASSWORD: kaksi salasanaa, jotka on luotu komennolla openssl rand -hex 32. Ne lukitaan kertaheitolla: kun tietokanta on alustettu, niiden vaihtaminen rikkoo yhteyden.Poistakaa tiedostossa caddy/Caddyfile kommentit siitä lohkosta, joka vastaa tilannettanne: www-osoitteen uudelleenohjaus paljaaseen verkkotunnukseen tai päinvastoin, tai erillinen ylläpidon verkkotunnus. Käynnistäkää sitten Ghost ja viimeistelkää käyttöönotto osoitteessa /ghost:
docker compose pull
docker compose up -d
HTTP_PORT ja HTTPS_PORT, jos Ghost asetetaan toisen käänteisen välityspalvelimen taakse. MySQL pysyy konttien sisäisessä verkossa.data/ghost ja tietokanta kansiossa data/mysql, kaksi paikkaa, jotka voi säätää tiedostossa .env.-f compose.yml -f compose.ipv6.yml komentoihinne docker compose up.Analytiikka vaatii Tinybird-tilin, ulkoisen palvelun. Kirjautukaa kansiosta /opt/ghost, ottakaa sen asetukset käyttöön ja hakekaa tunnukset, jotka liimataan tiedostoon .env, osioon ”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 toimii heti projektin hostaamalla palvelulla, joka on maksuton sen dokumentaation julkaisemien käyttörajojen puitteissa. Hostataksenne oman, poistakaa kommentit riviltä ACTIVITYPUB_TARGET=activitypub:8080. Ottakaa sitten tiedostossa .env käyttöön haluamanne profiili tai profiilit ja käynnistäkää kontit uudelleen:
COMPOSE_PROFILES=analytics,activitypub
docker compose pull
docker compose up -d
ActivityPubia varten projekti pyytää luomaan uudelleen myös Ghostin ja Caddyn komennolla docker compose up -d --force-recreate ghost caddy.
Kloonauksen ja määrityksen jälkeen bash scripts/migrate.sh kopioi kansion content, tuo tietokannan MySQL-konttiin ja käynnistää Caddyn Nginxin tilalle. Se ehdottaa Nginxin pysäyttämistä, mikä vie sivuston pois verkosta: vastatkaa ei, jos palvelimella pyörii muita sivustoja. Se ei poista mitään tietoja. bash recovery_instructions.sh palauttaa alkuperäisen sivuston, jos keskeytätte siirron.
Ghostin ylläpidon on kuljettava HTTPS:n kautta, ja projekti suosittelee HTTPS:ää koko sivustolle: ilman sitä tunnukset ja salasanat kulkevat selkokielisinä. Docker Composella Caddy huolehtii siitä. Ghost-CLI:llä asennus asentaa varmenteen, ja yksi komento tekee sen jälkikäteen:
ghost setup ssl
Ghost-CLI:llä asennetun sivuston osoitteen vaihtamiseksi ghost config url https://example.com päivittää asetukset ja ghost restart ottaa ne käyttöön.
Projekti neuvoo myös erillistä ylläpidon verkkotunnusta, joka pienentää hyökkäyspintaa. Polku pysyy /ghost/. Ghost-CLI:n puolella se ilmoitetaan tiedostossa config.production.json:
"admin": {
"url": "https://admin.example.com"
}
Docker Composen puolella täyttäkää ADMIN_DOMAIN, poistakaa kommentit sen lohkosta Caddyfilessa ja ajakaa docker compose up -d --force-recreate ghost caddy. Tämäkin verkkotunnus tarvitsee omat A- ja AAAA-tietueensa.
MySQL 8 on ainoa tietokanta, jota projekti tukee tuotannossa. Ghost-CLI asennetaan MySQL 8.0:n tai 8.4:n kanssa, ja Compose-tiedosto toimittaa MySQL 8.0 -imagen.
ghost config database.client sivuston kansiossa kertoo käytetyn tietokannan.Ghost erottaa kaksi lähetystä, jotka eivät kulje samaa reittiä. Se on tärkein asia säätää asennuksen jälkeen.
| Lähetys | Esimerkit | Mikä sitä kantaa |
|---|---|---|
| Transaktio | Tiimin kutsut, unohtuneet salasanat, jäsenten rekisteröitymiset ja kirjautumislinkit, kirjautumiskoodi uudelta laitteelta | Ghostin mail-asetus, SMTP:llä |
| Uutiskirjeet | Jäsenillenne lähetetyt artikkelit | Mailgunin rajapinta, jonka avaimet syötetään ”Email newsletter” -asetuksiin |
Dokumentaatio luokittelee tämän asetuksen tuotannossa vaadituksi. Ghost lähettää myös koodin sähköpostitse, kun se havaitsee kirjautumisen uudelta laitteelta: säätäkää tämä rele ennen tiiminne kutsumista.
Simafrin VPS:llä lähetys kulkee todennetun SMTP-releen kautta portissa 587: käyttöön sopii jo omistamanne sähköpostitilin osoite tai 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 ja requireTLS: Ghost lähettää Nodemailerilla, jonka dokumentaatio pyytää asettamaan secure-arvon false portissa 587, jolloin yhteys siirtyy sen jälkeen STARTTLS:ään. requireTLS kieltäytyy lähettämästä, jos siirtyminen epäonnistuu. Repositorion esimerkkitiedosto ilmoittaa portin 465 ja secure=true: korvatkaa nämä kaksi riviä.from sisältää todellisen ja luetun osoitteen, mikä parantaa projektin mukaan toimitusvarmuutta, ja lähetysverkkotunnuksen SPF-, DKIM- ja DMARC-tietueet täydentävät asetuksen.SMTP-rele ei kata uutiskirjeitä. Dokumentaation mukaan massalähetystä ei tehdä SMTP:llä, ja Mailgun on tällä hetkellä ainoa massalähetyspalvelu, jota Ghost tukee. Luotte oman Mailgun-tilinne ja syötätte sen API-avaimet Ghostin asetuksiin.
Jos ette lähetä artikkeleitanne sähköpostitse, ette tarvitse Mailgun-tiliä: nämä asetukset ohitetaan. Jos pidätte toisesta uutiskirjetyökalusta, projekti ehdottaa synkronoimaan jäsenenne siihen, esimerkiksi Zapierilla tai sen integraatio-oppailla.
Ghost tarjoaa kolme kopiointitasoa, eivätkä ne sisällä samaa. Sivuston rakentamiseksi uudelleen identtisenä projekti pyytää varmuuskopioimaan suoraan tietokannan ja kansion content.
| Menetelmä | Mitä se sisältää | Mihin käyttöön |
|---|---|---|
ghost backup (Ghost-CLI) | Zip: sisällöt JSON-muodossa, jäsenet CSV-muodossa, teemat, kuvat, tiedostot ja mediat, reitit ja uudelleenohjaukset | Varotoimi ennen päivitystä |
| Vienti ylläpidosta | Zip: sisällöt ja asetukset, jäsenet, artikkelien tilastot, teemat, reitit ja uudelleenohjaukset, valinnan mukaan. Ei kommentteja, ei jäsenten toimintahistoriaa, ei medioita | Sisällön siirtäminen toiselle sivustolle |
Tietokanta ja kansio content | Kaikki tiedot | Katastrofista toipuminen tai tarkka kopio |
Vienti löytyy kohdasta ”Settings”, ”Advanced”, ”Import/Export”, välilehti ”Export”, painike ”All data”. Täydellistä kopiota varten Ghost-CLI:llä MySQL-tili ja siirrettävä tietokannan nimi ovat tiedostossa 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/
Docker Composella virallinen työkalusto säilyttää sisällön kansiossa data/ghost. Dump noudattaa MySQL-imagen antamaa muotoa, ja root-salasana on jo kontissa. Säilyttäkää myös kopio tiedostoista .env ja 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
Kopioikaa nämä tiedostot palvelimen ulkopuolelle komennolla rsync tai scp ja tehkää palautuskokeilu testikoneella. Jos aloitatte uudelleen viennistä, jossa on maksavia jäseniä, yhdistäkää sama Stripe-tili ennen jäsentenne tuontia.
Projekti julkaisee päivityksiä joka viikko ja muistuttaa, että julkisen verkkopalvelimen on pysyttävä ajan tasalla. Lukekaa julkaisutiedot ja ajakaa sitten menetelmänne komento.
ghost check-update
ghost backup
ghost update
ghost update --rollback palaa edelliseen versioon, jos päivitys menee pieleen.content pysyy paikallaan päivitysten aikana.ghost update [version] --force nykyisellä versiollanne, koska sen binääririippuvuudet on käännetty tietylle Node.js-versiolle.cd /opt/ghost
git pull
docker compose pull
docker compose up -d
docker image prune
Viimeinen rivi, valinnainen, poistaa vanhat imaget. Jättäkää GHOST_VERSION kommentoiduksi tiedostossa .env: version kiinnittäminen estää nämä päivityskomennot.
Dokumentaatio antaa useita asetuksia tuotantopalvelimelle:
mysql_secure_installation onnistuneen Ghost-CLI-asennuksen jälkeen.Kuormaa varten projekti asettaa CDN:n ja välimuistikerroksen Ghostin eteen. Se täsmentää, ettei klusterointia eikä sharding-jakoa tueta: yksi instanssi palvelee sivustoa, ja välimuisti vastaanottaa liikenteen.
Oma hostaus vaatii palvelimen ylläpitoa sovelluksen lisäksi. Managed VPS -palvelimella tiimimme huolehtivat palvelimesta ja seuraavat instanssianne proaktiivisesti; Ghost pysyy teidän ohjelmananne asetuksineen ja tietoineen.
| Aihe | Tiimimme | Te |
|---|---|---|
| Palvelin | Järjestelmä- ja tietoturvapäivitykset, toimenpiteet palvelimella mukaan lukien | Toimintaanne sopiva ajankohta |
| Valvonta | Palvelinta seurataan ympäri vuorokauden joka päivä, ja puututaan asiaan odottamatta yhteydenottoanne | Sisältönne, jäsenenne ja tilauksenne |
| Ghost | Proaktiivinen seuranta: virheet, hitaus ja levytila havaitaan, ja korjausta suositellaan | Sen asennus, päivitykset, asetukset, SMTP-rele ja Mailgun-tili, jotka toteutatte itse tai tekoälyavustajanne kanssa |
| Varmuuskopiot | Joka yö, salattuina ja koneen ulkopuolella säilytettyinä; palautus sisältyy | Palautuspyyntö, kun tarvitsette sitä |
| Siirto | Nykyinen palvelimenne siirretään, veloituksetta | Käyttöönoton ajankohta |
Jos haluatte tiimiemme toimivan itse sovelluksessa, tämä palvelu laskutetaan tuntiveloituksella tai kiinteällä hinnalla, ja arvio annetaan ennen toimenpidettä.
Simafrin Managed VPS -palvelussa tiimimme pitävät Ghost-instanssinne palvelimen ajan tasalla, valvovat sitä yötä päivää ja toimivat odottamatta yhteydenottoanne; ne seuraavat myös instanssianne proaktiivisesti ja suosittelevat teille hyödyllisiä korjauksia, jotka toteutatte itse tai tekoälyavustajanne kanssa. Varmuuskopiot salataan joka yö ja säilytetään koneen ulkopuolella, niiden palautus sisältyy, ja nykyisen palvelimenne siirto tehdään veloituksetta.
Kyllä. Ghost on MIT-lisenssillä: voitte käyttää sitä yrityksessä ja mukauttaa sitä, kunhan lisenssimerkintä säilyy. Jäljelle jäävät sen ympärillä olevat palvelut: palvelin, sähköpostirele, Mailgun jos lähetätte uutiskirjeitä ja Tinybird jos haluatte sen analytiikan.
Projekti suosittelee Ubuntu 22.04:ää, 24.04:ää tai 26.04:ää, Nginxiä, Node.js 22:ta, MySQL 8.0:aa tai 8.4:ää, systemd:tä, vähintään 1 Gt muistia, verkkotunnusta ja käyttäjää, joka ei ole root. Docker Composea varten se mainitsee esimerkkinä palvelimen, jossa on 2 Gt ja 1 suoritin.
Ghost-CLI on asennus, jota projekti suosittelee tuotantoon. Docker Compose on preview, ainoa joka mahdollistaa verkkoanalytiikan ja itse hostatun ActivityPubin, ja projekti kertoo etenevänsä kohti tätä työkalustoa. Ohjattu toiminto mahdollistaa siirtymisen Ghost-CLI:stä Docker Composeen.
Tuotannossa MySQL 8 on ainoa tuettu tietokanta. Projekti suosittelee uudelleenasennusta MySQL 8:lle SQLitestä ja siirtymistä MySQL 8:aan MariaDB:stä. Sen dokumentaatio ei tunne PostgreSQL:ää.
Ei. SMTP on tarkoitettu transaktiosähköposteille: kutsut, salasanat, jäsenten kirjautumislinkit. Uutiskirjeet vaativat Mailgunin rajapinnan, ainoan tuetun massalähetyspalvelun. Jos ette lähetä artikkeleita sähköpostitse, Mailgun-tiliä ei tarvita.
Täydellistä palautusta varten varmuuskopioikaa MySQL-tietokanta komennolla mysqldump ja kansio content komennolla tar. Komento ghost backup tuottaa zipin ennen päivitystä. Ylläpidon vienti jättää pois kommentit, jäsenten toimintahistorian ja mediat.
Ghost-CLI:llä ajakaa sivuston kansiossa ghost backup ja sitten ghost update, ja ghost update --rollback ongelmatilanteessa. Docker Composella ajakaa kansiossa /opt/ghost git pull, docker compose pull ja docker compose up -d.
Managed VPS kattaa palvelimen: järjestelmän, tietoturvan, valvonnan ja varmuuskopiot. Tiimimme seuraavat myös instanssianne proaktiivisesti ja suosittelevat hyödyllisiä korjauksia, jotka toteutatte itse. Toimenpide sovelluksessa laskutetaan tuntiveloituksella tai kiinteällä hinnalla.
Simafri
Jutellaan hankkeestasi
Kerro meille muutamalla sanalla, mitä tarvitset: vastaamme sinulle nopeasti.
Kiitos! Pyyntösi on lähetetty. Vastaamme sinulle pian.
Suositko sähköpostia? Kirjoita meille osoitteeseen support@simafri.com.