Hosta Ghost® på en Managed VPS: din publikation, på din egen server

Att hosta Ghost på en Managed VPS innebär att du publicerar dina artiklar, samlar dina medlemmar och skickar dina nyhetsbrev från en egen maskin, som våra team håller uppdaterad och bevakar dag och natt. Ghost är fri programvara under MIT-licensen. Den här guiden följer den officiella dokumentationen: Ghost-CLI eller Docker Compose, MySQL, HTTPS, e-post, säkerhetskopior och uppdateringar.

Simon Vasconcelos Lee Av Publicerad den 9 november 2026Lästid: 13 minuter

Alla guider

I korthet

  1. MIT-licensen för Ghost tillåter fri användning i företag, så länge licensmeddelandet bevaras. Namnet och logotypen omfattas separat av Ghost Foundations varumärkespolicy.
  2. Projektet rekommenderar Ghost-CLI på Ubuntu, med Nginx, Node.js 22, MySQL 8 och minst 1 GB minne. Dess Docker Compose-metod, i ”preview”, lägger till webbanalys och självhostad ActivityPub.
  3. MySQL 8 är den enda databasen som stöds i produktion.
  4. Räkna med två e-postflöden: ett SMTP-relä för de transaktionella meddelandena, oumbärligt, och Mailgun för nyhetsbreven, den enda tjänst för massutskick som stöds.
  5. Säkerhetskopiera databasen och mappen content och uppdatera sedan med ghost update eller docker compose pull: projektet publicerar uppdateringar varje vecka.

Det Ghost gör

Ghost är en professionell och fri publiceringsplattform, skriven för Node.js. Den samlar på ett ställe det som en oberoende publikation ofta får ihop av flera olika verktyg.

Enligt dokumentationen har produkten samma funktioner vid självhosting. Det som omger den får du ordna själv: utskicket av nyhetsbreven, webbanalysen, ett CDN och de fullständiga säkerhetskopiorna av webbplatsen.

MIT-licensen och varumärket

Ghost publiceras under MIT-licensen. Den tillåter att använda, kopiera, ändra, sammanfoga, publicera, distribuera, vidarelicensiera och sälja programvaran, på ett villkor: upphovsrättsmeddelandet och licenstexten ska finnas kvar i varje kopia. Du kan alltså köra Ghost i ditt företag, anpassa det och publicera åt dina kunder, utan att köpa någon licens.

Licensen täcker koden. Namnet och logotypen tillhör Ghost Foundation och omfattas av dess varumärkespolicy: läs den om du bygger ett erbjudande kring programvaran. Ghost är ett registrerat varumärke som tillhör Ghost Foundation.

This publication is independent of and not affiliated with, authorized, sponsored, or approved by Ghost Foundation. På svenska: den här publikationen är oberoende av Ghost Foundation och är varken knuten till, auktoriserad av, sponsrad av eller godkänd av dem.

Ghost-CLI eller Docker Compose: två officiella metoder

Projektet dokumenterar två vägar för produktion. Ghost-CLI är den installation som det officiellt rekommenderar, och Docker Compose är en ”preview”, som det själv kallar helt ny. Det anger också att det rör sig mot den Docker-baserade verktygsuppsättningen snarare än att vidareutveckla Ghost-CLI, och det tillhandahåller en guide för att byta från det ena till det andra.

PunktGhost-CLIDocker Compose (preview)
SystemUbuntu 22.04, 24.04 eller 26.04En Linux-server med Docker 20.10.13 eller senare
MinneMinst 1 GBProjektet nämner som exempel en server med 2 GB och 1 processor
Webbserver och HTTPSNginx och ett certifikat från Let’s Encrypt, installerade av Ghost-CLICaddy, i en container, som hanterar TLS
DatabasMySQL 8.0 eller 8.4 installerad på servernMySQL i en container
WebbanalysInte kompatibelTillgänglig, med ett Tinybird-konto
Socialt nätverk (ActivityPub)Tjänsten som projektet själv hostar, kostnadsfri inom sina användningsgränserSamma tjänst som standard, eller din egen, självhostad

Innan du börjar: domänen och servern

Peka domänen mot servern före installationen: certifikatet installeras under uppsättningen. På en VPS från Simafri kommer besökarna in på port 80 och 443, under serverns domännamn, med A- och AAAA-poster. Webbplatsens adress skrivs fullständigt, med sitt protokoll, som https://example.com: en IP-adress ger fel.

Utöver minnet som anges ovan anger projektet varken disk eller belastning: storleken beror på din trafik, dina bilder och din media. På en Managed VPS beskriver du din publikation, så rekommenderar vi lämplig storlek.

Installera Ghost med Ghost-CLI på Ubuntu

Ghost-CLI används med en användare som inte är root, och vars namn inte är ghost, eftersom det namnet krockar med verktyget. Skapa den från root-kontot och ersätt user med det valda namnet:

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

Nginx och MySQL

Uppdatera systemet, installera Nginx (minst 1.9.5 för SSL) och MySQL. Raden ufw öppnar HTTP och HTTPS om den brandväggen är aktiv:

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

På nyare versioner av Ubuntu autentiseras MySQL:s root-konto via socket, vilket Ghost inte stöder. Ge det ett lösenord:

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

Node.js och Ghost-CLI

Ghost kräver Node.js 22: versionerna 20, 21, 23 och senare stöds inte. Projektet ber dig installera det för hela systemet, på det här sättet:

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

Starta installationen

Ghost installeras i en egen mapp, med en bestämd ägare och bestämda rättigheter. Ersätt sitename med det namn du vill ha:

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

Kommandot ställer sedan sina frågor, och projektet rekommenderar att svara ja på varje föreslaget steg:

Webbplatsen svarar då, och https://example.com/ghost ber dig skapa ägarens konto. Om installationen avbryts återupptar ghost setup konfigurationen; om den misslyckas städar ghost uninstall bättre än att ta bort mappen. ghost doctor kontrollerar systemet när som helst.

Installera Ghost med Docker Compose (preview)

Projektet presenterar den här metoden som en ”preview”: den är helt ny i dess ögon. Det är den som gör det möjligt att självhosta webbanalys och ActivityPub.

På en server där Docker är installerat hämtar du den officiella verktygsuppsättningen i /opt/ghost och kopierar dess två exempelfiler:

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

Fyll i de här värdena i filen .env:

I caddy/Caddyfile avkommenterar du blocket som motsvarar ditt fall: omdirigering från www till den nakna domänen, eller tvärtom, eller en separat administrationsdomän. Starta sedan Ghost och slutför uppsättningen på /ghost:

Terminal
docker compose pull
docker compose up -d

Webbanalys och ActivityPub

Webbanalysen kräver ett Tinybird-konto, en extern tjänst. Från /opt/ghost loggar du in, distribuerar dess konfiguration och hämtar de tokens som ska klistras in i .env, avsnittet ”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 fungerar direkt med tjänsten som projektet själv hostar, kostnadsfri inom de användningsgränser som dess dokumentation publicerar. För att självhosta din egen avkommenterar du ACTIVITYPUB_TARGET=activitypub:8080. Aktivera sedan önskad profil eller önskade profiler i .env och starta om containrarna:

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

För ActivityPub ber projektet dig skapa om även Ghost och Caddy, med docker compose up -d --force-recreate ghost caddy.

Byta från Ghost-CLI till Docker Compose

Efter kloningen och konfigurationen kopierar bash scripts/migrate.sh mappen content, importerar databasen i MySQL-containern och startar Caddy i stället för Nginx. Det erbjuder sig att stoppa Nginx, vilket tar webbplatsen offline: svara nej om andra webbplatser körs på servern. Det tar inte bort några data. bash recovery_instructions.sh återställer den ursprungliga webbplatsen om du avbryter migreringen.

HTTPS och administrationsdomänen

Ghosts administration måste gå över HTTPS, och projektet rekommenderar HTTPS för hela webbplatsen: utan det går användarnamn och lösenord i klartext. Med Docker Compose sköter Caddy det. Med Ghost-CLI installerar installationen certifikatet, och ett kommando gör det i efterhand:

Terminal, i webbplatsens mapp
ghost setup ssl

För att ändra adressen på en webbplats som installerats med Ghost-CLI uppdaterar ghost config url https://example.com konfigurationen, och ghost restart tillämpar den.

Projektet råder också till en separat administrationsdomän, som minskar angreppsytan. Sökvägen förblir /ghost/. Med Ghost-CLI anges den i config.production.json:

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

Med Docker Compose fyller du i ADMIN_DOMAIN, avkommenterar dess block i Caddyfile och kör docker compose up -d --force-recreate ghost caddy. Den domänen behöver också sina A- och AAAA-poster.

