Индекс на дневникаDockup / бележка от практиката
Note / self-host-cloudbeaver

Как да хоствате CloudBeaver самостоятелно през 2026 г.: драйвери за бази данни, workspace и достъп

Хоствайте CloudBeaver самостоятелно с правилни портове, persistent storage, HTTPS, secrets, backups и проверки при upgrade. Научете как да отстраните проблеми, когато workspace permissions fail.

Най-кратката демонстрация на CloudBeaver доказва само, че даден процес слуша на порт 8978. Production средата изисква по-сериозно доказателство. Тя трябва да премине този сценарий дори след подмяна на container: завършете administrator setup, инсталирайте необходимия driver, свържете се чрез private hostname и изпълнете read-only query.

CloudBeaver се внедрява с ясна цел: browser database client за Postgres, MySQL и други системи. Най-често срещаният капан при deployment е, че workspace permissions fail или container DNS не може да резолвира database hosts, затова обработката на public URL и durable state изискват същото внимание като стартирането на image.

Възстановяване на CloudBeaver върху празен host

Опишете state преди създаването на първия реален запис: workspace, users, connection definitions и credentials storage. Монтирайте /opt/cloudbeaver/workspace преди bootstrap, запишете безопасни примерни данни и подменете container, за да докажете, че този path действително е persistent. Потвърдете mount-а, като запишете безопасни данни, подмените CloudBeaver и ги прочетете обратно.

Snapshots са ценни за бърз rollback, но е необходим независим backup, когато host-ът или volume-ът изчезне. Възстановете в празна среда с pinned image и проверете дали workspace, users, drivers и connections се връщат, докато всяка underlying database следва собствен backup plan. Използвайте persistent volumes and snapshots, за да поддържате тези два recovery механизма отделни.

Стартиране на CloudBeaver с наблюдаеми defaults

Следващата команда прави границата на container-а видима, без да симулира provision на всяка външна услуга.

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

Преди да отворите ingress, проверете resolved environment, mounts и listener-а. Добавете проверените connection settings за private routes и database drivers за всяка target database; използвайте private names за private services. Успешният launch приключва, когато можете да завършите administrator setup, да инсталирате необходимия driver, да се свържете чрез private hostname и да изпълните read-only query, а не когато docker ps изведе Up.

От какво зависи CloudBeaver

HTTP процесът на CloudBeaver слуша на 8978; оставете този port в application network и публикувайте само platform route. Network contract-ът за CloudBeaver представлява private routes и database drivers за всяка target database. Дръжте private endpoints във вътрешен DNS, разрешете само необходимите outbound calls и предоставете на CloudBeaver service credential с ограничен обхват.

Опишете boundary-то като кратък contract: кой притежава изискването, кой credential се използва, какъв timeout е приемлив и как изглежда failure-ът. След това изпълнете тази transaction: завършете administrator setup, инсталирайте необходимия driver, свържете се чрез private hostname и изпълнете read-only query. Наблюдавайте workspace state, driver downloads, concurrent sessions и network latency до всяка database по време на изпълнението, защото този workload дава по-полезен начален размер от idle container.

Поддържане на ясна разлика между internal и external URL

Public boundary-то за CloudBeaver трябва да бъде един canonical hostname, automatic TLS и една internal target на 8978. Задайте server URL и proxy headers за public HTTPS origin, така че clients да се връщат към адрес, който service-ът разпознава.

Ако acceptance transaction се провали, класифицирайте първата грешка. Проблемите с DNS, certificate и 502 са част от TLS validation checklist. Условието „workspace permissions fail или container DNS не може да резолвира database hosts“ принадлежи към application side, след като request-ът успешно е достигнал CloudBeaver.

Production acceptance run за CloudBeaver

Не използвайте traffic-а от първия user като acceptance test за CloudBeaver. Подгответе безопасно примерно state и изпълнете пълното действие „завършете administrator setup, инсталирайте необходимия driver, свържете се чрез private hostname и изпълнете read-only query“. Запишете точния public URL, result, image reference и log interval, свързани с изпълнението.

Подменете container-а и повторете без rebuild на data. След това възстановете върху празен host; recovery условието е workspace, users, drivers и connections да се върнат, докато всяка underlying database следва собствения си backup plan. Наблюдавайте workspace state, driver downloads, concurrent sessions и network latency до всяка database при всяко изпълнение и дефинирайте alert около degradation на transaction, а не около metrics от idle container.

