Journal-indexDockup / praktijknotitie
Note / self-host-cloudbeaver

CloudBeaver zelf hosten in 2026: databasedrivers, workspace en toegang

Host CloudBeaver zelf met de juiste poorten, persistente opslag, HTTPS, secrets, backups en upgradecontroles. Leer hoe je problemen oplost wanneer workspace-permissies mislukken.

De kortste CloudBeaver-demo bewijst dat een proces op poort 8978 luistert. Voor productie is sterker bewijs nodig. Deze test moet ook slagen nadat de container is vervangen: de beheerdersconfiguratie voltooien, de benodigde driver installeren, verbinding maken via een private hostname en een read-only query uitvoeren.

CloudBeaver wordt met een duidelijk doel ingezet: als browsergebaseerde databaseclient voor Postgres, MySQL en meer. De meest voorkomende valkuil bij deployments is dat workspace-permissies mislukken of dat de container-DNS databasehosts niet kan resolven. Daarom verdienen de afhandeling van de publieke URL en persistente state net zoveel aandacht als het starten van de image.

CloudBeaver herstellen op een lege host

Breng de state in kaart voordat het eerste echte record wordt aangemaakt: workspace, gebruikers, connectiedefinities en opslag voor credentials. Mount /opt/cloudbeaver/workspace vóór de bootstrap, schrijf ongevaarlijke voorbeelddata en vervang de container om te bewijzen dat dit pad daadwerkelijk persistent is. Bevestig de mount door ongevaarlijke data te schrijven, CloudBeaver te vervangen en de data opnieuw uit te lezen.

Snapshots zijn waardevol voor een snelle rollback, maar er is een onafhankelijke backup nodig wanneer de host of het volume verdwijnt. Herstel in een lege omgeving met de vastgezette image en controleer of workspace, gebruikers, drivers en connecties terugkomen, terwijl elke onderliggende database zijn eigen backupplan volgt. Gebruik persistente volumes en snapshots om deze twee herstelmechanismen gescheiden te houden.

CloudBeaver starten met inzichtelijke defaults

Met het volgende commando maak je de containergrens zichtbaar zonder te doen alsof elke externe service wordt geprovisioned.

docker run -d \
  --name cloudbeaver \
  --restart unless-stopped \
  -p 127.0.0.1:8978:8978 \
  -v cloudbeaver-data:/opt/cloudbeaver/workspace \
  -e CB_SERVER_NAME=CloudBeaver \
  dbeaver/cloudbeaver:latest

Inspecteer voordat je ingress opent de opgeloste environment, mounts en listener. Voeg de gecontroleerde connection settings toe voor private routes en database drivers voor elke doeldatabase; gebruik private names voor private services. Een succesvolle start is pas afgerond wanneer je de beheerdersconfiguratie kunt voltooien, de benodigde driver kunt installeren, via een private hostname verbinding kunt maken en een read-only query kunt uitvoeren — niet wanneer docker ps Up toont.

Waar CloudBeaver van afhankelijk is

Het HTTP-proces van CloudBeaver luistert op 8978; houd die poort binnen het applicatienetwerk en publiceer alleen de platformroute. Het netwerkcontract voor CloudBeaver bestaat uit private routes en database drivers voor elke doeldatabase. Houd private endpoints op interne DNS, sta alleen vereiste uitgaande verbindingen toe en geef CloudBeaver een servicecredential met beperkte scope.

Leg de grens vast in een kort contract: wie verantwoordelijk is voor de vereiste, welke credential wordt gebruikt, welke timeout acceptabel is en hoe een fout zichtbaar wordt. Voer vervolgens deze transactie uit: de beheerdersconfiguratie voltooien, de benodigde driver installeren, via een private hostname verbinding maken en een read-only query uitvoeren. Observeer tijdens de run de workspace-state, driver downloads, gelijktijdige sessies en netwerklatentie naar elke database, omdat deze workload een nuttiger uitgangspunt voor de sizing geeft dan een idle container.

Houd interne en externe URL's gescheiden

De publieke grens voor CloudBeaver moet bestaan uit één canonical hostname, automatische TLS en één intern doel op 8978. Stel de server URL en proxy headers in voor de publieke HTTPS-origin, zodat clients terugkeren naar een adres dat de service herkent.

Als de acceptatietransactie mislukt, classificeer dan de eerste fout. Problemen met DNS, certificaten en 502 horen bij de TLS-validatiechecklist. De conditie “workspace-permissies mislukken of de container-DNS kan databasehosts niet resolven” hoort bij de applicatielaag nadat een request CloudBeaver succesvol heeft bereikt.

Een productieacceptatierun voor CloudBeaver

Gebruik first-user traffic niet als acceptatietest voor CloudBeaver. Bereid ongevaarlijke voorbeeldstate voor en voer de volledige actie uit: “de beheerdersconfiguratie voltooien, de benodigde driver installeren, via een private hostname verbinding maken en een read-only query uitvoeren”. Noteer de exacte publieke URL, het resultaat, de image-referentie en het loginterval dat bij de run hoort.

Vervang de container en herhaal de test zonder de data opnieuw op te bouwen. Herstel vervolgens op een lege host; de herstelconditie is dat workspace, gebruikers, drivers en connecties terugkomen, terwijl elke onderliggende database zijn eigen backupplan volgt. Observeer bij elke run de workspace-state, driver downloads, gelijktijdige sessies en netwerklatentie naar elke database en definieer een alert rond verslechtering van de transactie in plaats van rond metrics van een idle container.

Laat één laatste controle expres mislukken: blokkeer tijdelijk de toegang van de testidentiteit tot private routes en database drivers voor elke doeldatabase. Controleer of het resulterende CloudBeaver-bericht de relevante grens benoemt, in plaats van dataverwijdering of een eindeloze restart te veroorzaken. Herstel de geldige conditie en bevestig dat dezelfde voorbeeldtransactie slaagt. Neem deze korte oefening op in de releasechecklist.

Een gezond ogende CloudBeaver diagnosticeren

De eerste bruikbare operationele metric voor CloudBeaver is of het de beheerdersconfiguratie kan voltooien, de benodigde driver kan installeren, via een private hostname verbinding kan maken en een read-only query kan uitvoeren. Combineer dit met signalen voor verzadiging van de workspace-state, driver downloads, gelijktijdige sessies en netwerklatentie naar elke database. Een process-only probe mag geen dure dependencies aanroepen of de container herstarten omdat een upstream kortstondig niet beschikbaar is.

Behandel upgrades als datamutaties, omdat CloudBeaver-workspacemigraties en drivercompatibiliteit moeten worden getest voordat je van imageversie wisselt. Pin versies, oefen de procedure op herstelde state en houd de vorige image beschikbaar totdat een rollback geldig blijft. Wanneer workspace-permissies mislukken of de container-DNS databasehosts niet kan resolven, bewaar dan de logs van vóór de restart; daarin staat meestal het oorzakelijke bericht.

Beveiligingskeuzes die specifiek zijn voor CloudBeaver

Neem beveiligingsaannames uit een lokale tutorial niet automatisch over. Het specifieke aandachtspunt bij CloudBeaver is het toestaan van anonieme toegang tot productieconnecties met databases. Schakel daarom in productie anonieme administratie uit, gebruik individuele gebruikers en geef databaseaccounts alleen de permissies die elke connectie nodig heeft.

CB_SERVER_NAME bepaalt gedrag en geen vertrouwelijkheid; valideer het type en de waarde ervan en sla echte CloudBeaver-credentials afzonderlijk op. Beperk filesystem- en netwerktoegang, bescherm setup-endpoints en definieer limieten voor uploads, requests of execution rond workspace-state, driver downloads, gelijktijdige sessies en netwerklatentie naar elke database.

Een Dockup-deployment heeft nog steeds een CloudBeaver-acceptatietest nodig

De one-click CloudBeaver-deployment van Dockup moet vervanging veilig maken: de route blijft naar 8978 wijzen, secrets worden niet in de image ingebakken en persistente paden komen terug in de nieuwe container. Dezelfde deployment kan draaien op Dockup compute of een gekoppelde machine.

Rond het applicatiespecifieke werk af door verbinding te maken en private routes en database drivers voor elke doeldatabase te testen, het canonical public address toe te passen en deze acceptatiecontrole uit te voeren: de beheerdersconfiguratie voltooien, de benodigde driver installeren, via een private hostname verbinding maken en een read-only query uitvoeren. Voeg het herstelresultaat aan het runbook toe voordat echte gebruikers arriveren.

Veelgestelde vragen

Wat heeft CloudBeaver nodig voor een productie-deployment?

Routeer de CloudBeaver-container op poort 8978 via één HTTPS-origin. De ondersteunende netwerkvereiste bestaat uit private routes en database drivers voor elke doeldatabase. Beschouw CloudBeaver pas als klaar wanneer je de beheerdersconfiguratie kunt voltooien, de benodigde driver kunt installeren, via een private hostname verbinding kunt maken en een read-only query kunt uitvoeren.

Welke CloudBeaver-data hoort in een backup?

Maak /opt/cloudbeaver/workspace persistent en neem workspace, gebruikers, connectiedefinities en opslag voor credentials op in hetzelfde recovery manifest. Een schone CloudBeaver-restore is alleen geslaagd wanneer workspace, gebruikers, drivers en connecties terugkomen, terwijl elke onderliggende database zijn eigen backupplan volgt.

Heeft CloudBeaver HTTPS nodig achter een reverse proxy?

Gebruik HTTPS voor de publieke CloudBeaver-origin en houd poort 8978 op de interne route. Pas de CloudBeaver-instelling correct toe: stel de server URL en proxy headers in voor de publieke HTTPS-origin. Bij CloudBeaver beschermt HTTPS credentials of gebruikerscontent tijdens transport en zorgt het ervoor dat origin-gevoelig clientgedrag consistent blijft.

Hoe test je een CloudBeaver-upgrade?

Herstel de huidige CloudBeaver-state in een geïsoleerde deployment, pas de kandidaatversie toe en herhaal de acceptatietransactie. Let hier extra op, omdat CloudBeaver-workspacemigraties en drivercompatibiliteit moeten worden getest voordat je van imageversie wisselt. Houd de vorige CloudBeaver-image beschikbaar totdat de grens voor datamigratie en rollback duidelijk is.