NaplóindexDockup / terepjegyzet
Note / self-host-baserow

A Baserow saját üzemeltetése 2026-ban: adatok, URL-ek és biztonsági mentések egy helyen

Gyakorlati útmutató a Baserow saját üzemeltetéséhez Dockerrel, portokkal, perzisztens adatokkal, TLS-sel, biztonsággal, biztonsági mentésekkel és a production használatot akadályozó hibákkal. Lépésről lépésre.

Egy Baserow-konténer állapota lehet megfelelő, miközben az a funkció, ami a felhasználóknak fontos, nem működik. Baserow esetén ez a rejtett hiba általában az, hogy a nyilvános URL megváltozik, miután a felhasználók megosztási és callback-linkeket hoztak létre. Ez az útmutató elfogadási tesztként kezeli a következőt: „hozz létre egy adatbázist és egy nézetet, importálj egy CSV-fájlt, szerkessz sorokat két munkamenetből, tölts fel egy fájlt, majd indítsd újra az all-in-one stacket”, és a telepítést ebből az eredményből kiindulva építi fel.

A Baserow meghatározott szerepet tölt be a stackben: Airtable-stílusú adatbázisokat biztosít Postgres és Redis háttérrel. A production kérdés ezért nem az, hogy a 80-as port egyszer válaszol-e, hanem az, hogy az állapot, a függőségek és a nyilvános cím egy újraindítás, frissítés és visszaállítás után is összhangban marad-e.

Mire támaszkodik a Baserow?

A Baserow esetén a folyamat állapota és a termék állapota két külön dolog. A 80-as port válaszolhat úgy is, hogy a felhasználói tranzakció továbbra is sikertelen. A helyi futtatási környezethez elegendő memória szükséges a beépített Postgres, Redis, backend és workerek számára. Tartsd explicit módon kézben az életciklusát, hogy a Baserow hostok közötti áthelyezése ne változtassa meg észrevétlenül a működését.

Használd ezt a készenléti gyakorlatot minden jelentősebb konfigurációs módosítás után: hozz létre egy adatbázist és egy nézetet, importálj egy CSV-fájlt, szerkessz sorokat két munkamenetből, tölts fel egy fájlt, majd indítsd újra az all-in-one stacket. Az expensive külső ellenőrzéseket hagyd ki a liveness probe-okból, hogy egy szolgáltatói kiesés ne okozzon újraindítási ciklust. A kapacitástervezés kövesse nyomon a beépített Postgrest, Redist, Celery workereket, a sorok számát, az import méretét és az egyidejű szerkesztők számát — ez közelebb áll a Baserow valós terheléséhez, mint az oldalkérések száma.

Docker-alap a Baserow-hoz

Az alábbi parancs láthatóvá teszi a konténer határát anélkül, hogy úgy tenne, mintha minden külső szolgáltatást is létrehozna.

docker run -d \
  --name baserow \
  --restart unless-stopped \
  -p 127.0.0.1:80:80 \
  -v baserow-data:/baserow/data \
  -e SECRET_KEY=replace-with-a-long-random-value \
  baserow/baserow:latest

A bejövő forgalom engedélyezése előtt vizsgáld meg a feloldott környezetet, a mountokat és a listenert. Kitettség előtt erősítsd meg a helyi követelményt: legyen elegendő memória a beépített Postgres, Redis, backend és workerek számára. Az indítás akkor tekinthető sikeresnek, amikor létre tudsz hozni egy adatbázist és egy nézetet, importálni tudsz egy CSV-fájlt, két munkamenetből szerkeszthetsz sorokat, feltölthetsz egy fájlt, majd újraindíthatod az all-in-one stacket — nem pedig akkor, amikor a docker ps az Up állapotot írja ki.

Domainek, proxy headerek és a 80-as port

A Baserow számára egy HTTPS-hostnevet tegyél elérhetővé, a nyers 80-as portot pedig tartsd privátan. Állítsd a BASEROW_PUBLIC_URL értékét pontosan a külső originre. Így a böngészők és az API-kliensek nem tanulnak meg két, egymással versengő címet.

Egy tiszta kliensről futtasd le a működő tranzakciót, és vizsgáld meg az első sikertelen kérést. Ha a DNS vagy a TLS hibás, használd az egyéni domainről szóló útmutatót. Kezeld külön alkalmazásszintű hibakeresési feladatként azt, hogy „a nyilvános URL megváltozik, miután a felhasználók megosztási és callback-linkeket hoztak létre”, miután az útvonal működését már igazoltad.

