From 3e4420e357c8894a69c8c3df71bdd489fbf6d31b Mon Sep 17 00:00:00 2001 From: "push-app-to-main[bot]" <203845782+push-app-to-main[bot]@users.noreply.github.com> Date: Mon, 29 Sep 2025 09:14:43 +0200 Subject: [PATCH] 'Add new script' (#7967) Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com> --- ct/headers/verdaccio | 6 ++ ct/verdaccio.sh | 49 +++++++++++++++ frontend/public/json/verdaccio.json | 40 ++++++++++++ install/verdaccio-install.sh | 96 +++++++++++++++++++++++++++++ 4 files changed, 191 insertions(+) create mode 100644 ct/headers/verdaccio create mode 100644 ct/verdaccio.sh create mode 100644 frontend/public/json/verdaccio.json create mode 100644 install/verdaccio-install.sh diff --git a/ct/headers/verdaccio b/ct/headers/verdaccio new file mode 100644 index 000000000..bf03eeff7 --- /dev/null +++ b/ct/headers/verdaccio @@ -0,0 +1,6 @@ + _ __ __ _ +| | / /__ _________/ /___ ___________(_)___ +| | / / _ \/ ___/ __ / __ `/ ___/ ___/ / __ \ +| |/ / __/ / / /_/ / /_/ / /__/ /__/ / /_/ / +|___/\___/_/ \__,_/\__,_/\___/\___/_/\____/ + diff --git a/ct/verdaccio.sh b/ct/verdaccio.sh new file mode 100644 index 000000000..facce9991 --- /dev/null +++ b/ct/verdaccio.sh @@ -0,0 +1,49 @@ +#!/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: BrynnJKnight +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://verdaccio.org/ + +APP="Verdaccio" +var_tags="${var_tags:-dev-tools;npm;registry}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-8}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +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 /etc/systemd/system/verdaccio.service ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + msg_info "Updating LXC Container" + $STD apt update + $STD apt -y upgrade + msg_ok "Updated LXC Container" + + NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs + systemctl restart verdaccio + msg_ok "Updated Successfully" + 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}:4873${CL}" diff --git a/frontend/public/json/verdaccio.json b/frontend/public/json/verdaccio.json new file mode 100644 index 000000000..e1194b785 --- /dev/null +++ b/frontend/public/json/verdaccio.json @@ -0,0 +1,40 @@ +{ + "name": "Verdaccio", + "slug": "verdaccio", + "categories": [ + 20 + ], + "date_created": "2025-09-19", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 4873, + "documentation": "https://verdaccio.org/docs/what-is-verdaccio", + "website": "https://verdaccio.org/", + "logo": "https://verdaccio.org/img/logo/symbol/png/verdaccio-tiny.png", + "config_path": "/opt/verdaccio/config/config.yaml", + "description": "Verdaccio is a lightweight private npm proxy registry built with Node.js. It allows you to host your own npm registry with minimal configuration, providing a private npm repository for your projects. Verdaccio supports npm, yarn, and pnpm, and can cache packages from the public npm registry, allowing for faster installs and protection against npm registry outages. It includes a web interface for browsing packages, authentication and authorization features, and can be easily integrated into your development workflow.", + "install_methods": [ + { + "type": "default", + "script": "ct/verdaccio.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "To create the first user, run: npm adduser --registry http://:4873", + "type": "info" + } + ] +} \ No newline at end of file diff --git a/install/verdaccio-install.sh b/install/verdaccio-install.sh new file mode 100644 index 000000000..1586217b5 --- /dev/null +++ b/install/verdaccio-install.sh @@ -0,0 +1,96 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: BrynnJKnight +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://verdaccio.org/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt-get install -y \ + ca-certificates \ + build-essential +msg_ok "Installed Dependencies" + +NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs + +msg_info "Configuring Verdaccio" +mkdir -p /opt/verdaccio/config +mkdir -p /opt/verdaccio/storage + +cat </opt/verdaccio/config/config.yaml +# Verdaccio configuration +storage: /opt/verdaccio/storage +auth: + htpasswd: + file: /opt/verdaccio/storage/htpasswd + max_users: 1000 +uplinks: + npmjs: + url: https://registry.npmjs.org/ +packages: + '@*/*': + access: \$all + publish: \$authenticated + proxy: npmjs + '**': + access: \$all + publish: \$authenticated + proxy: npmjs +middlewares: + audit: + enabled: true +logs: + - {type: stdout, format: pretty, level: http} +listen: + - 0.0.0.0:4873 +web: + enable: true + title: Verdaccio + gravatar: true + sort_packages: asc + login: true +EOF + +chown -R root:root /opt/verdaccio +chmod -R 755 /opt/verdaccio +msg_ok "Configured Verdaccio" + +msg_info "Creating Service" +cat </etc/systemd/system/verdaccio.service +[Unit] +Description=Verdaccio lightweight private npm proxy registry +After=network.target + +[Service] +Type=simple +ExecStart=/usr/bin/verdaccio --config /opt/verdaccio/config/config.yaml +Restart=on-failure +StandardOutput=journal +StandardError=journal +SyslogIdentifier=verdaccio +KillMode=control-group + +[Install] +WantedBy=multi-user.target +EOF + +systemctl enable -q --now verdaccio +msg_ok "Created Service" + + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt -y autoremove +$STD apt -y autoclean +$STD apt -y clean +msg_ok "Cleaned"