MySQL 8, databasen för produktion

MySQL 8 är den enda databas som projektet stöder i produktion. Ghost-CLI installeras med MySQL 8.0 eller 8.4, och Compose-filen tillhandahåller en MySQL 8.0-avbild.

E-post och nyhetsbrev

Ghost skiljer på två utskick, som inte går samma väg. Det är den viktigaste inställningen att göra efter installationen.

UtskickExempelDet som bär det
TransaktionelltInbjudningar till teamet, bortglömda lösenord, medlemmarnas registreringar och inloggningslänkar, inloggningskod från en ny enhetGhosts konfiguration mail, via SMTP
NyhetsbrevArtiklarna som skickas till dina medlemmarMailguns API, vars nycklar anges i inställningarna ”Email newsletter”

SMTP-reläet, för de transaktionella meddelandena

Dokumentationen klassar den här konfigurationen som obligatorisk i produktion. Ghost skickar också en kod med e-post när det upptäcker en inloggning från en ny enhet: ställ in reläet innan du bjuder in ditt team.

På en VPS från Simafri går utskicken via ett autentiserat SMTP-relä, på port 587: adressen till ett e-postkonto som du redan har, eller Simafri Suite.

config.production.json (Ghost-CLI), sedan 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), avsnittet 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, efter en ändring av filen .env
docker compose up -d --force-recreate ghost

Mailgun, för nyhetsbreven

SMTP-reläet täcker inte nyhetsbreven. Enligt dokumentationen sker massutskick inte via SMTP, och Mailgun är för närvarande den enda tjänst för massutskick som Ghost stöder. Du skapar ditt Mailgun-konto och anger dess API-nycklar i Ghosts inställningar.

Om du inte skickar dina artiklar med e-post behöver du inget Mailgun-konto: de inställningarna kan du bortse från. Föredrar du ett annat verktyg för nyhetsbrev föreslår projektet att synkronisera dina medlemmar till det, till exempel med Zapier eller dess integrationsguider.

Säkerhetskopiera och återställa Ghost

Ghost erbjuder tre nivåer av kopior, och de innehåller inte samma sak. För att återskapa en webbplats identiskt ber projektet dig säkerhetskopiera databasen och mappen content direkt.

MetodVad den innehållerFör vilket ändamål
ghost backup (Ghost-CLI)En zip: innehåll i JSON, medlemmar i CSV, teman, bilder, filer och media, rutter och omdirigeringarFörsiktighetsåtgärden före en uppdatering
Export från administrationenEn zip: innehåll och inställningar, medlemmar, statistik över artiklarna, teman, rutter och omdirigeringar, efter val. Varken kommentarer, medlemmarnas aktivitetshistorik eller mediaFlytt av innehållet till en annan webbplats
Databas och mappen contentSamtliga dataÅterställning efter haveri, eller en exakt kopia

Exporten finns under ”Settings”, ”Advanced”, ”Import/Export”, fliken ”Export”, knappen ”All data”. För den fullständiga kopian, med Ghost-CLI, står MySQL-kontot och databasens namn att föra över i 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/

Med Docker Compose lagrar den officiella verktygsuppsättningen innehållet i data/ghost. Dumpen följer den form som MySQL-avbilden anger, och root-lösenordet finns redan i containern. Spara också en kopia av .env och av Caddyfile.

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

Återställa

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

Kopiera de här filerna utanför servern, med rsync eller scp, och gör ett återställningstest på en testmaskin. Om du utgår från en export med betalande medlemmar kopplar du samma Stripe-konto innan du importerar dina medlemmar.

Uppdatera Ghost

Projektet publicerar uppdateringar varje vecka och påminner om att en publik webbserver måste hållas uppdaterad. Läs versionsanteckningarna och kör sedan kommandot för din metod.

Med Ghost-CLI

Terminal, i webbplatsens mapp
ghost check-update
ghost backup
ghost update

Med Docker Compose

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

Den sista raden, valfri, tar bort de gamla avbilderna. Låt GHOST_VERSION vara utkommenterad i .env: en fast version blockerar de här uppdateringskommandona.

Stärka och låta din instans växa

Dokumentationen ger flera inställningar för en server i produktion:

För belastningen placerar projektet ett CDN och ett cachelager framför Ghost. Det anger att klustring och sharding inte stöds: en enda instans serverar webbplatsen, och cachen tar upp trafiken.

Vem gör vad på en Managed VPS

Att självhosta innebär att sköta servern utöver applikationen. På en Managed VPS tar våra team hand om servern och följer din instans proaktivt; Ghost förblir din programvara, med sina inställningar och sina data.

OmrådeVåra teamDu
ServernUppdateringar av system och säkerhet, ingrepp på servern inräknadeTidpunkten som passar din verksamhet
ÖvervakningenServern följs dygnet runt, alla dagar, med ingrepp utan att vänta på ditt samtalDitt innehåll, dina medlemmar och dina prenumerationer
GhostProaktiv uppföljning: fel, långsamma svarstider och diskutrymme upptäcks, med rekommenderad rättelseInstallationen, uppdateringarna, inställningarna, SMTP-reläet och Mailgun-kontot, som du genomför själv eller med din AI-assistent
SäkerhetskopiornaVarje natt, krypterade och förvarade utanför maskinen; återställning ingårBegäran om återställning, när du behöver den
MigreringenDin nuvarande server migreras kostnadsfrittTidpunkten för bytet

Om du föredrar att våra team ingriper i själva applikationen faktureras den tjänsten per timme eller som fast pris, med en offert som lämnas före ingreppet.

En server som sköts åt dig, för din webbplats på Ghost

Med en Managed VPS från Simafri håller våra team servern för din Ghost-instans uppdaterad, övervakar den dag och natt och griper in utan att vänta på ditt samtal; de följer också din instans proaktivt och rekommenderar de rättelser som är till nytta, som du genomför själv eller med din AI-assistent. Säkerhetskopiorna krypteras varje natt och förvaras utanför maskinen, återställningen ingår, och migreringen av din nuvarande server är kostnadsfri.

Upptäck Managed VPS

Vanliga frågor

Är Ghost gratis att självhosta?

Ja. Ghost är licensierat under MIT: du kan använda det i ditt företag och anpassa det, så länge licensmeddelandet bevaras. Kvar blir tjänsterna runt omkring: servern, e-postreläet, Mailgun om du skickar nyhetsbrev, Tinybird om du vill ha dess webbanalys.

Vilken konfiguration krävs för att hosta Ghost?

Projektet rekommenderar Ubuntu 22.04, 24.04 eller 26.04, Nginx, Node.js 22, MySQL 8.0 eller 8.4, systemd, minst 1 GB minne, en domän och en användare som inte är root. För Docker Compose nämner det som exempel en server med 2 GB och 1 processor.

Ska man installera Ghost med Ghost-CLI eller med Docker?

Ghost-CLI är den installation som projektet rekommenderar för produktion. Docker Compose är en preview, den enda som ger självhostad webbanalys och ActivityPub, och projektet säger att det rör sig mot den verktygsuppsättningen. En guide gör det möjligt att byta från Ghost-CLI till Docker Compose.

Fungerar Ghost med SQLite, MariaDB eller PostgreSQL?

I produktion är MySQL 8 den enda databasen som stöds. Projektet rekommenderar en nyinstallation på MySQL 8 från SQLite, och en migrering till MySQL 8 från MariaDB. Dess dokumentation omfattar inte PostgreSQL.

Kan man skicka Ghosts nyhetsbrev via SMTP?

Nej. SMTP används för transaktionella meddelanden: inbjudningar, lösenord, medlemmarnas inloggningslänkar. Nyhetsbreven kräver Mailguns API, den enda tjänst för massutskick som stöds. Skickar du inga artiklar med e-post behövs inget Mailgun-konto.

Hur säkerhetskopierar man en självhostad Ghost-webbplats?

För en fullständig återställning säkerhetskopierar du MySQL-databasen med mysqldump och mappen content med tar. Kommandot ghost backup ger en zip före en uppdatering. Exporten från administrationen utelämnar kommentarerna, medlemmarnas aktivitetshistorik och media.

Hur uppdaterar man Ghost?

Med Ghost-CLI kör du ghost backup och sedan ghost update i webbplatsens mapp, och ghost update --rollback om något går fel. Med Docker Compose kör du git pull, docker compose pull och docker compose up -d i /opt/ghost.

Täcker en Managed VPS Ghost?

En Managed VPS täcker servern: system, säkerhet, övervakning och säkerhetskopior. Våra team följer också din instans proaktivt och rekommenderar de rättelser som är till nytta, som du genomför själv. Ett ingrepp i själva applikationen faktureras per timme eller som fast pris.

Kontakta oss