Mentsd a Baserow által újra létrehozni nem tudott állapotot

A Baserow esetén a recovery pointot és a recovery time-ot a teljes /baserow/data könyvtárfa és az időszakos logikai adatbázis-exportok alapján határozd meg. A bootstrap előtt mountold a /baserow/data könyvtárat, írj bele ártalmatlan mintaadatokat, majd cseréld le a konténert annak bizonyítására, hogy az útvonal valóban perzisztens. A named volume megoldja a redeploy utáni perzisztenciát, de nem véd a kompromittálódástól vagy a szerver elvesztésétől.

Hozz létre egy tiszta restore-környezetet, használd ugyanazt a rögzített alkalmazásverziót, és igazold, hogy a táblák, nézetek, felhasználók, automatizációk és fájlok visszaállnak a teljes /baserow/data mentésből. Rögzítsd a parancsokat, a tulajdonjog javítását és az eltelt időt. A biztonsági mentésekről szóló útmutató hasznos mércét ad: egy mentés a visszaállítás után tekinthető megbízhatónak, nem a feltöltés után.

Ne add oda a Baserow-nak az egész hostot

A Baserow által végrehajtott műveleteket modellezd fenyegetési szempontból, ne csak a bejelentkezési űrlapot vizsgáld. Ebben az esetben a nagy kockázatú hiba az all-in-one image használata anélkül, hogy lenne mentési terved a beépített szolgáltatásokhoz. Alakítsd ki a következő határt: szükség esetén zárd le a regisztrációt, őrizd meg a SECRET_KEY értékét, és a nyilvános megosztott nézeteket korlátozd a kívánt adatokra.

A SECRET_KEY értékét egyszer generáld le, tartsd ki a Gitből, és őrizd meg a recovery manifestben, mert a módosítása érvénytelenítheti a titkosított vagy aláírt alkalmazásállapotot. Jogosultsági hibát ne úgy oldj meg, hogy rootként futtatod a konténert, vagy széles körűen felcsatolod a hostot. Az erőforrás-korlátok szintén a biztonsági tervezés részét képezik, ha a felhasználók képesek terhelni a beépített Postgrest, Redist, Celery workereket, a sorok számát, az import méretét és az egyidejű szerkesztők számát.

A következő kérdésre választ adó logok

Egy tétlen health check keveset árul el a Baserow-ról. Figyeld a beépített Postgrest, Redist, Celery workereket, a sorok számát, az import méretét és az egyidejű szerkesztők számát, majd arra a tünetre riaszd a rendszert, amelyet a felhasználók tapasztalnak: annak a műveletnek a sikertelenségére, hogy „hozz létre egy adatbázist és egy nézetet, importálj egy CSV-fájlt, szerkessz sorokat két munkamenetből, tölts fel egy fájlt, majd indítsd újra az all-in-one stacket”. A liveness maradjon helyi és olcsó; a readiness jelezze a migrációkat vagy az inicializálást anélkül, hogy újraindítási vihart okozna.

A kockázatos frissítési terület az, hogy az all-in-one image több szolgáltatást mozgat együtt, ezért az adatbázis- és alkalmazásmigrációkat snapshot-alapú próbával kell tesztelni. Olvasd el a kiadási megjegyzéseket, készíts snapshotot az állapotról, telepítsd a célverziót egy visszaállított példányra, majd ismételd meg az elfogadási műveletet. Ha a nyilvános URL megváltozik, miután a felhasználók megosztási és callback-linkeket hoztak létre, kapcsold össze a klienskérést az első releváns alkalmazásloggal ahelyett, hogy vaktában törölnéd az állapotot vagy átirányításokat adnál hozzá.

Öt, a konténer állapotánál erősebb ellenőrzés

Mielőtt valódi felhasználók érkeznek, készíts release-ellenőrzőlapot a Baserow-hoz. Nevezze meg a rögzített imaget, a 80-as portot, a kanonikus origint, a perzisztens útvonalakat és azt a felelőst, aki gondoskodik a beépített Postgres, Redis, backend és workerek számára szükséges memóriáról. Csatold a tranzakció várt eredményét is: hozz létre egy adatbázist és egy nézetet, importálj egy CSV-fájlt, szerkessz sorokat két munkamenetből, tölts fel egy fájlt, majd indítsd újra az all-in-one stacket.

