Devlog #1 – Ghost på egen infrastruktur (Proxmox + Caddy)

Dato: 10. februar 2026
Status: ✅ Live
Tema: Self-hosting, læring og litt friksjon


I dag var målet enkelt på papiret:
Få opp en Ghost-instans for devlog på egen infrastruktur.

I praksis ble det en god påminnelse om hvorfor self-hosting både er tilfredsstillende og tidvis frustrerende.

Mål

  • Kjøre Ghost i egen homelab
  • Isolert i LXC på Proxmox
  • Eksponert via Caddy med HTTPS
  • Lav sikkerhetskompleksitet (venner + interesserte, ikke prod-kritisk)

Oppsett

  • Hypervisor: Proxmox
  • Runtime: LXC (Debian 12)
  • Applikasjon: Ghost 6.x
  • Node: v22 LTS (krav i Ghost 6)
  • Database: MariaDB
  • Reverse proxy: Caddy
  • Domenenavn: devlog.thatwemade.com

Det som fungerte

  • Ghost kjører stabilt i LXC
  • Caddy håndterer HTTPS helt sømløst
  • Oppsettet er lett å reprodusere for flere tjenester
  • Ghost lytter nå riktig på LAN (0.0.0.0:2368)

Det som tok tid (og hvorfor)

  • Node-versjoner: Ghost 6 krever Node 22 – ikke 18 eller 20
  • Ghost-CLI + systemd:
    Delvis installasjon + manglende sudo førte til en “corrupted” systemd-state
  • DB-rettigheter:
    Ghost startet, men feilet under boot pga manglende grants
  • CLI-regler:
    Ghost-CLI er svært streng på:
    • hvilken bruker som kjører hva
    • at katalogen er helt tom ved install
    • at systemd er korrekt registrert

Ingen av feilene var “vanskelige”, men kombinasjonen gjorde at det tok noen runder før alt var riktig.

Lærdommer

  • Start rent hvis Ghost-CLI havner i limbo
  • Bruk egen DB-bruker, ikke root
  • Sjekk alltid:
    • ghost config get url
    • ss -lntp | grep 2368
  • Ghost + Caddy er et veldig godt par, så lenge ansvar er tydelig delt

Resultat

🎉 Devloggen er live på egen infrastruktur
🎉 HTTPS via Caddy
🎉 Klar for videre bygging, dokumentasjon og refleksjon

Neste steg blir å bruke denne devloggen aktivt:
ikke bare som changelog, men som et sted å tenke høyt om arkitektur, valg og retning.