Installation

En ny server från grunden: Grav och dess plugin med pluginhanteraren, temat och Groovys plugin ur paket, konfigen och det första kontot.

En ny installation byggs av en ren Grav, Gravs egna plugin från Gravs pluginhanterare (bin/gpm) och Groovys fyra delar ur paket: temat groovy-docs och pluginen subsites, mail-auth och mcp. Ingen kod behöver kopieras från repot.

Alla kommandon på servern körs från webbroten, som den användare som äger filerna där. Annars kan sajten inte skriva i sina egna mappar.

Det som behövs

  • PHP i den version Grav kräver (Grav 2.2: 8.3 eller senare), med tilläggen zip, dom, xmlwriter, mbstring och gd. pdo_sqlite behövs för sökning på servern.
  • nginx, om installationen ska ha fler än en sajt. Regeln för flera sajter finns bara för nginx. Med Apache fungerar grundsajten, men inga subsajter.
  • En SMTP-server för inloggningsmejlen. Alla utom super-admin loggar in med en länk i ett mejl.
  • Utgående HTTPS från PHP är valfritt: webbfonter och förhandsbilder för inbäddade videor. Utan det används systemfonter och en vanlig spelare.

Paketen

Paketen byggs från en klon av repot och hamnar i mappen dist/, som inte checkas in:

bin/setup
bin/package

Det ger:

Fil Vad
groovy-docs-<version>.zip temat
subsites-<version>.zip, mail-auth-<version>.zip, mcp-<version>.zip pluginen
groovy-multisite.zip setup.php och nginx-regeln, för flera sajter
skill-groovy-docs-super-admin.zip, skill-groovy-docs-editor.zip temats skills för en AI-klient (sidan AI-klient)
VERSIONS.txt den Grav och de plugin delarna är provade med

Paketen byggs från det som är incheckat. Bygg dem på nytt efter en ändring i temat eller pluginen. Kopiera dem till servern.

