From b46a62c7ed46339f5e4f1eb0488253c7e26f0f10 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Tue, 16 Sep 2025 12:21:04 +0100 Subject: [PATCH 01/20] Dbeaver devops#2136 te version update procedure (#171) * dbeaver/dbeaver-devops#2136 Update instruction version update procedure in docker compose deployment --- compose/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/compose/README.md b/compose/README.md index 6bf4b60..f8b2831 100644 --- a/compose/README.md +++ b/compose/README.md @@ -187,11 +187,31 @@ For detailed instructions on how to use the script manager, refer to [manager do ## Version update procedure +### Standard update procedure (recommended) + +1. Navigate to `team-edition-deploy/compose/cbte` +2. Stop the cluster: `docker-compose down` or `docker compose down` +3. Update your deployment files: + - Fetch latest changes: `git fetch` + - Switch to new release version: `git checkout ` (e.g., `git checkout 25.2.0`) + - Change value of `CLOUDBEAVER_VERSION_TAG` in `.env` with a preferred version (skip if tag `latest` is set) +4. Pull new docker images: `docker-compose pull` or `docker compose pull` +5. Start the cluster: `docker-compose up -d` or `docker compose up -d` + +### Alternative update procedure (for simple updates) + +If you are not updating across major version boundaries and don't need configuration changes: + 1. Navigate to `team-edition-deploy/compose/cbte` 2. Change value of `CLOUDBEAVER_VERSION_TAG` in `.env` with a preferred version. Go to next step if tag `latest` is set. 3. Pull new docker images: `docker-compose pull` or `docker compose pull` 4. Restart cluster: `docker-compose up -d` or `docker compose up -d` +**Note:** The standard procedure using `docker-compose down` is recommended because it ensures clean container replacement, especially when service names or configurations change between versions. + +### Version update to 25.1.0 or later + +Starting from version 25.1.0, the proxy container name has changed from `nginx` to `web-proxy`. When updating to version 25.1.0 or later, you **must** use the [standard update procedure](#standard-update-procedure-recommended) with `docker-compose down` to ensure the old container is properly removed. ### Version update from 24.0.0 or earlier From aedee4180cdde738e03d8f8e1dd66eaa512b1b09 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Mon, 20 Oct 2025 14:00:46 +0100 Subject: [PATCH 02/20] Dbeaver devops#2199 fix install dbeaver te script (#174) * dbeaver/dbeaver-devops#2199 Removed hardcoded paths for team edition repo location and updated install script * dbeaver/dbeaver-devops#2199 Added create .env if not exist when run command dbeaver-te --- manager/dbeaver-te | 110 ++++++++++++++++++++++--------------- manager/install-manager.sh | 16 +++++- 2 files changed, 80 insertions(+), 46 deletions(-) diff --git a/manager/dbeaver-te b/manager/dbeaver-te index d292a35..d8216dd 100755 --- a/manager/dbeaver-te +++ b/manager/dbeaver-te @@ -2,18 +2,43 @@ set -e +ARG="$1" +TEAM_EDITION_BASE_DIR="/opt/dbeaver-team-server/team-edition-deploy" +TEAM_EDITION_COMPOSE_DIR="$TEAM_EDITION_BASE_DIR/compose/cbte" +TEAM_EDITION_IMAGE="cloudbeaver-dc" +TEAM_EDITION_UPDATE_AVAILABLE=false + +if [ ! -f "$TEAM_EDITION_COMPOSE_DIR/.env" ]; then + echo "Warning: .env file not found at $TEAM_EDITION_COMPOSE_DIR/.env" + if [ -f "$TEAM_EDITION_COMPOSE_DIR/.env.example" ]; then + read -r -p "Do you want to create .env file from .env.example? [y/N] " response + case "$response" in + [yY][eE][sS]|[yY]) + cp "$TEAM_EDITION_COMPOSE_DIR/.env.example" "$TEAM_EDITION_COMPOSE_DIR/.env" + echo ".env file created successfully!" + echo "Please review and configure .env file: $TEAM_EDITION_COMPOSE_DIR/.env" + ;; + *) + echo "Cannot proceed without .env file. Exiting." + exit 1 + ;; + esac + else + echo "Error: .env.example not found at $TEAM_EDITION_COMPOSE_DIR/.env.example" + echo "Cannot create .env file. Exiting." + exit 1 + fi +fi + while read -r line do [[ $line =~ ^#.* ]] && continue [[ -z $line ]] && continue export "$line" -done < /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env - -ARG="$1" +done < "$TEAM_EDITION_COMPOSE_DIR/.env" -TEAM_EDITION_IMAGE="cloudbeaver-dc" TEAM_EDITION_TAG="$CLOUDBEAVER_VERSION_TAG" -TEAM_EDITION_UPDATE_AVAILABLE=false + case $(uname -m) in "x86_64") @@ -26,7 +51,6 @@ case $(uname -m) in esac - printHelp() { cat << EOF @@ -51,7 +75,7 @@ Usage: dbeaver-te [command] restor your backup in current cluster DBeaver TE server home directory: - /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ + $TEAM_EDITION_COMPOSE_DIR/ EOF } @@ -82,7 +106,7 @@ getAvailableVersions() { configureenvfile() { - nano /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env + nano "$TEAM_EDITION_COMPOSE_DIR/.env" } checkCloudBeaverUpdateVersion() { @@ -197,9 +221,9 @@ startCloudbeaver() { if [ "$TEAM_EDITION_STATUS" == false ] then docker compose \ - -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml \ - --env-file /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env \ - --project-directory /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ \ + -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ + --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d \ --remove-orphans \ --pull always @@ -225,7 +249,7 @@ startCloudbeaver() { stopCloudbeaver() { checkCloudBeaverStatus - docker compose -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml down + docker compose -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" down echo "DBeaver Team Edition Server stopped." } @@ -234,23 +258,23 @@ rollbackCloudBeaver() { BACKUP_VERSION="$2" docker compose \ - -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml \ - --env-file /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env \ - --project-directory /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ \ + -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ + --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ down \ --remove-orphans - rsync -av --exclude='cert' --exclude='nginx' "$BACKUP_DIR/" /opt/dbeaver-team-server/team-edition-deploy/ + rsync -av --exclude='cert' --exclude='nginx' "$BACKUP_DIR/" "$TEAM_EDITION_BASE_DIR/" sed -i \ "s/CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_NEW_TAG/CLOUDBEAVER_VERSION_TAG=$BACKUP_VERSION/g" \ - /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env + "$TEAM_EDITION_COMPOSE_DIR/.env" export CLOUDBEAVER_VERSION_TAG=$BACKUP_VERSION docker compose \ - -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml \ - --env-file /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env \ - --project-directory /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ \ + -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ + --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d \ --remove-orphans @@ -275,14 +299,14 @@ updateCloudbeaver() { if [ "$TEAM_EDITION_UPDATE_AVAILABLE" == true ]; then TIMESTAMP=$(date +%m-%d-%Y_%H-%M) - BACKUP_DIR="/opt/dbeaver-team-server/team-edition-deploy-${TEAM_EDITION_TAG}-${TIMESTAMP}" + BACKUP_DIR="${TEAM_EDITION_BASE_DIR}-${TEAM_EDITION_TAG}-${TIMESTAMP}" - # Check if user has write permission for /opt/dbeaver-team-server/team-edition-deploy/ - if [ ! -w "/opt/dbeaver-team-server/team-edition-deploy/" ]; then - OWNER=$(ls -ld /opt/dbeaver-team-server/team-edition-deploy/ | awk '{print $3}') - GROUP=$(ls -ld /opt/dbeaver-team-server/team-edition-deploy/ | awk '{print $4}') + # Check if user has write permission for $TEAM_EDITION_BASE_DIR/ + if [ ! -w "$TEAM_EDITION_BASE_DIR/" ]; then + OWNER=$(ls -ld "$TEAM_EDITION_BASE_DIR/" | awk '{print $3}') + GROUP=$(ls -ld "$TEAM_EDITION_BASE_DIR/" | awk '{print $4}') - echo "Error: No write permission for /opt/dbeaver-team-server/team-edition-deploy/." + echo "Error: No write permission for $TEAM_EDITION_BASE_DIR/." echo "Directory is owned by: $OWNER (group: $GROUP)." if [ "$(whoami)" != "$OWNER" ]; then @@ -294,8 +318,8 @@ updateCloudbeaver() { fi # Check .git directory and fetch latest changes - cd /opt/dbeaver-team-server/team-edition-deploy/ - if [ ! -d "/opt/dbeaver-team-server/team-edition-deploy/.git" ]; then + cd "$TEAM_EDITION_BASE_DIR/" + if [ ! -d "$TEAM_EDITION_BASE_DIR/.git" ]; then echo "===============================================================================" echo "Error: .git directory not found. The repository may be missing or corrupted." echo "Please clone the repository again." @@ -313,15 +337,15 @@ updateCloudbeaver() { # Stop team-edition-deploy docker compose \ - -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml \ - --env-file /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env \ - --project-directory /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ \ + -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ + --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ down \ --remove-orphans # Backup current configuration - mkdir -p $BACKUP_DIR - rsync -av --exclude='cert' --exclude='nginx' /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ "$BACKUP_DIR" + mkdir -p "$BACKUP_DIR" + rsync -av --exclude='cert' --exclude='nginx' "$TEAM_EDITION_COMPOSE_DIR/" "$BACKUP_DIR" echo "Preveous team-edition-deploy configuration copied to $BACKUP_DIR" # Checkout new version @@ -334,7 +358,7 @@ updateCloudbeaver() { } sed -i \ "s/CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_TAG/CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_NEW_TAG/g" \ - /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env + "$TEAM_EDITION_COMPOSE_DIR/.env" export CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_NEW_TAG @@ -342,8 +366,8 @@ updateCloudbeaver() { if [ "$DBEAVER_TEAM_EDITION_AMI" ]; then "$HOME/.local/bin/dbeaver-compose-config-editor.py" \ - -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml \ - -e /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env || { + -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -e "$TEAM_EDITION_COMPOSE_DIR/.env" || { echo "===============================================================================" echo "Error: Failed to patch docker-compose.yml using dbeaver-compose-config-editor.py." echo "===============================================================================" @@ -355,9 +379,9 @@ updateCloudbeaver() { # Start team-edition-deploy with new version and check status docker compose \ - -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml \ - --env-file /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env \ - --project-directory /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ \ + -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ + --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d \ --remove-orphans \ --pull always @@ -475,11 +499,11 @@ restoreBackup(){ fi rm -rf $TEMP_DIR - docker compose -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml down + docker compose -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" down docker compose \ - -f /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/docker-compose.yml \ - --env-file /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/.env \ - --project-directory /opt/dbeaver-team-server/team-edition-deploy/compose/cbte/ \ + -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ + --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d } diff --git a/manager/install-manager.sh b/manager/install-manager.sh index 11b6c27..352e895 100755 --- a/manager/install-manager.sh +++ b/manager/install-manager.sh @@ -6,13 +6,23 @@ INSTALL_DIR="$HOME/bin" CURRENT_DIR=$(pwd) mkdir -p "$INSTALL_DIR" -ln -sf "$CURRENT_DIR/dbeaver-te" "$INSTALL_DIR/" +# Determine the actual base directory and compose directory +BASE_DIR=$(realpath "$CURRENT_DIR/..") +CBTE_DIR=$(realpath "$CURRENT_DIR/../compose/cbte") + +# Copy the script to install directory +cp "$CURRENT_DIR/dbeaver-te" "$INSTALL_DIR/dbeaver-te" chmod +x "$INSTALL_DIR/dbeaver-te" +# Replace the hardcoded paths with actual paths +sed -i "s|^TEAM_EDITION_BASE_DIR=.*|TEAM_EDITION_BASE_DIR=\"$BASE_DIR\"|g" "$INSTALL_DIR/dbeaver-te" +sed -i "s|^TEAM_EDITION_COMPOSE_DIR=.*|TEAM_EDITION_COMPOSE_DIR=\"$CBTE_DIR\"|g" "$INSTALL_DIR/dbeaver-te" + if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> ~/.bashrc source ~/.bashrc fi -CBTE_DIR=$(realpath "$CURRENT_DIR/../compose/cbte") -sed -i "s|/opt/dbeaver-team-server/team-edition-deploy/compose/cbte/|$CBTE_DIR/|g" "$INSTALL_DIR/dbeaver-te" \ No newline at end of file +echo "DBeaver Team Edition manager installed successfully!" +echo "Base directory: $BASE_DIR" +echo "Compose directory: $CBTE_DIR" \ No newline at end of file From 08fdc6625914e19dfe4e66ef960eb164a1ed6805 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Tue, 28 Oct 2025 11:49:37 +0100 Subject: [PATCH 03/20] =?UTF-8?q?dbeaver/dbeaver-devops#2173=20Added=20a?= =?UTF-8?q?=20paragraph=20about=20the=20desktop=20appli=E2=80=A6=20(#175)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * dbeaver/dbeaver-devops#2173 Added a paragraph about the desktop application in main README * dbeaver/dbeaver-devops#2173 Changed link to desktop app * dbeaver/dbeaver-devops#2173 Changed link to desktop app in devel * dbeaver/dbeaver-devops#2173 Added warning about using early access version, updated configs to ea version * dbeaver/dbeaver-devops#2173 Removed msg about default value * dbeaver/dbeaver-devops#2173 Changed warning msg --- AWS/ecs-fargate/README.md | 2 +- AWS/ecs-fargate/variables.tf.example | 2 +- README.md | 12 ++++++++++-- compose/cbte/.env.example | 2 +- k8s/cbte/Chart.yaml | 2 +- k8s/cbte/values.yaml.example | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/AWS/ecs-fargate/README.md b/AWS/ecs-fargate/README.md index 3d5fdf3..20524fe 100644 --- a/AWS/ecs-fargate/README.md +++ b/AWS/ecs-fargate/README.md @@ -44,7 +44,7 @@ git clone https://github.com/dbeaver/team-edition-deploy.git ![Region](images/region.png) - Ensure that the `alb_certificate_Identifier` variable contains the ID from [AWS Certificate Manager](#importing-an-ssl-certificate-in-aws) corresponding to the domain name specified in the `CLOUDBEAVER_PUBLIC_URL` variable within `variables.tf`. The domain name in `CLOUDBEAVER_PUBLIC_URL` must match the domain for which the certificates have been issued. - - You can customize the deployment version by updating the `dbeaver_te_version` environment variable. The default version is `25.2.0`. + - You can customize the deployment version by updating the `dbeaver_te_version` environment variable. 7. Run `terraform init` and then `terraform apply` in `ecs-fargate` directory to create the ECS cluster and complete the deployment. diff --git a/AWS/ecs-fargate/variables.tf.example b/AWS/ecs-fargate/variables.tf.example index 6d8f283..a37e59d 100644 --- a/AWS/ecs-fargate/variables.tf.example +++ b/AWS/ecs-fargate/variables.tf.example @@ -13,7 +13,7 @@ variable "aws_region" { variable "dbeaver_te_version" { description = "The version of the cluster you want to deploy" type = string - default = "25.2.0" + default = "ea" } variable "alb_certificate_Identifier" { diff --git a/README.md b/README.md index d39be4d..fafa64a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ ## DBeaver Team Edition -#### Version 25.2 +#### Version 25.3 Early Access + +**Warning:** Please keep in mind that Early Access versions are not as stable as regular releases, and their use in a production environment is not recommended. DBeaver Team Edition is a client-server application. It requires server deployment. You can deploy it on a single host (e.g. your local computer) @@ -32,7 +34,13 @@ After you started the server: - Configure your license - That's it -Now you can use web interface or [desktop clients](https://dbeaver.com/download/team-edition/) to work with your databases +### Desktop Application + +DBeaver Team Edition works in conjunction with a desktop client application. After deploying the server, you can connect to it using: +- **Web interface** – accessible directly through your browser +- **Desktop client** – provides enhanced features and better performance + +Download the desktop client for your platform: [**DBeaver Team Edition Desktop**](https://dbeaver.com/files/ea/team/) ### Server version update Version update is handled differently for different deployment methods. To update the Team Edition version, follow these instructions: diff --git a/compose/cbte/.env.example b/compose/cbte/.env.example index 57af04a..9833717 100644 --- a/compose/cbte/.env.example +++ b/compose/cbte/.env.example @@ -1,6 +1,6 @@ # CloudBeaver TE server version. Based on DockerHub images tag # -CLOUDBEAVER_VERSION_TAG=25.2.0 +CLOUDBEAVER_VERSION_TAG=ea IMAGE_SOURCE=dbeaver PODMAN_IMAGE_SOURCE=docker.io/dbeaver # Domain name of cluster endpoint. eg. dbeaver-te.example.com diff --git a/k8s/cbte/Chart.yaml b/k8s/cbte/Chart.yaml index 7e3833d..ce930c6 100644 --- a/k8s/cbte/Chart.yaml +++ b/k8s/cbte/Chart.yaml @@ -3,4 +3,4 @@ name: cbte description: A Helm chart for CloudBeaver TE application type: application version: 0.0.1 -appVersion: 25.2.0 +appVersion: ea diff --git a/k8s/cbte/values.yaml.example b/k8s/cbte/values.yaml.example index 14c508f..d59e8e8 100644 --- a/k8s/cbte/values.yaml.example +++ b/k8s/cbte/values.yaml.example @@ -4,7 +4,7 @@ # cloudbeaver general values for all TE services cloudbeaver: - imageTag: "25.2.0" + imageTag: "ea" pullPolicy: Always # pullCredsName - name of a secret config map that contains docker repo auths # pullCredsName: regcred From 2a6f81f8a339f638555dee71c61795a12d2a212a Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Mon, 17 Nov 2025 11:06:27 +0100 Subject: [PATCH 04/20] =?UTF-8?q?dbeaver/dbeaver-devops#2258=20Moved=20kaf?= =?UTF-8?q?ka=20environment=20from=20deployments=20=E2=80=A6=20(#178)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * dbeaver/dbeaver-devops#2258 Moved kafka environment from deployments to dockerfile env * dbeaver/dbeaver-devops#2258 Changed kafka spec to run in k8s * dbeaver/dbeaver-devops#2258 Added CLOUDBEAVER_KAFKA_BROKERS env for dc --- AWS/ecs-fargate/main.tf | 1 + AWS/ecs-fargate/variables.tf.example | 29 ++++-------------------- compose/cbte/docker-compose-nethost.yml | 5 ---- compose/cbte/docker-compose.yml | 9 -------- compose/cbte/podman-compose.yml | 9 -------- k8s/cbte/templates/deployment/kafka.yaml | 22 ------------------ 6 files changed, 6 insertions(+), 69 deletions(-) diff --git a/AWS/ecs-fargate/main.tf b/AWS/ecs-fargate/main.tf index cfc1374..8d6c5ae 100644 --- a/AWS/ecs-fargate/main.tf +++ b/AWS/ecs-fargate/main.tf @@ -21,6 +21,7 @@ locals { item.name == "CLOUDBEAVER_QM_SERVER_URL" ? format("http://%s-cloudbeaver-qm:8972/qm", var.deployment_id) : item.name == "CLOUDBEAVER_RM_SERVER_URL" ? format("http://%s-cloudbeaver-rm:8971/rm", var.deployment_id) : item.name == "CLOUDBEAVER_TM_SERVER_URL" ? format("http://%s-cloudbeaver-tm:8973/tm", var.deployment_id) : + item.name == "CLOUDBEAVER_KAFKA_BROKERS" ? format("http://%s-kafka:9092", var.deployment_id) : item.value ) } diff --git a/AWS/ecs-fargate/variables.tf.example b/AWS/ecs-fargate/variables.tf.example index a37e59d..91de879 100644 --- a/AWS/ecs-fargate/variables.tf.example +++ b/AWS/ecs-fargate/variables.tf.example @@ -97,30 +97,7 @@ variable "private_subnet_cidrs" { variable "cloudbeaver-kafka-env" { # type = map(string) - default = [ - { "name" : "KAFKA_CFG_NODE_ID", - "value" : "0" }, - { "name" : "KAFKA_BROKER_ID", - "value" : "0" }, - { "name" : "KAFKA_ENABLE_KRAFT", - "value" : "yes" }, - { "name" : "ALLOW_PLAINTEXT_LISTENER", - "value" : "yes" }, - { "name" : "KAFKA_CFG_PROCESS_ROLES", - "value" : "controller,broker" }, - { "name" : "KAFKA_CFG_CONTROLLER_QUORUM_VOTERS", - "value" : "0@127.0.0.1:9093" }, - { "name" : "KAFKA_CFG_LISTENERS", - "value" : "PLAINTEXT://:9092,CONTROLLER://:9093" }, - { "name" : "KAFKA_CFG_ADVERTISED_LISTENERS", - "value" : "PLAINTEXT://:9092" }, - { "name" : "KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP", - "value" : "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT" }, - { "name" : "KAFKA_CFG_CONTROLLER_LISTENER_NAMES", - "value" : "CONTROLLER" }, - { "name" : "KAFKA_CFG_INTER_BROKER_LISTENER_NAME", - "value" : "PLAINTEXT" } - ] + default = [] } @@ -193,6 +170,10 @@ variable "cloudbeaver-dc-env" { { "name": "CLOUDBEAVER_PUBLIC_URL", "value": "https://cloudbeaver.io" + }, + { + "name": "CLOUDBEAVER_KAFKA_BROKERS", + "value": "kafka:9092" }] } diff --git a/compose/cbte/docker-compose-nethost.yml b/compose/cbte/docker-compose-nethost.yml index ff22754..738427d 100644 --- a/compose/cbte/docker-compose-nethost.yml +++ b/compose/cbte/docker-compose-nethost.yml @@ -35,14 +35,9 @@ services: image: ${IMAGE_SOURCE:-dbeaver}/cloudbeaver-kafka:3.9 network_mode: host environment: - - KAFKA_CFG_NODE_ID=0 - - KAFKA_CFG_PROCESS_ROLES=controller,broker - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@127.0.0.1:9093 - KAFKA_CFG_LISTENERS=PLAINTEXT://127.0.0.1:9092,CONTROLLER://127.0.0.1:9093 - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 - - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT - - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER - - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT postgres: restart: unless-stopped diff --git a/compose/cbte/docker-compose.yml b/compose/cbte/docker-compose.yml index fecdd49..f04a101 100644 --- a/compose/cbte/docker-compose.yml +++ b/compose/cbte/docker-compose.yml @@ -38,15 +38,6 @@ services: hostname: kafka expose: - 9092 - environment: - - KAFKA_CFG_NODE_ID=0 - - KAFKA_CFG_PROCESS_ROLES=controller,broker - - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093 - - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 - - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092 - - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT - - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER - - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT networks: - cloudbeaver-te-private-net postgres: diff --git a/compose/cbte/podman-compose.yml b/compose/cbte/podman-compose.yml index 26b0c6c..c528dc9 100644 --- a/compose/cbte/podman-compose.yml +++ b/compose/cbte/podman-compose.yml @@ -43,15 +43,6 @@ services: hostname: kafka expose: - 9092 - environment: - - KAFKA_CFG_NODE_ID=0 - - KAFKA_CFG_PROCESS_ROLES=controller,broker - - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093 - - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 - - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092 - - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT - - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER - - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT networks: - cloudbeaver-te-private-net postgres: diff --git a/k8s/cbte/templates/deployment/kafka.yaml b/k8s/cbte/templates/deployment/kafka.yaml index 491beb4..1641995 100644 --- a/k8s/cbte/templates/deployment/kafka.yaml +++ b/k8s/cbte/templates/deployment/kafka.yaml @@ -17,32 +17,10 @@ spec: {{ .Release.Name }}-net: "true" app: kafka spec: - securityContext: - runAsUser: 1001 - fsGroup: 1001 containers: - image: dbeaver/cloudbeaver-kafka:3.9 imagePullPolicy: "IfNotPresent" name: kafka - env: - # KRaft settings - - name: KAFKA_CFG_NODE_ID - value: "0" - - name: KAFKA_CFG_PROCESS_ROLES - value: "controller,broker" - - name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS - value: "0@kafka:9093" - # Listeners - - name: KAFKA_CFG_LISTENERS - value: "PLAINTEXT://:9092,CONTROLLER://:9093" - - name: KAFKA_CFG_ADVERTISED_LISTENERS - value: "PLAINTEXT://:9092" - - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP - value: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT" - - name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES - value: "CONTROLLER" - - name: KAFKA_CFG_INTER_BROKER_LISTENER_NAME - value: "PLAINTEXT" ports: - containerPort: 9092 resources: {} From 52addd63ee10f9ff4493a77e2377f52fe27c6f8f Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Thu, 20 Nov 2025 13:51:04 +0100 Subject: [PATCH 05/20] dbeaver/dbeaver-devops#2284 Added configuration of image source for kafka and postgres in k8s deployment with default params (#179) --- k8s/cbte/templates/deployment/db.yaml | 2 +- k8s/cbte/templates/deployment/kafka.yaml | 2 +- k8s/cbte/values.yaml.example | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/k8s/cbte/templates/deployment/db.yaml b/k8s/cbte/templates/deployment/db.yaml index d2a05b1..0086dc0 100644 --- a/k8s/cbte/templates/deployment/db.yaml +++ b/k8s/cbte/templates/deployment/db.yaml @@ -19,7 +19,7 @@ spec: app: db spec: containers: - - image: dbeaver/cloudbeaver-postgres:13 + - image: "{{ .Values.postgres.image | default "dbeaver/cloudbeaver-postgres:13" }}" imagePullPolicy: "IfNotPresent" name: postgres env: diff --git a/k8s/cbte/templates/deployment/kafka.yaml b/k8s/cbte/templates/deployment/kafka.yaml index 1641995..92fcf31 100644 --- a/k8s/cbte/templates/deployment/kafka.yaml +++ b/k8s/cbte/templates/deployment/kafka.yaml @@ -18,7 +18,7 @@ spec: app: kafka spec: containers: - - image: dbeaver/cloudbeaver-kafka:3.9 + - image: "{{ .Values.kafka.image | default "dbeaver/cloudbeaver-kafka:3.9" }}" imagePullPolicy: "IfNotPresent" name: kafka ports: diff --git a/k8s/cbte/values.yaml.example b/k8s/cbte/values.yaml.example index d59e8e8..b65ea22 100644 --- a/k8s/cbte/values.yaml.example +++ b/k8s/cbte/values.yaml.example @@ -44,6 +44,10 @@ cloudbeaverQM: cloudbeaverTM: replicaCount: 1 image: dbeaver/cloudbeaver-tm +kafka: + image: "dbeaver/cloudbeaver-kafka:3.9" +postgres: + image: "dbeaver/cloudbeaver-postgres:13" # Cloud storage configuration # By default is None, it means not cloud deployment From 97093918787376e403633f9cce0a9fba3b965645 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Mon, 8 Dec 2025 14:18:52 +0100 Subject: [PATCH 06/20] dbeaver/dbeaver-devops#2304 Update devel (#181) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fafa64a..a47b741 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## DBeaver Team Edition -#### Version 25.3 Early Access +#### Version 26.0 Early Access **Warning:** Please keep in mind that Early Access versions are not as stable as regular releases, and their use in a production environment is not recommended. @@ -62,6 +62,8 @@ To change an internal PostgreSQL password use [this instruction](CHANGEPWD.md#ho - [Early access](https://github.com/dbeaver/team-edition-deploy/tree/devel) ### Older versions: +- [25.3.0](https://github.com/dbeaver/team-edition-deploy/tree/25.3.0) +- [25.2.0](https://github.com/dbeaver/team-edition-deploy/tree/25.2.0) - [25.1.0](https://github.com/dbeaver/team-edition-deploy/tree/25.1.0) - [25.0.0](https://github.com/dbeaver/team-edition-deploy/tree/25.0.0) - [24.3.0](https://github.com/dbeaver/team-edition-deploy/tree/24.3.0) From 058c3d06e0954fce71ef0c7002ef3fc72c518150 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Fri, 19 Dec 2025 11:42:43 +0100 Subject: [PATCH 07/20] dbeaver/tech-docs#1294 te windows deploy (#182) (#183) * dbeaver/tech-docs#1294 te windows deploy Co-authored-by: Vladimir Ivanov <38179706+daelynum@users.noreply.github.com> --- compose/Windows.md | 102 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 97 insertions(+), 5 deletions(-) diff --git a/compose/Windows.md b/compose/Windows.md index 632628d..95d889b 100644 --- a/compose/Windows.md +++ b/compose/Windows.md @@ -1,6 +1,98 @@ # Team Edition Server Installation on Windows -## Preparing your Windows environment +## Automatic installation using DBeaver Server Installer + +Use the **DBeaver Server Installer** to install dependencies, configure Team Edition, and run or stop the server on +Windows. + +### Prepare your Windows environment + +The installer checks your system and helps you install required components. + +1. Download the [DBeaver Server Installer](https://github.com/dbeaver/dbeaver-server-installer/releases) executable and + place it in any directory. + + If you prefer installing from source, install [Go](https://go.dev/dl/) (see the required version in the + [`go.mod` file](https://github.com/dbeaver/dbeaver-server-installer/blob/devel/go.mod)) and run: + + ``` + go install github.com/dbeaver/dbeaver-server-installer@latest + ``` + +2. Add the directory where you placed the executable to your system `PATH` environment variable. + +3. Open a new terminal so the updated `PATH` is applied. + +4. (Optional) Install shell completions. + + You can teach your shell to tab-complete the dbeaver-server-installer command and its subcommands. The exact steps + depend on your shell. + + Run: + + ``` + dbeaver-server-installer completion --help + ``` + + Follow the instructions to install the completions for your shell. + +5. Ensure WSL is installed. + + > Team Edition runs its containers under WSL, so WSL must be available before you continue. + + You can run: + + ``` + dbeaver-server-installer dependencies install + ``` + + This installs Git, Podman, and podman-compose, and also checks whether WSL is enabled. + If WSL is missing, the installer will tell you and show guidance on how to install it. + + To install WSL manually, run: + + ``` + wsl.exe --install + ``` + +6. Reboot your system after enabling WSL. The installer won’t proceed correctly until WSL is fully initialized. + +### Configure and start Team Edition + +1. Run: + + ``` + dbeaver-server-installer configure + ``` + + The tool creates the configuration directory and the `.env` file. + Edit the `.env` file to set your domain, SSL options, and other properties. [Learn more](https://dbeaver.com/docs/team-edition/Team-Edition-deployment-with-Docker-Compose/#environment-file-configuration) + + > You can start Team Edition without changing the `.env` file. The default values are enough for a basic setup. + +2. Start the server: + + ``` + dbeaver-server-installer start + ``` + + The tool deploys Team Edition, starts the containers, and opens the firewall ports needed for access. + + > **Note**: On Windows, `dbeaver-server-installer start` works only if PowerShell was launched with **Run as Administrator**. + +3. After startup, you can access Team Edition at the url configured in your `.env` file. + +### Stop Team Edition + +To stop the server, run: + +``` +dbeaver-server-installer stop +``` + +## Manual installation on Windows using WSL and podman + +### Prepare your Windows environment When running on Windows, you need to ensure that WSL is enabled. We also recommend using `podman` with `podman-compose`. @@ -45,7 +137,7 @@ New-NetFirewallRule -DisplayName "Allow Inbound TCP 443 for WSL" -Direction Inbo Change `CHANGEME` to the IP address found in the previous step. -## Configuring and starting the Team Edition cluster +### Configuring and starting the Team Edition cluster 1. Clone the Git repository to your local machine by running the following command in your terminal: ```powershell @@ -70,15 +162,15 @@ cd .\team-edition-deploy\compose\cbte\ podman compose -f .\podman-compose.yml up -d ``` -## Stopping the cluster +### Stopping the cluster ```powershell podman compose -f .\podman-compose.yml down ``` -## Misc +### Misc -### How to determine the IP address of the WSL machine +#### How to determine the IP address of the WSL machine 1. Execute `wsl.exe -d dbeaver-team-edition-machine` in PowerShell or Command Prompt: 2. Run `ip addr show eth0`. You'll see something like From 86f0bf2f09df2e651b5cfe5f8eddca80f9c9292f Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Thu, 15 Jan 2026 16:01:45 +0100 Subject: [PATCH 08/20] dbeaver/dbeaver-devops#2354 Added Configure SQL Server database (#185) * dbeaver/dbeaver-devops#2354 Added Configure SQL Server database * dbeaver/dbeaver-devops#2354 Added creating db cloudbeaver --- compose/README.md | 17 +++++++++++++++++ compose/cbte/.env.example | 1 + 2 files changed, 18 insertions(+) diff --git a/compose/README.md b/compose/README.md index f8b2831..2288f0b 100644 --- a/compose/README.md +++ b/compose/README.md @@ -157,6 +157,23 @@ You might need to add additional parameters to the `CLOUDBEAVER_DB_URL`: `CLOUDBEAVER_DB_URL=jdbc:mariadb://127.0.0.1:3306/cloudbeaver?autoReconnect=true&allowPublicKeyRetrieval=true` +#### Configure SQL Server database + +To use SQL Server as an internal database, set the driver to `microsoft` and configure the connection URL. + +Connect to your SQL Server database and run: +```sql + CREATE DATABASE cloudbeaver; + CREATE SCHEMA dc; + CREATE SCHEMA qm; + CREATE SCHEMA tm; +``` + +##### Example: + +`CLOUDBEAVER_DB_DRIVER=microsoft` +`CLOUDBEAVER_DB_URL=jdbc:sqlserver://127.0.0.1:1433;databaseName=cloudbeaver` + #### PostgreSQL update procedure If you want to update the internal PostgreSQL to version 17, follow these steps: diff --git a/compose/cbte/.env.example b/compose/cbte/.env.example index 9833717..0777ece 100644 --- a/compose/cbte/.env.example +++ b/compose/cbte/.env.example @@ -27,6 +27,7 @@ REPLICA_COUNT_RM=1 # - for postgresql use 'postgres-jdbc' driver. # - for mysql or mariadb use 'mariaDB' driver. # - for oracle use 'oracle_thin' driver. +# - for sql server use 'microsoft' driver. # USE_EXTERNAL_DB=false CLOUDBEAVER_DB_DRIVER=postgres-jdbc From eb8e8b17db136e8eda9545d196703c20bbbe1cd6 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Tue, 20 Jan 2026 11:28:25 +0100 Subject: [PATCH 09/20] =?UTF-8?q?dbeaver/dbeaver-devops#2329=20Added=20JAV?= =?UTF-8?q?A=5FTOOL=5FOPTIONS=20in=20docker=20deploym=E2=80=A6=20(#186)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * dbeaver/dbeaver-devops#2329 Added JAVA_TOOL_OPTIONS in docker deploymnet to pass Java parameters in services * dbeaver/dbeaver-devops#2329 Added JAVA_TOOL_OPTIONS example --- compose/README.md | 9 +++++++++ compose/cbte/.env.example | 3 +++ compose/cbte/docker-compose-nethost.yml | 5 +++++ compose/cbte/docker-compose.yml | 5 +++++ compose/cbte/podman-compose.yml | 5 +++++ 5 files changed, 27 insertions(+) diff --git a/compose/README.md b/compose/README.md index 2288f0b..0c2c35e 100644 --- a/compose/README.md +++ b/compose/README.md @@ -67,6 +67,15 @@ environment: ``` This step is only required for Nginx, as HAProxy resolves service names via Docker DNS automatically. +### Java tool options + +Java does not read system environment variables. To pass Java parameters to the Java process, use the `JAVA_TOOL_OPTIONS` variable in your `.env` file. + +Example for proxy configuration: +``` +JAVA_TOOL_OPTIONS="-Dhttp.proxy.host= -Dhttps.proxy.host= -Dhttp.proxy.port= -Dhttps.proxy.port=" +``` + ## Configuring and starting Team Edition cluster 1. Clone Git repository to your local machine by running the following command in your terminal: diff --git a/compose/cbte/.env.example b/compose/cbte/.env.example index 0777ece..0ce238a 100644 --- a/compose/cbte/.env.example +++ b/compose/cbte/.env.example @@ -34,3 +34,6 @@ CLOUDBEAVER_DB_DRIVER=postgres-jdbc CLOUDBEAVER_DB_URL=jdbc:postgresql://postgres:5432/cloudbeaver CLOUDBEAVER_DB_USER=postgres CLOUDBEAVER_DB_PASSWORD=StR0NgP2sSw0rD + +# Java tool options for JVM configuration +JAVA_TOOL_OPTIONS= diff --git a/compose/cbte/docker-compose-nethost.yml b/compose/cbte/docker-compose-nethost.yml index 738427d..10145a2 100644 --- a/compose/cbte/docker-compose-nethost.yml +++ b/compose/cbte/docker-compose-nethost.yml @@ -72,6 +72,7 @@ services: - CLOUDBEAVER_QM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_DC_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_TM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - dc_data:/opt/domain-controller/workspace - ./cert/private/:/opt/domain-controller/conf/certificates/ @@ -90,6 +91,7 @@ services: - trusted_cacerts:/opt/cloudbeaver/conf/certificates/custom/ environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} expose: - ${CLOUDBEAVER_WEB_SERVER_PORT:-8978} depends_on: @@ -105,6 +107,7 @@ services: replicas: ${REPLICA_COUNT_RM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - rm_data:/opt/resource-manager/workspace - ./cert/public/:/opt/resource-manager/conf/certificates/ @@ -120,6 +123,7 @@ services: replicas: ${REPLICA_COUNT_QM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - ./cert/public/:/opt/query-manager/conf/certificates/ - trusted_cacerts:/opt/query-manager/conf/certificates/custom/ @@ -134,6 +138,7 @@ services: replicas: ${REPLICA_COUNT_TM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - tm_data:/opt/task-manager/workspace - ./cert/public/:/opt/task-manager/conf/certificates/ diff --git a/compose/cbte/docker-compose.yml b/compose/cbte/docker-compose.yml index f04a101..1dc844e 100644 --- a/compose/cbte/docker-compose.yml +++ b/compose/cbte/docker-compose.yml @@ -76,6 +76,7 @@ services: - CLOUDBEAVER_QM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_DC_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_TM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - dc_data:/opt/domain-controller/workspace - ./cert/private/:/opt/domain-controller/conf/certificates/ @@ -97,6 +98,7 @@ services: - trusted_cacerts:/opt/cloudbeaver/conf/certificates/custom/ environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} expose: - ${CLOUDBEAVER_WEB_SERVER_PORT:-8978} depends_on: @@ -113,6 +115,7 @@ services: replicas: ${REPLICA_COUNT_RM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - rm_data:/opt/resource-manager/workspace - ./cert/public/:/opt/resource-manager/conf/certificates/ @@ -131,6 +134,7 @@ services: replicas: ${REPLICA_COUNT_QM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - ./cert/public/:/opt/query-manager/conf/certificates/ - trusted_cacerts:/opt/query-manager/conf/certificates/custom/ @@ -148,6 +152,7 @@ services: replicas: ${REPLICA_COUNT_TM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - tm_data:/opt/task-manager/workspace - ./cert/public/:/opt/task-manager/conf/certificates/ diff --git a/compose/cbte/podman-compose.yml b/compose/cbte/podman-compose.yml index c528dc9..0112142 100644 --- a/compose/cbte/podman-compose.yml +++ b/compose/cbte/podman-compose.yml @@ -81,6 +81,7 @@ services: - CLOUDBEAVER_QM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_DC_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_TM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - dc_data:/opt/domain-controller/workspace:z - ./cert/private/:/opt/domain-controller/conf/certificates/:z @@ -102,6 +103,7 @@ services: - trusted_cacerts:/opt/cloudbeaver/conf/certificates/custom/:z environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} expose: - ${CLOUDBEAVER_WEB_SERVER_PORT:-8978} depends_on: @@ -118,6 +120,7 @@ services: replicas: ${REPLICA_COUNT_RM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - rm_data:/opt/resource-manager/workspace:z - ./cert/public/:/opt/resource-manager/conf/certificates/:z @@ -136,6 +139,7 @@ services: replicas: ${REPLICA_COUNT_QM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - ./cert/public/:/opt/query-manager/conf/certificates/:z - trusted_cacerts:/opt/query-manager/conf/certificates/custom/:z @@ -153,6 +157,7 @@ services: replicas: ${REPLICA_COUNT_TM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} volumes: - tm_data:/opt/task-manager/workspace:z - ./cert/public/:/opt/task-manager/conf/certificates/:z From 73cc8fc07043aa7c609c89b0d60ea866259a78b3 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:33:59 +0100 Subject: [PATCH 10/20] dbeaver/dbeaver-devops#1669 Avoid keeping password in example (#189) * dbeaver/dbeaver-devops#1669 Avoid keeping password in example * dbeaver/dbeaver-devops#1669 Update README * dbeaver/dbeaver-devops#1669 Removed k8s secret check for old password --- AWS/ecs-fargate/README.md | 2 +- AWS/ecs-fargate/variables.tf.example | 8 ++++---- compose/README.md | 1 + compose/cbte/.env.example | 2 +- k8s/README.md | 1 + k8s/cbte/templates/secrets/db-passwords.yaml | 4 ---- k8s/cbte/values.yaml.example | 2 +- 7 files changed, 9 insertions(+), 11 deletions(-) diff --git a/AWS/ecs-fargate/README.md b/AWS/ecs-fargate/README.md index 20524fe..9e66bcf 100644 --- a/AWS/ecs-fargate/README.md +++ b/AWS/ecs-fargate/README.md @@ -24,7 +24,7 @@ git clone https://github.com/dbeaver/team-edition-deploy.git - Navigate to `team-edition-deploy/AWS/ecs-fargate` - Copy `variables.tf.example` to `variables.tf` - Open `variables.tf`. - - Update `variables.tf` file. Modify `POSTGRES_PASSWORD` field in `cloudbeaver-db-env` vatiables. + - Update `variables.tf` file. You must set `POSTGRES_PASSWORD` field in `cloudbeaver-db-env` variables. The password are empty by default and the service will not start without them. - If you plan to use an RDS-based database: **Note:** only [Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/) is supported. diff --git a/AWS/ecs-fargate/variables.tf.example b/AWS/ecs-fargate/variables.tf.example index 91de879..6e5d157 100644 --- a/AWS/ecs-fargate/variables.tf.example +++ b/AWS/ecs-fargate/variables.tf.example @@ -64,7 +64,7 @@ variable "cloudbeaver-db-env" { # type = map(string) default = [ { "name": "POSTGRES_PASSWORD", - "value": "postgres"}, + "value": ""}, { "name": "POSTGRES_USER", "value": "postgres"}, { "name": "POSTGRES_DB", @@ -157,15 +157,15 @@ variable "cloudbeaver-dc-env" { }, { "name": "CLOUDBEAVER_DC_BACKEND_DB_PASSWORD", - "value": "DCpassword" + "value": "" }, { "name": "CLOUDBEAVER_TM_BACKEND_DB_PASSWORD", - "value": "TMpassword" + "value": "" }, { "name": "CLOUDBEAVER_QM_BACKEND_DB_PASSWORD", - "value": "QMpassword" + "value": "" }, { "name": "CLOUDBEAVER_PUBLIC_URL", diff --git a/compose/README.md b/compose/README.md index 0c2c35e..a94c33e 100644 --- a/compose/README.md +++ b/compose/README.md @@ -86,6 +86,7 @@ JAVA_TOOL_OPTIONS="-Dhttp.proxy.host= -Dhttps.proxy.host= - Navigate to `team-edition-deploy/compose/cbte` - Copy `.env.example` to `.env` - Edit `.env` file to set configuration properties + - You must set the `CLOUDBEAVER_DB_PASSWORD` variable before starting the cluster. The database password is empty by default and the service will not start without it. 3. [Configure SSL and domain](../SSL/README.md#ssl-certificate-configuration) 4. Start the cluster: - `docker-compose up -d` or `docker compose up -d` diff --git a/compose/cbte/.env.example b/compose/cbte/.env.example index 0ce238a..5097ce7 100644 --- a/compose/cbte/.env.example +++ b/compose/cbte/.env.example @@ -33,7 +33,7 @@ USE_EXTERNAL_DB=false CLOUDBEAVER_DB_DRIVER=postgres-jdbc CLOUDBEAVER_DB_URL=jdbc:postgresql://postgres:5432/cloudbeaver CLOUDBEAVER_DB_USER=postgres -CLOUDBEAVER_DB_PASSWORD=StR0NgP2sSw0rD +CLOUDBEAVER_DB_PASSWORD= # Java tool options for JVM configuration JAVA_TOOL_OPTIONS= diff --git a/k8s/README.md b/k8s/README.md index c0a48ab..4b4f28f 100644 --- a/k8s/README.md +++ b/k8s/README.md @@ -41,6 +41,7 @@ Previously, the volumes were owned by the ‘root’ user, but now they are owne 2. `cd team-edition-deploy/k8s/cbte` 3. `cp ./values.yaml.example ./values.yaml` 4. Edit chart values in `values.yaml` (use any text editor). + - You must set the `cloudbeaver_db_password` variable before deploying the cluster. The database password is empty by default and the deployment will fail without it. 5. Configure domain and SSL certificate: - Add an A record in your DNS hosting for a value of `cloudbeaverBaseDomain` variable with load balancer IP address. - Generate internal services certificates: diff --git a/k8s/cbte/templates/secrets/db-passwords.yaml b/k8s/cbte/templates/secrets/db-passwords.yaml index 3408e47..f02f0b3 100644 --- a/k8s/cbte/templates/secrets/db-passwords.yaml +++ b/k8s/cbte/templates/secrets/db-passwords.yaml @@ -2,10 +2,6 @@ {{- fail "Error: backend.cloudbeaver_db_password is missing or empty" }} {{- end }} -{{- if eq .Values.backend.cloudbeaver_db_password "StR0NgP2sSw0rD" }} - {{- fail "Error: Default password 'StR0NgP2sSw0rD' is insecure! Please change it before deployment." }} -{{- end }} - apiVersion: v1 kind: Secret metadata: diff --git a/k8s/cbte/values.yaml.example b/k8s/cbte/values.yaml.example index b65ea22..eb7de83 100644 --- a/k8s/cbte/values.yaml.example +++ b/k8s/cbte/values.yaml.example @@ -66,4 +66,4 @@ backend: cloudbeaver_db_driver: postgres-jdbc cloudbeaver_db_url: jdbc:postgresql://postgres:5432/cloudbeaver cloudbeaver_db_user: postgres - cloudbeaver_db_password: StR0NgP2sSw0rD + cloudbeaver_db_password: "" From 8b21cd229faddfced02fd07abe446383ebfa6d25 Mon Sep 17 00:00:00 2001 From: mayer <57711367+mayerro@users.noreply.github.com> Date: Thu, 12 Feb 2026 18:29:13 +0100 Subject: [PATCH 11/20] dbeaver/dbeaver-devops#2461 db isolated in compose projects (#191) --- compose/cbte/docker-compose.yml | 12 ++++++++---- compose/cbte/podman-compose.yml | 10 +++++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/compose/cbte/docker-compose.yml b/compose/cbte/docker-compose.yml index 1dc844e..77b5d4b 100644 --- a/compose/cbte/docker-compose.yml +++ b/compose/cbte/docker-compose.yml @@ -10,6 +10,7 @@ volumes: api_tokens: {} networks: cloudbeaver-te-private-net: null + cloudbeaver-te-common-net: null services: web-proxy: restart: unless-stopped @@ -22,7 +23,7 @@ services: - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-dbeaver} - CLOUDBEAVER_WEB_SERVER_PORT=${CLOUDBEAVER_WEB_SERVER_PORT:-8978} networks: - - cloudbeaver-te-private-net + - cloudbeaver-te-common-net volumes: - nginx_conf_data:/etc/${PROXY_TYPE:-nginx}/product-conf/ - nginx_ssl_data:/etc/${PROXY_TYPE:-nginx}/ssl/ @@ -39,7 +40,7 @@ services: expose: - 9092 networks: - - cloudbeaver-te-private-net + - cloudbeaver-te-common-net postgres: restart: unless-stopped hostname: postgres @@ -87,6 +88,7 @@ services: - 8970 networks: - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-te: restart: unless-stopped hostname: cloudbeaver-te @@ -106,7 +108,7 @@ services: - cloudbeaver-rm - cloudbeaver-qm networks: - - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-rm: restart: unless-stopped image: ${IMAGE_SOURCE:-dbeaver}/cloudbeaver-rm:${CLOUDBEAVER_VERSION_TAG} @@ -125,7 +127,7 @@ services: expose: - 8971 networks: - - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-qm: restart: unless-stopped image: ${IMAGE_SOURCE:-dbeaver}/cloudbeaver-qm:${CLOUDBEAVER_VERSION_TAG} @@ -144,6 +146,7 @@ services: - 8972 networks: - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-tm: restart: unless-stopped image: ${IMAGE_SOURCE:-dbeaver}/cloudbeaver-tm:${CLOUDBEAVER_VERSION_TAG} @@ -163,3 +166,4 @@ services: - 8973 networks: - cloudbeaver-te-private-net + - cloudbeaver-te-common-net diff --git a/compose/cbte/podman-compose.yml b/compose/cbte/podman-compose.yml index 0112142..f520947 100644 --- a/compose/cbte/podman-compose.yml +++ b/compose/cbte/podman-compose.yml @@ -15,6 +15,7 @@ volumes: api_tokens: {} networks: cloudbeaver-te-private-net: null + cloudbeaver-te-common-net: null services: web-proxy: restart: unless-stopped @@ -44,7 +45,7 @@ services: expose: - 9092 networks: - - cloudbeaver-te-private-net + - cloudbeaver-te-common-net postgres: restart: unless-stopped hostname: postgres @@ -92,6 +93,7 @@ services: - 8970 networks: - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-te: restart: unless-stopped hostname: cloudbeaver-te @@ -111,7 +113,7 @@ services: - cloudbeaver-rm - cloudbeaver-qm networks: - - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-rm: restart: unless-stopped image: ${PODMAN_IMAGE_SOURCE:-docker.io/dbeaver}/cloudbeaver-rm:${CLOUDBEAVER_VERSION_TAG} @@ -130,7 +132,7 @@ services: expose: - 8971 networks: - - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-qm: restart: unless-stopped image: ${PODMAN_IMAGE_SOURCE:-docker.io/dbeaver}/cloudbeaver-qm:${CLOUDBEAVER_VERSION_TAG} @@ -149,6 +151,7 @@ services: - 8972 networks: - cloudbeaver-te-private-net + - cloudbeaver-te-common-net cloudbeaver-tm: restart: unless-stopped image: ${PODMAN_IMAGE_SOURCE:-docker.io/dbeaver}/cloudbeaver-tm:${CLOUDBEAVER_VERSION_TAG} @@ -168,3 +171,4 @@ services: - 8973 networks: - cloudbeaver-te-private-net + - cloudbeaver-te-common-net From 9c6d05cea0bea47c0077b22ba3fc00153c60427b Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Fri, 13 Feb 2026 11:27:42 +0100 Subject: [PATCH 12/20] dbeaver/dbeaver-devops#2459 Remove CLOUDBEAVER_PUBLIC_URL (#190) * dbeaver/dbeaver-devops#2459 Remove CLOUDBEAVER_PUBLIC_URL * dbeaver/dbeaver-devops#2459 Remove CLOUDBEAVER_PUBLIC_URL from .env --- AWS/ecs-fargate/README.md | 2 +- AWS/ecs-fargate/variables.tf.example | 4 ---- compose/cbte/.env.example | 3 --- compose/cbte/docker-compose.yml | 1 - compose/cbte/podman-compose.yml | 1 - k8s/cbte/templates/deployment/cloudbeaver-dc.yaml | 2 -- 6 files changed, 1 insertion(+), 12 deletions(-) diff --git a/AWS/ecs-fargate/README.md b/AWS/ecs-fargate/README.md index 9e66bcf..7c371df 100644 --- a/AWS/ecs-fargate/README.md +++ b/AWS/ecs-fargate/README.md @@ -43,7 +43,7 @@ git clone https://github.com/dbeaver/team-edition-deploy.git ![Region](images/region.png) - - Ensure that the `alb_certificate_Identifier` variable contains the ID from [AWS Certificate Manager](#importing-an-ssl-certificate-in-aws) corresponding to the domain name specified in the `CLOUDBEAVER_PUBLIC_URL` variable within `variables.tf`. The domain name in `CLOUDBEAVER_PUBLIC_URL` must match the domain for which the certificates have been issued. + - Ensure that the `alb_certificate_Identifier` variable contains the ID from [AWS Certificate Manager](#importing-an-ssl-certificate-in-aws) corresponding to your domain name. The domain name must match the domain for which the certificates have been issued. - You can customize the deployment version by updating the `dbeaver_te_version` environment variable. 7. Run `terraform init` and then `terraform apply` in `ecs-fargate` directory to create the ECS cluster and complete the deployment. diff --git a/AWS/ecs-fargate/variables.tf.example b/AWS/ecs-fargate/variables.tf.example index 6e5d157..720ef47 100644 --- a/AWS/ecs-fargate/variables.tf.example +++ b/AWS/ecs-fargate/variables.tf.example @@ -167,10 +167,6 @@ variable "cloudbeaver-dc-env" { "name": "CLOUDBEAVER_QM_BACKEND_DB_PASSWORD", "value": "" }, - { - "name": "CLOUDBEAVER_PUBLIC_URL", - "value": "https://cloudbeaver.io" - }, { "name": "CLOUDBEAVER_KAFKA_BROKERS", "value": "kafka:9092" diff --git a/compose/cbte/.env.example b/compose/cbte/.env.example index 5097ce7..c51b3b9 100644 --- a/compose/cbte/.env.example +++ b/compose/cbte/.env.example @@ -7,9 +7,6 @@ PODMAN_IMAGE_SOURCE=docker.io/dbeaver # COMPOSE_PROJECT_NAME=dbeaver -CLOUDBEAVER_PUBLIC_URL=http://localhost - - # Type of web server. Supported values: nginx, haproxy PROXY_TYPE=nginx diff --git a/compose/cbte/docker-compose.yml b/compose/cbte/docker-compose.yml index 77b5d4b..3d9bf87 100644 --- a/compose/cbte/docker-compose.yml +++ b/compose/cbte/docker-compose.yml @@ -60,7 +60,6 @@ services: image: ${IMAGE_SOURCE:-dbeaver}/cloudbeaver-dc:${CLOUDBEAVER_VERSION_TAG} hostname: cloudbeaver-dc environment: - - CLOUDBEAVER_PUBLIC_URL=${CLOUDBEAVER_PUBLIC_URL} - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc - CLOUDBEAVER_RM_SERVER_URL=http://cloudbeaver-rm:8971/rm - CLOUDBEAVER_QM_SERVER_URL=http://cloudbeaver-qm:8972/qm diff --git a/compose/cbte/podman-compose.yml b/compose/cbte/podman-compose.yml index f520947..a94d5b9 100644 --- a/compose/cbte/podman-compose.yml +++ b/compose/cbte/podman-compose.yml @@ -65,7 +65,6 @@ services: image: ${PODMAN_IMAGE_SOURCE:-docker.io/dbeaver}/cloudbeaver-dc:${CLOUDBEAVER_VERSION_TAG} hostname: cloudbeaver-dc environment: - - CLOUDBEAVER_PUBLIC_URL=${CLOUDBEAVER_PUBLIC_URL} - CLOUDBEAVER_DC_SERVER_URL=http://cloudbeaver-dc:8970/dc - CLOUDBEAVER_RM_SERVER_URL=http://cloudbeaver-rm:8971/rm - CLOUDBEAVER_QM_SERVER_URL=http://cloudbeaver-qm:8972/qm diff --git a/k8s/cbte/templates/deployment/cloudbeaver-dc.yaml b/k8s/cbte/templates/deployment/cloudbeaver-dc.yaml index bb6283d..a74cb67 100644 --- a/k8s/cbte/templates/deployment/cloudbeaver-dc.yaml +++ b/k8s/cbte/templates/deployment/cloudbeaver-dc.yaml @@ -62,8 +62,6 @@ spec: value: "http://cloudbeaver-rm:8971/rm" - name: CLOUDBEAVER_QM_SERVER_URL value: "http://cloudbeaver-qm:8972/qm" - - name: CLOUDBEAVER_PUBLIC_URL - value: "{{ .Values.httpScheme }}://{{ .Values.cloudbeaverBaseDomain }}" ports: - containerPort: 8970 resources: {} From bef924229ca25f5417e91691c5bc72071f686165 Mon Sep 17 00:00:00 2001 From: Dmitrii Barnukov <29237913+Nexus6v2@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:46:09 +0100 Subject: [PATCH 13/20] dbeaver/pro#6761 added host mode envs (#184) * dbeaver/pro#6761 added host mode envs * dbeaver/pro#6761 enforce 127.0.0.1 for nodes --------- Co-authored-by: Aleksandr Skoblikov --- compose/cbte/docker-compose-nethost.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/compose/cbte/docker-compose-nethost.yml b/compose/cbte/docker-compose-nethost.yml index 10145a2..b96f7eb 100644 --- a/compose/cbte/docker-compose-nethost.yml +++ b/compose/cbte/docker-compose-nethost.yml @@ -72,7 +72,8 @@ services: - CLOUDBEAVER_QM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_DC_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - CLOUDBEAVER_TM_BACKEND_DB_DRIVER=${CLOUDBEAVER_DB_DRIVER} - - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} + - NETWORK_MODE=host + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} -Dserver.address=127.0.0.1 volumes: - dc_data:/opt/domain-controller/workspace - ./cert/private/:/opt/domain-controller/conf/certificates/ @@ -91,6 +92,7 @@ services: - trusted_cacerts:/opt/cloudbeaver/conf/certificates/custom/ environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc + - NETWORK_MODE=host - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} expose: - ${CLOUDBEAVER_WEB_SERVER_PORT:-8978} @@ -107,7 +109,8 @@ services: replicas: ${REPLICA_COUNT_RM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc - - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} + - NETWORK_MODE=host + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} -Dserver.address=127.0.0.1 volumes: - rm_data:/opt/resource-manager/workspace - ./cert/public/:/opt/resource-manager/conf/certificates/ @@ -123,7 +126,8 @@ services: replicas: ${REPLICA_COUNT_QM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc - - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} + - NETWORK_MODE=host + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} -Dserver.address=127.0.0.1 volumes: - ./cert/public/:/opt/query-manager/conf/certificates/ - trusted_cacerts:/opt/query-manager/conf/certificates/custom/ @@ -138,7 +142,8 @@ services: replicas: ${REPLICA_COUNT_TM:-1} environment: - CLOUDBEAVER_DC_SERVER_URL=http://127.0.0.1:8970/dc - - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} + - NETWORK_MODE=host + - JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS:-} -Dserver.address=127.0.0.1 volumes: - tm_data:/opt/task-manager/workspace - ./cert/public/:/opt/task-manager/conf/certificates/ From 2a1053876e75e3e05b7c34c8885e26a4f1fa141c Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Thu, 26 Feb 2026 16:22:42 +0100 Subject: [PATCH 14/20] dbeaver/dbeaver-devops#2465 Added listen_addresses=localhost in postgres iamage for NETWORK_MODE=host (#193) --- compose/cbte/docker-compose-nethost.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/compose/cbte/docker-compose-nethost.yml b/compose/cbte/docker-compose-nethost.yml index b96f7eb..dba1786 100644 --- a/compose/cbte/docker-compose-nethost.yml +++ b/compose/cbte/docker-compose-nethost.yml @@ -48,6 +48,7 @@ services: - POSTGRES_DB=cloudbeaver - POSTGRES_USER=${CLOUDBEAVER_DB_USER} - POSTGRES_PASSWORD=${CLOUDBEAVER_DB_PASSWORD} + - NETWORK_MODE=host network_mode: host cloudbeaver-dc: From 7fa0f3083bb334a674c67f26d997398357b84551 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Tue, 3 Mar 2026 16:57:37 +0100 Subject: [PATCH 15/20] dbeaver/dbeaver-devops#2467 Fixed update with dbeaver-te (#192) * dbeaver/dbeaver-devops#2467 Fixed update with dbeaver-te --- manager/dbeaver-te | 60 +++++++++++++++++++++++++++----------- manager/install-manager.sh | 15 ++++------ 2 files changed, 49 insertions(+), 26 deletions(-) diff --git a/manager/dbeaver-te b/manager/dbeaver-te index d8216dd..7c6c5ca 100755 --- a/manager/dbeaver-te +++ b/manager/dbeaver-te @@ -39,6 +39,8 @@ done < "$TEAM_EDITION_COMPOSE_DIR/.env" TEAM_EDITION_TAG="$CLOUDBEAVER_VERSION_TAG" +COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}" + case $(uname -m) in "x86_64") @@ -221,7 +223,7 @@ startCloudbeaver() { if [ "$TEAM_EDITION_STATUS" == false ] then docker compose \ - -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" \ --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d \ @@ -249,7 +251,7 @@ startCloudbeaver() { stopCloudbeaver() { checkCloudBeaverStatus - docker compose -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" down + docker compose -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" down echo "DBeaver Team Edition Server stopped." } @@ -258,13 +260,22 @@ rollbackCloudBeaver() { BACKUP_VERSION="$2" docker compose \ - -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" \ --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ down \ --remove-orphans - rsync -av --exclude='cert' --exclude='nginx' "$BACKUP_DIR/" "$TEAM_EDITION_BASE_DIR/" + cd "$TEAM_EDITION_BASE_DIR/" + git checkout --force "$BACKUP_VERSION" || { + echo "===============================================================================" + echo "Error: Failed to checkout version $BACKUP_VERSION." + echo "===============================================================================" + printSupportMessage + exit 1 + } + + rsync -av --exclude='cert' --exclude='nginx' "$BACKUP_DIR/" "$TEAM_EDITION_COMPOSE_DIR/" sed -i \ "s/CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_NEW_TAG/CLOUDBEAVER_VERSION_TAG=$BACKUP_VERSION/g" \ @@ -272,7 +283,7 @@ rollbackCloudBeaver() { export CLOUDBEAVER_VERSION_TAG=$BACKUP_VERSION docker compose \ - -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" \ --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d \ @@ -290,6 +301,9 @@ rollbackCloudBeaver() { sleep 1 done + echo -e "ERROR: Failed to start after rollback." + printSupportMessage + exit 1 } updateCloudbeaver() { @@ -337,7 +351,7 @@ updateCloudbeaver() { # Stop team-edition-deploy docker compose \ - -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" \ --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ down \ @@ -345,9 +359,20 @@ updateCloudbeaver() { # Backup current configuration mkdir -p "$BACKUP_DIR" - rsync -av --exclude='cert' --exclude='nginx' "$TEAM_EDITION_COMPOSE_DIR/" "$BACKUP_DIR" - echo "Preveous team-edition-deploy configuration copied to $BACKUP_DIR" + rsync -av --exclude='cert' --exclude='nginx' "$TEAM_EDITION_COMPOSE_DIR/" "$BACKUP_DIR/" + echo "Previous team-edition-deploy configuration copied to $BACKUP_DIR" + git config user.name "DBeaver Support" + git config user.email "support@dbeaver.com" + + USER_BACKUP_BRANCH="user-backup/${TEAM_EDITION_TAG}_${TIMESTAMP}" + if [ -n "$(git status --porcelain)" ]; then + git checkout -b "$USER_BACKUP_BRANCH" + git add -A + git commit -m "Auto-backup before update from $TEAM_EDITION_TAG to $TEAM_EDITION_NEW_TAG" + echo "Your local changes have been saved in branch: $USER_BACKUP_BRANCH" + fi + # Checkout new version git checkout --force $TEAM_EDITION_NEW_TAG || { echo "===============================================================================" @@ -355,18 +380,18 @@ updateCloudbeaver() { echo "===============================================================================" rollbackCloudBeaver "$BACKUP_DIR" "$TEAM_EDITION_TAG" printSupportMessage + exit 1 } sed -i \ "s/CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_TAG/CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_NEW_TAG/g" \ "$TEAM_EDITION_COMPOSE_DIR/.env" export CLOUDBEAVER_VERSION_TAG=$TEAM_EDITION_NEW_TAG - - # Update docker-compose volumes - if [ "$DBEAVER_TEAM_EDITION_AMI" ]; then + # Update docker-compose volumes for AMI + if [ "$DBEAVER_TEAM_EDITION_AMI" ]; then "$HOME/.local/bin/dbeaver-compose-config-editor.py" \ - -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" \ -e "$TEAM_EDITION_COMPOSE_DIR/.env" || { echo "===============================================================================" echo "Error: Failed to patch docker-compose.yml using dbeaver-compose-config-editor.py." @@ -379,7 +404,7 @@ updateCloudbeaver() { # Start team-edition-deploy with new version and check status docker compose \ - -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" \ --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d \ @@ -402,6 +427,7 @@ updateCloudbeaver() { echo -e "\nERROR: CloudBeaver failed to start. Rolling back to previous version..." rollbackCloudBeaver "$BACKUP_DIR" "$TEAM_EDITION_TAG" printSupportMessage + exit 1 fi } @@ -423,7 +449,7 @@ createBackup(){ if [ "$USE_EXTERNAL_DB" = false ]; then PG_SERVICE="postgres" DB_NAME="cloudbeaver" - docker exec $PROJECT_NAME-"$PG_SERVICE"-1 pg_dump $DB_NAME --username $CLOUDBEAVER_DB_USER --format c > $BACKUP_PATH/"$PG_SERVICE".backup + docker exec -e PGPASSWORD="$CLOUDBEAVER_DB_PASSWORD" $PROJECT_NAME-"$PG_SERVICE"-1 pg_dump -h localhost $DB_NAME --username $CLOUDBEAVER_DB_USER --format c > $BACKUP_PATH/"$PG_SERVICE".backup fi CERT_VOLUME_PATH="/opt/domain-controller/conf/certificates" @@ -471,7 +497,7 @@ restoreBackup(){ DB_BACKUP="$BACKUP_DIR/postgres.backup" if [ -f "$DB_BACKUP" ]; then echo "Restoring PostgreSQL database..." - docker exec -i $PROJECT_NAME-"postgres"-1 pg_restore --dbname cloudbeaver --username $CLOUDBEAVER_DB_USER --clean --if-exists < "$DB_BACKUP" + docker exec -i -e PGPASSWORD="$CLOUDBEAVER_DB_PASSWORD" $PROJECT_NAME-"postgres"-1 pg_restore -h localhost --dbname cloudbeaver --username $CLOUDBEAVER_DB_USER --clean --if-exists < "$DB_BACKUP" else echo "PostgreSQL backup file not found." printSupportMessage @@ -499,9 +525,9 @@ restoreBackup(){ fi rm -rf $TEMP_DIR - docker compose -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" down + docker compose -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" down docker compose \ - -f "$TEAM_EDITION_COMPOSE_DIR/docker-compose.yml" \ + -f "$TEAM_EDITION_COMPOSE_DIR/$COMPOSE_FILE" \ --env-file "$TEAM_EDITION_COMPOSE_DIR/.env" \ --project-directory "$TEAM_EDITION_COMPOSE_DIR/" \ up -d diff --git a/manager/install-manager.sh b/manager/install-manager.sh index 352e895..d24476e 100755 --- a/manager/install-manager.sh +++ b/manager/install-manager.sh @@ -2,25 +2,22 @@ set -e +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) INSTALL_DIR="$HOME/bin" -CURRENT_DIR=$(pwd) -mkdir -p "$INSTALL_DIR" -# Determine the actual base directory and compose directory -BASE_DIR=$(realpath "$CURRENT_DIR/..") -CBTE_DIR=$(realpath "$CURRENT_DIR/../compose/cbte") +BASE_DIR=$(realpath "$SCRIPT_DIR/..") +CBTE_DIR=$(realpath "$SCRIPT_DIR/../compose/cbte") + +mkdir -p "$INSTALL_DIR" -# Copy the script to install directory -cp "$CURRENT_DIR/dbeaver-te" "$INSTALL_DIR/dbeaver-te" +cp "$SCRIPT_DIR/dbeaver-te" "$INSTALL_DIR/dbeaver-te" chmod +x "$INSTALL_DIR/dbeaver-te" -# Replace the hardcoded paths with actual paths sed -i "s|^TEAM_EDITION_BASE_DIR=.*|TEAM_EDITION_BASE_DIR=\"$BASE_DIR\"|g" "$INSTALL_DIR/dbeaver-te" sed -i "s|^TEAM_EDITION_COMPOSE_DIR=.*|TEAM_EDITION_COMPOSE_DIR=\"$CBTE_DIR\"|g" "$INSTALL_DIR/dbeaver-te" if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> ~/.bashrc - source ~/.bashrc fi echo "DBeaver Team Edition manager installed successfully!" From 088b538b204313a139ccb6d0513497971d59a9f2 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Wed, 4 Mar 2026 17:07:23 +0100 Subject: [PATCH 16/20] dbeaver/dbeaver-devops#2480 Fixed environment KAFKA_CFG_CONTROLLER_QUORUM_VOTERS KAFKA_CFG_ADVERTISED_LISTENERS vars for kafka (#194) --- AWS/ecs-fargate/main.tf | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/AWS/ecs-fargate/main.tf b/AWS/ecs-fargate/main.tf index 8d6c5ae..576893c 100644 --- a/AWS/ecs-fargate/main.tf +++ b/AWS/ecs-fargate/main.tf @@ -308,7 +308,16 @@ resource "aws_ecs_task_definition" "kafka" { name = "${var.deployment_id}-kafka" image = "dbeaver/cloudbeaver-kafka:3.9" essential = true - environment = var.cloudbeaver-kafka-env + environment = concat(var.cloudbeaver-kafka-env, [ + { + name = "KAFKA_CFG_CONTROLLER_QUORUM_VOTERS" + value = "0@localhost:9093" + }, + { + name = "KAFKA_CFG_ADVERTISED_LISTENERS" + value = "PLAINTEXT://${var.deployment_id}-kafka:9092" + } + ]) logConfiguration = { logDriver = "awslogs" options = { From 26b3be9d9ff13590c6a6a140fa55714cefa77df9 Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Thu, 5 Mar 2026 15:16:15 +0100 Subject: [PATCH 17/20] dbeaver/dbeaver-devops#2499 Added image_source in AWS ECS deployment for services (#195) --- AWS/ecs-fargate/main.tf | 14 +++++++------- AWS/ecs-fargate/variables.tf.example | 6 ++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/AWS/ecs-fargate/main.tf b/AWS/ecs-fargate/main.tf index 576893c..a2971ee 100644 --- a/AWS/ecs-fargate/main.tf +++ b/AWS/ecs-fargate/main.tf @@ -225,7 +225,7 @@ resource "aws_ecs_task_definition" "dbeaver_db" { } container_definitions = jsonencode([{ name = "${var.deployment_id}-postgres" - image = "dbeaver/cloudbeaver-postgres:16" + image = "${var.image_source}/cloudbeaver-postgres:16" essential = true environment = var.cloudbeaver-db-env mountPoints = [{ @@ -306,7 +306,7 @@ resource "aws_ecs_task_definition" "kafka" { container_definitions = jsonencode([{ name = "${var.deployment_id}-kafka" - image = "dbeaver/cloudbeaver-kafka:3.9" + image = "${var.image_source}/cloudbeaver-kafka:3.9" essential = true environment = concat(var.cloudbeaver-kafka-env, [ { @@ -418,7 +418,7 @@ resource "aws_ecs_task_definition" "dbeaver_dc" { } container_definitions = jsonencode([{ name = "${var.deployment_id}-cloudbeaver-dc" - image = "dbeaver/cloudbeaver-dc:${var.dbeaver_te_version}" + image = "${var.image_source}/cloudbeaver-dc:${var.dbeaver_te_version}" essential = true environment = local.updated_cloudbeaver_dc_env mountPoints = [{ @@ -535,7 +535,7 @@ resource "aws_ecs_task_definition" "dbeaver_rm" { container_definitions = jsonencode([{ name = "${var.deployment_id}-cloudbeaver-rm" - image = "dbeaver/cloudbeaver-rm:${var.dbeaver_te_version}" + image = "${var.image_source}/cloudbeaver-rm:${var.dbeaver_te_version}" essential = true environment = local.cloudbeaver_shared_env_modified mountPoints = [{ @@ -638,7 +638,7 @@ resource "aws_ecs_task_definition" "dbeaver_qm" { } container_definitions = jsonencode([{ name = "${var.deployment_id}-cloudbeaver-qm" - image = "dbeaver/cloudbeaver-qm:${var.dbeaver_te_version}" + image = "${var.image_source}/cloudbeaver-qm:${var.dbeaver_te_version}" essential = true environment = local.cloudbeaver_shared_env_modified mountPoints = [ @@ -748,7 +748,7 @@ resource "aws_ecs_task_definition" "dbeaver_tm" { } container_definitions = jsonencode([{ name = "${var.deployment_id}-cloudbeaver-tm" - image = "dbeaver/cloudbeaver-tm:${var.dbeaver_te_version}" + image = "${var.image_source}/cloudbeaver-tm:${var.dbeaver_te_version}" essential = true environment = local.cloudbeaver_shared_env_modified mountPoints = [{ @@ -854,7 +854,7 @@ resource "aws_ecs_task_definition" "dbeaver_te" { } container_definitions = jsonencode([{ name = "${var.deployment_id}-cloudbeaver-te" - image = "dbeaver/cloudbeaver-te:${var.dbeaver_te_version}" + image = "${var.image_source}/cloudbeaver-te:${var.dbeaver_te_version}" essential = true environment = local.cloudbeaver_shared_env_modified mountPoints = [{ diff --git a/AWS/ecs-fargate/variables.tf.example b/AWS/ecs-fargate/variables.tf.example index 720ef47..d747959 100644 --- a/AWS/ecs-fargate/variables.tf.example +++ b/AWS/ecs-fargate/variables.tf.example @@ -16,6 +16,12 @@ variable "dbeaver_te_version" { default = "ea" } +variable "image_source" { + description = "Docker image source" + type = string + default = "dbeaver" +} + variable "alb_certificate_Identifier" { description = "Your certificate ID from AWS Certificate Manager" type = string From 2355db7416b03637cea60d5c381a184880eaac4b Mon Sep 17 00:00:00 2001 From: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> Date: Fri, 6 Mar 2026 13:13:43 +0100 Subject: [PATCH 18/20] dbeaver/dbeaver-devops#2467 Added check for COMPOSE_FILE in env for ami (#196) --- manager/dbeaver-te | 5 +++++ manager/install-manager.sh | 1 + 2 files changed, 6 insertions(+) diff --git a/manager/dbeaver-te b/manager/dbeaver-te index 7c6c5ca..13887e8 100755 --- a/manager/dbeaver-te +++ b/manager/dbeaver-te @@ -39,6 +39,11 @@ done < "$TEAM_EDITION_COMPOSE_DIR/.env" TEAM_EDITION_TAG="$CLOUDBEAVER_VERSION_TAG" +if [ "$DBEAVER_TEAM_EDITION_AMI" ] && [ -z "$COMPOSE_FILE" ] && grep -q '127\.0\.0\.1' "$TEAM_EDITION_COMPOSE_DIR/.env"; then + echo "COMPOSE_FILE=docker-compose-nethost.yml" >> "$TEAM_EDITION_COMPOSE_DIR/.env" + export COMPOSE_FILE="docker-compose-nethost.yml" +fi + COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}" case $(uname -m) in diff --git a/manager/install-manager.sh b/manager/install-manager.sh index d24476e..00be84a 100755 --- a/manager/install-manager.sh +++ b/manager/install-manager.sh @@ -18,6 +18,7 @@ sed -i "s|^TEAM_EDITION_COMPOSE_DIR=.*|TEAM_EDITION_COMPOSE_DIR=\"$CBTE_DIR\"|g" if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> ~/.bashrc + source ~/.bashrc fi echo "DBeaver Team Edition manager installed successfully!" From fb90a1b964a0a7ef05e51b3c96944cfeb09e980d Mon Sep 17 00:00:00 2001 From: Greg Miller Date: Mon, 9 Mar 2026 12:14:04 +0100 Subject: [PATCH 19/20] dbeaver/dbeaver-devops#2512 Release 26.0.0 --- AWS/ecs-fargate/variables.tf.example | 2 +- README.md | 4 +--- compose/README.md | 2 +- compose/cbte/.env.example | 2 +- k8s/cbte/Chart.yaml | 2 +- k8s/cbte/values.yaml.example | 2 +- 6 files changed, 6 insertions(+), 8 deletions(-) diff --git a/AWS/ecs-fargate/variables.tf.example b/AWS/ecs-fargate/variables.tf.example index d747959..53ef239 100644 --- a/AWS/ecs-fargate/variables.tf.example +++ b/AWS/ecs-fargate/variables.tf.example @@ -13,7 +13,7 @@ variable "aws_region" { variable "dbeaver_te_version" { description = "The version of the cluster you want to deploy" type = string - default = "ea" + default = "26.0.0" } variable "image_source" { diff --git a/README.md b/README.md index a47b741..55fdf96 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ ## DBeaver Team Edition -#### Version 26.0 Early Access - -**Warning:** Please keep in mind that Early Access versions are not as stable as regular releases, and their use in a production environment is not recommended. +#### Version 26.0 DBeaver Team Edition is a client-server application. It requires server deployment. You can deploy it on a single host (e.g. your local computer) diff --git a/compose/README.md b/compose/README.md index a94c33e..c8587eb 100644 --- a/compose/README.md +++ b/compose/README.md @@ -220,7 +220,7 @@ For detailed instructions on how to use the script manager, refer to [manager do 2. Stop the cluster: `docker-compose down` or `docker compose down` 3. Update your deployment files: - Fetch latest changes: `git fetch` - - Switch to new release version: `git checkout ` (e.g., `git checkout 25.2.0`) + - Switch to new release version: `git checkout ` (e.g., `git checkout 26.0.0`) - Change value of `CLOUDBEAVER_VERSION_TAG` in `.env` with a preferred version (skip if tag `latest` is set) 4. Pull new docker images: `docker-compose pull` or `docker compose pull` 5. Start the cluster: `docker-compose up -d` or `docker compose up -d` diff --git a/compose/cbte/.env.example b/compose/cbte/.env.example index c51b3b9..d567ab1 100644 --- a/compose/cbte/.env.example +++ b/compose/cbte/.env.example @@ -1,6 +1,6 @@ # CloudBeaver TE server version. Based on DockerHub images tag # -CLOUDBEAVER_VERSION_TAG=ea +CLOUDBEAVER_VERSION_TAG=26.0.0 IMAGE_SOURCE=dbeaver PODMAN_IMAGE_SOURCE=docker.io/dbeaver # Domain name of cluster endpoint. eg. dbeaver-te.example.com diff --git a/k8s/cbte/Chart.yaml b/k8s/cbte/Chart.yaml index ce930c6..10c07ec 100644 --- a/k8s/cbte/Chart.yaml +++ b/k8s/cbte/Chart.yaml @@ -3,4 +3,4 @@ name: cbte description: A Helm chart for CloudBeaver TE application type: application version: 0.0.1 -appVersion: ea +appVersion: 26.0.0 diff --git a/k8s/cbte/values.yaml.example b/k8s/cbte/values.yaml.example index eb7de83..705f3d0 100644 --- a/k8s/cbte/values.yaml.example +++ b/k8s/cbte/values.yaml.example @@ -4,7 +4,7 @@ # cloudbeaver general values for all TE services cloudbeaver: - imageTag: "ea" + imageTag: "26.0.0" pullPolicy: Always # pullCredsName - name of a secret config map that contains docker repo auths # pullCredsName: regcred From d3abdc3a30c6481a9889a749de14b8e406dcdd5d Mon Sep 17 00:00:00 2001 From: Greg Miller Date: Mon, 9 Mar 2026 12:25:21 +0100 Subject: [PATCH 20/20] dbeaver/dbeaver-devops#2512 Release 26.0.0 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55fdf96..41bd785 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ DBeaver Team Edition works in conjunction with a desktop client application. Aft - **Web interface** – accessible directly through your browser - **Desktop client** – provides enhanced features and better performance -Download the desktop client for your platform: [**DBeaver Team Edition Desktop**](https://dbeaver.com/files/ea/team/) +Download the desktop client for your platform: [**DBeaver Team Edition Desktop**](https://dbeaver.com/downloads-team/26.0.0/) ### Server version update Version update is handled differently for different deployment methods. To update the Team Edition version, follow these instructions: