ZKRINET Docs
Bygga

Deploy

Att deploya betyder att lägga ut ny kod i ditt projekt. Det finns tre vägar — terminalen, en zip i panelen och GitHub — och alla går genom samma kedja: ögonblicksbild först, hälsokoll efter, och tillbaka av sig själv om projektet inte svarar.

Vad som får skickas upp

Ett deploypaket får bara innehålla de här mapparna:

MappVad händer
pb_hooks/Ersätter din serverkod
pb_migrations/Ersätter dina migrationer. Nya migrationer körs när projektet startar om
pb_public/Ersätter din frontend

Byggblocken ligger i ett eget lager och påverkas aldrig av en deploy — se Alla byggblock.

Deploynycklar

En deploynyckel låser upp ett projekt och kan bara deploya — inget annat. Skapa den under fliken Deploy. Nyckeln visas en gång; vi sparar bara en hash av den. Spara den som hemlighet, till exempel ZKRINET_TOKEN i GitHub. Högst tio nycklar per projekt. Återkalla en nyckel du inte använder längre.

1. Från terminalen

Kör i projektmappen (där pb_hooks/, pb_migrations/ och pb_public/ ligger). Kräver Node 18 eller senare, inga andra beroenden.

ZKRINET_TOKEN=zk_dep_… npx https://zkrinet.com/cli/zkrinet.tgz deploy

Annan mapp eller ett meddelande som syns i loggen:

ZKRINET_TOKEN=zk_dep_… npx https://zkrinet.com/cli/zkrinet.tgz deploy ./min-app -m "ny startsida"

Kommandot packar mapparna, laddar upp dem och följer deployen tills den är ute eller återställd. Publicering av CLI:t som npx zkrinet KOMMER.

2. Zip i panelen

Fliken Deploy → Välj zip och lägg ut. Zippen ska innehålla mapparna ovan. Samma granskning och samma kedja som i terminalen.

3. Från GitHub

Lägg filen nedan i repot som .github/workflows/zkrinet.yml och deploynyckeln som repo-hemligheten ZKRINET_TOKEN. Varje push till main deployar.

name: Zkrinet
on: { push: { branches: [main] } }
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: npx --yes https://zkrinet.com/cli/zkrinet.tgz deploy
        env: { ZKRINET_TOKEN: ${{ secrets.ZKRINET_TOKEN }} }

Rullas en deploy från GitHub tillbaka får du ett larm — ingen sitter och tittar på en automatisk deploy.

Vad som händer under en deploy

  1. Paketet hämtas och kontrolleras mot sin SHA-256 — det som lades ut är exakt det som laddades upp.
  2. Granskningen nekar hela paketet vid minsta avvikelse (se ovan).
  3. En ögonblicksbild av hela projektet tas — databas, filer och kod. Det är återställningspunkten.
  4. Koden läggs in och projektet startas om. Nya migrationer körs.
  5. Hälsokollen: projektet måste svara inom ungefär 30 sekunder. Finns pb_public/index.html kontrolleras också att startsidan verkligen serveras.
  6. Svarar projektet är deployen ute. Svarar det inte rullas allt tillbaka till ögonblicksbilden — även databasen, om en migration hann ändra den — och projektet startar igen som före deployen.

Loggen för varje deploy syns under fliken Deploy, med orsaken om den rullades tillbaka.

Vanliga frågor

Min deploy rullades tillbaka. Varför? Projektet svarade inte efter omstarten. Vanligaste orsaken är ett fel i en hook eller en migration som kraschar vid start. Loggen under Deploy visar de sista raderna från PocketBase. Testa lokalt med ./pocketbase serve och samma version (0.40.4).

Raderas min data om en deploy rullas tillbaka? Projektet återställs till läget precis före deployen. Hann någon skriva data under de sekunder deployen pågick försvinner just det.

Kan jag rulla tillbaka till en tidigare deploy själv? Vi sparar de tre senaste ögonblicksbilderna från deployer. En knapp för att gå tillbaka till en av dem KOMMER. Fram till dess: lägg ut den tidigare versionen av koden igen.

Kan jag deploya bara frontenden? Ja. Skicka bara pb_public/ — serverkoden och migrationerna rörs inte.

Startsidan visar Zkrinets sida i stället för min. Du har ingen pb_public/index.html än. Lägg ut den, så syns din.

Varför syns inte min nya CSS direkt? Filer utan egen Cache-Control får private, no-cache: webbläsaren frågar om filen ändrats och får ett snabbt svar om den inte gjort det. Ser du ändå gammal kod: ladda om sidan hårt.