Det här sätter du upp
Baserow är en databas som fungerar som ett kalkylark. Teamet håller kunder, projekt, ordrar eller lager i tabeller, länkar rader mellan dem och ser samma data som ett rutnät, ett galleri eller ett formulär. En delad länk visar en vy som bara går att läsa, ett publikt formulär tar emot rader från personer utan konto, och allt går att läsa och skriva via ett REST-API, webhooks och Baserows egna automatiseringar.
Baserow görs av Baserow B.V., ett företag i Nederländerna, som också säljer Baserow som tjänst och betalda licenser för att köra det själv. Kärnan är öppen källkod under MIT-licensen. Koden i mapparna premium och enterprise i samma källkod och avbild är det inte: den ligger under Baserows egna licenser, och du får bara använda den i produktion med ett betalt abonnemang. Den fria delen kallar Baserow för Open Source Edition. Vi kontrollerade det här den 14 oktober 2026.
I gratisversionen visar gränssnittet de betalda funktionerna med ett lås. Premium har vyerna kanban, kalender och tidslinje, kommentarer på rader, färger på rader, aviseringar för rader, personliga vyer, enkätformulär, export till JSON, XML och Excel, diagram och AI-funktionerna. Advanced och Enterprise lägger till inloggning via SSO, granskningslogg, roller och behörigheter per tabell och fält, synk med andra tjänster, säker filhantering med mera. Baserow säljer dem per användare; listan och priserna finns på deras prissida. Rutnät, galleri och formulär, länkade tabeller, uppslag och formler, publik delning, export till CSV, REST-API:t, webhooks, automatiseringar och tvåfaktorsautentisering ingår gratis. Gratisversionen vi körde hade inte heller någon gräns för antalet rader: en tabell tog 3 200 rader, fler än de 3 000 per arbetsyta som Baserows gratisplan i molnet tillåter.
Här körs Baserow som en pod under en egen användare som heter baserow, från Baserows officiella allt-i-ett-avbild, med PostgreSQL för dess data, bakom Caddy från Podman-guiden. Avbilden kan också köra en egen PostgreSQL inuti containern, men Baserow rekommenderar en extern för allt som ska användas på riktigt, och då kan databaslösenordet ligga i en hemlighet i Podman och säkerhetskopian tas medan Baserow fortsätter att fungera, som i våra andra guider. Redis, som Baserow bara använder som kö och cache, ligger kvar i avbilden: där finns inget att säkerhetskopiera.
Varje steg nedan har körts på en nyinstallerad Melonslab VC-P Alloy (2 vCPU, 8 GB) med Debian 13:
- Baserow 2.4.0 startade med PostgreSQL 17. Det första kontot, som blir instansens administratör, skapades via en SSH-tunnel, och registreringen stängdes, innan Caddy sattes upp. Utifrån sa registreringssidan "Sign up is disabled".
- En inbjuden användare registrerade sig via länken i inbjudan och såg arbetsytans databas direkt. Tvåfaktorsautentisering med en autentiseringsapp fungerade för den användaren.
- En databas med två tabeller skapades, med fält för text, e-post, telefon, enkelval, datum, tal, ja/nej och filer, en länk från projekt till kunder, ett uppslag av kundens e-post och en formel. Uppslaget och formeln fylldes i av sig själva.
- En gallerivy visade projekten som kort. En delad rutnätsvy öppnades utan inloggning och gick inte att ändra. Ett publikt formulär lade till en rad, och en automatisering satte dess status.
- En databastoken listade och skapade rader via REST-API:t, och en webhook skickade varje ny rad till en annan tjänst, även till en annan app på samma server med inställningen från Podman-guiden.
- Uppladdade filer hamnade i datavolymen och gick att öppna via sin adress utan inloggning.
- En avlyssning av serverns trafik visade inga externa anslutningar från Baserow, förutom webhooken. I webbläsaren laddar rundturen för nya användare miniatyrbilder från YouTube.
- En inbjudan och en återställning av lösenord skickades via en SMTP-testserver på samma maskin. Utan e-post skrevs båda bara till Baserows logg, som steg 6 beskriver.
- Baserow uppdaterades till 2.4.1, återställdes från en säkerhetskopia till en ny användare med tomma volymer, och allt, inloggningar också, startade igen av sig självt efter en omstart av servern.
Podden använde omkring 2 GB minne, nästan allt för Baserow, som kör webbserver, bakgrundsjobb och Redis i en och samma container.
Baserow har inget svenskt gränssnitt. Det finns på engelska, franska, nederländska, tyska, spanska, italienska, polska, koreanska och ukrainska, och varje användare väljer språk under My settings > Account > Interface language.
Baserow eller NocoDB? Båda är alternativ till Airtable som du kör själv, och NocoDB-guiden sätter upp det andra på samma sätt. Baserows kärna är öppen källkod under MIT-licensen, medan NocoDB 2026 bytte till en "fair-code"-licens som inte låter dig sälja det eller driva det som en betald tjänst. NocoDB:s gratisversion har kanban- och kalendervyer och kommentarer, som kostar i Baserow, och ett svenskt gränssnitt. Baserows gratisversion har tvåfaktorsautentisering, som kostar i NocoDB, och egna automatiseringar. Baserow använder mer minne: omkring 2 GB mot NocoDB:s 850 MB.
Innan du börjar
Du behöver:
- en server uppsatt som i Podman-guiden, med Caddy igång och minst 4 GB minne;
- en A-post och en AAAA-post för
baserow.example.comsom pekar på din server.
Exemplen använder baserow.example.com för Baserow och 203.0.113.10 för serverns IPv4-adress. Byt ut dem genomgående.
1. Skapa användaren
Som root:
useradd -m -s /bin/bash baserow
loginctl enable-linger baserow
machinectl shell baserow@
Allt fram till steg 5 körs som baserow.
2. Skapa hemligheterna
openssl rand -hex 24 | tr -d '\n' | podman secret create baserow-db-password -
openssl rand -hex 32 | tr -d '\n' | podman secret create baserow-secret-key -
Den första raden skapar databaslösenordet, som både PostgreSQL och Baserow läser. Den andra skapar nyckeln som Baserow signerar länkar för återställning av lösenord och andra token med. Podman lagrar båda, inte filerna nedan.
3. Definiera podden
mkdir -p ~/.config/containers/systemd
cd ~/.config/containers/systemd
Skapa baserow.pod:
[Pod]
PodName=baserow
# Only Caddy, on this server, can reach Baserow: the port is not open to the internet.
PublishPort=127.0.0.1:8178:80
[Install]
WantedBy=default.target
Skapa baserow-db.container:
[Container]
ContainerName=baserow-db
Image=docker.io/library/postgres:17
Pod=baserow.pod
Volume=baserow-db:/var/lib/postgresql/data
Environment=POSTGRES_USER=baserow POSTGRES_DB=baserow
Secret=baserow-db-password,type=env,target=POSTGRES_PASSWORD
HealthCmd=pg_isready -U baserow -d baserow
HealthInterval=10s
Notify=healthy
AutoUpdate=registry
[Service]
Restart=always
Och baserow-app.container:
[Unit]
Requires=baserow-db.service
After=baserow-db.service
[Container]
ContainerName=baserow-app
Image=docker.io/baserow/baserow:2.4.1
Pod=baserow.pod
Volume=baserow-data:/baserow/data
Environment=BASEROW_PUBLIC_URL=http://localhost:8178
Environment=DATABASE_HOST=127.0.0.1 DATABASE_PORT=5432 DATABASE_NAME=baserow DATABASE_USER=baserow
Environment=BASEROW_DISABLE_GOOGLE_DOCS_FILE_PREVIEW=true
Environment=BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION=false
Secret=baserow-db-password,type=env,target=DATABASE_PASSWORD
Secret=baserow-secret-key,type=env,target=SECRET_KEY
[Service]
Restart=always
TimeoutStartSec=900
Det här gör inställningarna:
BASEROW_PUBLIC_URLär adressen som Baserow väntar sig i webbläsaren. Den svarar bara på den adressen; alla andra behandlas som en webbplats från Baserows applikationsbyggare och får "Site not found". Den börjar somhttp://localhost:8178för steg 4, och steg 5 byter den till den publika adressen.- Inställningarna
DATABASE_pekar Baserow mot PostgreSQL i samma pod, vilket stänger av PostgreSQL inuti avbilden. Dina tabeller blir riktiga tabeller i den databasen. BASEROW_DISABLE_GOOGLE_DOCS_FILE_PREVIEW=truehindrar Baserow från att förhandsvisa Word-, Excel-, PowerPoint- och PDF-filer via Googles dokumentvisare, som hämtar filen från din server. PDF-filer öppnas fortfarande i webbläsarens egen visare.BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION=falsehindrar Baserow från att läsa in sina 158 mallar i bakgrunden varje gång den startar. Inläsningen delar kö med webhooks, exporter och filimporter och får fem minuter per start, så utan raden fick de vänta upp till fem minuter efter varje start tills alla mallar var inne. I vårt test kom en webhook fram fyra och en halv minut för sent. I stället läser du in mallarna en gång för hand, nedan.TimeoutStartSec=900ger första starten tid att ladda ner avbilden.- De uppladdade filerna, nyckeln som Baserow signerar inloggningar med och data för avbildens egen Caddy och Redis hamnar i volymen
baserow-data, resten i databasen.
Baserow ligger kvar på en exakt version, eftersom den ändrar sin databas när den uppdateras, och en uppdatering bör börja med en säkerhetskopia (se Uppdatera). PostgreSQL följer version 17 av sig själv via podman-auto-update.timer. Starta den:
systemctl --user daemon-reload
systemctl --user start baserow-pod
systemctl --user enable --now podman-auto-update.timer
Första starten laddar ner omkring 2,1 GB avbilder, och sedan sätter Baserow upp sin databas, vilket tog sex minuter sammanlagt i vårt test. Den är klar när det här skriver ut OK:
curl -s http://localhost:8178/api/_health/; echo
Läs sedan in Baserows mallar, de färdiga databaser som Baserow erbjuder nya användare:
podman exec -d baserow-app /baserow.sh backend-cmd manage sync_templates
Inläsningen körs i bakgrunden inne i containern och skriver bara ut ett id. Den tog 17 minuter i vårt test, medan Baserow fungerade som vanligt; tills den är klar är listan med mallar ofullständig.
4. Skapa administratören via en SSH-tunnel
Det första kontot i en ny Baserow blir instansens administratör, och därefter kan vem som helst registrera sig. Caddy visar inte Baserow för någon än, så gör båda delarna genom en SSH-tunnel, som bara du har.
Öppna en tunnel från din egen dator till Baserows port på servern, och låt den vara öppen:
ssh -L 8178:127.0.0.1:8178 root@203.0.113.10
Öppna http://localhost:8178 i webbläsaren. Den visar Create account med "Please fill the form below to create the admin user." Ange din E-mail address, Your name och ett långt Password, och välj Get started.
Sedan ber Baserow dig skapa din första databas. Låt Scratch vara valt, ge databasen ett namn, till exempel Office, och välj Continue. Välj något att hålla reda på, till exempel Projects, och Continue; Skip for now hoppar över de följande frågorna. Den sista, Tell us a bit more, skulle dela dina svar med Baserow om du kryssade i "I'm okay with sharing this with the Baserow team"; hoppar du över den skickas ingenting. Du hamnar i en tabell som heter Projects med tre exempelrader, i en arbetsyta med ditt namn.
Stäng nu registreringen. Öppna menyn med arbetsytans namn uppe till vänster, välj Admin tools och sedan Settings, och stäng av Allow creating new accounts. Det sparas direkt. Allow signups via workspace invitations är kvar påslagen, så de du bjuder in kan fortfarande skapa sina konton.
Ditt konto kan också få tvåfaktorsautentisering: My settings > Two-factor auth > Enable 2FA, med en autentiseringsapp. Stäng tunneln när du är klar.
5. Sätt Caddy framför
Som baserow ändrar du raden BASEROW_PUBLIC_URL i ~/.config/containers/systemd/baserow-app.container till den publika adressen:
Environment=BASEROW_PUBLIC_URL=https://baserow.example.com
Och starta om Baserow, vilket tar ungefär en minut:
systemctl --user daemon-reload
systemctl --user restart baserow-app
Gå tillbaka till root med exit, byt till machinectl shell caddy@ och lägg till det här blocket sist i ~/Caddyfile:
baserow.example.com {
reverse_proxy 127.0.0.1:8178
}
Starta om Caddy med systemctl --user restart caddy och öppna https://baserow.example.com. Logga in med kontot från steg 4.
För att kontrollera att registreringen är stängd öppnar du https://baserow.example.com/signup i ett privat fönster. Där står "Sign up is disabled".
6. E-post
Baserow skickar e-post för inbjudningar, återställning av lösenord och aviseringar. Guidens tester använde en SMTP-testserver på samma maskin; vi har inte skickat till riktiga brevlådor. Utan e-post:
- lägger Send invite till inbjudan i listan över väntande inbjudningar, men e-postmeddelandet skrivs bara till Baserows logg;
- säger Forgot? på inloggningssidan "Check your email", men skickar ingenting.
Tills e-posten fungerar kan du hitta länken i en inbjudan i loggen, som baserow, och skicka den själv:
podman logs baserow-app 2>&1 | grep -o 'https://[^ "<]*/workspace-invitation/[^ "<]*' | tail -1
För att skicka e-post pekar du Baserow mot din e-postleverantörs SMTP-server. Som baserow lagrar du lösenordet som en hemlighet:
printf %s 'the-smtp-password' | podman secret create baserow-smtp-password -
Lägg sedan till de här raderna i baserow-app.container, under de andra Secret=-raderna, med din egen server, ditt konto och din avsändaradress:
Environment=EMAIL_SMTP=true EMAIL_SMTP_HOST=mail.example.com EMAIL_SMTP_PORT=587 EMAIL_SMTP_USE_TLS=true
Environment=EMAIL_SMTP_USER=baserow@example.com FROM_EMAIL=baserow@example.com
Secret=baserow-smtp-password,type=env,target=EMAIL_SMTP_PASSWORD
Starta om Baserow:
systemctl --user daemon-reload
systemctl --user restart baserow-app
EMAIL_SMTP_USE_TLS använder STARTTLS, som port 587 kräver. För port 465, som använder TLS från början, byter du den mot EMAIL_SMTP_USE_SSL=true och ändrar porten. Baserow räknar alla värden på de två som påslagna, även false, så utelämna den du inte använder. Efter omstarten kommer en inbjudan fram som "You've been invited to collaborate on Baserow", och Forgot? skickar "Reset password - Baserow".
7. Bjud in teamet
Välj Invite others i sidomenyn. Ange en e-postadress, välj en roll och välj Send invite:
- Admin kan ändra allt, även arbetsytan och dess medlemmar.
- Member kan skapa och ändra databaser, tabeller, fält och rader.
- Editor, Commenter och Viewer har ett lås: roller som begränsar vad någon får ändra kräver den betalda planen Advanced. I gratisversionen får den som bara ska läsa en delad vy i stället (steg 10).
Baserows API godtar de tre rollerna även i gratisversionen, men upprätthåller dem inte. I vårt test lade en användare som bjudits in som Viewer via API:t till och tog bort rader och skapade en tabell, precis som en Member kan. Ge bara tillgång till arbetsytan åt dem som får ändra dess data.
Inbjudan länkar till https://baserow.example.com/workspace-invitation/…. Där skapar personen ett konto med Your name och ett Password, och ser arbetsytans databaser direkt. Members i sidomenyn listar alla, med de inbjudningar som ännu inte är använda under Invites.
Från början kan varje användare också skapa egna arbetsytor. Allow everyone to create new workspaces under Admin tools > Settings begränsar det till instansens administratörer.
8. En databas med tabeller och länkar
En arbetsyta innehåller databaser, och en databas innehåller tabeller. Steg 4 skapade Office med tabellen Projects. Så här lägger du till en tabell för kunder:
- Under databasen i sidomenyn väljer du New table, behåller Start with a new table, döper den till
Customersoch väljer Add table. Den börjar med fälten Name, Notes och Active, och två tomma rader. - Välj + efter den sista kolumnrubriken. Ge fältet ett namn, till exempel
Email, välj Email i listan över typer och välj Create. Lägg tillPhonepå samma sätt, som Phone number. - I
Projectslägger du tillStatussom Single select, med Add an option förIdea,DoingochDone,Duesom Date,Budgetsom Number,Paidsom Boolean ochFilessom File.
För att koppla varje projekt till en kund lägger du till fältet Customer i Projects med typen Link to table, och väljer Customers under Select a table to link to. Stäng av Allow multiple relationships, eftersom ett projekt har en kund, och behåll Create related field in linked table, så att varje kund får ett fält som listar kundens projekt. En cell i Customer erbjuder nu raderna i Customers.
Två sorters fält använder den länken:
- Ett Lookup visar ett fält från den länkade raden. Lägg till
Customer emailsom Lookup, väljCustomerunder Select a link to table field ochEmailsom fältet att slå upp. Det fylls i av sig självt. - En Formula räknar ut ett värde från andra fält. Lägg till
Budget incl. VATsom Formula medfield('Budget') * 1.25. En budget på 40000 visar 50000.00.
Skriv i den tomma raden längst ner för att lägga till en rad. För att öppna en hel rad pekar du på den och väljer ikonen för att expandera, som visas i stället för radens nummer. Den öppna raden har en History med ändringar bredvid sig. Comments finns också där, men kommentarer på rader kräver den betalda planen Premium.
9. Vyer
Varje tabell öppnas i en rutnätsvy. Vyns namn uppe till vänster öppnar listan över vyer, där + bredvid en typ lägger till en:
- Gallery visar varje rad som ett kort; Customize cards väljer fälten på dem.
- Form gör ett formulär av tabellen: klicka på fälten i vänsterkolumnen för att lägga till dem, och ändra rubrik och beskrivning. De fält som utomstående inte ska fylla i, till exempel
BudgetochPaid, lämnar du utanför. - Grid lägger till ännu ett rutnät, till exempel med ett filter för "mina öppna projekt".
- Kanban, Calendar och Timeline har ett lås: de kräver den betalda planen Premium.
Filter, Sort, Group och Hide Fields ovanför en vy ändrar bara den vyn, för alla som öppnar den.
10. Dela en vy och ett formulär
Share view högst upp i en vy, och sedan Create a private link, skapar en länk som fungerar utan inloggning:
- För en rutnäts- eller gallerivy visar länken till
https://baserow.example.com/public/grid/…vyn utan möjlighet att ändra, med de fält som vyn visar, uppslag också. I vårt test ändrades ingenting när vi skrev i en cell. Dölj de fält som inte ska vara publika i vyn innan du delar den. Restrict access with a password lägger till ett lösenord. - För en formulärvy ger Share form en länk till
https://baserow.example.com/form/…som låter vem som helst lägga till en rad. Ett test från ett privat fönster visade "Thanks for submitting the form!", och raden dök upp i tabellen.
Disable shared link stoppar en länk. Den som besöker en delad vy eller ett formulär kan anmäla det med Report abuse, vilket aviserar instansens administratörer.
11. Filer
Ett fält av typen File tar emot filer: öppna en rad, välj Add a file under fältet, sedan my device, välj filen och välj Upload. Baserow sätter ingen gräns för storleken som spelar någon roll i praktiken; BASEROW_FILE_UPLOAD_SIZE_LIMIT_MB i baserow-app.container sätter en.
Filerna hamnar i volymen baserow-data, under media. Varje fil får en adress med en slumpmässig del, till exempel https://baserow.example.com/media/user_files/KfsRem8G…_f002….png, och den som har adressen kan öppna filen utan att logga in. Att bara visa filer för inloggade användare är den betalda Enterprise-funktionen "secure file serving". Tänk på det innan du laddar upp dokument med personuppgifter.
För att lagra filerna i S3-lagring i stället, till exempel Garage på en annan server, har Baserow inställningar som börjar med AWS_ i sin dokumentation; webbläsaren hämtar då filerna från lagringens adress. Det har vi inte testat.
12. Databastoken och REST-API:t
Varje tabell går att läsa och skriva via ett REST-API. Öppna menyn uppe till vänster, My settings > Database tokens > Create token, ge token ett namn, till exempel scripts, välj arbetsytan och välj Create token. Reglagen bredvid styr om token får skapa, läsa, ändra och ta bort rader, för hela arbetsytan eller per databas och tabell. … bredvid namnet visar token bakom ögonikonen, och Generate new token byter ut den.
Adressen till en tabell i webbläsaren innehåller dess id: i https://baserow.example.com/database/88/table/318/1275 är tabellen 318. För att lista projekten, från valfri dator:
curl -s "https://baserow.example.com/api/database/rows/table/318/?user_field_names=true&include=Name,Status" \
-H "Authorization: Token YOUR_TOKEN"
Svaret är JSON med raderna under results, 100 åt gången; next innehåller adressen till nästa sida. Den börjar med http://, som Caddy skickar vidare till https://, så ge curl flaggan -L för att följa den. För att lägga till ett projekt:
curl -s -X POST "https://baserow.example.com/api/database/rows/table/318/?user_field_names=true" \
-H "Authorization: Token YOUR_TOKEN" -H 'Content-Type: application/json' \
-d '{"Name": "Annual report", "Status": "Idea"}'
View API documentation i samma meny öppnar dokumentation som är gjord för just din databas, med varje tabell och fält.
13. Webhooks
En webhook anropar en adress du väljer när rader ändras, till exempel ett arbetsflöde i n8n. Öppna ⋮ bredvid vyns namn och välj Webhooks > Create webhook. Ge den ett Name, ange URL, välj Let me select individual events och kryssa till exempel i Rows are created. Trigger test webhook skickar ett exempel och visar svaret, och Save slår på den.
Varje anrop är en POST med JSON, med "event_type": "rows.created" och de nya raderna under items. I vårt test kom den fram inom en sekund efter att en rad lades till, och webhookens lista visar det senaste anropet.
Baserow vägrar webhook-adresser på privata nätverk, som localhost och 192.168.x.x, med "Invalid URL", så att en webhook inte kan användas för att nå tjänster i ditt nätverk. En adress på internet, som https://n8n.example.com/webhook/…, fungerar. Om n8n körs på samma server vägrar Baserow även dess adress, tills användaren baserow har containers.conf från Podman-guiden, steg 8; starta sedan om podden med systemctl --user restart baserow-pod. Rows enter view har ett lås: den hör till de betalda "advanced webhooks".
14. Automatiseringar
Baserow har egna automatiseringar i gratisversionen. Add new... längst ner i sidomenyn > Automation skapar en, med ett namn, och öppnar ett arbetsflöde:
- Välj vad som startar det. Local Baserow har Rows are created, Rows are updated och Rows are deleted i en tabell, och Core har en Periodic trigger.
- Välj + under den för en åtgärd: skapa, ändra eller ta bort rader under Local Baserow, eller bland annat HTTP, SMTP Email, Slack och AI.
- Start test run provar arbetsflödet, och Publish gör det aktivt.
I vårt test startades ett arbetsflöde av Rows are created i Projects, med Update a row i Projects, där Row ID hämtades från utlösaren (Previous node > Rows are created in Projects > 0 > Id) och Status sattes till Idea. Varje projekt som skickades in via det publika formuläret fick då statusen Idea. History högst upp listar varje körning.
Enligt Baserows dokumentation vägrar automatiseringar, precis som webhooks, adresser på privata nätverk för HTTP-anrop och SMTP-servrar.
15. Externa anslutningar
Vi avlyssnade serverns DNS-uppslagningar och utgående anslutningar medan Baserow startade och uppdaterades, och medan stegen ovan gjordes. Förutom Docker Hub, när avbilderna laddades ner, var de enda anslutningarna från Baserow webhooken och automatiseringstestet som vi själva satte upp. Baserow letade inte efter uppdateringar och skickade ingen användningsstatistik. Enligt koden skickar Baserow data till företaget i två fall, som vi inte använde: frågorna i steg 4 om du kryssar i att dela dem, och en kontroll av licensen när du lägger till en betald licens. Användningsstatistik via PostHog och felrapporter via Sentry är avstängda så länge du inte anger POSTHOG_PROJECT_API_KEY eller SENTRY_DSN.
I webbläsaren laddar rundturen som Baserow visar varje ny användare miniatyrbilder från img.youtube.com, och spelar videorna från www.youtube-nocookie.com om du öppnar dem. E-postmeddelandena som Baserow skickar laddar typsnittet Inter från Google Fonts när de öppnas, som många e-postmeddelanden gör. Allt annat i webbläsaren kom från din egen server.
Säkerhetskopiera
Som baserow:
umask 077
mkdir -p ~/backup
podman exec baserow-db pg_dump -U baserow -Fc baserow > ~/backup/baserow-db.dump
podman volume export baserow-data > ~/backup/baserow-data.tar
podman secret inspect --showsecret --format '{{.SecretData}}' baserow-secret-key > ~/backup/secret-key.txt
Databasen innehåller tabeller, rader, användare, vyer, delade länkar, token, webhooks och automatiseringar; volymen innehåller de uppladdade filerna och nyckeln som Baserow signerar inloggningar med. Dumpen körs medan Baserow fortsätter att fungera, och tog några sekunder med vår testdata. Kopiera ~/backup till en annan maskin, till exempel med restic, och förvara den säkert: den innehåller all er data.
Avbilden har också ett eget kommando för säkerhetskopior, backend-cmd-with-db backup, men det är gjort för PostgreSQL inuti avbilden, och Baserow ber dig stoppa Baserow först. Med PostgreSQL i en egen container gör pg_dump jobbet.
För att återställa till en tom pod, som baserow, med säkerhetskopian i ~/backup:
systemctl --user stop baserow-pod
podman volume rm baserow-db baserow-data
podman volume create baserow-data
podman volume import baserow-data ~/backup/baserow-data.tar
systemctl --user start baserow-db
podman exec -i baserow-db pg_restore -U baserow -d baserow --no-owner < ~/backup/baserow-db.dump
systemctl --user start baserow-app
Genom att bara starta databasen först läses säkerhetskopian in innan Baserow sätter upp en tom databas. På en ny server följer du steg 1 till 3 och steg 5, hoppar över steg 4, och skapar nyckeln från säkerhetskopian i stället för en ny i steg 2:
tr -d '\n' < ~/backup/secret-key.txt | podman secret create baserow-secret-key -
Vi återställde till en ny användare på det här sättet. Rader, filer, användare och deras lösenord, databastoken, delade länkar och automatiseringen fungerade, och en webbläsare som var inloggad innan förblev inloggad.
Uppdatera
Baserow släpper en ny version med några veckors mellanrum, med versionsinformation på sin GitHub-sida. För att uppdatera, som baserow, gör du först en säkerhetskopia, byter sedan versionen på raden Image= i baserow-app.container, till exempel till 2.4.2, och startar om:
systemctl --user daemon-reload
systemctl --user restart baserow-app
podman image prune -a -f
Baserow uppdaterar sin databas när den startar, vilket tog ungefär två minuter från 2.4.0 till 2.4.1. podman image prune -a tar bort den gamla avbilden, som tar omkring 1,7 GB. Enligt Baserow kan du gå direkt till den senaste versionen från vilken äldre version som helst. Baserow uppdaterar inte sina mallar själv; för att få den nya versionens mallar kör du kommandot sync_templates från steg 3 igen. Det läser bara in de mallar som har ändrats, och tog 13 sekunder när inga hade det.
PostgreSQL uppdaterar sig själv inom version 17. För att gå till en nyare huvudversion av PostgreSQL behöver du göra en dump och återställa den, som under Säkerhetskopiera.
Felsökning
"Site not found" i stället för Baserow. Adressen i webbläsaren är inte den som står i BASEROW_PUBLIC_URL. Kontrollera raden i baserow-app.container, med https:// och utan snedstreck på slutet, och kör sedan daemon-reload och starta om baserow-app.
curl skriver ut en felsida i stället för OK. Baserow startar fortfarande. Första starten tar flera minuter; podman logs baserow-app visar "Baserow is now available" när den är klar.
Främlingar kan registrera sig. Allow creating new accounts är fortfarande påslagen, steg 4. Ta bort konton du inte känner igen under Admin tools > Users.
"Check your email", men inget e-postmeddelande kommer. E-post är inte uppsatt, steg 6. Länken finns i Baserows logg.
En webhook säger "Invalid URL". Adressen ligger på ett privat nätverk, vilket Baserow vägrar, eller tillhör en annan app på den här servern, som behöver inställningen från Podman-guiden (steg 13).
Webhooks kommer fram flera minuter för sent efter en omstart. Raden BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION=false från steg 3 saknas, så Baserow läser in mallar först.