Table of Contents
🧠 BASEROW Runbook (Docker + Caddy + SSL)
Dokumentacija temelji na realni produkcijski namestitvi Baserow z Dockerjem in Caddy reverse proxyjem. Vključuje dejanske napake, popravke in preverjene postopke.
Namen
Ta dokument služi kot:
runbook za ponovno namestitev Baserow
referenca, kje se nahajajo datoteke
vodič za SSL, Caddy in Docker network
osnova za dodajanje novih storitev brez troubleshootinga
Lokacija aplikacije
Baserow je nameščen v:
/opt/baserow
Struktura:
/opt/baserow/ docker-compose.yml data/
Vse spremembe se izvajajo izključno znotraj te mape.
Docker containerji
Aktivni containerji:
baserow
postgres
redis (če omogočen)
Preverjanje:
docker ps
Docker network
Baserow mora biti priključen na external network proxy.
V docker-compose.yml:
networks: proxy: external: true
Razlog:
Caddy uporablja Docker DNS
brez tega reverse proxy ne deluje
Preverjanje:
docker network inspect proxy
Caddy konfiguracija
Caddy je centralni reverse proxy za vse storitve.
Caddyfile se nahaja v:
/opt/caddy/Caddyfile
Minimalna konfiguracija za Baserow:
baserow.krofekhost.com {
reverse_proxy baserow:80
}
Ponovno nalaganje brez restarta:
docker exec -it caddy caddy reload --config /etc/caddy/Caddyfile
SSL certifikati
SSL certifikate:
izdaja Caddy (Let’s Encrypt)
shranjeni so v Caddy volume
ročna konfiguracija NI potrebna
Preverjanje:
curl -I https://baserow.krofekhost.com
Kritične environment spremenljivke
V docker-compose.yml mora biti pravilno nastavljen:
BASEROW_PUBLIC_URL=https://baserow.krofekhost.com
Če ni pravilno:
login redirecti ne delujejo
API vrača napačne URL-je
Incidenti (resnični primeri)
MultipleObjectsReturned – PasswordAuthProvider
Napaka:
MultipleObjectsReturned: get() returned more than one PasswordAuthProviderModel
Vzrok:
podvojen auth provider v bazi
upgrade ali broken migration
Rešitev:
Vstop v container:
docker exec -it baserow bash
Django shell:
cd /baserow/backend/src/baserow /baserow/venv/bin/python manage.py shell
Popravek:
from baserow.core.auth_provider.models import PasswordAuthProviderModel
qs = PasswordAuthProviderModel.objects.all().order_by("id")
qs[1:].delete()
Restart:
docker restart baserow
Testiranje
HTTP test:
curl -I https://baserow.krofekhost.com
Funkcionalni test:
prijava
ustvarjanje tabele
API klic
Backup
Priporočen DB backup:
docker exec baserow pg_dumpall > /root/backup_baserow.sql
Povzetek
ena aplikacija = en docker-compose
vedno proxy network
SSL vedno prek Caddy
auth napake = DB problem
volume briši samo z razlogom
