From cc1c2f84ca0570e474d2887d578244a6c7a1ce34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Slavi=C5=A1a=20Are=C5=BEina?= <58952836+tremor021@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:42:54 +0200 Subject: [PATCH] Refactor: Grist (#7681) * Refactor * Refactor --- ct/grist.sh | 52 ++++++++++----------------------- frontend/public/json/grist.json | 2 +- install/grist-install.sh | 14 +++------ 3 files changed, 21 insertions(+), 47 deletions(-) diff --git a/ct/grist.sh b/ct/grist.sh index 0e395a32b..5dab8abea 100644 --- a/ct/grist.sh +++ b/ct/grist.sh @@ -1,5 +1,8 @@ #!/usr/bin/env bash source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: cfurrow | Co-Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://github.com/gristlabs/grist-core APP="Grist" @@ -26,57 +29,34 @@ function update_script() { exit fi - RELEASE=$(curl -fsSL https://api.github.com/repos/gristlabs/grist-core/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 check_for_gh_release "grist" "gristlabs/grist-core"; then msg_info "Stopping ${APP} Service" systemctl stop grist msg_ok "Stopped ${APP} Service" - msg_info "Updating ${APP} to v${RELEASE}" - - cd /opt - rm -rf grist_bak + msg_info "Creating backup" + rm -rf /opt/grist_bak mv grist grist_bak - curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip") - $STD unzip v$RELEASE.zip - mv grist-core-${RELEASE} grist + msg_ok "Backup created" + fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball" + + msg_info "Updating ${APP}" mkdir -p grist/docs - - cp -n grist_bak/.env grist/.env || true - cp -r grist_bak/docs/* grist/docs/ || true - cp grist_bak/grist-sessions.db grist/grist-sessions.db || true - cp grist_bak/landing.db grist/landing.db || true - - cd grist - msg_info "Installing Dependencies" + cp -n /opt/grist_bak/.env /opt/grist/.env + cp -r /opt/grist_bak/docs/* /opt/grist/docs/ + cp /opt/grist_bak/grist-sessions.db /opt/grist/grist-sessions.db + cp /opt/grist_bak/landing.db /opt/grist/landing.db $STD yarn install - msg_ok "Installed Dependencies" - - msg_info "Building" $STD yarn run build:prod - msg_ok "Done building" - - msg_info "Installing Python" $STD yarn run install:python - msg_ok "Installed Python" - - echo "${RELEASE}" >/opt/${APP}_version.txt - - msg_ok "Updated ${APP} to v${RELEASE}" + msg_ok "Updated ${APP}" msg_info "Starting ${APP} Service" systemctl start grist msg_ok "Started ${APP} Service" - msg_info "Cleaning up" - rm -rf /opt/v$RELEASE.zip - msg_ok "Cleaned" - - msg_ok "Updated Successfully!\n" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" + msg_ok "Updated Successfully" fi exit } diff --git a/frontend/public/json/grist.json b/frontend/public/json/grist.json index eda1066ff..9f7202c16 100644 --- a/frontend/public/json/grist.json +++ b/frontend/public/json/grist.json @@ -13,7 +13,7 @@ "website": "https://www.getgrist.com/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/grist.webp", "config_path": "/opt/grist/.env", - "description": "Grist is a modern, open source spreadsheet that goes beyond the grid", + "description": "Grist is like a spreadsheet + database hybrid. It lets you store structured data, use relational links between tables, apply formulas (even with Python), build custom layouts (cards, forms, dashboards), set fine-grained access rules, and visualize data with charts or pivot-tables.", "install_methods": [ { "type": "default", diff --git a/install/grist-install.sh b/install/grist-install.sh index c69814c70..b6e77a883 100644 --- a/install/grist-install.sh +++ b/install/grist-install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Copyright (c) 2021-2025 community-scripts ORG -# Author: cfurrow +# Author: cfurrow | Co-Author: Slaviša Arežina (tremor021) # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://github.com/gristlabs/grist-core @@ -17,20 +17,15 @@ msg_info "Installing Dependencies" $STD apt-get install -y \ make \ ca-certificates \ - python3.11-venv + python3-venv msg_ok "Installed Dependencies" - NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs +fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball" msg_info "Installing Grist" -RELEASE=$(curl -fsSL https://api.github.com/repos/gristlabs/grist-core/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') export CYPRESS_INSTALL_BINARY=0 export NODE_OPTIONS="--max-old-space-size=2048" -cd /opt -curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip" -$STD unzip v$RELEASE.zip -mv grist-core-${RELEASE} grist -cd grist +cd /opt/grist $STD yarn install $STD yarn run build:prod $STD yarn run install:python @@ -64,7 +59,6 @@ motd_ssh customize msg_info "Cleaning up" -rm -rf /opt/v${RELEASE}.zip $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned"