From a9fe74efaf71b42293937146f9271394dc067bca Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Tue, 24 Feb 2026 09:11:17 +0100 Subject: [PATCH] fix(databasus): add MongoDB tools, use ensure_dependencies in update - Install mongodb-database-tools (mongodump/mongorestore) and create symlinks at /usr/local/mongodb-database-tools/bin/ as expected by Databasus for MongoDB backup support - Use ensure_dependencies in update script instead of raw apt install to skip redundant installs - Add mongodump check before re-downloading .deb on update --- ct/databasus.sh | 20 ++++++++++++++++++-- install/databasus-install.sh | 23 +++++++++++++++++++---- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/ct/databasus.sh b/ct/databasus.sh index b749f259d..3f393b592 100644 --- a/ct/databasus.sh +++ b/ct/databasus.sh @@ -39,8 +39,22 @@ function update_script() { msg_ok "Backed up Configuration" msg_info "Ensuring Database Clients" - $STD apt-get install -y mariadb-client - mkdir -p /usr/local/mariadb-{10.6,12.1}/bin /usr/local/mysql-{5.7,8.0,8.4,9}/bin + ensure_dependencies mariadb-client + if ! command -v mongodump &>/dev/null; then + DEBIAN_ARCH=$(dpkg --print-architecture) + if [[ "$DEBIAN_ARCH" == "amd64" ]]; then + MONGO_ARCH="x86_64" + MONGO_DIST="debian12" + elif [[ "$DEBIAN_ARCH" == "arm64" ]]; then + MONGO_ARCH="arm64" + MONGO_DIST="ubuntu2204" + fi + tmp_file=$(mktemp) + wget -q "https://fastdl.mongodb.org/tools/db/mongodb-database-tools-${MONGO_DIST}-${MONGO_ARCH}-100.10.0.deb" -O "$tmp_file" + $STD dpkg -i "$tmp_file" || $STD apt-get install -f -y --no-install-recommends + rm -f "$tmp_file" + fi + mkdir -p /usr/local/mariadb-{10.6,12.1}/bin /usr/local/mysql-{5.7,8.0,8.4,9}/bin /usr/local/mongodb-database-tools/bin for dir in /usr/local/mariadb-{10.6,12.1}/bin; do ln -sf /usr/bin/mariadb-dump "$dir/mariadb-dump" ln -sf /usr/bin/mariadb "$dir/mariadb" @@ -49,6 +63,8 @@ function update_script() { ln -sf /usr/bin/mariadb-dump "$dir/mysqldump" ln -sf /usr/bin/mariadb "$dir/mysql" done + [[ -f /usr/bin/mongodump ]] && ln -sf /usr/bin/mongodump /usr/local/mongodb-database-tools/bin/mongodump + [[ -f /usr/bin/mongorestore ]] && ln -sf /usr/bin/mongorestore /usr/local/mongodb-database-tools/bin/mongorestore msg_ok "Ensured Database Clients" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "databasus" "databasus/databasus" "tarball" "latest" "/opt/databasus" diff --git a/install/databasus-install.sh b/install/databasus-install.sh index 7d075ac0b..b1ef85a8c 100644 --- a/install/databasus-install.sh +++ b/install/databasus-install.sh @@ -15,8 +15,9 @@ update_os msg_info "Installing Dependencies" $STD apt install -y \ - nginx \ - valkey + nginx \ + valkey \ + mariadb-client msg_ok "Installed Dependencies" PG_VERSION="17" setup_postgresql @@ -24,8 +25,20 @@ setup_go NODE_VERSION="24" setup_nodejs msg_info "Installing Database Clients" -$STD apt install -y mariadb-client -mkdir -p /usr/local/mariadb-{10.6,12.1}/bin /usr/local/mysql-{5.7,8.0,8.4,9}/bin +$STD apt install -y +DEBIAN_ARCH=$(dpkg --print-architecture) +if [[ "$DEBIAN_ARCH" == "amd64" ]]; then + MONGO_ARCH="x86_64" + MONGO_DIST="debian12" +elif [[ "$DEBIAN_ARCH" == "arm64" ]]; then + MONGO_ARCH="arm64" + MONGO_DIST="ubuntu2204" +fi +tmp_file=$(mktemp) +wget -q "https://fastdl.mongodb.org/tools/db/mongodb-database-tools-${MONGO_DIST}-${MONGO_ARCH}-100.10.0.deb" -O "$tmp_file" +$STD dpkg -i "$tmp_file" || $STD apt-get install -f -y --no-install-recommends +rm -f "$tmp_file" +mkdir -p /usr/local/mariadb-{10.6,12.1}/bin /usr/local/mysql-{5.7,8.0,8.4,9}/bin /usr/local/mongodb-database-tools/bin for dir in /usr/local/mariadb-{10.6,12.1}/bin; do ln -sf /usr/bin/mariadb-dump "$dir/mariadb-dump" ln -sf /usr/bin/mariadb "$dir/mariadb" @@ -34,6 +47,8 @@ for dir in /usr/local/mysql-{5.7,8.0,8.4,9}/bin; do ln -sf /usr/bin/mariadb-dump "$dir/mysqldump" ln -sf /usr/bin/mariadb "$dir/mysql" done +[[ -f /usr/bin/mongodump ]] && ln -sf /usr/bin/mongodump /usr/local/mongodb-database-tools/bin/mongodump +[[ -f /usr/bin/mongorestore ]] && ln -sf /usr/bin/mongorestore /usr/local/mongodb-database-tools/bin/mongorestore msg_ok "Installed Database Clients" fetch_and_deploy_gh_release "databasus" "databasus/databasus" "tarball" "latest" "/opt/databasus"