Една финална проверка трябва умишлено да се провали: временно забранете на test identity достъпа до private routes и database drivers за всяка target database. Проверете дали полученото CloudBeaver съобщение идентифицира съответния boundary, вместо да задейства изтриване на данни или endless restart. Възстановете валидното условие и потвърдете, че същата примерна transaction преминава успешно. Включете това кратко упражнение в release checklist.

Диагностика на CloudBeaver, който изглежда здрав

Първият полезен operational metric за CloudBeaver е дали може да завърши administrator setup, да инсталира необходимия driver, да се свърже чрез private hostname и да изпълни read-only query. Съчетайте го със saturation signals за workspace state, driver downloads, concurrent sessions и network latency до всяка database. Probe, който проверява само процеса, не трябва да извиква скъпи dependencies или да рестартира container-а, защото upstream временно не е достъпен.

Третирайте upgrades като промени в data, защото CloudBeaver workspace migrations и driver compatibility трябва да се тестват преди промяна на image versions. Pin-вайте versions, репетирайте върху restored state и запазете предишния image, докато rollback-ът остане валиден. Когато workspace permissions fail или container DNS не може да резолвира database hosts, запазете logs от преди restart-а; те обикновено съдържат причинното съобщение.

Специфични за CloudBeaver решения за сигурност

Не пренасяйте security assumptions от local tutorial. Специфичният проблем при CloudBeaver е разрешаването на anonymous access до production database connections. Затова production средата трябва да забрани anonymous administration, да използва individual users и да предоставя на database accounts само permissions, необходими за всяка connection.

CB_SERVER_NAME управлява поведението, а не confidentiality; проверете неговия type и value и съхранявайте истинските CloudBeaver credentials отделно. Ограничете filesystem и network access, защитете setup endpoints и дефинирайте upload, request или execution limits около workspace state, driver downloads, concurrent sessions и network latency до всяка database.

Един Dockup deployment все още се нуждае от acceptance test за CloudBeaver

One-click CloudBeaver deployment-ът на Dockup трябва да прави подмяната безопасна: route-ът продължава да сочи към 8978, secrets не са baked в image-а и persistent paths се възстановяват в новия container. Същият deployment може да работи върху Dockup compute или върху attached machine.

Завършете специфичната за приложението работа, като се свържете и тествате private routes и database drivers за всяка target database, приложите canonical public address и изпълните тази acceptance проверка: завършете administrator setup, инсталирайте необходимия driver, свържете се чрез private hostname и изпълнете read-only query. Добавете restore result към runbook-а, преди да се появят реални users.

Често задавани въпроси

Какво е необходимо на CloudBeaver за production deployment?

Насочете CloudBeaver container-а през port 8978 към един HTTPS origin. Поддържащото network изискване е private routes и database drivers за всяка target database. Не обявявайте CloudBeaver за готов, докато не можете да завършите administrator setup, да инсталирате необходимия driver, да се свържете чрез private hostname и да изпълните read-only query.

Кои CloudBeaver данни трябва да бъдат включени в backup?

Направете persistent /opt/cloudbeaver/workspace и включете workspace, users, connection definitions и credentials storage в един и същ recovery manifest. Чистият CloudBeaver restore е успешен само когато workspace, users, drivers и connections се върнат, докато всяка underlying database следва собствения си backup plan.

Необходим ли е HTTPS за CloudBeaver зад reverse proxy?

Използвайте HTTPS за public CloudBeaver origin и оставете port 8978 във вътрешния route. Приложете правилно CloudBeaver setting-а: задайте server URL и proxy headers за public HTTPS origin. При CloudBeaver HTTPS защитава credentials или user content при пренос и поддържа консистентно client behavior, зависимо от origin-а.

Как трябва да се тества CloudBeaver upgrade?

Възстановете текущия CloudBeaver state в isolated deployment, приложете candidate version и повторете acceptance transaction. Обърнете особено внимание, защото CloudBeaver workspace migrations и driver compatibility трябва да се тестват преди промяна на image versions. Запазете предишния CloudBeaver image, докато границите на data migration и rollback не бъдат изяснени.