Indeks dziennikaDockup / notatka terenowa
Note / self-host-baserow

Jak hostować Baserow samodzielnie w 2026 roku: dane, adresy URL i kopie zapasowe w jednym miejscu

Praktyczny przewodnik po samodzielnym hostowaniu Baserow: Docker, porty, dane trwałe, TLS, bezpieczeństwo, kopie zapasowe i problemy blokujące użycie produkcyjne. Krok po kroku.

Kontener Baserow może działać poprawnie, podczas gdy zadanie, na którym zależy użytkownikom, jest zepsute. W przypadku Baserow ukryta awaria zwykle polega na tym, że publiczny adres URL zmienia się po wygenerowaniu przez użytkowników linków do udostępniania i callbacków. Ten przewodnik traktuje „utworzenie bazy danych i widoku, zaimportowanie pliku CSV, edycję wierszy z dwóch sesji oraz przesłanie pliku przed ponownym uruchomieniem stosu all-in-one” jako test akceptacyjny i na tej podstawie projektuje wdrożenie od końca.

Baserow pełni w stosie określoną funkcję: to bazy danych w stylu Airtable, korzystające z Postgres i Redis. Pytanie dotyczące środowiska produkcyjnego nie brzmi więc, czy port 80 odpowiada jednokrotnie, lecz czy stan, zależności i publiczny adres nadal pozostają spójne po ponownym uruchomieniu, aktualizacji i odtworzeniu.

Od czego zależy Baserow

Stan procesu i stan produktu to w przypadku Baserow dwie odrębne kwestie. Port 80 może odpowiadać, mimo że transakcja realizowana z perspektywy użytkownika nadal kończy się niepowodzeniem. Lokalne wymaganie środowiska uruchomieniowego to wystarczająca ilość pamięci dla dołączonych usług Postgres, Redis, backendu i workerów. Jawnie określ cykl życia aplikacji, aby przenoszenie Baserow między hostami nie zmieniało po cichu jego działania.

Po istotnych zmianach konfiguracji wykonaj następujący test gotowości: utwórz bazę danych i widok, zaimportuj plik CSV, edytuj wiersze z dwóch sesji i prześlij plik przed ponownym uruchomieniem stosu all-in-one. Nie umieszczaj kosztownych testów zewnętrznych w sondach liveness, aby awaria dostawcy nie powodowała pętli restartów. Planowanie zasobów powinno uwzględniać dołączone usługi Postgres i Redis, workery Celery, liczbę wierszy, rozmiar importu oraz liczbę jednoczesnych edytorów — to lepszy obraz rzeczywistego obciążenia Baserow niż same żądania stron.

Podstawowa konfiguracja Docker dla Baserow

Poniższe polecenie pokazuje granicę kontenera, nie udając przy tym, że konfiguruje wszystkie zewnętrzne usługi.

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

Przed otwarciem ingressu sprawdź rozwiązaną konfigurację środowiska, mounty i listener. Potwierdź lokalne wymaganie przed udostępnieniem aplikacji: wystarczającą ilość pamięci dla dołączonych usług Postgres, Redis, backendu i workerów. Pomyślne uruchomienie następuje wtedy, gdy możesz utworzyć bazę danych i widok, zaimportować plik CSV, edytować wiersze z dwóch sesji i przesłać plik przed ponownym uruchomieniem stosu all-in-one, a nie wtedy, gdy docker ps wyświetla Up.

Domeny, nagłówki proxy i port 80

Udostępnij Baserow pod jednym hostem HTTPS, a surowy port 80 pozostaw prywatny. Ustaw BASEROW_PUBLIC_URL na dokładny zewnętrzny origin. Dzięki temu przeglądarki i klienci API nie poznają dwóch konkurencyjnych adresów.

Z czystego klienta wykonaj sprawdzoną transakcję i przeanalizuj pierwsze żądanie, które kończy się niepowodzeniem. Gdy problem dotyczy DNS lub TLS, skorzystaj z przewodnika po niestandardowej domenie. Potraktuj „publiczny adres URL zmienia się po wygenerowaniu przez użytkowników linków do udostępniania i callbacków” jako osobną diagnozę aplikacji, gdy trasa została już potwierdzona.

Twórz kopie zapasowe stanu, którego Baserow nie odtworzy samodzielnie

