From 03eff3a2e13e4adf69f7e50698dbbb1334ef8581 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, 4 Jun 2025 10:10:05 +0200 Subject: [PATCH] [refactor] Seelf (#4954) * Refactor seelf * Update * Update * Update --- ct/seelf.sh | 66 +++++++++++++++------------------------- install/seelf-install.sh | 20 ++++-------- 2 files changed, 30 insertions(+), 56 deletions(-) diff --git a/ct/seelf.sh b/ct/seelf.sh index 195258cac..d36de48b9 100644 --- a/ct/seelf.sh +++ b/ct/seelf.sh @@ -1,7 +1,7 @@ #!/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: tremor021 +# Author: Slaviša Arežina (tremor021) # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://github.com/YuukanOO/seelf @@ -20,49 +20,31 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources + header_info + check_container_storage + check_container_resources - if [[ ! -d /opt/seelf ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - RELEASE=$(curl -fsSL https://api.github.com/repos/YuukanOO/seelf/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then - msg_info "Updating $APP" - - msg_info "Stopping $APP" - systemctl stop seelf - msg_ok "Stopped $APP" - - msg_info "Updating $APP to v${RELEASE}. Patience" - export PATH=$PATH:/usr/local/go/bin - source ~/.bashrc - curl -fsSL "https://github.com/YuukanOO/seelf/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/YuukanOO/seelf/archive/refs/tags/v${RELEASE}.tar.gz") - tar -xzf v${RELEASE}.tar.gz - cp -r seelf-${RELEASE}/ /opt/seelf - cd /opt/seelf - $STD make build - msg_ok "Updated $APP to v${RELEASE}" - - msg_info "Starting $APP" - systemctl start seelf - msg_ok "Started $APP" - - # Cleaning up - msg_info "Cleaning Up" - rm -f ~/*.tar.gz - rm -rf ~/seelf-${RELEASE} - msg_ok "Cleanup Completed" - - echo "${RELEASE}" >/opt/${APP}_version.txt - msg_ok "Update Successful" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" - fi + if [[ ! -d /opt/seelf ]]; then + msg_error "No ${APP} Installation Found!" exit + fi + if fetch_and_deploy_gh_release "YuukanOO/seelf"; then + msg_ok "$APP already at the latest version. No update required." + else + msg_info "Stopping $APP" + systemctl stop seelf + msg_ok "Stopped $APP" + + msg_info "Updating $APP" + cd /opt/seelf + $STD make build + msg_ok "Updated $APP" + + msg_info "Starting $APP" + systemctl start seelf + msg_ok "Started $APP" + fi + exit } start diff --git a/install/seelf-install.sh b/install/seelf-install.sh index 6c9c8c31d..24bf5740c 100644 --- a/install/seelf-install.sh +++ b/install/seelf-install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Copyright (c) 2021-2025 community-scripts ORG -# Author: tremor021 +# Author: Slaviša Arežina (tremor021) # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://github.com/YuukanOO/seelf @@ -21,21 +21,17 @@ msg_ok "Installed Dependencies" install_go NODE_VERSION="22" install_node_and_modules +fetch_and_deploy_gh_release "YuukanOO/seelf" msg_info "Setting up seelf. Patience" -RELEASE=$(curl -fsSL https://api.github.com/repos/YuukanOO/seelf/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -curl -fsSL "https://github.com/YuukanOO/seelf/archive/refs/tags/v${RELEASE}.tar.gz" -o "v${RELEASE}.tar.gz" -tar -xzf v"${RELEASE}".tar.gz -mv seelf-"${RELEASE}"/ /opt/seelf cd /opt/seelf $STD make build PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) +mkdir -p /opt/seelf/data { echo "ADMIN_EMAIL=admin@example.com" echo "ADMIN_PASSWORD=$PASS" } | tee .env ~/seelf.creds >/dev/null - -echo "${RELEASE}" >/opt/seelf_version.txt SEELF_ADMIN_EMAIL=admin@example.com SEELF_ADMIN_PASSWORD=$PASS ./seelf serve &>/dev/null & sleep 5 kill $! @@ -51,8 +47,10 @@ After=network.target Type=simple User=root Group=root +EnvironmentFile=/opt/seelf/.env +Environment=DATA_PATH=/opt/seelf/data WorkingDirectory=/opt/seelf -ExecStart=/opt/seelf/./seelf serve +ExecStart=/opt/seelf/./seelf -c data/conf.yml serve Restart=always [Install] @@ -64,13 +62,7 @@ msg_ok "Created Service" motd_ssh customize -# Cleanup msg_info "Cleaning up" -rm -f ~/v"${RELEASE}".tar.gz -rm -f "$temp_file" $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned" - -motd_ssh -customize