mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	'Add new script' (#7967)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							38f7e81d8b
						
					
				
				
					commit
					3e4420e357
				
			
							
								
								
									
										6
									
								
								ct/headers/verdaccio
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/verdaccio
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					 _    __              __                _     
 | 
				
			||||||
 | 
					| |  / /__  _________/ /___ ___________(_)___ 
 | 
				
			||||||
 | 
					| | / / _ \/ ___/ __  / __ `/ ___/ ___/ / __ \
 | 
				
			||||||
 | 
					| |/ /  __/ /  / /_/ / /_/ / /__/ /__/ / /_/ /
 | 
				
			||||||
 | 
					|___/\___/_/   \__,_/\__,_/\___/\___/_/\____/ 
 | 
				
			||||||
 | 
					                                              
 | 
				
			||||||
							
								
								
									
										49
									
								
								ct/verdaccio.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								ct/verdaccio.sh
									
									
									
									
									
										Normal file
									
								
							@@ -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}"
 | 
				
			||||||
							
								
								
									
										40
									
								
								frontend/public/json/verdaccio.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								frontend/public/json/verdaccio.json
									
									
									
									
									
										Normal file
									
								
							@@ -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://<container-ip>:4873",
 | 
				
			||||||
 | 
					      "type": "info"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										96
									
								
								install/verdaccio-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								install/verdaccio-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -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 <<EOF >/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 <<EOF >/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"
 | 
				
			||||||
		Reference in New Issue
	
	Block a user