diff --git a/ct/alpine-rustypaste.sh b/ct/alpine-rustypaste.sh new file mode 100644 index 000000000..27565d852 --- /dev/null +++ b/ct/alpine-rustypaste.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/orhun/rustypaste + +APP="Alpine-RustyPaste" +var_tags="${var_tags:-alpine;pastebin;storage}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-256}" +var_disk="${var_disk:-4}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.23}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -f /opt/rustypaste/rustypaste ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "rustypaste" "orhun/rustypaste"; then + msg_info "Stopping Services" + rc-service rustypaste stop + msg_ok "Stopped Services" + + msg_info "Creating Backup" + tar -czf "/opt/rustypaste_backup_$(date +%F).tar.gz" /opt/rustypaste/upload 2>/dev/null || true + cp /opt/rustypaste/config.toml /tmp/rustypaste_config.toml.bak + msg_ok "Backup Created" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rustypaste" "orhun/rustypaste" "prebuild" "latest" "/opt/rustypaste" "*x86_64-unknown-linux-musl.tar.gz" + + + msg_info "Updating RustyPaste" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rustypaste" "orhun/rustypaste" "prebuild" "latest" "/opt/rustypaste" "*x86_64-unknown-linux-musl.tar.gz" + mv /tmp/rustypaste_config.toml.bak /opt/rustypaste/config.toml + msg_ok "Updated RustyPaste" + + msg_info "Starting Services" + rc-service rustypaste start + msg_ok "Started Services" + msg_ok "Updated successfully!" + fi + + if check_for_gh_release "rustypaste-cli" "orhun/rustypaste-cli"; then + msg_info "Updating RustyPaste CLI" + fetch_and_deploy_gh_release "rustypaste-cli" "orhun/rustypaste-cli" "prebuild" "latest" "/usr/local/bin" "*x86_64-unknown-linux-musl.tar.gz" + msg_ok "Updated RustyPaste CLI" + fi + exit +} + +start +build_container +description + +msg_ok "Completed successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}" diff --git a/ct/headers/alpine-rustypaste b/ct/headers/alpine-rustypaste new file mode 100644 index 000000000..ed3b33df2 --- /dev/null +++ b/ct/headers/alpine-rustypaste @@ -0,0 +1,6 @@ + ___ __ _ ____ __ ____ __ + / | / /___ (_)___ ___ / __ \__ _______/ /___ __/ __ \____ ______/ /____ + / /| | / / __ \/ / __ \/ _ \____/ /_/ / / / / ___/ __/ / / / /_/ / __ `/ ___/ __/ _ \ + / ___ |/ / /_/ / / / / / __/____/ _, _/ /_/ (__ ) /_/ /_/ / ____/ /_/ (__ ) /_/ __/ +/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\__,_/____/\__/\__, /_/ \__,_/____/\__/\___/ + /_/ /____/ diff --git a/ct/rustypaste.sh b/ct/rustypaste.sh index a4f1bb6da..2da17f16e 100644 --- a/ct/rustypaste.sh +++ b/ct/rustypaste.sh @@ -24,8 +24,8 @@ function update_script() { check_container_storage check_container_resources - if [[ ! -f "/opt/rustypaste/target/release/rustypaste" ]]; then - msg_error "No rustypaste Installation Found!" + if [[ ! -f /opt/rustypaste/rustypaste ]]; then + msg_error "No ${APP} Installation Found!" exit fi @@ -35,22 +35,27 @@ function update_script() { msg_ok "Stopped Services" msg_info "Creating Backup" - tar -czf "/opt/rustypaste_backup_$(date +%F).tar.gz" "/opt/rustypaste/upload" + tar -czf "/opt/rustypaste_backup_$(date +%F).tar.gz" /opt/rustypaste/upload 2>/dev/null || true + cp /opt/rustypaste/config.toml /tmp/rustypaste_config.toml.bak msg_ok "Backup Created" - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rustypaste" "orhun/rustypaste" "tarball" "latest" "/opt/rustypaste" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rustypaste" "orhun/rustypaste" "prebuild" "latest" "/opt/rustypaste" "*x86_64-unknown-linux-gnu.tar.gz" - msg_info "Updating rustypaste" - cd /opt/rustypaste - sed -i 's|^address = ".*"|address = "0.0.0.0:8000"|' config.toml - $STD cargo build --locked --release - msg_ok "Updated rustypaste" + msg_info "Restoring Data" + mv /tmp/rustypaste_config.toml.bak /opt/rustypaste/config.toml + tar -xzf "/opt/rustypaste_backup_$(date +%F).tar.gz" -C /opt/rustypaste/upload 2>/dev/null || true + rm -rf /opt/rustypaste_backup_$(date +%F).tar.gz + msg_ok "Restored Data" msg_info "Starting Services" systemctl start rustypaste msg_ok "Started Services" msg_ok "Updated successfully!" fi + + if check_for_gh_release "rustypaste-cli" "orhun/rustypaste-cli"; then + fetch_and_deploy_gh_release "rustypaste-cli" "orhun/rustypaste-cli" "prebuild" "latest" "/usr/local/bin" "*x86_64-unknown-linux-gnu.tar.gz" + fi exit } diff --git a/frontend/public/json/rustypaste.json b/frontend/public/json/rustypaste.json index e71f72687..2ac17c188 100644 --- a/frontend/public/json/rustypaste.json +++ b/frontend/public/json/rustypaste.json @@ -25,6 +25,17 @@ "os": "Debian", "version": "13" } + }, + { + "type": "alpine", + "script": "ct/alpine-rustypaste.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 4, + "os": "Alpine", + "version": "3.22" + } } ], "default_credentials": { diff --git a/install/alpine-rustypaste-install.sh b/install/alpine-rustypaste-install.sh index ddc9ec9cf..18e806270 100644 --- a/install/alpine-rustypaste-install.sh +++ b/install/alpine-rustypaste-install.sh @@ -14,11 +14,12 @@ network_check update_os fetch_and_deploy_gh_release "rustypaste" "orhun/rustypaste" "prebuild" "latest" "/opt/rustypaste" "*x86_64-unknown-linux-musl.tar.gz" +fetch_and_deploy_gh_release "rustypaste-cli" "orhun/rustypaste-cli" "prebuild" "latest" "/usr/local/bin" "*x86_64-unknown-linux-musl.tar.gz" -msg_info "Setting up rustypaste" +msg_info "Setting up RustyPaste" cd /opt/rustypaste sed -i 's|^address = ".*"|address = "0.0.0.0:8000"|' config.toml -msg_ok "Set up rustypaste" +msg_ok "Set up RustyPaste" msg_info "Creating Service" cat <<'EOF' >/etc/init.d/rustypaste @@ -44,3 +45,4 @@ msg_ok "Created Service" motd_ssh customize +cleanup_lxc diff --git a/install/rustypaste-install.sh b/install/rustypaste-install.sh index abb0b88ff..53e2caf57 100644 --- a/install/rustypaste-install.sh +++ b/install/rustypaste-install.sh @@ -14,11 +14,12 @@ network_check update_os fetch_and_deploy_gh_release "rustypaste" "orhun/rustypaste" "prebuild" "latest" "/opt/rustypaste" "*x86_64-unknown-linux-gnu.tar.gz" +fetch_and_deploy_gh_release "rustypaste-cli" "orhun/rustypaste-cli" "prebuild" "latest" "/usr/local/bin" "*x86_64-unknown-linux-gnu.tar.gz" -msg_info "Setting up rustypaste" +msg_info "Setting up RustyPaste" cd /opt/rustypaste sed -i 's|^address = ".*"|address = "0.0.0.0:8000"|' config.toml -msg_ok "Set up rustypaste" +msg_ok "Set up RustyPaste" msg_info "Creating Service" cat </etc/systemd/system/rustypaste.service