Steg för steg

  1. Grav. Hämta Grav i versionen i VERSIONS.txt från Gravs sida på GitHub (Releases, filen grav-v<version>.zip). Packa upp den så att mappen blir webbroten.

  2. Gravs plugin, i versionerna i VERSIONS.txt. Ett plugin i taget, med adressen till just den versionen:

    php bin/gpm direct-install -y https://getgrav.org/download/plugins/form/<version>

    Gör så för form, email, login, api, admin2, flex-objects och tntsearch. Med bin/gpm install kan ett plugin bli nyare än det provade, eftersom ett annat plugin kräver det.

    error, problems, shortcode-core och github-markdown-alerts följer med Grav. Jämför deras versioner med VERSIONS.txt (php bin/gpm version <namn>).

  3. Temat och Groovys plugin, ett paket i taget:

    php bin/gpm direct-install -y /sökväg/till/groovy-docs-<version>.zip
    php bin/gpm direct-install -y /sökväg/till/subsites-<version>.zip
    php bin/gpm direct-install -y /sökväg/till/mail-auth-<version>.zip
    php bin/gpm direct-install -y /sökväg/till/mcp-<version>.zip

    Utan tillgång till serverns filer: ladda upp paketen i Admin2 (på /admin, efter steg 6) under Tools → Direct Install. Temat är ungefär 6 MB. PHP tillåter ofta bara 2 MB per uppladdning, och Admin2 svarar då Either a "url" field or an uploaded "file" is required. Höj gränsen i PHP:s inställningar först:

    upload_max_filesize = 64M
    post_max_size = 64M

    Starta sedan om PHP. I imagen linuxserver/grav hör raderna hemma i /config/php/php-local.ini. Med Easypanel kan filen läggas dit utan terminal: tjänsten → Storage → Add File Mount, med sökvägen ovan och raderna som innehåll, och sedan Deploy.

  4. Konfigen. Allt i det här steget går att göra i Admin2 (på /admin, efter steg 6). Inställningarna för bilagor, skyddade grenar, sessionen och CSS sätter temat och subsites själva.

    • Temat: Themes → Groovy Docs → Activate. Det skriver pages.theme: groovy-docs i user/config/system.yaml.
    • Felsidor: Configuration → System → Error handler → Display errors: Simple Error. Besökare ser då inga sökvägar eller kod. Felen skrivs till loggen.
    • Inloggningen: Plugins → Login → Site host: serverns adress, utan avslutande snedstreck, till exempel https://docs.example.com. Utan den skickas inga inloggningsmejl. Lämna Configuration → System → Advanced → Custom base URL tom. Med flera sajter tar den bort subsajternas prefix ur länkarna. Bakom en proxy som sköter https (Easypanel) räcker Reverse proxy setup och Site host.
    • tntsearch: Plugins → TNT Search → avstängt. Pluginet ska vara installerat men avstängt: temat använder bara dess bibliotek, och pluginets egen sökning visar skyddade sidor.
    • E-post: Plugins → Email: Mail engine SMTP, serverns adress, port, kryptering och inloggning, och avsändaren (From). Prova med ett testmejl från webbroten: php bin/plugin email test-email -t <adress>.
    • Språket: en svensk installation sätter Interface language till Svenska under Alla sajter: System-Admin → Temainställningar, fliken General → Language (efter steg 6). Mejlen har en egen inställning: Plugins → Mail Auth → Mail language, sv. Se Temainställningar → Gränssnittets språk.

    Utan Admin2 skrivs samma värden i user/config/system.yaml (pages.theme, errors.display: 0), i user/config/themes/groovy-docs.yaml (ui_language: sv) och i user/config/plugins/: login.yaml (site_host), tntsearch.yaml (enabled: false), email.yaml (from, mailer) och mail-auth.yaml (mail_language: sv).

  5. Flera sajter. Packa upp groovy-multisite.zip:

    • setup.php läggs i webbroten, bredvid index.php;
    • nginx-multisite.conf tas med i nginx-konfigurationens server-block med include. Den ska stå efter Gravs egna spärrar (location-raderna i webserver-configs/nginx.conf) och före location /. nginx använder den första regel som passar. Ändra fastcgi_pass i filen till serverns PHP-FPM.

    Kör nginx -t och ladda om nginx.

  6. Super-admin. Det första kontot är super-admin och det enda med lösenord:

    php bin/plugin login new-user -u <namn> -e <adress> -l en -P b --admin-type=api -N "<Namn>" -t Admin

    Kommandot frågar efter lösenordet. Utan konto skickar Grav i stället den första besökaren till /admin för att skapa det.

  7. Schemalagda jobb. Lägg in raden i crontab (sidan Schemalagda jobb).

  8. Töm cachen: php bin/grav cache.

Kontrollera

  1. Öppna sajten. Den visas med temat, med Gravs exempelsida som startsida.
  2. Logga in som super-admin på /login.
  3. Öppna hälsokontrollen (sidan Hälsokontroll). Rätta det som står som Warning.
  4. System-Admin → Sites → Ny sajt skapar en provsajt. Den första editorn får ett inloggningsmejl med en länk till sajten. Följ länken: editorn är inloggad i den nya sajten. Saknas setup.php eller nginx-regeln står det i Sites vad som saknas.

Ta bort provsajten i registret efteråt.

Senare

  • Uppdatera temat eller ett av Groovys plugin: bygg nya paket och installera dem som i steg 3. Töm cachen.
  • Grav och dess plugin uppdateras enligt sidan Uppdatering av Grav och plugins.
  • Spärren mot installation i Admin är av. Slå på den när installationen ska skötas enligt uppdateringsrutinen: Admin2 på grundsajten → Plugins → Subsites → No installs or updates through Admin. Med spärren på fungerar inte Direct Install.
  • MCP-servern är avstängd. Hur den slås på står i sidan AI-klient, under För den som driftar.
© 2026 Groovy Docs