Come fare self-hosting di Baserow nel 2026: dati, URL e backup tutto-in-uno
Una guida pratica al self-hosting di Baserow che copre Docker, porte, dati persistenti, TLS, sicurezza, backup e i problemi che ne impediscono l'uso in produzione. Passo dopo passo.
Un container Baserow può risultare operativo mentre l'attività che interessa agli utenti non funziona. Nel caso di Baserow, questo errore nascosto consiste spesso nel fatto che l'URL pubblico cambia dopo che gli utenti hanno generato link di condivisione e callback. Questa guida considera come test di accettazione la seguente attività: “creare un database e una vista, importare un CSV, modificare righe da due sessioni e caricare un file prima di riavviare lo stack all-in-one”, quindi costruisce il deployment a ritroso partendo da questo risultato.
Baserow ha un ruolo specifico nello stack: database in stile Airtable basati su Postgres e Redis. La domanda per la produzione, quindi, non è se la porta 80 risponde una volta, ma se stato, dipendenze e indirizzo pubblico continuano a essere coerenti dopo un riavvio, un aggiornamento e un ripristino.
Da cosa dipende Baserow
Lo stato del processo e lo stato del prodotto sono due aspetti distinti per Baserow. La porta 80 può rispondere mentre la transazione lato utente continua a non funzionare. Il requisito del runtime locale è disporre di memoria sufficiente per Postgres, Redis, backend e worker inclusi. Mantieni esplicito il suo lifecycle, così lo spostamento di Baserow tra host non modifica il comportamento senza che tu te ne accorga.
Usa questo esercizio di readiness dopo modifiche significative alla configurazione: crea un database e una vista, importa un CSV, modifica righe da due sessioni e carica un file prima di riavviare lo stack all-in-one. Evita di inserire controlli esterni costosi nei probe di liveness, così un'interruzione del provider non causa un loop di riavvii. La pianificazione della capacità dovrebbe tenere traccia di Postgres, Redis, worker Celery, numero di righe, dimensione degli import e editor simultanei inclusi, parametri che riflettono meglio il carico reale di Baserow rispetto alle richieste alle pagine.
Una base Docker per Baserow
Il comando seguente rende visibile il confine del container senza fingere di predisporre ogni servizio esterno.
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
Prima di aprire l'ingress, controlla l'ambiente risolto, i mount e il listener. Verifica il requisito locale prima dell'esposizione: memoria sufficiente per Postgres, Redis, backend e worker inclusi. Un avvio riuscito si conclude quando puoi creare un database e una vista, importare un CSV, modificare righe da due sessioni e caricare un file prima di riavviare lo stack all-in-one, non quando docker ps stampa Up.
Domini, proxy header e porta 80
Esponi un solo hostname HTTPS per Baserow e mantieni privata la porta 80 grezza. Imposta BASEROW_PUBLIC_URL sull'origine esterna esatta. In questo modo impedisci ai browser e ai client API di apprendere due indirizzi in concorrenza.
Da un client pulito, esegui la transazione verificata e analizza la prima richiesta che fallisce. Consulta la guida ai domini personalizzati quando il problema riguarda DNS o TLS. Considera “l'URL pubblico cambia dopo che gli utenti hanno generato link di condivisione e callback” come una diagnosi applicativa distinta, una volta verificato il routing.
Esegui il backup dello stato che Baserow non può ricreare
Definisci il recovery point e il recovery time di Baserow considerando l'intero albero /baserow/data e le esportazioni logiche periodiche del database. Esegui il mount di /baserow/data prima del bootstrap, scrivi dati di esempio innocui e sostituisci il container per dimostrare che quel percorso è realmente persistente. Un volume denominato risolve la persistenza durante il redeploy, ma non protegge da una compromissione o dalla perdita del server.
Prepara un ambiente di ripristino pulito, usa la stessa versione applicativa fissata e verifica che tabelle, viste, utenti, automazioni e file vengano ripristinati dal backup completo di /baserow/data. Registra i comandi, le correzioni dei permessi e il tempo trascorso. La guida ai backup offre uno standard utile: un backup è considerato affidabile dopo il ripristino, non dopo l'upload.
Non concedere a Baserow l'intero host
Analizza le azioni eseguite da Baserow, non soltanto il suo form di login. In questo caso, l'errore ad alto rischio consiste nell'usare l'immagine all-in-one senza un piano di backup per i servizi inclusi. Implementa questo perimetro: disabilita la registrazione quando opportuno, conserva SECRET_KEY e limita le viste pubbliche condivise ai dati previsti.
Genera SECRET_KEY una sola volta, tienila fuori da Git e conservala insieme al manifest di ripristino, perché modificarla può invalidare lo stato applicativo cifrato o firmato. Non risolvere un errore di permessi eseguendo il container come root o montando ampiamente l'host. Anche i limiti delle risorse fanno parte del security design quando Postgres, Redis, worker Celery, numero di righe, dimensione degli import ed editor simultanei inclusi possono essere attivati dagli utenti.
Log che rispondono alla domanda successiva
Un health check in stato idle dice poco su Baserow. Monitora Postgres, Redis, worker Celery, numero di righe, dimensione degli import ed editor simultanei inclusi, quindi genera alert sul sintomo sperimentato dagli utenti: il fallimento dell'azione “creare un database e una vista, importare un CSV, modificare righe da due sessioni e caricare un file prima di riavviare lo stack all-in-one”. Mantieni la liveness locale ed economica; lascia che la readiness segnali migrazioni o inizializzazione senza causare una tempesta di riavvii.
L'area più rischiosa durante un aggiornamento è il fatto che l'immagine all-in-one sposta diversi servizi insieme; per questo le migrazioni del database e dell'applicazione richiedono una simulazione basata su snapshot. Leggi le release note, crea uno snapshot dello stato, esegui il deployment della versione target su una copia ripristinata e ripeti l'azione di accettazione. Se l'URL pubblico cambia dopo che gli utenti hanno generato link di condivisione e callback, associa la richiesta del client al primo log applicativo pertinente invece di eliminare lo stato o aggiungere redirect alla cieca.
Cinque controlli più efficaci della health del container
Prima dell'arrivo degli utenti reali, prepara una checklist di release per Baserow. Deve indicare l'immagine fissata, la porta 80, l'origine canonica, i percorsi persistenti e il responsabile della memoria sufficiente per Postgres, Redis, backend e worker inclusi. Allega il risultato atteso di questa transazione: creare un database e una vista, importare un CSV, modificare righe da due sessioni e caricare un file prima di riavviare lo stack all-in-one.
Usa la checklist dopo una sostituzione normale e dopo un ripristino pulito. Il recovery è accettato soltanto se tabelle, viste, utenti, automazioni e file vengono ripristinati dal backup completo di /baserow/data. Raccogli inoltre una breve traccia delle risorse che copra Postgres, Redis, worker Celery, numero di righe, dimensione degli import ed editor simultanei inclusi; conservala insieme alla release, così i futuri cambiamenti di capacità potranno essere confrontati usando lo stesso workload.
Includi un errore controllato: invia un input innocuo vicino al limite di risorse o di formato associato a questo perimetro: l'URL pubblico cambia dopo che gli utenti hanno generato link di condivisione e callback. Verifica che Baserow segnali il problema al confine corretto, ripristina la condizione valida e ripeti la transazione. In questo modo verifichi la visibilità degli errori, non soltanto il successo, impedendo a un'interfaccia dall'aspetto sano di nascondere un worker, un callback o una connessione al database non funzionante.
Collega Baserow al lifecycle di Dockup
Il deployment one-click di Baserow su Dockup dovrebbe rendere sicura la sostituzione: il routing continua a puntare alla porta 80, i secret non sono incorporati nell'immagine e i percorsi persistenti vengono ripristinati nel nuovo container. Lo stesso deployment può essere eseguito sul compute di Dockup o su una macchina collegata.
Completa il lavoro specifico dell'app verificando il requisito locale — memoria sufficiente per Postgres, Redis, backend e worker inclusi — applicando l'indirizzo pubblico canonico ed eseguendo questo controllo di accettazione: creare un database e una vista, importare un CSV, modificare righe da due sessioni e caricare un file prima di riavviare lo stack all-in-one. Aggiungi il risultato del ripristino al runbook prima dell'arrivo degli utenti reali.
Domande frequenti
Di cosa ha bisogno Baserow per un deployment in produzione?
Instrada il container Baserow sulla porta 80 attraverso un'unica origine HTTPS. Il requisito del runtime locale è disporre di memoria sufficiente per Postgres, Redis, backend e worker inclusi. Non considerare Baserow pronto finché non puoi creare un database e una vista, importare un CSV, modificare righe da due sessioni e caricare un file prima di riavviare lo stack all-in-one.
Quali dati di Baserow devono essere inclusi in un backup?
Rendi persistente /baserow/data e includi nello stesso manifest di ripristino l'intero albero /baserow/data e le esportazioni logiche periodiche del database. Un ripristino pulito di Baserow è riuscito soltanto quando tabelle, viste, utenti, automazioni e file vengono ripristinati dal backup completo di /baserow/data.
Baserow richiede HTTPS dietro un reverse proxy?
Usa HTTPS per l'origine pubblica di Baserow e mantieni la porta 80 nel routing interno. Applica correttamente l'impostazione di Baserow: imposta BASEROW_PUBLIC_URL sull'origine esterna esatta. Per Baserow, HTTPS protegge le credenziali o i contenuti degli utenti durante il transito e mantiene coerente il comportamento del client sensibile all'origine.
Come si deve testare un aggiornamento di Baserow?
Ripristina lo stato corrente di Baserow in un deployment isolato, applica la versione candidata e ripeti la relativa transazione di accettazione. Presta particolare attenzione perché l'immagine all-in-one sposta diversi servizi insieme; per questo le migrazioni del database e dell'applicazione richiedono una simulazione basata su snapshot. Conserva la precedente immagine Baserow finché non avrai compreso i limiti della migrazione dei dati e del rollback.
