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