From 26365561dc6f376a85d30a389969b54ac504107f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Slavi=C5=A1a=20Are=C5=BEina?= <58952836+tremor021@users.noreply.github.com> Date: Mon, 7 Jul 2025 20:37:57 +0200 Subject: [PATCH] Refactor (#5806) --- ct/docmost.sh | 29 ++++++++--------------------- frontend/public/json/docmost.json | 7 ++++++- install/docmost-install.sh | 12 +++--------- 3 files changed, 17 insertions(+), 31 deletions(-) diff --git a/ct/docmost.sh b/ct/docmost.sh index 52ef04edf..edb21b0ae 100644 --- a/ct/docmost.sh +++ b/ct/docmost.sh @@ -27,48 +27,35 @@ function update_script() { exit fi if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "22" ]]; then - msg_info "Installing Node.js 22" - $STD apt-get purge -y nodejs - rm -f /etc/apt/sources.list.d/nodesource.list - rm -f /etc/apt/keyrings/nodesource.gpg - mkdir -p /etc/apt/keyrings - curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list - $STD apt-get update - $STD apt-get install -y nodejs - $STD npm install -g pnpm@10.4.0 - msg_ok "Node.js 22 installed" + NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs fi export NODE_OPTIONS="--max_old_space_size=4096" RELEASE=$(curl -fsSL https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + if [[ "${RELEASE}" != "$(cat ~/.docmost 2>/dev/null)" ]] || [[ ! -f ~/.docmost ]]; then msg_info "Stopping ${APP}" systemctl stop docmost msg_ok "${APP} Stopped" - msg_info "Updating ${APP} to v${RELEASE}" + msg_info "Backing up data" cp /opt/docmost/.env /opt/ cp -r /opt/docmost/data /opt/ rm -rf /opt/docmost - temp_file=$(mktemp) - curl -fsSL "https://github.com/docmost/docmost/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" - tar -xzf "$temp_file" - mv docmost-${RELEASE} /opt/docmost + msg_ok "Data backed up" + + fetch_and_deploy_gh_release "docmost" "docmost/docmost" + + msg_info "Updating ${APP} to v${RELEASE}" cd /opt/docmost mv /opt/.env /opt/docmost/.env mv /opt/data /opt/docmost/data $STD pnpm install --force $STD pnpm build - echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Updated ${APP}" msg_info "Starting ${APP}" systemctl start docmost msg_ok "Started ${APP}" - msg_info "Cleaning Up" - rm -f ${temp_file} - msg_ok "Cleaned" msg_ok "Updated Successfully" else msg_ok "No update required. ${APP} is already at ${RELEASE}" diff --git a/frontend/public/json/docmost.json b/frontend/public/json/docmost.json index 2d6260ed7..6b7d5bdf8 100644 --- a/frontend/public/json/docmost.json +++ b/frontend/public/json/docmost.json @@ -31,5 +31,10 @@ "username": null, "password": null }, - "notes": [] + "notes": [ + { + "text": "Use `cat ~/docmost.creds` to see database credentials.", + "type": "info" + } + ] } diff --git a/install/docmost-install.sh b/install/docmost-install.sh index e1b3a1368..43c0a8ffb 100644 --- a/install/docmost-install.sh +++ b/install/docmost-install.sh @@ -22,6 +22,7 @@ msg_ok "Installed Dependencies" NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs PG_VERSION="16" setup_postgresql +fetch_and_deploy_gh_release "docmost" "docmost/docmost" msg_info "Setting up PostgreSQL" DB_NAME="docmost_db" @@ -40,12 +41,7 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'" } >>~/docmost.creds msg_ok "Set up PostgreSQL" -msg_info "Installing Docmost (Patience)" -temp_file=$(mktemp) -RELEASE=$(curl -fsSL https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -curl -fsSL "https://github.com/docmost/docmost/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file"" -tar -xzf "$temp_file" -mv docmost-${RELEASE} /opt/docmost +msg_info "Configuring Docmost (Patience)" cd /opt/docmost mv .env.example .env mkdir data @@ -56,8 +52,7 @@ sed -i -e "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z export NODE_OPTIONS="--max-old-space-size=2048" $STD pnpm install $STD pnpm build -echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" -msg_ok "Installed Docmost" +msg_ok "Configured Docmost" msg_info "Creating Service" cat </etc/systemd/system/docmost.service @@ -81,7 +76,6 @@ motd_ssh customize msg_info "Cleaning up" -rm -f "$temp_file" $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned"