====== 🧠 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