Használd az ellenőrzőlapot egy normál csere és egy tiszta visszaállítás után is. A recovery csak akkor fogadható el, ha a táblák, nézetek, felhasználók, automatizációk és fájlok visszaállnak a teljes /baserow/data mentésből. Gyűjts egy rövid erőforrás-trace-t is, amely lefedi a beépített Postgrest, Redist, Celery workereket, a sorok számát, az import méretét és az egyidejű szerkesztők számát; ezt a release mellett tárold, hogy a jövőbeli kapacitásváltozásokat ugyanazzal a terheléssel lehessen összehasonlítani.

Tartalmazzon egy kontrollált hibát is: küldj ártalmatlan, a határhoz közeli bemenetet, amely ehhez a határhoz kapcsolódik: a nyilvános URL megváltozik, miután a felhasználók megosztási és callback-linkeket hoztak létre. Ellenőrizd, hogy a Baserow a problémát a megfelelő határon jelzi, állítsd vissza az érvényes feltételt, majd futtasd le újra a tranzakciót. Ez nem csupán a sikerességet, hanem a hibák láthatóságát is ellenőrzi, és megakadályozza, hogy egy egészségesnek látszó felület elfedjen egy hibás workert, callbacket vagy adatbázis-kapcsolatot.

Kapcsold a Baserow-t a Dockup életciklusához

A Dockup egykattintásos Baserow-telepítésének biztonságossá kell tennie a cserét: az útvonal továbbra is a 80-as portra mutat, a titkok nem kerülnek bele az image-be, a perzisztens útvonalak pedig visszatérnek az új konténerben. Ugyanez a deployment futhat Dockup compute-on vagy egy csatlakoztatott gépen.

Az alkalmazásspecifikus feladatokat azzal zárd le, hogy megerősíted a helyi követelményt — legyen elegendő memória a beépített Postgres, Redis, backend és workerek számára —, beállítod a kanonikus nyilvános címet, és lefuttatod ezt az elfogadási ellenőrzést: hozz létre egy adatbázist és egy nézetet, importálj egy CSV-fájlt, szerkessz sorokat két munkamenetből, tölts fel egy fájlt, majd indítsd újra az all-in-one stacket. A valódi felhasználók érkezése előtt add hozzá a visszaállítás eredményét a runbookhoz.

Gyakran ismételt kérdések

Mire van szüksége a Baserow-nak production deployment esetén?

Irányítsd a Baserow-konténert a 80-as porton keresztül egyetlen HTTPS-originre. A helyi futtatási környezethez elegendő memória szükséges a beépített Postgres, Redis, backend és workerek számára. Ne tekintsd késznek a Baserow-t, amíg nem tudsz létrehozni egy adatbázist és egy nézetet, importálni egy CSV-fájlt, két munkamenetből sorokat szerkeszteni, feltölteni egy fájlt, majd újraindítani az all-in-one stacket.

Mely Baserow-adatoknak kell szerepelniük a biztonsági mentésben?

Tedd perzisztenssé a /baserow/data könyvtárat, és ugyanabban a recovery manifestben szerepeljen a teljes /baserow/data könyvtárfa, valamint az időszakos logikai adatbázis-exportok. A tiszta Baserow-restore csak akkor sikeres, ha a táblák, nézetek, felhasználók, automatizációk és fájlok visszaállnak a teljes /baserow/data mentésből.

Szüksége van a Baserow-nak HTTPS-re reverse proxy mögött?

A nyilvános Baserow-originhez használj HTTPS-t, a 80-as portot pedig tartsd meg a belső útvonalon. A Baserow-beállítást megfelelően alkalmazd: állítsd a BASEROW_PUBLIC_URL értékét pontosan a külső originre. A Baserow esetében a HTTPS védi a hitelesítő adatokat és a felhasználói tartalmat az átvitel során, valamint egységessé teszi az originérzékeny kliensviselkedést.

Hogyan kell tesztelni egy Baserow-frissítést?

Állítsd vissza a jelenlegi Baserow-állapotot egy izolált deploymentbe, alkalmazd a jelölt verziót, majd ismételd meg az elfogadási tranzakciót. Különösen figyelj arra, hogy az all-in-one image több szolgáltatást mozgat együtt, ezért az adatbázis- és alkalmazásmigrációkat snapshot-alapú próbával kell tesztelni. Tartsd meg az előző Baserow-imaget, amíg nem érted pontosan az adat-migrációs és rollback-határt.