Zdefiniuj punkt i czas odtworzenia dla Baserow, uwzględniając całe drzewo /baserow/data oraz okresowe logiczne eksporty bazy danych. Zamontuj /baserow/data przed bootstrapem, zapisz nieszkodliwe przykładowe dane i zastąp kontener, aby potwierdzić, że ta ścieżka rzeczywiście przechowuje dane trwale. Named volume rozwiązuje problem trwałości danych przy ponownym wdrożeniu, ale nie chroni przed przejęciem systemu ani utratą serwera.

Przygotuj czyste środowisko odtwarzania, użyj tej samej przypiętej wersji aplikacji i potwierdź, że tabele, widoki, użytkownicy, automatyzacje i pliki wracają z kompletnej kopii zapasowej /baserow/data. Zapisz polecenia, poprawki właścicieli plików i czas wykonania. Przewodnik po kopiach zapasowych stanowi przydatny standard: kopia zapasowa zyskuje zaufanie po odtworzeniu, a nie po przesłaniu.

Nie udostępniaj Baserow całego hosta

Analizuj pod kątem zagrożeń działania wykonywane przez Baserow, a nie tylko jego formularz logowania. W tym przypadku najpoważniejszym błędem jest użycie obrazu all-in-one bez planu tworzenia kopii zapasowych dla dołączonych usług. Wprowadź następujące ograniczenia: w razie potrzeby wyłącz rejestrację, zachowaj SECRET_KEY i ogranicz publiczne widoki udostępnione do zamierzonych danych.

Wygeneruj SECRET_KEY tylko raz, przechowuj go poza repozytorium Git i zachowaj razem z manifestem odtwarzania, ponieważ jego zmiana może unieważnić zaszyfrowany lub podpisany stan aplikacji. Nie rozwiązuj problemu z uprawnieniami przez uruchamianie kontenera jako root ani przez szerokie montowanie systemu hosta. Limity zasobów również są częścią projektu bezpieczeństwa, gdy użytkownicy mogą powodować obciążenie dołączonych usług Postgres i Redis, workerów Celery, a także zwiększać liczbę wierszy, rozmiar importu i liczbę jednoczesnych edytorów.

Logi, które odpowiadają na kolejne pytanie

Bezczynny health check niewiele mówi o Baserow. Obserwuj dołączone usługi Postgres i Redis, workery Celery, liczbę wierszy, rozmiar importu oraz liczbę jednoczesnych edytorów, a następnie skonfiguruj alerty na objaw, którego doświadczają użytkownicy: niepowodzenie działania „utwórz bazę danych i widok, zaimportuj plik CSV, edytuj wiersze z dwóch sesji i prześlij plik przed ponownym uruchomieniem stosu all-in-one”. Sondy liveness powinny być lokalne i tanie; readiness może raportować migracje lub inicjalizację bez wywoływania lawiny restartów.

Ryzykownym obszarem aktualizacji jest fakt, że obraz all-in-one aktualizuje kilka usług jednocześnie, dlatego migracje bazy danych i aplikacji wymagają próbnego odtworzenia na podstawie snapshotu. Czytaj informacje o wydaniu, wykonaj snapshot stanu, wdroż docelową wersję na podstawie odtworzonej kopii i ponownie wykonaj test akceptacyjny. Jeśli publiczny adres URL zmienia się po wygenerowaniu przez użytkowników linków do udostępniania i callbacków, zestaw żądanie klienta z pierwszym odpowiednim wpisem w logu aplikacji, zamiast bezmyślnie usuwać dane lub dodawać przekierowania.

Pięć testów skuteczniejszych niż health kontenera

Przed pojawieniem się prawdziwych użytkowników przygotuj dla Baserow arkusz wdrożeniowy. Musi on zawierać przypięty obraz, port 80, kanoniczny origin, trwałe ścieżki oraz osobę odpowiedzialną za zapewnienie wystarczającej ilości pamięci dla dołączonych usług Postgres, Redis, backendu i workerów. Dołącz oczekiwany rezultat tej transakcji: utworzenie bazy danych i widoku, import pliku CSV, edycję wierszy z dwóch sesji oraz przesłanie pliku przed ponownym uruchomieniem stosu all-in-one.

Korzystaj z arkusza po standardowej podmianie kontenera oraz po czystym odtworzeniu. Odtworzenie można uznać za udane tylko wtedy, gdy tabele, widoki, użytkownicy, automatyzacje i pliki wracają z kompletnej kopii zapasowej /baserow/data. Zbierz także krótki zapis wykorzystania zasobów obejmujący dołączone usługi Postgres i Redis, workery Celery, liczbę wierszy, rozmiar importu oraz liczbę jednoczesnych edytorów; przechowuj go razem z informacjami o wydaniu, aby przyszłe zmiany pojemności można było porównywać przy tym samym obciążeniu.

Uwzględnij jedno kontrolowane niepowodzenie: prześlij nieszkodliwe dane wejściowe w pobliżu limitu zasobów lub formatu powiązanego z tą granicą: publiczny adres URL zmienia się po wygenerowaniu przez użytkowników linków do udostępniania i callbacków. Potwierdź, że Baserow zgłasza problem na właściwej granicy, przywróć prawidłowy warunek i ponownie wykonaj transakcję. Sprawdza to widoczność błędów, a nie tylko powodzenie, i zapobiega ukrywaniu przez interfejs wyglądający na zdrowy problemu z workerem, callbackiem lub połączeniem z bazą danych.

Podłącz Baserow do cyklu życia Dockup

Jednoklikowe wdrożenie Baserow w Dockup powinno zapewniać bezpieczną podmianę: trasa nadal powinna kierować na port 80, sekrety nie mogą być zapisane w obrazie, a trwałe ścieżki powinny pojawić się w nowym kontenerze. To samo wdrożenie może działać na infrastrukturze Dockup lub na podłączonej maszynie.

Dokończ konfigurację właściwą dla aplikacji, potwierdzając lokalne wymaganie — wystarczającą ilość pamięci dla dołączonych usług Postgres, Redis, backendu i workerów — ustawiając kanoniczny publiczny adres i wykonując następujący test akceptacyjny: utwórz bazę danych i widok, zaimportuj plik CSV, edytuj wiersze z dwóch sesji i prześlij plik przed ponownym uruchomieniem stosu all-in-one. Dodaj wynik odtworzenia do runbooka przed pojawieniem się prawdziwych użytkowników.

Najczęściej zadawane pytania

Czego Baserow potrzebuje do wdrożenia produkcyjnego?

Skieruj kontener Baserow z portu 80 przez jeden origin HTTPS. Lokalne wymaganie środowiska uruchomieniowego to wystarczająca ilość pamięci dla dołączonych usług Postgres, Redis, backendu i workerów. Nie uznawaj Baserow za gotowy, dopóki nie możesz utworzyć bazy danych i widoku, zaimportować pliku CSV, edytować wierszy z dwóch sesji i przesłać pliku przed ponownym uruchomieniem stosu all-in-one.

Które dane Baserow powinny znaleźć się w kopii zapasowej?

Przechowuj /baserow/data trwale i uwzględnij całe drzewo /baserow/data oraz okresowe logiczne eksporty bazy danych w tym samym manifeście odtwarzania. Czyste odtworzenie Baserow można uznać za udane tylko wtedy, gdy tabele, widoki, użytkownicy, automatyzacje i pliki wracają z kompletnej kopii zapasowej /baserow/data.

Czy Baserow wymaga HTTPS za reverse proxy?

Używaj HTTPS dla publicznego originu Baserow, a port 80 pozostaw na trasie wewnętrznej. Prawidłowo zastosuj ustawienie Baserow: ustaw BASEROW_PUBLIC_URL na dokładny zewnętrzny origin. W przypadku Baserow HTTPS chroni dane uwierzytelniające i treści użytkowników podczas przesyłania oraz zapewnia spójność zachowania klienta zależnego od originu.

Jak testować aktualizację Baserow?

Odtwórz bieżący stan Baserow w odizolowanym wdrożeniu, zastosuj wersję kandydującą i ponownie wykonaj transakcję akceptacyjną. Zwróć szczególną uwagę na fakt, że obraz all-in-one aktualizuje kilka usług jednocześnie, dlatego migracje bazy danych i aplikacji wymagają próbnego odtworzenia na podstawie snapshotu. Zachowaj poprzedni obraz Baserow do czasu poznania granic migracji danych i wycofywania zmian.