mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	Compare commits
	
		
			264 Commits
		
	
	
		
			2025-05-13
			...
			2025-05-30
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					d925ae0f04 | ||
| 
						 | 
					cb0d0bd83e | ||
| 
						 | 
					9fcfb2fe49 | ||
| 
						 | 
					d23aa3fda0 | ||
| 
						 | 
					131f83505c | ||
| 
						 | 
					5a95a745ff | ||
| 
						 | 
					809bc6c302 | ||
| 
						 | 
					4fba20d80b | ||
| 
						 | 
					42a7614d15 | ||
| 
						 | 
					2dd7ebda2c | ||
| 
						 | 
					e388ce82a1 | ||
| 
						 | 
					ac902f2098 | ||
| 
						 | 
					a23b83dfc5 | ||
| 
						 | 
					85975fbe15 | ||
| 
						 | 
					23e33c5cb6 | ||
| 
						 | 
					e39e5d5b7d | ||
| 
						 | 
					1619d6a093 | ||
| 
						 | 
					f23b688d55 | ||
| 
						 | 
					b6319b5dd3 | ||
| 
						 | 
					030e6344d2 | ||
| 
						 | 
					85837d8099 | ||
| 
						 | 
					5295ed8cf2 | ||
| 
						 | 
					85ae0e2f74 | ||
| 
						 | 
					b406921c1a | ||
| 
						 | 
					5a16b5995d | ||
| 
						 | 
					fd637c8819 | ||
| 
						 | 
					6d40ca9cd6 | ||
| 
						 | 
					48979104d7 | ||
| 
						 | 
					964950c82c | ||
| 
						 | 
					0677af31c4 | ||
| 
						 | 
					4495ffee6a | ||
| 
						 | 
					6745dad963 | ||
| 
						 | 
					e9470ab1af | ||
| 
						 | 
					5abcb47051 | ||
| 
						 | 
					709a899f8f | ||
| 
						 | 
					b9ff7513a4 | ||
| 
						 | 
					7a963a76b7 | ||
| 
						 | 
					13506d92fb | ||
| 
						 | 
					36f859c062 | ||
| 
						 | 
					adc8225ed2 | ||
| 
						 | 
					640dca8d8b | ||
| 
						 | 
					3b0713b812 | ||
| 
						 | 
					d20165f25c | ||
| 
						 | 
					c79d05ca5f | ||
| 
						 | 
					f0dd1c264d | ||
| 
						 | 
					951782d8f2 | ||
| 
						 | 
					5e8ee6baa8 | ||
| 
						 | 
					7bb9fb09ba | ||
| 
						 | 
					eb04327aa9 | ||
| 
						 | 
					ce39e7c87e | ||
| 
						 | 
					0e75a57582 | ||
| 
						 | 
					8765b7ac1d | ||
| 
						 | 
					56e316b849 | ||
| 
						 | 
					79a5624905 | ||
| 
						 | 
					a4dee03140 | ||
| 
						 | 
					8787ef57b5 | ||
| 
						 | 
					86674ef376 | ||
| 
						 | 
					1e195cac1e | ||
| 
						 | 
					8e8e09668b | ||
| 
						 | 
					6ef1c99f65 | ||
| 
						 | 
					e2a8b8b799 | ||
| 
						 | 
					c356f77efe | ||
| 
						 | 
					dcfe80e069 | ||
| 
						 | 
					010928fee2 | ||
| 
						 | 
					aed2c0e5bf | ||
| 
						 | 
					9e2d66266a | ||
| 
						 | 
					da406b5ce8 | ||
| 
						 | 
					a7bf2679de | ||
| 
						 | 
					7079f428ca | ||
| 
						 | 
					121bd8e557 | ||
| 
						 | 
					d9c4ff9867 | ||
| 
						 | 
					7db94ad73a | ||
| 
						 | 
					56c2682601 | ||
| 
						 | 
					11a7c2e410 | ||
| 
						 | 
					ed9d8e995d | ||
| 
						 | 
					3b67e8dcc1 | ||
| 
						 | 
					f09e57c200 | ||
| 
						 | 
					72c24d5147 | ||
| 
						 | 
					93a179c201 | ||
| 
						 | 
					ac2f0e66ae | ||
| 
						 | 
					5ccf8a7cd6 | ||
| 
						 | 
					db82285b95 | ||
| 
						 | 
					58586cbfc8 | ||
| 
						 | 
					8708980786 | ||
| 
						 | 
					943fa7b7aa | ||
| 
						 | 
					5085547f39 | ||
| 
						 | 
					5685e7e088 | ||
| 
						 | 
					72db97b226 | ||
| 
						 | 
					e6805db9f5 | ||
| 
						 | 
					97073be5e2 | ||
| 
						 | 
					82228189a7 | ||
| 
						 | 
					53bdedfc08 | ||
| 
						 | 
					92ff5a9881 | ||
| 
						 | 
					0bb4509cd7 | ||
| 
						 | 
					f339b7df10 | ||
| 
						 | 
					a23a6a3da1 | ||
| 
						 | 
					3c12773956 | ||
| 
						 | 
					d79ac98a31 | ||
| 
						 | 
					17654c2006 | ||
| 
						 | 
					575443fac5 | ||
| 
						 | 
					f38225d52f | ||
| 
						 | 
					cef451c42c | ||
| 
						 | 
					2a5856db03 | ||
| 
						 | 
					47abe248d0 | ||
| 
						 | 
					98c64ffae9 | ||
| 
						 | 
					c136133b7c | ||
| 
						 | 
					1e5395d21b | ||
| 
						 | 
					dfb98698f3 | ||
| 
						 | 
					ff5b793e1e | ||
| 
						 | 
					4044790e5e | ||
| 
						 | 
					e64b10bf99 | ||
| 
						 | 
					bf2b36f095 | ||
| 
						 | 
					15b606c019 | ||
| 
						 | 
					16740ece38 | ||
| 
						 | 
					d2d9a59e35 | ||
| 
						 | 
					7d7664f12a | ||
| 
						 | 
					98c1136d8e | ||
| 
						 | 
					2f1f0393b6 | ||
| 
						 | 
					0cdde92556 | ||
| 
						 | 
					85b638169d | ||
| 
						 | 
					1c186b5087 | ||
| 
						 | 
					21efb1a2ec | ||
| 
						 | 
					9de702c301 | ||
| 
						 | 
					a47d6efe41 | ||
| 
						 | 
					36253b0045 | ||
| 
						 | 
					34e7c33e05 | ||
| 
						 | 
					e0a47f0aa3 | ||
| 
						 | 
					bce10d447e | ||
| 
						 | 
					0d9804fcfe | ||
| 
						 | 
					3b7c63183b | ||
| 
						 | 
					2d323d94ec | ||
| 
						 | 
					ab0ed91c4f | ||
| 
						 | 
					31e99bc49b | ||
| 
						 | 
					5b27942981 | ||
| 
						 | 
					161bafa818 | ||
| 
						 | 
					a5241ef1c5 | ||
| 
						 | 
					bf3f7dc3b1 | ||
| 
						 | 
					7264934136 | ||
| 
						 | 
					a0745de096 | ||
| 
						 | 
					4f4ec7d477 | ||
| 
						 | 
					ba3de8d080 | ||
| 
						 | 
					0f8932b125 | ||
| 
						 | 
					348354079b | ||
| 
						 | 
					48db08192a | ||
| 
						 | 
					b6f410e895 | ||
| 
						 | 
					1221fec5ab | ||
| 
						 | 
					faa805547c | ||
| 
						 | 
					fe0ac37ff1 | ||
| 
						 | 
					eed391917c | ||
| 
						 | 
					76da24386d | ||
| 
						 | 
					8e7caf4cd9 | ||
| 
						 | 
					7d3040ab76 | ||
| 
						 | 
					6a3bf770fb | ||
| 
						 | 
					6805b01df2 | ||
| 
						 | 
					7520917dcc | ||
| 
						 | 
					ec186b0288 | ||
| 
						 | 
					c7afd9c427 | ||
| 
						 | 
					bd3b022b08 | ||
| 
						 | 
					49fcd68f42 | ||
| 
						 | 
					1382742c26 | ||
| 
						 | 
					9e2441ff53 | ||
| 
						 | 
					490dbc725e | ||
| 
						 | 
					d9201e2cac | ||
| 
						 | 
					52c09646b2 | ||
| 
						 | 
					b5d70d5201 | ||
| 
						 | 
					7089b9ef7b | ||
| 
						 | 
					034d7df9cd | ||
| 
						 | 
					f41ac673a3 | ||
| 
						 | 
					a7382f9273 | ||
| 
						 | 
					cb1465544d | ||
| 
						 | 
					796c31eae4 | ||
| 
						 | 
					047c2c44d6 | ||
| 
						 | 
					1baa841963 | ||
| 
						 | 
					7d40ee4aa9 | ||
| 
						 | 
					f9a8925f64 | ||
| 
						 | 
					c62a0b149d | ||
| 
						 | 
					513402b099 | ||
| 
						 | 
					a39354f8f3 | ||
| 
						 | 
					3814e51d3f | ||
| 
						 | 
					326f5e9151 | ||
| 
						 | 
					1e2fda29b7 | ||
| 
						 | 
					222db46cac | ||
| 
						 | 
					9e8841ea7a | ||
| 
						 | 
					24d612c9e7 | ||
| 
						 | 
					3cfe253a3d | ||
| 
						 | 
					b7e951fc1a | ||
| 
						 | 
					f735e37b15 | ||
| 
						 | 
					2c2e602eb1 | ||
| 
						 | 
					37cd6a6620 | ||
| 
						 | 
					a386765e33 | ||
| 
						 | 
					d252e33e5c | ||
| 
						 | 
					08992599a0 | ||
| 
						 | 
					2a10eca156 | ||
| 
						 | 
					b4be96ff45 | ||
| 
						 | 
					06156a5a20 | ||
| 
						 | 
					5ccff37e3b | ||
| 
						 | 
					c5ca62ec38 | ||
| 
						 | 
					bc5fc031e7 | ||
| 
						 | 
					4ead65f948 | ||
| 
						 | 
					b602416a7e | ||
| 
						 | 
					cb431da23b | ||
| 
						 | 
					19ddb4b2b1 | ||
| 
						 | 
					1378d55fae | ||
| 
						 | 
					8f647b9abe | ||
| 
						 | 
					8a481e1423 | ||
| 
						 | 
					42ee79ac30 | ||
| 
						 | 
					5a6dc35fe0 | ||
| 
						 | 
					73c08a8c5e | ||
| 
						 | 
					67feae778e | ||
| 
						 | 
					7dd49d634e | ||
| 
						 | 
					06191ca260 | ||
| 
						 | 
					0118974ba7 | ||
| 
						 | 
					22e5a54941 | ||
| 
						 | 
					ce7442bab7 | ||
| 
						 | 
					54c522e39b | ||
| 
						 | 
					dfa08625e3 | ||
| 
						 | 
					f6d411b992 | ||
| 
						 | 
					9359f6d883 | ||
| 
						 | 
					b021a2c139 | ||
| 
						 | 
					4de228d41b | ||
| 
						 | 
					7d2e8eaaad | ||
| 
						 | 
					ce69a571bc | ||
| 
						 | 
					1fdda378ac | ||
| 
						 | 
					7b62fd4866 | ||
| 
						 | 
					0da24e2651 | ||
| 
						 | 
					fd689e94ed | ||
| 
						 | 
					47155ac280 | ||
| 
						 | 
					aa57bac96d | ||
| 
						 | 
					24d730c120 | ||
| 
						 | 
					de9ae6eaa9 | ||
| 
						 | 
					4fd065a4bd | ||
| 
						 | 
					e26aac187b | ||
| 
						 | 
					5e63b70e83 | ||
| 
						 | 
					292ab6e54b | ||
| 
						 | 
					7d924fac27 | ||
| 
						 | 
					4b31957617 | ||
| 
						 | 
					35c99ae503 | ||
| 
						 | 
					62189321cc | ||
| 
						 | 
					59dfdc9af6 | ||
| 
						 | 
					19cf4d3dc2 | ||
| 
						 | 
					369265a6d5 | ||
| 
						 | 
					56f8306960 | ||
| 
						 | 
					3daf3c3325 | ||
| 
						 | 
					c36000a6aa | ||
| 
						 | 
					12265b92e7 | ||
| 
						 | 
					4e31445038 | ||
| 
						 | 
					c30f96912d | ||
| 
						 | 
					e3860c065e | ||
| 
						 | 
					110b64df85 | ||
| 
						 | 
					e17f7aa6f1 | ||
| 
						 | 
					b4d98b1dd2 | ||
| 
						 | 
					e24636133d | ||
| 
						 | 
					7d0a964918 | ||
| 
						 | 
					38c7e747bc | ||
| 
						 | 
					180e003978 | ||
| 
						 | 
					4762ea8fae | ||
| 
						 | 
					4ec3af8e45 | ||
| 
						 | 
					b816ca6788 | ||
| 
						 | 
					d703a8abb2 | ||
| 
						 | 
					4a1f87727b | ||
| 
						 | 
					16c0d09d6b | ||
| 
						 | 
					7740ab68f7 | ||
| 
						 | 
					cd61025295 | ||
| 
						 | 
					2695e2de1a | 
							
								
								
									
										14
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.md
									
									
									
									
										vendored
									
									
								
							@@ -108,13 +108,13 @@ Example:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
APP="SnipeIT"
 | 
			
		||||
var_tags="asset-management;foss"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="2048"
 | 
			
		||||
var_disk="4"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
var_tags="${var_tags:-asset-management;foss}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 2.2 **📋 App output & base settings**
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										102
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										102
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.sh
									
									
									
									
										vendored
									
									
								
							@@ -6,22 +6,22 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: [SOURCE_URL]
 | 
			
		||||
 | 
			
		||||
# App Default Values
 | 
			
		||||
APP="[APP_NAME]"
 | 
			
		||||
# Name of the app (e.g. Google, Adventurelog, Apache-Guacamole"
 | 
			
		||||
var_tags="[TAGS]"
 | 
			
		||||
APP="[APP_NAME]"
 | 
			
		||||
# Tags for Proxmox VE, maximum 2 pcs., no spaces allowed, separated by a semicolon ; (e.g. database | adblock;dhcp)
 | 
			
		||||
var_cpu="[CPU]"
 | 
			
		||||
var_tags="${var_tags:-[TAGS]}"
 | 
			
		||||
# Number of cores (1-X) (e.g. 4) - default are 2
 | 
			
		||||
var_ram="[RAM]"
 | 
			
		||||
var_cpu="${var_cpu:-[CPU]}"
 | 
			
		||||
# Amount of used RAM in MB (e.g. 2048 or 4096)
 | 
			
		||||
var_disk="[DISK]"
 | 
			
		||||
var_ram="${var_ram:-[RAM]}"
 | 
			
		||||
# Amount of used disk space in GB (e.g. 4 or 10)
 | 
			
		||||
var_os="[OS]"
 | 
			
		||||
var_disk="${var_disk:-[DISK]}"
 | 
			
		||||
# Default OS (e.g. debian, ubuntu, alpine)
 | 
			
		||||
var_version="[VERSION]"
 | 
			
		||||
var_os="${var_os:-[OS]}"
 | 
			
		||||
# Default OS version (e.g. 12 for debian, 24.04 for ubuntu, 3.20 for alpine)
 | 
			
		||||
var_unprivileged="[UNPRIVILEGED]"
 | 
			
		||||
var_version="${var_version:-[VERSION]}"
 | 
			
		||||
# 1 = unprivileged container, 0 = privileged container
 | 
			
		||||
var_unprivileged="${var_unprivileged:-[UNPRIVILEGED]}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
@@ -29,51 +29,51 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
    # Check if installation is present | -f for file, -d for folder
 | 
			
		||||
    if [[ ! -f [INSTALLATION_CHECK_PATH] ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Crawling the new version and checking whether an update is required
 | 
			
		||||
    RELEASE=$(curl -fsSL [RELEASE_URL] | [PARSE_RELEASE_COMMAND])
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
        # Stopping Services
 | 
			
		||||
        msg_info "Stopping $APP"
 | 
			
		||||
        systemctl stop [SERVICE_NAME]
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
        # Creating Backup
 | 
			
		||||
        msg_info "Creating Backup"
 | 
			
		||||
        tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" [IMPORTANT_PATHS]
 | 
			
		||||
        msg_ok "Backup Created"
 | 
			
		||||
 | 
			
		||||
        # Execute Update
 | 
			
		||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
        [UPDATE_COMMANDS]
 | 
			
		||||
        msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        # Starting Services
 | 
			
		||||
        msg_info "Starting $APP"
 | 
			
		||||
        systemctl start [SERVICE_NAME]
 | 
			
		||||
        msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
        # Cleaning up
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf [TEMP_FILES]
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
        # Last Action
 | 
			
		||||
        echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  # Check if installation is present | -f for file, -d for folder
 | 
			
		||||
  if [[ ! -f [INSTALLATION_CHECK_PATH] ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Crawling the new version and checking whether an update is required
 | 
			
		||||
  RELEASE=$(curl -fsSL [RELEASE_URL] | [PARSE_RELEASE_COMMAND])
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    # Stopping Services
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop [SERVICE_NAME]
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    # Creating Backup
 | 
			
		||||
    msg_info "Creating Backup"
 | 
			
		||||
    tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" [IMPORTANT_PATHS]
 | 
			
		||||
    msg_ok "Backup Created"
 | 
			
		||||
 | 
			
		||||
    # Execute Update
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    [UPDATE_COMMANDS]
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    # Starting Services
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start [SERVICE_NAME]
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    # Cleaning up
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf [TEMP_FILES]
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
    # Last Action
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -152,7 +152,7 @@ Example for a git release:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip"
 | 
			
		||||
curl -fsSL "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 5.2 **Save the version for update checks**
 | 
			
		||||
@@ -163,7 +163,7 @@ wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip"
 | 
			
		||||
Example:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
echo "${RELEASE}" >"/opt/AppName_version.txt"
 | 
			
		||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
@@ -184,7 +184,7 @@ msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y ...
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
read -p "Do you wish to enable HTTPS mode? (y/N): " httpschoice
 | 
			
		||||
read -p "${TAB3}Do you wish to enable HTTPS mode? (y/N): " httpschoice
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 6.2 **Verbosity**
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
# Source: [SOURCE_URL]
 | 
			
		||||
 | 
			
		||||
# Import Functions und Setup
 | 
			
		||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
@@ -31,15 +31,13 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
 | 
			
		||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
 | 
			
		||||
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
 | 
			
		||||
{
 | 
			
		||||
    echo "${APPLICATION} Credentials"
 | 
			
		||||
    echo "Database User: $DB_USER"
 | 
			
		||||
    echo "Database Password: $DB_PASS"
 | 
			
		||||
    echo "Database Name: $DB_NAME"
 | 
			
		||||
} >> ~/$APP_NAME.creds
 | 
			
		||||
  echo "${APPLICATION} Credentials"
 | 
			
		||||
  echo "Database User: $DB_USER"
 | 
			
		||||
  echo "Database Password: $DB_PASS"
 | 
			
		||||
  echo "Database Name: $DB_NAME"
 | 
			
		||||
} >>~/"$APP_NAME".creds
 | 
			
		||||
msg_ok "Set up Database"
 | 
			
		||||
 | 
			
		||||
# Temp
 | 
			
		||||
 | 
			
		||||
# Setup App
 | 
			
		||||
msg_info "Setup ${APPLICATION}"
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/[REPO]/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
@@ -49,12 +47,12 @@ mv "${APPLICATION}-${RELEASE}/" "/opt/${APPLICATION}"
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
 | 
			
		||||
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
 | 
			
		||||
msg_ok "Setup ${APPLICATION}"
 | 
			
		||||
 | 
			
		||||
# Creating Service (if needed)
 | 
			
		||||
msg_info "Creating Service"
 | 
			
		||||
cat <<EOF >/etc/systemd/system/${APPLICATION}.service
 | 
			
		||||
cat <<EOF >/etc/systemd/system/"${APPLICATION}".service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=${APPLICATION} Service
 | 
			
		||||
After=network.target
 | 
			
		||||
@@ -66,7 +64,7 @@ Restart=always
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
systemctl enable -q --now ${APPLICATION}
 | 
			
		||||
systemctl enable -q --now "${APPLICATION}"
 | 
			
		||||
msg_ok "Created Service"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
@@ -74,7 +72,7 @@ customize
 | 
			
		||||
 | 
			
		||||
# Cleanup
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -f ${RELEASE}.zip
 | 
			
		||||
rm -f "${RELEASE}".zip
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
							
								
								
									
										15
									
								
								.github/workflows/auto-update-app-headers.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/auto-update-app-headers.yml
									
									
									
									
										vendored
									
									
								
							@@ -5,7 +5,7 @@ on:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
    paths:
 | 
			
		||||
      - 'ct/**.sh'
 | 
			
		||||
      - "ct/**.sh"
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
@@ -25,6 +25,13 @@ jobs:
 | 
			
		||||
          app-id: ${{ vars.APP_ID }}
 | 
			
		||||
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
			
		||||
 | 
			
		||||
      - name: Generate a token for PR approval and merge
 | 
			
		||||
        id: generate-token-merge
 | 
			
		||||
        uses: actions/create-github-app-token@v1
 | 
			
		||||
        with:
 | 
			
		||||
          app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
 | 
			
		||||
          private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
 | 
			
		||||
 | 
			
		||||
      # Step 1: Checkout repository
 | 
			
		||||
      - name: Checkout repository
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
@@ -94,9 +101,11 @@ jobs:
 | 
			
		||||
      - name: Approve pull request and merge
 | 
			
		||||
        if: env.changed == 'true'
 | 
			
		||||
        env:
 | 
			
		||||
          GH_TOKEN: ${{ secrets.PAT_AUTOMERGE }}
 | 
			
		||||
          GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
 | 
			
		||||
        run: |
 | 
			
		||||
          PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number')
 | 
			
		||||
          git config --global user.name "github-actions-automege[bot]"
 | 
			
		||||
          git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
 | 
			
		||||
          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
			
		||||
          if [ -n "$PR_NUMBER" ]; then
 | 
			
		||||
            gh pr review $PR_NUMBER --approve
 | 
			
		||||
            gh pr merge $PR_NUMBER --squash --admin
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								.github/workflows/changelog-pr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								.github/workflows/changelog-pr.yml
									
									
									
									
										vendored
									
									
								
							@@ -24,6 +24,13 @@ jobs:
 | 
			
		||||
          app-id: ${{ vars.APP_ID }}
 | 
			
		||||
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
			
		||||
 | 
			
		||||
      - name: Generate a token for PR approval and merge
 | 
			
		||||
        id: generate-token-merge
 | 
			
		||||
        uses: actions/create-github-app-token@v1
 | 
			
		||||
        with:
 | 
			
		||||
          app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
 | 
			
		||||
          private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
 | 
			
		||||
 | 
			
		||||
      - name: Checkout code
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
@@ -267,20 +274,12 @@ jobs:
 | 
			
		||||
      - name: Approve pull request and merge
 | 
			
		||||
        if: env.changed == 'true'
 | 
			
		||||
        env:
 | 
			
		||||
          GH_TOKEN: ${{ secrets.PAT_AUTOMERGE }}
 | 
			
		||||
          GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
 | 
			
		||||
        run: |
 | 
			
		||||
          git config --global user.name "github-actions-automege[bot]"
 | 
			
		||||
          git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
 | 
			
		||||
          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
			
		||||
          if [ -n "$PR_NUMBER" ]; then
 | 
			
		||||
            gh pr review $PR_NUMBER --approve
 | 
			
		||||
            gh pr merge $PR_NUMBER --squash --admin
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
      - name: Re-approve pull request after update
 | 
			
		||||
        if: env.changed == 'true'
 | 
			
		||||
        env:
 | 
			
		||||
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        run: |
 | 
			
		||||
          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
			
		||||
          if [ -n "$PR_NUMBER" ]; then
 | 
			
		||||
            gh pr review $PR_NUMBER --approve
 | 
			
		||||
          fi
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +1,50 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Base directory for headers
 | 
			
		||||
headers_dir="./ct/headers"
 | 
			
		||||
# Function for generating Figlet headers
 | 
			
		||||
generate_headers() {
 | 
			
		||||
  local base_dir=$1
 | 
			
		||||
  local target_subdir=$2
 | 
			
		||||
  local search_pattern=$3
 | 
			
		||||
 | 
			
		||||
# Ensure the headers directory exists and clear it
 | 
			
		||||
mkdir -p "$headers_dir"
 | 
			
		||||
rm -f "$headers_dir"/*
 | 
			
		||||
  local headers_dir="${base_dir}/headers"
 | 
			
		||||
  mkdir -p "$headers_dir"
 | 
			
		||||
  rm -f "$headers_dir"/*
 | 
			
		||||
 | 
			
		||||
# Find all .sh files in ./ct directory, sorted alphabetically
 | 
			
		||||
find ./ct -type f -name "*.sh" | sort | while read -r script; do
 | 
			
		||||
  # Extract the APP name from the APP line
 | 
			
		||||
  app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
 | 
			
		||||
 | 
			
		||||
  if [[ -n "$app_name" ]]; then
 | 
			
		||||
    # Define the output file name in the headers directory
 | 
			
		||||
    output_file="${headers_dir}/$(basename "${script%.*}")"
 | 
			
		||||
 | 
			
		||||
    # Generate figlet output
 | 
			
		||||
    figlet_output=$(figlet -w 500 -f slant "$app_name")
 | 
			
		||||
 | 
			
		||||
    # Check if figlet output is not empty
 | 
			
		||||
    if [[ -n "$figlet_output" ]]; then
 | 
			
		||||
      echo "$figlet_output" > "$output_file"
 | 
			
		||||
      echo "Generated: $output_file"
 | 
			
		||||
    else
 | 
			
		||||
      echo "Figlet failed for $app_name in $script"
 | 
			
		||||
    fi
 | 
			
		||||
  # Recursive or non-recursive search
 | 
			
		||||
  if [[ "$search_pattern" == "**" ]]; then
 | 
			
		||||
    shopt -s globstar nullglob
 | 
			
		||||
    file_list=("${base_dir}"/**/*.sh)
 | 
			
		||||
    shopt -u globstar
 | 
			
		||||
  else
 | 
			
		||||
    echo "No APP name found in $script, skipping."
 | 
			
		||||
    file_list=("${base_dir}"/*.sh)
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
echo "Completed processing .sh files."
 | 
			
		||||
  for script in "${file_list[@]}"; do
 | 
			
		||||
    [[ -f "$script" ]] || continue
 | 
			
		||||
 | 
			
		||||
    app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
 | 
			
		||||
    if [[ -n "$app_name" ]]; then
 | 
			
		||||
      output_file="${headers_dir}/$(basename "${script%.*}")"
 | 
			
		||||
      figlet_output=$(figlet -w 500 -f slant "$app_name")
 | 
			
		||||
      if [[ -n "$figlet_output" ]]; then
 | 
			
		||||
        echo "$figlet_output" >"$output_file"
 | 
			
		||||
        echo "Generated: $output_file"
 | 
			
		||||
      else
 | 
			
		||||
        echo "Figlet failed for $app_name in $script"
 | 
			
		||||
      fi
 | 
			
		||||
    else
 | 
			
		||||
      echo "No APP name found in $script, skipping."
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# ct
 | 
			
		||||
generate_headers "./ct" "headers" "*"
 | 
			
		||||
 | 
			
		||||
# tools (addon, pve, ...)
 | 
			
		||||
generate_headers "./tools" "headers" "**"
 | 
			
		||||
 | 
			
		||||
# vm
 | 
			
		||||
generate_headers "./vm" "headers" "*"
 | 
			
		||||
 | 
			
		||||
echo "Completed processing all sections."
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								.github/workflows/update-json-date.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/update-json-date.yml
									
									
									
									
										vendored
									
									
								
							@@ -5,7 +5,7 @@ on:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
    paths:
 | 
			
		||||
      - 'frontend/public/json/**.json'
 | 
			
		||||
      - "frontend/public/json/**.json"
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
@@ -25,6 +25,13 @@ jobs:
 | 
			
		||||
          app-id: ${{ vars.APP_ID }}
 | 
			
		||||
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
			
		||||
 | 
			
		||||
      - name: Generate a token for PR approval and merge
 | 
			
		||||
        id: generate-token-merge
 | 
			
		||||
        uses: actions/create-github-app-token@v1
 | 
			
		||||
        with:
 | 
			
		||||
          app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
 | 
			
		||||
          private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
 | 
			
		||||
 | 
			
		||||
      - name: Generate dynamic branch name
 | 
			
		||||
        id: timestamp
 | 
			
		||||
        run: echo "BRANCH_NAME=pr-update-json-$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
 | 
			
		||||
@@ -38,7 +45,7 @@ jobs:
 | 
			
		||||
      - name: Checkout Repository
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 2  # Ensure we have the last two commits
 | 
			
		||||
          fetch-depth: 2 # Ensure we have the last two commits
 | 
			
		||||
 | 
			
		||||
      - name: Get Previous Commit
 | 
			
		||||
        id: prev_commit
 | 
			
		||||
@@ -126,12 +133,15 @@ jobs:
 | 
			
		||||
          if [ -n "$PR_NUMBER" ]; then
 | 
			
		||||
            gh pr review $PR_NUMBER --approve
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
      - name: Approve pull request and merge
 | 
			
		||||
        if: env.changed == 'true'
 | 
			
		||||
        env:
 | 
			
		||||
          GH_TOKEN: ${{ secrets.PAT_AUTOMERGE }}
 | 
			
		||||
          GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
 | 
			
		||||
        run: |
 | 
			
		||||
          PR_NUMBER=$(gh pr list --head "${{ env.BRANCH_NAME }}" --json number --jq '.[].number')
 | 
			
		||||
          git config --global user.name "github-actions-automege[bot]"
 | 
			
		||||
          git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
 | 
			
		||||
          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
			
		||||
          if [ -n "$PR_NUMBER" ]; then
 | 
			
		||||
            gh pr review $PR_NUMBER --approve
 | 
			
		||||
            gh pr merge $PR_NUMBER --squash --admin
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										307
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										307
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -14,8 +14,315 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
 | 
			
		||||
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 2025-05-31
 | 
			
		||||
 | 
			
		||||
## 2025-05-30
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - slskd: add space in sed command [@vhsdream](https://github.com/vhsdream) ([#4853](https://github.com/community-scripts/ProxmoxVE/pull/4853))
 | 
			
		||||
    - Alpine Traefik: Fix working directory and plugins [@tremor021](https://github.com/tremor021) ([#4838](https://github.com/community-scripts/ProxmoxVE/pull/4838))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Update package dependencies in package.json and package-lock.json [@enough-jainil](https://github.com/enough-jainil) ([#4845](https://github.com/community-scripts/ProxmoxVE/pull/4845))
 | 
			
		||||
 | 
			
		||||
## 2025-05-29
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - SearXNG fix limiter [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4834](https://github.com/community-scripts/ProxmoxVE/pull/4834))
 | 
			
		||||
    - Docmost: add jq before nodejs install [@MickLesk](https://github.com/MickLesk) ([#4831](https://github.com/community-scripts/ProxmoxVE/pull/4831))
 | 
			
		||||
    - Alpine Traefik: Fix Dashboard not beign accessible [@tremor021](https://github.com/tremor021) ([#4828](https://github.com/community-scripts/ProxmoxVE/pull/4828))
 | 
			
		||||
    - MySQL: Fix Wrong Command [@MickLesk](https://github.com/MickLesk) ([#4820](https://github.com/community-scripts/ProxmoxVE/pull/4820))
 | 
			
		||||
    - docs: fix casing of OpenWrt [@GoetzGoerisch](https://github.com/GoetzGoerisch) ([#4805](https://github.com/community-scripts/ProxmoxVE/pull/4805))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Docker-VM: set individual Hostname / Disk-Space formatting [@MickLesk](https://github.com/MickLesk) ([#4821](https://github.com/community-scripts/ProxmoxVE/pull/4821))
 | 
			
		||||
 | 
			
		||||
## 2025-05-28
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Umbrel-OS [@MickLesk](https://github.com/MickLesk) ([#4788](https://github.com/community-scripts/ProxmoxVE/pull/4788))
 | 
			
		||||
- oauth2-proxy ([#4784](https://github.com/community-scripts/ProxmoxVE/pull/4784))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Habitica: Use Node20 [@MickLesk](https://github.com/MickLesk) ([#4796](https://github.com/community-scripts/ProxmoxVE/pull/4796))
 | 
			
		||||
    - Alpine-Node-RED: add service to rc [@MickLesk](https://github.com/MickLesk) ([#4783](https://github.com/community-scripts/ProxmoxVE/pull/4783))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Pulse: use prebuild tarball file / remove unneeded npm actions [@MickLesk](https://github.com/MickLesk) ([#4776](https://github.com/community-scripts/ProxmoxVE/pull/4776))
 | 
			
		||||
 | 
			
		||||
  - #### 💥 Breaking Changes
 | 
			
		||||
 | 
			
		||||
    - Refactor: Linkwarden + OS Upgrade [@MickLesk](https://github.com/MickLesk) ([#4756](https://github.com/community-scripts/ProxmoxVE/pull/4756))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - refactor: use binary and randomize credentials in tinyauth [@steveiliop56](https://github.com/steveiliop56) ([#4632](https://github.com/community-scripts/ProxmoxVE/pull/4632))
 | 
			
		||||
    - MariaDB CLI Update, Go Install Helper & Minor Cleanup [@MickLesk](https://github.com/MickLesk) ([#4793](https://github.com/community-scripts/ProxmoxVE/pull/4793))
 | 
			
		||||
    - Refactor: Remove redundant dependencies & unify unzip usage [@MickLesk](https://github.com/MickLesk) ([#4780](https://github.com/community-scripts/ProxmoxVE/pull/4780))
 | 
			
		||||
    - Refactor: Remove gpg / gnupg from script base [@MickLesk](https://github.com/MickLesk) ([#4775](https://github.com/community-scripts/ProxmoxVE/pull/4775))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - pulse: correct url in note [@xb00tt](https://github.com/xb00tt) ([#4809](https://github.com/community-scripts/ProxmoxVE/pull/4809))
 | 
			
		||||
 | 
			
		||||
## 2025-05-27
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Backrest ([#4766](https://github.com/community-scripts/ProxmoxVE/pull/4766))
 | 
			
		||||
- Pulse ([#4728](https://github.com/community-scripts/ProxmoxVE/pull/4728))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Alpine-Vaultwarden: Increase min disk requirements to 1GB [@neyzm](https://github.com/neyzm) ([#4764](https://github.com/community-scripts/ProxmoxVE/pull/4764))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - lldap: fix update-check [@MickLesk](https://github.com/MickLesk) ([#4742](https://github.com/community-scripts/ProxmoxVE/pull/4742))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Big NodeJS Update: Use Helper Function on all Install-Scripts [@MickLesk](https://github.com/MickLesk) ([#4744](https://github.com/community-scripts/ProxmoxVE/pull/4744))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - merge MariaDB to tools.func Installer [@MickLesk](https://github.com/MickLesk) ([#4753](https://github.com/community-scripts/ProxmoxVE/pull/4753))
 | 
			
		||||
    - merge PostgreSQL to tools.func Installer [@MickLesk](https://github.com/MickLesk) ([#4752](https://github.com/community-scripts/ProxmoxVE/pull/4752))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Increase default RAM allocation for BunkerWeb to 8192MB [@TheophileDiot](https://github.com/TheophileDiot) ([#4762](https://github.com/community-scripts/ProxmoxVE/pull/4762))
 | 
			
		||||
 | 
			
		||||
## 2025-05-26
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Argus ([#4717](https://github.com/community-scripts/ProxmoxVE/pull/4717))
 | 
			
		||||
- Kasm ([#4716](https://github.com/community-scripts/ProxmoxVE/pull/4716))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Excalidraw: increase HDD to 10GB [@MickLesk](https://github.com/MickLesk) ([#4718](https://github.com/community-scripts/ProxmoxVE/pull/4718))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - BREAKING CHANGE: Fix PocketID for v1.0.0 [@vhsdream](https://github.com/vhsdream) ([#4711](https://github.com/community-scripts/ProxmoxVE/pull/4711))
 | 
			
		||||
    - InspIRCd: Fix release name in release url [@tremor021](https://github.com/tremor021) ([#4720](https://github.com/community-scripts/ProxmoxVE/pull/4720))
 | 
			
		||||
 | 
			
		||||
## 2025-05-25
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Pelican-panel: back-up database if using sqlite [@bvdberg01](https://github.com/bvdberg01) ([#4700](https://github.com/community-scripts/ProxmoxVE/pull/4700))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Pterodactyl panel read typo [@bvdberg01](https://github.com/bvdberg01) ([#4701](https://github.com/community-scripts/ProxmoxVE/pull/4701))
 | 
			
		||||
 | 
			
		||||
## 2025-05-24
 | 
			
		||||
 | 
			
		||||
## 2025-05-23
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - TYPO: Fix nexcloud to nextcloud (VM) [@Stoufiler](https://github.com/Stoufiler) ([#4670](https://github.com/community-scripts/ProxmoxVE/pull/4670))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Update Icons to selfhst/icons (FreePBX & Configarr) [@MickLesk](https://github.com/MickLesk) ([#4680](https://github.com/community-scripts/ProxmoxVE/pull/4680))
 | 
			
		||||
 | 
			
		||||
### 💥 Breaking Changes
 | 
			
		||||
 | 
			
		||||
  - Remove rtsptoweb (deprecated) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4686](https://github.com/community-scripts/ProxmoxVE/pull/4686))
 | 
			
		||||
 | 
			
		||||
## 2025-05-22
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - FreePBX ([#4648](https://github.com/community-scripts/ProxmoxVE/pull/4648))
 | 
			
		||||
- cloudflare-ddns ([#4647](https://github.com/community-scripts/ProxmoxVE/pull/4647))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - slskd: fix #4649 [@vhsdream](https://github.com/vhsdream) ([#4651](https://github.com/community-scripts/ProxmoxVE/pull/4651))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Paperless-AI: Add RAG chat [@tremor021](https://github.com/tremor021) ([#4635](https://github.com/community-scripts/ProxmoxVE/pull/4635))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 📂 Github
 | 
			
		||||
 | 
			
		||||
    - [gh]: Feature: Header-Generation for vm | tools | addon [@MickLesk](https://github.com/MickLesk) ([#4643](https://github.com/community-scripts/ProxmoxVE/pull/4643))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Commafeed: move to Documents category [@diemade](https://github.com/diemade) ([#4665](https://github.com/community-scripts/ProxmoxVE/pull/4665))
 | 
			
		||||
 | 
			
		||||
## 2025-05-21
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - configarr ([#4620](https://github.com/community-scripts/ProxmoxVE/pull/4620))
 | 
			
		||||
- babybuddy ([#4619](https://github.com/community-scripts/ProxmoxVE/pull/4619))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Alpine-Node-RED: Update Service File [@MickLesk](https://github.com/MickLesk) ([#4628](https://github.com/community-scripts/ProxmoxVE/pull/4628))
 | 
			
		||||
    - RustDesk Server: Fix update for older installs [@tremor021](https://github.com/tremor021) ([#4612](https://github.com/community-scripts/ProxmoxVE/pull/4612))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Tandoor Recipes: Capture version information when installing [@jbolla](https://github.com/jbolla) ([#4633](https://github.com/community-scripts/ProxmoxVE/pull/4633))
 | 
			
		||||
 | 
			
		||||
## 2025-05-20
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - [tools.func]: Update fetch_and_deploy_gh_release function [@tremor021](https://github.com/tremor021) ([#4605](https://github.com/community-scripts/ProxmoxVE/pull/4605))
 | 
			
		||||
- [core] New Features for Config File function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4601](https://github.com/community-scripts/ProxmoxVE/pull/4601))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Website: harmonize all Logos | use jsDelivr CDN links for icons from selfhst/icons repo [@MickLesk](https://github.com/MickLesk) ([#4603](https://github.com/community-scripts/ProxmoxVE/pull/4603))
 | 
			
		||||
 | 
			
		||||
## 2025-05-19
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - rclone ([#4579](https://github.com/community-scripts/ProxmoxVE/pull/4579))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - increase ressources of Homarr (3 vCPU / 6GB RAM) [@MickLesk](https://github.com/MickLesk) ([#4583](https://github.com/community-scripts/ProxmoxVE/pull/4583))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Various unrelated fixes to kimai update script [@jamezpolley](https://github.com/jamezpolley) ([#4549](https://github.com/community-scripts/ProxmoxVE/pull/4549))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - RustDesk Server: Add WebUI [@tremor021](https://github.com/tremor021) ([#4590](https://github.com/community-scripts/ProxmoxVE/pull/4590))
 | 
			
		||||
 | 
			
		||||
## 2025-05-18
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - tools.func - Add function to create self-signed certificates [@tremor021](https://github.com/tremor021) ([#4562](https://github.com/community-scripts/ProxmoxVE/pull/4562))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Homarr: fix the build [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4569](https://github.com/community-scripts/ProxmoxVE/pull/4569))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Fix Dashy Config Path on Frontend [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4570](https://github.com/community-scripts/ProxmoxVE/pull/4570))
 | 
			
		||||
 | 
			
		||||
## 2025-05-17
 | 
			
		||||
 | 
			
		||||
## 2025-05-16
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 💾 Core
 | 
			
		||||
 | 
			
		||||
    - [core] Refactor Config File function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4528](https://github.com/community-scripts/ProxmoxVE/pull/4528))
 | 
			
		||||
    - [core] Fix Bridge detection in Advanced Mode [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4522](https://github.com/community-scripts/ProxmoxVE/pull/4522))
 | 
			
		||||
    - [core] Enable SSH_KEY and SSH without password [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4523](https://github.com/community-scripts/ProxmoxVE/pull/4523))
 | 
			
		||||
 | 
			
		||||
  - #### 📂 Github
 | 
			
		||||
 | 
			
		||||
    - Updates to contributor docs/guide [@tremor021](https://github.com/tremor021) ([#4518](https://github.com/community-scripts/ProxmoxVE/pull/4518))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - Remove bolt.diy script [@tremor021](https://github.com/tremor021) ([#4541](https://github.com/community-scripts/ProxmoxVE/pull/4541))
 | 
			
		||||
 | 
			
		||||
## 2025-05-15
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - bitmagnet ([#4493](https://github.com/community-scripts/ProxmoxVE/pull/4493))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - core: Add TAB3 formatting var to core [@tremor021](https://github.com/tremor021) ([#4496](https://github.com/community-scripts/ProxmoxVE/pull/4496))
 | 
			
		||||
- Update scripts that use "read -p" to properly indent text [@tremor021](https://github.com/tremor021) ([#4498](https://github.com/community-scripts/ProxmoxVE/pull/4498))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - tools.func: fix some things & add ruby default function [@MickLesk](https://github.com/MickLesk) ([#4507](https://github.com/community-scripts/ProxmoxVE/pull/4507))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 💾 Core
 | 
			
		||||
 | 
			
		||||
    - core: fix bridge detection for OVS  [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4495](https://github.com/community-scripts/ProxmoxVE/pull/4495))
 | 
			
		||||
 | 
			
		||||
## 2025-05-14
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - odoo ([#4477](https://github.com/community-scripts/ProxmoxVE/pull/4477))
 | 
			
		||||
- asterisk ([#4468](https://github.com/community-scripts/ProxmoxVE/pull/4468))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - fix: fetch_release_and_deploy function [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4478](https://github.com/community-scripts/ProxmoxVE/pull/4478))
 | 
			
		||||
- Website: re-add documenso & some little bugfixes [@MickLesk](https://github.com/MickLesk) ([#4456](https://github.com/community-scripts/ProxmoxVE/pull/4456))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Add make installation dependency to Actual Budget script [@maciejmatczak](https://github.com/maciejmatczak) ([#4485](https://github.com/community-scripts/ProxmoxVE/pull/4485))
 | 
			
		||||
    - Bookstack: fix copy of themes/uploads/storage [@MickLesk](https://github.com/MickLesk) ([#4457](https://github.com/community-scripts/ProxmoxVE/pull/4457))
 | 
			
		||||
    - Alpine-Rclone: Fix location of passwords file [@tremor021](https://github.com/tremor021) ([#4465](https://github.com/community-scripts/ProxmoxVE/pull/4465))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - monitor-all: improvements - tag based filtering [@grizmin](https://github.com/grizmin) ([#4437](https://github.com/community-scripts/ProxmoxVE/pull/4437))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 📂 Github
 | 
			
		||||
 | 
			
		||||
    - Add Github app for auto PR merge [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4461](https://github.com/community-scripts/ProxmoxVE/pull/4461))
 | 
			
		||||
 | 
			
		||||
## 2025-05-13
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										142
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							@@ -20,79 +20,79 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
    # Check if installation is present | -f for file, -d for folder
 | 
			
		||||
    if [[ ! -d "/opt/2fauth" ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Crawling the new version and checking whether an update is required
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
 | 
			
		||||
        msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        $STD apt-get update
 | 
			
		||||
        $STD apt-get -y upgrade
 | 
			
		||||
 | 
			
		||||
        # Creating Backup
 | 
			
		||||
        msg_info "Creating Backup"
 | 
			
		||||
        mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
			
		||||
        if ! dpkg -l | grep -q 'php8.3'; then
 | 
			
		||||
            cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
 | 
			
		||||
        fi
 | 
			
		||||
        msg_ok "Backup Created"
 | 
			
		||||
 | 
			
		||||
        # Upgrade PHP
 | 
			
		||||
        if ! dpkg -l | grep -q 'php8.3'; then
 | 
			
		||||
            $STD apt-get install -y \
 | 
			
		||||
                lsb-release \
 | 
			
		||||
                gpg
 | 
			
		||||
            curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
 | 
			
		||||
            echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
 | 
			
		||||
            $STD apt-get update
 | 
			
		||||
            $STD apt-get install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
 | 
			
		||||
            sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Execute Update
 | 
			
		||||
        curl -fsSL -o "${RELEASE}.zip" "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
 | 
			
		||||
        unzip -q "${RELEASE}.zip"
 | 
			
		||||
        mv "2FAuth-${RELEASE//v/}/" "/opt/2fauth"
 | 
			
		||||
        mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
 | 
			
		||||
        mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
 | 
			
		||||
        cd "/opt/2fauth" || return
 | 
			
		||||
 | 
			
		||||
        chown -R www-data: "/opt/2fauth"
 | 
			
		||||
        chmod -R 755 "/opt/2fauth"
 | 
			
		||||
 | 
			
		||||
        export COMPOSER_ALLOW_SUPERUSER=1
 | 
			
		||||
        $STD composer install --no-dev --prefer-source
 | 
			
		||||
 | 
			
		||||
        php artisan 2fauth:install
 | 
			
		||||
 | 
			
		||||
        $STD systemctl restart nginx
 | 
			
		||||
 | 
			
		||||
        # Cleaning up
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf "v${RELEASE}.zip"
 | 
			
		||||
        if dpkg -l | grep -q 'php8.2'; then
 | 
			
		||||
            $STD apt-get remove --purge -y php8.2*
 | 
			
		||||
        fi
 | 
			
		||||
        $STD apt-get -y autoremove
 | 
			
		||||
        $STD apt-get -y autoclean
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
        # Last Action
 | 
			
		||||
        echo "${RELEASE}" >/opt/2fauth_version.txt
 | 
			
		||||
        msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  # Check if installation is present | -f for file, -d for folder
 | 
			
		||||
  if [[ ! -d "/opt/2fauth" ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Crawling the new version and checking whether an update is required
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
 | 
			
		||||
    # Creating Backup
 | 
			
		||||
    msg_info "Creating Backup"
 | 
			
		||||
    mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
			
		||||
    if ! dpkg -l | grep -q 'php8.3'; then
 | 
			
		||||
      cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
 | 
			
		||||
    fi
 | 
			
		||||
    msg_ok "Backup Created"
 | 
			
		||||
 | 
			
		||||
    # Upgrade PHP
 | 
			
		||||
    if ! dpkg -l | grep -q 'php8.3'; then
 | 
			
		||||
      $STD apt-get install -y \
 | 
			
		||||
        lsb-release \
 | 
			
		||||
        gpg
 | 
			
		||||
      curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
 | 
			
		||||
      echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" >/etc/apt/sources.list.d/php.list
 | 
			
		||||
      $STD apt-get update
 | 
			
		||||
      $STD apt-get install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
 | 
			
		||||
      sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Execute Update
 | 
			
		||||
    curl -fsSL -o "${RELEASE}.zip" "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
 | 
			
		||||
    $STD unzip "${RELEASE}.zip"
 | 
			
		||||
    mv "2FAuth-${RELEASE//v/}/" "/opt/2fauth"
 | 
			
		||||
    mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
 | 
			
		||||
    mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
 | 
			
		||||
    cd "/opt/2fauth" || return
 | 
			
		||||
 | 
			
		||||
    chown -R www-data: "/opt/2fauth"
 | 
			
		||||
    chmod -R 755 "/opt/2fauth"
 | 
			
		||||
 | 
			
		||||
    export COMPOSER_ALLOW_SUPERUSER=1
 | 
			
		||||
    $STD composer install --no-dev --prefer-source
 | 
			
		||||
 | 
			
		||||
    php artisan 2fauth:install
 | 
			
		||||
 | 
			
		||||
    $STD systemctl restart nginx
 | 
			
		||||
 | 
			
		||||
    # Cleaning up
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf "v${RELEASE}.zip"
 | 
			
		||||
    if dpkg -l | grep -q 'php8.2'; then
 | 
			
		||||
      $STD apt-get remove --purge -y php8.2*
 | 
			
		||||
    fi
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
    # Last Action
 | 
			
		||||
    echo "${RELEASE}" >/opt/2fauth_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    mv /opt/adventurelog/ /opt/adventurelog-backup/
 | 
			
		||||
    curl -fsSL -o /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
 | 
			
		||||
    unzip -q /opt/v${RELEASE}.zip -d /opt/
 | 
			
		||||
    $STD unzip /opt/v${RELEASE}.zip -d /opt/
 | 
			
		||||
    mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
 | 
			
		||||
 | 
			
		||||
    mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										89
									
								
								ct/alpine-bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								ct/alpine-bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
#!/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: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/bitmagnet-io/bitmagnet
 | 
			
		||||
 | 
			
		||||
APP="Alpine-bitmagnet"
 | 
			
		||||
var_tags="${var_tags:-alpine;torrent}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-3}"
 | 
			
		||||
var_os="${var_os:-alpine}"
 | 
			
		||||
var_version="${var_version:-3.21}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/bitmagnet ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat /opt/bitmagnet_version.txt)" ] || [ ! -f /opt/bitmagnet_version.txt ]; then
 | 
			
		||||
    msg_info "Backing up database"
 | 
			
		||||
    rm -f /tmp/backup.sql
 | 
			
		||||
    $STD sudo -u postgres pg_dump \
 | 
			
		||||
      --column-inserts \
 | 
			
		||||
      --data-only \
 | 
			
		||||
      --on-conflict-do-nothing \
 | 
			
		||||
      --rows-per-insert=1000 \
 | 
			
		||||
      --table=metadata_sources \
 | 
			
		||||
      --table=content \
 | 
			
		||||
      --table=content_attributes \
 | 
			
		||||
      --table=content_collections \
 | 
			
		||||
      --table=content_collections_content \
 | 
			
		||||
      --table=torrent_sources \
 | 
			
		||||
      --table=torrents \
 | 
			
		||||
      --table=torrent_files \
 | 
			
		||||
      --table=torrent_hints \
 | 
			
		||||
      --table=torrent_contents \
 | 
			
		||||
      --table=torrent_tags \
 | 
			
		||||
      --table=torrents_torrent_sources \
 | 
			
		||||
      --table=key_values \
 | 
			
		||||
      bitmagnet \
 | 
			
		||||
      >/tmp/backup.sql
 | 
			
		||||
    mv /tmp/backup.sql /opt/
 | 
			
		||||
    msg_ok "Database backed up"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} from $(cat /opt/bitmagnet_version.txt) to ${RELEASE}"
 | 
			
		||||
    $STD apk -U upgrade
 | 
			
		||||
    $STD service bitmagnet stop
 | 
			
		||||
    [ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
 | 
			
		||||
    [ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
 | 
			
		||||
    rm -rf /opt/bitmagnet/*
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
    tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
 | 
			
		||||
    cd /opt/bitmagnet
 | 
			
		||||
    VREL=v$RELEASE
 | 
			
		||||
    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
			
		||||
    chmod +x bitmagnet
 | 
			
		||||
    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
			
		||||
    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
    echo "${RELEASE}" >/opt/bitmagnet_version.txt
 | 
			
		||||
    $STD service bitmagnet start
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 IP:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3333${CL}"
 | 
			
		||||
@@ -36,7 +36,7 @@ function update_script() {
 | 
			
		||||
    curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
 | 
			
		||||
    mkdir -p /usr/share/nginx/html
 | 
			
		||||
    rm -rf /usr/share/nginx/html/*
 | 
			
		||||
    unzip -q it-tools.zip -d /tmp/it-tools
 | 
			
		||||
    $STD unzip it-tools.zip -d /tmp/it-tools
 | 
			
		||||
    cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
 | 
			
		||||
    rm -rf /tmp/it-tools
 | 
			
		||||
    rm -f it-tools.zip
 | 
			
		||||
 
 | 
			
		||||
@@ -32,10 +32,6 @@ function update_script() {
 | 
			
		||||
  $STD npm install -g --unsafe-perm node-red
 | 
			
		||||
  msg_ok "Updated Node-RED"
 | 
			
		||||
 | 
			
		||||
  msg_info "Restarting Node-RED"
 | 
			
		||||
  $STD rc-service nodered restart
 | 
			
		||||
  msg_ok "Restarted Node-RED"
 | 
			
		||||
 | 
			
		||||
  exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,6 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat /opt/rclone_version.txt)" ] || [ ! -f /opt/rclone_version.txt ]; then
 | 
			
		||||
    msg_info "Updating ${APP} LXC"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Slaviša Arežina (tremor021)
 | 
			
		||||
# Author: Slaviša Arežina (tremor021) | Co-Author: Stavros (steveiliop56)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/steveiliop56/tinyauth
 | 
			
		||||
 | 
			
		||||
APP="Alpine-tinyauth"
 | 
			
		||||
APP="Alpine-Tinyauth"
 | 
			
		||||
var_tags="${var_tags:-alpine;auth}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-3}"
 | 
			
		||||
var_ram="${var_ram:-256}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-alpine}"
 | 
			
		||||
var_version="${var_version:-3.21}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -25,34 +25,23 @@ function update_script() {
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Alpine Packages"
 | 
			
		||||
  msg_info "Updating packages"
 | 
			
		||||
  $STD apk -U upgrade
 | 
			
		||||
  msg_ok "Updated Alpine Packages"
 | 
			
		||||
  msg_ok "Updated packages"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating tinyauth"
 | 
			
		||||
  msg_info "Updating Tinyauth"
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then
 | 
			
		||||
    $STD service tinyauth stop
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    cp /opt/tinyauth/.env /opt
 | 
			
		||||
    rm -rf /opt/tinyauth
 | 
			
		||||
    mkdir -p /opt/tinyauth
 | 
			
		||||
    curl -fsSL "https://github.com/steveiliop56/tinyauth/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
    tar -xzf "$temp_file" -C /opt/tinyauth --strip-components=1
 | 
			
		||||
    cd /opt/tinyauth/frontend
 | 
			
		||||
    $STD bun install
 | 
			
		||||
    $STD bun run build
 | 
			
		||||
    mv dist /opt/tinyauth/internal/assets/
 | 
			
		||||
    cd /opt/tinyauth
 | 
			
		||||
    $STD go mod download
 | 
			
		||||
    CGO_ENABLED=0 go build -ldflags "-s -w"
 | 
			
		||||
    cp /opt/.env /opt/tinyauth
 | 
			
		||||
    echo "${RELEASE}" >/opt/tinyauth_version.txt
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
    msg_info "Restarting tinyauth"
 | 
			
		||||
    rm -f /opt/tinyauth/tinyauth
 | 
			
		||||
    curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
 | 
			
		||||
    chmod +x /opt/tinyauth/tinyauth
 | 
			
		||||
    echo "${RELEASE}" > /opt/tinyauth_version.txt
 | 
			
		||||
    msg_info "Restarting Tinyauth"
 | 
			
		||||
    $STD service tinyauth start
 | 
			
		||||
    msg_ok "Restarted tinyauth"
 | 
			
		||||
    msg_ok "Updated tinyauth"
 | 
			
		||||
    msg_ok "Restarted Tinyauth"
 | 
			
		||||
    msg_ok "Updated Tinyauth"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ APP="Alpine-Vaultwarden"
 | 
			
		||||
var_tags="${var_tags:-alpine;vault}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-256}"
 | 
			
		||||
var_disk="${var_disk:-0.5}"
 | 
			
		||||
var_disk="${var_disk:-1}"
 | 
			
		||||
var_os="${var_os:-alpine}"
 | 
			
		||||
var_version="${var_version:-3.21}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -66,4 +66,4 @@ description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${APP} should be reachable by going to the following URL.
 | 
			
		||||
         ${BL}http://${IP}:8000${CL} \n"
 | 
			
		||||
         ${BL}https://${IP}:8000${CL} \n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										53
									
								
								ct/argus.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								ct/argus.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
#!/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: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://release-argus.io/
 | 
			
		||||
 | 
			
		||||
APP="Argus"
 | 
			
		||||
var_tags="${var_tags:-watcher}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-3}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/argus ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
    rm -f /opt/argus/Argus
 | 
			
		||||
    curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
 | 
			
		||||
    chmod +x /opt/argus/Argus
 | 
			
		||||
    systemctl restart argus
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "${APP} is already up to date (${RELEASE})"
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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}:8080${CL}"
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: michelroegl-brunner
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://umbrel.com/
 | 
			
		||||
# Source: https://asterisk.org/
 | 
			
		||||
 | 
			
		||||
APP="Umbrel"
 | 
			
		||||
var_tags="${var_tags:-os}"
 | 
			
		||||
APP="Asterisk"
 | 
			
		||||
var_tags="${var_tags:-telephone;pbx}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -23,10 +23,7 @@ function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    msg_info "Updating ${APP} LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated ${APP} LXC"
 | 
			
		||||
    msg_error "No Update function provided for ${APP} LXC"
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -35,6 +32,4 @@ build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized! (manual reboot is required!)${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
							
								
								
									
										86
									
								
								ct/babybuddy.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								ct/babybuddy.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,86 @@
 | 
			
		||||
#!/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: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/babybuddy/babybuddy
 | 
			
		||||
 | 
			
		||||
APP="Baby Buddy"
 | 
			
		||||
var_tags="${var_tags:-baby}"
 | 
			
		||||
var_disk="${var_disk:-5}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/babybuddy ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/babybuddy_version.txt)" ]]; then
 | 
			
		||||
    setup_uv
 | 
			
		||||
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop nginx
 | 
			
		||||
    systemctl stop uwsgi
 | 
			
		||||
    msg_ok "Services Stopped"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning old files"
 | 
			
		||||
    cp babybuddy/settings/production.py /tmp/production.py.bak
 | 
			
		||||
    find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
 | 
			
		||||
    msg_ok "Cleaned old files"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
    cd /opt/babybuddy
 | 
			
		||||
    tar zxf "$temp_file" --strip-components=1 -C /opt/babybuddy
 | 
			
		||||
    mv /tmp/production.py.bak babybuddy/settings/production.py
 | 
			
		||||
    cd /opt/babybuddy
 | 
			
		||||
    source .venv/bin/activate
 | 
			
		||||
    $STD uv pip install -r requirements.txt
 | 
			
		||||
    $STD python manage.py migrate
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Fixing permissions"
 | 
			
		||||
    chown -R www-data:www-data /opt/data
 | 
			
		||||
    chmod 640 /opt/data/db.sqlite3
 | 
			
		||||
    chmod 750 /opt/data
 | 
			
		||||
    msg_ok "Permissions fixed"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start uwsgi
 | 
			
		||||
    systemctl start nginx
 | 
			
		||||
    msg_ok "Services Started"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  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}${CL}"
 | 
			
		||||
							
								
								
									
										66
									
								
								ct/backrest.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								ct/backrest.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
#!/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: ksad (enirys31)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://garethgeorge.github.io/backrest/
 | 
			
		||||
 | 
			
		||||
APP="Backrest"
 | 
			
		||||
var_tags="${var_tags:-backup}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/backrest ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/garethgeorge/backrest/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
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop backrest
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    rm -f /opt/backrest/bin/backrest
 | 
			
		||||
    curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
 | 
			
		||||
    tar xzf $temp_file -C /opt/backrest/bin
 | 
			
		||||
    chmod +x /opt/backrest/bin/backrest
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start backrest
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
    msg_ok "Cleaned up"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  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}:9898${CL}"
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    cd /opt
 | 
			
		||||
    curl -fsSL "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip" -o $(basename "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip")
 | 
			
		||||
    mv /opt/baikal /opt/baikal-backup
 | 
			
		||||
    unzip -o -q "baikal-${RELEASE}.zip"
 | 
			
		||||
    $STD unzip -o "baikal-${RELEASE}.zip"
 | 
			
		||||
    cp -r /opt/baikal-backup/config/baikal.yaml /opt/baikal/config/
 | 
			
		||||
    cp -r /opt/baikal-backup/Specific/ /opt/baikal/
 | 
			
		||||
    chown -R www-data:www-data /opt/baikal/
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ function update_script() {
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv /opt/barcodebuddy/ /opt/barcodebuddy-backup
 | 
			
		||||
    curl -fsSL "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
    unzip -q "v${RELEASE}.zip"
 | 
			
		||||
    $STD unzip "v${RELEASE}.zip"
 | 
			
		||||
    mv "/opt/barcodebuddy-${RELEASE}" /opt/barcodebuddy
 | 
			
		||||
    cp -r /opt/barcodebuddy-backup/data/. /opt/barcodebuddy/data
 | 
			
		||||
    chown -R www-data:www-data /opt/barcodebuddy/data
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										98
									
								
								ct/bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								ct/bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,98 @@
 | 
			
		||||
#!/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: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/bitmagnet/bitmagnet
 | 
			
		||||
 | 
			
		||||
APP="Bitmagnet"
 | 
			
		||||
var_tags="${var_tags:-os}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/bitmagnet ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/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
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop bitmagnet-web
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up database"
 | 
			
		||||
    rm -f /tmp/backup.sql
 | 
			
		||||
    $STD sudo -u postgres pg_dump \
 | 
			
		||||
      --column-inserts \
 | 
			
		||||
      --data-only \
 | 
			
		||||
      --on-conflict-do-nothing \
 | 
			
		||||
      --rows-per-insert=1000 \
 | 
			
		||||
      --table=metadata_sources \
 | 
			
		||||
      --table=content \
 | 
			
		||||
      --table=content_attributes \
 | 
			
		||||
      --table=content_collections \
 | 
			
		||||
      --table=content_collections_content \
 | 
			
		||||
      --table=torrent_sources \
 | 
			
		||||
      --table=torrents \
 | 
			
		||||
      --table=torrent_files \
 | 
			
		||||
      --table=torrent_hints \
 | 
			
		||||
      --table=torrent_contents \
 | 
			
		||||
      --table=torrent_tags \
 | 
			
		||||
      --table=torrents_torrent_sources \
 | 
			
		||||
      --table=key_values \
 | 
			
		||||
      bitmagnet \
 | 
			
		||||
      >/tmp/backup.sql
 | 
			
		||||
    mv /tmp/backup.sql /opt/
 | 
			
		||||
    msg_ok "Database backed up"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    [ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
 | 
			
		||||
    [ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
 | 
			
		||||
    rm -rf /opt/bitmagnet/*
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
    tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
 | 
			
		||||
    cd /opt/bitmagnet
 | 
			
		||||
    VREL=v$RELEASE
 | 
			
		||||
    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
			
		||||
    chmod +x bitmagnet
 | 
			
		||||
    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
			
		||||
    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start bitmagnet-web
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  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}:3333${CL}"
 | 
			
		||||
@@ -1,71 +0,0 @@
 | 
			
		||||
#!/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: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/stackblitz-labs/bolt.diy/
 | 
			
		||||
 | 
			
		||||
APP="boltdiy"
 | 
			
		||||
TAGS="code;ai"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-3072}"
 | 
			
		||||
var_disk="${var_disk:-6}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/bolt.diy ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/stackblitz-labs/bolt.diy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat /opt/boltdiy_version.txt)" ]] || [[ ! -f /opt/boltdiy_version.txt ]]; then
 | 
			
		||||
        msg_info "Stopping $APP"
 | 
			
		||||
        systemctl stop boltdiy
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
        temp_dir=$(mktemp -d)
 | 
			
		||||
        temp_file=$(mktemp)
 | 
			
		||||
        cd $temp_dir
 | 
			
		||||
curl -fsSL "https://github.com/stackblitz-labs/bolt.diy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
        tar xzf $temp_file
 | 
			
		||||
        cp -rf bolt.diy-${RELEASE}/* /opt/bolt.diy
 | 
			
		||||
        cd /opt/bolt.diy
 | 
			
		||||
        $STD pnpm install
 | 
			
		||||
        msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting $APP"
 | 
			
		||||
        systemctl start boltdiy
 | 
			
		||||
        msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf $temp_file
 | 
			
		||||
        rm -rf $temp_dir
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
        echo "${RELEASE}" >/opt/boltdiy_version.txt
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    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}:5173${CL}"
 | 
			
		||||
@@ -36,12 +36,12 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    mv /opt/bookstack /opt/bookstack-backup
 | 
			
		||||
    curl -fsSL "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" -o "/opt/BookStack-${RELEASE}.zip"
 | 
			
		||||
    unzip -q "/opt/BookStack-${RELEASE}.zip" -d /opt
 | 
			
		||||
    $STD unzip "/opt/BookStack-${RELEASE}.zip" -d /opt
 | 
			
		||||
    mv "/opt/BookStack-${RELEASE}" /opt/bookstack
 | 
			
		||||
    cp /opt/bookstack-backup/.env /opt/bookstack/.env
 | 
			
		||||
    cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ || true
 | 
			
		||||
    cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ || true
 | 
			
		||||
    cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ || true
 | 
			
		||||
    [[ -d /opt/bookstack-backup/public/uploads ]] && cp -a /opt/bookstack-backup/public/uploads/. /opt/bookstack/public/uploads/
 | 
			
		||||
    [[ -d /opt/bookstack-backup/storage/uploads ]] && cp -a /opt/bookstack-backup/storage/uploads/. /opt/bookstack/storage/uploads/
 | 
			
		||||
    [[ -d /opt/bookstack-backup/themes ]] && cp -a /opt/bookstack-backup/themes/. /opt/bookstack/themes/
 | 
			
		||||
    cd /opt/bookstack
 | 
			
		||||
    export COMPOSER_ALLOW_SUPERUSER=1
 | 
			
		||||
    $STD composer install --no-dev
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
APP="BunkerWeb"
 | 
			
		||||
var_tags="${var_tags:-webserver}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_ram="${var_ram:-8192}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								ct/cloudflare-ddns.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								ct/cloudflare-ddns.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
#!/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: edoardop13
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/favonia/cloudflare-ddns
 | 
			
		||||
 | 
			
		||||
APP="Cloudflare-DDNS"
 | 
			
		||||
var_tags="${var_tags:-network}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-3}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
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/cloudflare-ddns.service ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_error "There is no update function for ${APP}."
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
@@ -42,7 +42,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    curl -fsSL "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip" -o $(basename "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip")
 | 
			
		||||
    unzip -q commafeed-"${RELEASE}"-h2-jvm.zip
 | 
			
		||||
    $STD unzip commafeed-"${RELEASE}"-h2-jvm.zip
 | 
			
		||||
    rsync -a --exclude 'data/' commafeed-"${RELEASE}"-h2/ /opt/commafeed/
 | 
			
		||||
    rm -rf commafeed-"${RELEASE}"-h2 commafeed-"${RELEASE}"-h2-jvm.zip
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										66
									
								
								ct/configarr.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								ct/configarr.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
#!/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: finkerle
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/raydak-labs/configarr
 | 
			
		||||
 | 
			
		||||
APP="Configarr"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/configarr ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/configarr_version.txt)" ]] || [[ ! -f /opt/configarr_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop configarr-task.timer
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    mkdir -p /opt/backup/
 | 
			
		||||
    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
			
		||||
    rm -rf /opt/configarr
 | 
			
		||||
    fetch_and_deploy_gh_release "raydak-labs/configarr"
 | 
			
		||||
    mv /opt/backup/* /opt/configarr/
 | 
			
		||||
    cd /opt/configarr
 | 
			
		||||
    $STD pnpm install
 | 
			
		||||
    $STD pnpm run build
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start configarr-task.timer
 | 
			
		||||
    msg_ok "Started configarr"
 | 
			
		||||
 | 
			
		||||
    rm -rf /opt/backup
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  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 (no web-ui):${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8989${CL}"
 | 
			
		||||
@@ -46,7 +46,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Crafty-Controller to v${RELEASE}"
 | 
			
		||||
    curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
 | 
			
		||||
    unzip -q crafty-4-v${RELEASE}.zip
 | 
			
		||||
    $STD unzip crafty-4-v${RELEASE}.zip
 | 
			
		||||
    cp -a crafty-4-v${RELEASE}/. /opt/crafty-controller/crafty/crafty-4/
 | 
			
		||||
    rm -rf crafty-4-v${RELEASE}
 | 
			
		||||
    cd /opt/crafty-controller/crafty/crafty-4
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/documenso
 | 
			
		||||
    cd /opt
 | 
			
		||||
    curl -fsSL "https://github.com/documenso/documenso/archive/refs/tags/v${RELEASE}.zip" -o v${RELEASE}.zip
 | 
			
		||||
    unzip -q v${RELEASE}.zip
 | 
			
		||||
    $STD unzip v${RELEASE}.zip
 | 
			
		||||
    mv documenso-${RELEASE} /opt/documenso
 | 
			
		||||
    cd /opt/documenso
 | 
			
		||||
    mv /opt/.env /opt/documenso/.env
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ APP="Excalidraw"
 | 
			
		||||
TAGS="diagrams"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-3072}"
 | 
			
		||||
var_disk="${var_disk:-6}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -20,46 +20,46 @@ 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/excalidraw ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then
 | 
			
		||||
        msg_info "Stopping $APP"
 | 
			
		||||
        systemctl stop excalidraw
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
        cd /tmp
 | 
			
		||||
        temp_file=$(mktemp)
 | 
			
		||||
curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
        tar xzf $temp_file
 | 
			
		||||
        rm -rf /opt/excalidraw
 | 
			
		||||
        mv excalidraw-${RELEASE} /opt/excalidraw
 | 
			
		||||
        cd /opt/excalidraw
 | 
			
		||||
        $STD yarn
 | 
			
		||||
        msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting $APP"
 | 
			
		||||
        systemctl start excalidraw
 | 
			
		||||
        msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf $temp_file
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
        echo "${RELEASE}" >/opt/excalidraw_version.txt
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  if [[ ! -d /opt/excalidraw ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop excalidraw
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    cd /tmp
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
    tar xzf $temp_file
 | 
			
		||||
    rm -rf /opt/excalidraw
 | 
			
		||||
    mv excalidraw-${RELEASE} /opt/excalidraw
 | 
			
		||||
    cd /opt/excalidraw
 | 
			
		||||
    $STD yarn
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start excalidraw
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf $temp_file
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
    echo "${RELEASE}" >/opt/excalidraw_version.txt
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating $APP to latest version"
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL https://fileflows.com/downloads/zip -o "$temp_file"
 | 
			
		||||
    unzip -oq -d /opt/fileflows "$temp_file"
 | 
			
		||||
    $STD unzip -o -d /opt/fileflows "$temp_file"
 | 
			
		||||
    msg_ok "Updated $APP to latest version"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
 
 | 
			
		||||
@@ -39,8 +39,8 @@ function update_script() {
 | 
			
		||||
        cp /opt/fluid-calendar/.env /opt/fluid.env
 | 
			
		||||
        rm -rf /opt/fluid-calendar
 | 
			
		||||
        tmp_file=$(mktemp)
 | 
			
		||||
curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
 | 
			
		||||
        unzip -q $tmp_file
 | 
			
		||||
        curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
 | 
			
		||||
        $STD unzip $tmp_file
 | 
			
		||||
        mv ${APP}-${RELEASE}/ /opt/fluid-calendar
 | 
			
		||||
        mv /opt/fluid.env /opt/fluid-calendar/.env
 | 
			
		||||
        cd /opt/fluid-calendar
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Arian Nasr (arian-nasr)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/deepch/RTSPtoWeb
 | 
			
		||||
# Source: https://www.freepbx.org/
 | 
			
		||||
 | 
			
		||||
APP="RTSPtoWeb"
 | 
			
		||||
var_tags="${var_tags:-media}"
 | 
			
		||||
APP="FreePBX"
 | 
			
		||||
var_tags="pbx;voip;telephony"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -23,14 +23,12 @@ function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /var ]]; then
 | 
			
		||||
 | 
			
		||||
    if [[ ! -f /lib/systemd/system/freepbx.service ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated $APP LXC"
 | 
			
		||||
    msg_error "Currently we don't provide an update function for this ${APP}."
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -41,4 +39,4 @@ 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}:8083${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
							
								
								
									
										32
									
								
								ct/go2rtc.sh
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								ct/go2rtc.sh
									
									
									
									
									
								
							@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: https://github.com/AlexxIT/go2rtc
 | 
			
		||||
 | 
			
		||||
APP="go2rtc"
 | 
			
		||||
var_tags="${var_tags:-recorder;video}"
 | 
			
		||||
var_tags="${var_tags:-streaming;video}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
@@ -20,22 +20,22 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/go2rtc ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    systemctl stop go2rtc
 | 
			
		||||
    cd /opt/go2rtc
 | 
			
		||||
    rm go2rtc_linux_amd64
 | 
			
		||||
    curl -fsSL "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64" -o $(basename "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64")
 | 
			
		||||
    chmod +x go2rtc_linux_amd64
 | 
			
		||||
    systemctl start go2rtc
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/go2rtc ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP"
 | 
			
		||||
  systemctl stop go2rtc
 | 
			
		||||
  cd /opt/go2rtc
 | 
			
		||||
  rm go2rtc_linux_amd64
 | 
			
		||||
  curl -fsSL "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64" -o $(basename "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64")
 | 
			
		||||
  chmod +x go2rtc_linux_amd64
 | 
			
		||||
  systemctl start go2rtc
 | 
			
		||||
  msg_ok "Updated $APP"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cd /opt/gotify
 | 
			
		||||
    curl -fsSL "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip" -o $(basename "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip")
 | 
			
		||||
    unzip -oq gotify-linux-amd64.zip
 | 
			
		||||
    $STD unzip -o gotify-linux-amd64.zip
 | 
			
		||||
    rm -rf gotify-linux-amd64.zip
 | 
			
		||||
    chmod +x gotify-linux-amd64
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
			
		||||
    rm -rf 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")
 | 
			
		||||
    unzip -q v$RELEASE.zip
 | 
			
		||||
    $STD unzip v$RELEASE.zip
 | 
			
		||||
    mv grist-core-${RELEASE} grist
 | 
			
		||||
 | 
			
		||||
    mkdir -p grist/docs
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/alpine-bitmagnet
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-bitmagnet
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___    __      _                  __    _ __                                   __ 
 | 
			
		||||
   /   |  / /___  (_)___  ___        / /_  (_) /_____ ___  ____ _____ _____  ___  / /_
 | 
			
		||||
  / /| | / / __ \/ / __ \/ _ \______/ __ \/ / __/ __ `__ \/ __ `/ __ `/ __ \/ _ \/ __/
 | 
			
		||||
 / ___ |/ / /_/ / / / / /  __/_____/ /_/ / / /_/ / / / / / /_/ / /_/ / / / /  __/ /_  
 | 
			
		||||
/_/  |_/_/ .___/_/_/ /_/\___/     /_.___/_/\__/_/ /_/ /_/\__,_/\__, /_/ /_/\___/\__/  
 | 
			
		||||
        /_/                                                   /____/                  
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
    ___    __      _                  __  _                         __  __  
 | 
			
		||||
   /   |  / /___  (_)___  ___        / /_(_)___  __  ______ ___  __/ /_/ /_ 
 | 
			
		||||
  / /| | / / __ \/ / __ \/ _ \______/ __/ / __ \/ / / / __ `/ / / / __/ __ \
 | 
			
		||||
 / ___ |/ / /_/ / / / / /  __/_____/ /_/ / / / / /_/ / /_/ / /_/ / /_/ / / /
 | 
			
		||||
/_/  |_/_/ .___/_/_/ /_/\___/      \__/_/_/ /_/\__, /\__,_/\__,_/\__/_/ /_/ 
 | 
			
		||||
    ___    __      _                _______                         __  __  
 | 
			
		||||
   /   |  / /___  (_)___  ___      /_  __(_)___  __  ______ ___  __/ /_/ /_ 
 | 
			
		||||
  / /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ / / / __ `/ / / / __/ __ \
 | 
			
		||||
 / ___ |/ / /_/ / / / / /  __/_____/ / / / / / / /_/ / /_/ / /_/ / /_/ / / /
 | 
			
		||||
/_/  |_/_/ .___/_/_/ /_/\___/     /_/ /_/_/ /_/\__, /\__,_/\__,_/\__/_/ /_/ 
 | 
			
		||||
        /_/                                   /____/                        
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/argus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/argus
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___                         
 | 
			
		||||
   /   |  _________ ___  _______
 | 
			
		||||
  / /| | / ___/ __ `/ / / / ___/
 | 
			
		||||
 / ___ |/ /  / /_/ / /_/ (__  ) 
 | 
			
		||||
/_/  |_/_/   \__, /\__,_/____/  
 | 
			
		||||
            /____/              
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/asterisk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/asterisk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___         __            _      __  
 | 
			
		||||
   /   |  _____/ /____  _____(_)____/ /__
 | 
			
		||||
  / /| | / ___/ __/ _ \/ ___/ / ___/ //_/
 | 
			
		||||
 / ___ |(__  ) /_/  __/ /  / (__  ) ,<   
 | 
			
		||||
/_/  |_/____/\__/\___/_/  /_/____/_/|_|  
 | 
			
		||||
                                         
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/babybuddy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/babybuddy
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____        __             ____            __    __     
 | 
			
		||||
   / __ )____ _/ /_  __  __   / __ )__  ______/ /___/ /_  __
 | 
			
		||||
  / __  / __ `/ __ \/ / / /  / __  / / / / __  / __  / / / /
 | 
			
		||||
 / /_/ / /_/ / /_/ / /_/ /  / /_/ / /_/ / /_/ / /_/ / /_/ / 
 | 
			
		||||
/_____/\__,_/_.___/\__, /  /_____/\__,_/\__,_/\__,_/\__, /  
 | 
			
		||||
                  /____/                           /____/   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/backrest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/backrest
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____             __                  __ 
 | 
			
		||||
   / __ )____ ______/ /__________  _____/ /_
 | 
			
		||||
  / __  / __ `/ ___/ //_/ ___/ _ \/ ___/ __/
 | 
			
		||||
 / /_/ / /_/ / /__/ ,< / /  /  __(__  ) /_  
 | 
			
		||||
/_____/\__,_/\___/_/|_/_/   \___/____/\__/  
 | 
			
		||||
                                            
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/bitmagnet
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/bitmagnet
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____  _ __                                   __ 
 | 
			
		||||
   / __ )(_) /_____ ___  ____ _____ _____  ___  / /_
 | 
			
		||||
  / __  / / __/ __ `__ \/ __ `/ __ `/ __ \/ _ \/ __/
 | 
			
		||||
 / /_/ / / /_/ / / / / / /_/ / /_/ / / / /  __/ /_  
 | 
			
		||||
/_____/_/\__/_/ /_/ /_/\__,_/\__, /_/ /_/\___/\__/  
 | 
			
		||||
                            /____/                  
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
    __          ____      ___      
 | 
			
		||||
   / /_  ____  / / /_____/ (_)_  __
 | 
			
		||||
  / __ \/ __ \/ / __/ __  / / / / /
 | 
			
		||||
 / /_/ / /_/ / / /_/ /_/ / / /_/ / 
 | 
			
		||||
/_.___/\____/_/\__/\__,_/_/\__, /  
 | 
			
		||||
                          /____/   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/cloudflare-ddns
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/cloudflare-ddns
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   ________                ________                      ____  ____  _   _______
 | 
			
		||||
  / ____/ /___  __  ______/ / __/ /___ _________        / __ \/ __ \/ | / / ___/
 | 
			
		||||
 / /   / / __ \/ / / / __  / /_/ / __ `/ ___/ _ \______/ / / / / / /  |/ /\__ \ 
 | 
			
		||||
/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / /  /  __/_____/ /_/ / /_/ / /|  /___/ / 
 | 
			
		||||
\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/   \___/     /_____/_____/_/ |_//____/  
 | 
			
		||||
                                                                                
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/configarr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/configarr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   ______            _____                      
 | 
			
		||||
  / ____/___  ____  / __(_)___ _____ ___________
 | 
			
		||||
 / /   / __ \/ __ \/ /_/ / __ `/ __ `/ ___/ ___/
 | 
			
		||||
/ /___/ /_/ / / / / __/ / /_/ / /_/ / /  / /    
 | 
			
		||||
\____/\____/_/ /_/_/ /_/\__, /\__,_/_/  /_/     
 | 
			
		||||
                       /____/                   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/freepbx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/freepbx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ______               ____  ____ _  __
 | 
			
		||||
   / ____/_______  ___  / __ \/ __ ) |/ /
 | 
			
		||||
  / /_  / ___/ _ \/ _ \/ /_/ / __  |   / 
 | 
			
		||||
 / __/ / /  /  __/  __/ ____/ /_/ /   |  
 | 
			
		||||
/_/   /_/   \___/\___/_/   /_____/_/|_|  
 | 
			
		||||
                                         
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
    __  __                               
 | 
			
		||||
   / / / /___  ____ ___  ____ ___________
 | 
			
		||||
  / /_/ / __ \/ __ `__ \/ __ `/ ___/ ___/
 | 
			
		||||
 / __  / /_/ / / / / / / /_/ / /  / /    
 | 
			
		||||
    __                                   
 | 
			
		||||
   / /_  ____  ____ ___  ____ ___________
 | 
			
		||||
  / __ \/ __ \/ __ `__ \/ __ `/ ___/ ___/
 | 
			
		||||
 / / / / /_/ / / / / / / /_/ / /  / /    
 | 
			
		||||
/_/ /_/\____/_/ /_/ /_/\__,_/_/  /_/     
 | 
			
		||||
                                         
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/kasm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/kasm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    __ __                   
 | 
			
		||||
   / //_/___ __________ ___ 
 | 
			
		||||
  / ,< / __ `/ ___/ __ `__ \
 | 
			
		||||
 / /| / /_/ (__  ) / / / / /
 | 
			
		||||
/_/ |_\__,_/____/_/ /_/ /_/ 
 | 
			
		||||
                            
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/oauth2-proxy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/oauth2-proxy
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
                     __  __   ___                                   
 | 
			
		||||
  ____  ____ ___  __/ /_/ /_ |__ \      ____  _________  _  ____  __
 | 
			
		||||
 / __ \/ __ `/ / / / __/ __ \__/ /_____/ __ \/ ___/ __ \| |/_/ / / /
 | 
			
		||||
/ /_/ / /_/ / /_/ / /_/ / / / __/_____/ /_/ / /  / /_/ />  </ /_/ / 
 | 
			
		||||
\____/\__,_/\__,_/\__/_/ /_/____/    / .___/_/   \____/_/|_|\__, /  
 | 
			
		||||
                                    /_/                    /____/   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/odoo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/odoo
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   ____      __          
 | 
			
		||||
  / __ \____/ /___  ____ 
 | 
			
		||||
 / / / / __  / __ \/ __ \
 | 
			
		||||
/ /_/ / /_/ / /_/ / /_/ /
 | 
			
		||||
\____/\__,_/\____/\____/ 
 | 
			
		||||
                         
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/pulse
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/pulse
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____        __        
 | 
			
		||||
   / __ \__  __/ /_______ 
 | 
			
		||||
  / /_/ / / / / / ___/ _ \
 | 
			
		||||
 / ____/ /_/ / (__  )  __/
 | 
			
		||||
/_/    \__,_/_/____/\___/ 
 | 
			
		||||
                          
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/rclone
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/rclone
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____       __               
 | 
			
		||||
   / __ \_____/ /___  ____  ___ 
 | 
			
		||||
  / /_/ / ___/ / __ \/ __ \/ _ \
 | 
			
		||||
 / _, _/ /__/ / /_/ / / / /  __/
 | 
			
		||||
/_/ |_|\___/_/\____/_/ /_/\___/ 
 | 
			
		||||
                                
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
    ____  ___________ ____  __      _       __     __  
 | 
			
		||||
   / __ \/_  __/ ___// __ \/ /_____| |     / /__  / /_ 
 | 
			
		||||
  / /_/ / / /  \__ \/ /_/ / __/ __ \ | /| / / _ \/ __ \
 | 
			
		||||
 / _, _/ / /  ___/ / ____/ /_/ /_/ / |/ |/ /  __/ /_/ /
 | 
			
		||||
/_/ |_| /_/  /____/_/    \__/\____/|__/|__/\___/_.___/ 
 | 
			
		||||
                                                       
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
   __  __          __              __
 | 
			
		||||
  / / / /___ ___  / /_  ________  / /
 | 
			
		||||
 / / / / __ `__ \/ __ \/ ___/ _ \/ / 
 | 
			
		||||
/ /_/ / / / / / / /_/ / /  /  __/ /  
 | 
			
		||||
\____/_/ /_/ /_/_.___/_/   \___/_/   
 | 
			
		||||
                                     
 | 
			
		||||
@@ -47,7 +47,7 @@ function update_script() {
 | 
			
		||||
    fi
 | 
			
		||||
    rm -rf /opt/hoarder
 | 
			
		||||
    curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
			
		||||
    unzip -q v"${RELEASE}".zip
 | 
			
		||||
    $STD unzip v"${RELEASE}".zip
 | 
			
		||||
    mv karakeep-"${RELEASE}" /opt/hoarder
 | 
			
		||||
    cd /opt/hoarder/apps/web
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								ct/homarr.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/homarr.sh
									
									
									
									
									
								
							@@ -5,10 +5,10 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://homarr.dev/
 | 
			
		||||
 | 
			
		||||
APP="Homarr"
 | 
			
		||||
APP="homarr"
 | 
			
		||||
var_tags="${var_tags:-arr;dashboard}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_cpu="${var_cpu:-3}"
 | 
			
		||||
var_ram="${var_ram:-6144}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
@@ -125,7 +125,7 @@ EOF
 | 
			
		||||
    fetch_and_deploy_gh_release "homarr-labs/homarr"
 | 
			
		||||
    mv /opt/homarr-data-backup/.env /opt/homarr/.env
 | 
			
		||||
    cd /opt/homarr
 | 
			
		||||
    $STD pnpm install
 | 
			
		||||
    $STD pnpm install --recursive --frozen-lockfile --shamefully-hoist
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    cp /opt/homarr/apps/nextjs/next.config.ts .
 | 
			
		||||
    cp /opt/homarr/apps/nextjs/package.json .
 | 
			
		||||
@@ -151,7 +151,7 @@ EOF
 | 
			
		||||
    systemctl start homarr
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
    read -p "It's recommended to reboot the LXC after an update, would you like to reboot the LXC now ? (y/n): " choice
 | 
			
		||||
    read -p "${TAB3}It's recommended to reboot the LXC after an update, would you like to reboot the LXC now ? (y/n): " choice
 | 
			
		||||
    if [[ "$choice" =~ ^[Yy]$ ]]; then
 | 
			
		||||
      reboot
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
@@ -104,7 +104,6 @@ function update_script() {
 | 
			
		||||
  if [ "$UPD" == "2" ]; then
 | 
			
		||||
    msg_info "Installing Home Assistant Community Store (HACS)"
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt install -y unzip
 | 
			
		||||
    cd /root/.homeassistant
 | 
			
		||||
    $STD bash <(curl -fsSL https://get.hacs.xyz)
 | 
			
		||||
    msg_ok "Installed Home Assistant Community Store (HACS)"
 | 
			
		||||
@@ -114,7 +113,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "3" ]; then
 | 
			
		||||
    set +Eeuo pipefail
 | 
			
		||||
    read -r -p "Would you like to use No Authentication? <y/N> " prompt
 | 
			
		||||
    read -r -p "${TAB3}Would you like to use No Authentication? <y/N> " prompt
 | 
			
		||||
    msg_info "Installing FileBrowser"
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')
 | 
			
		||||
    $STD curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin
 | 
			
		||||
 
 | 
			
		||||
@@ -62,7 +62,6 @@ function update_script() {
 | 
			
		||||
  if [ "$UPD" == "3" ]; then
 | 
			
		||||
    msg_info "Installing Home Assistant Community Store (HACS)"
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt install unzip
 | 
			
		||||
    cd /var/lib/docker/volumes/hass_config/_data
 | 
			
		||||
    $STD bash <(curl -fsSL https://get.hacs.xyz)
 | 
			
		||||
    msg_ok "Installed Home Assistant Community Store (HACS)"
 | 
			
		||||
 
 | 
			
		||||
@@ -35,8 +35,8 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u1_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u1_amd64.deb")
 | 
			
		||||
    $STD apt-get install "./inspircd_${RELEASE}.deb12u1_amd64.deb" -y
 | 
			
		||||
    curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb")
 | 
			
		||||
    $STD apt-get install "./inspircd_${RELEASE}.deb12u2_amd64.deb" -y
 | 
			
		||||
    echo "${RELEASE}" >"/opt/${APP}_version.txt"
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
@@ -45,7 +45,7 @@ function update_script() {
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/inspircd_${RELEASE}.deb12u1_amd64.deb
 | 
			
		||||
    rm -rf /opt/inspircd_${RELEASE}.deb12u2_amd64.deb
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@ function update_script() {
 | 
			
		||||
    fi
 | 
			
		||||
    rm -rf /opt/karakeep
 | 
			
		||||
    curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
			
		||||
    unzip -q "v${RELEASE}.zip"
 | 
			
		||||
    $STD unzip "v${RELEASE}.zip"
 | 
			
		||||
    mv karakeep-"${RELEASE}" /opt/karakeep
 | 
			
		||||
    cd /opt/karakeep/apps/web
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								ct/kasm.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								ct/kasm.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
#!/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: Omar Minaya
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://www.kasmweb.com/docs/latest/index.html
 | 
			
		||||
 | 
			
		||||
APP="Kasm"
 | 
			
		||||
var_tags="${var_tags:-os}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4192}"
 | 
			
		||||
var_disk="${var_disk:-30}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
var_fuse="${var_fuse:-yes}"
 | 
			
		||||
var_tun="${var_tun:-yes}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /var ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
  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}https://${IP}${CL}"
 | 
			
		||||
							
								
								
									
										15
									
								
								ct/kimai.sh
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								ct/kimai.sh
									
									
									
									
									
								
							@@ -23,6 +23,9 @@ function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if ! command -v lsb_release; then
 | 
			
		||||
    apt install -y lsb-release
 | 
			
		||||
  fi
 | 
			
		||||
  if [[ ! -d /opt/kimai ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
@@ -36,8 +39,8 @@ function update_script() {
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get remove -y php"${CURRENT_PHP//./}"*
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      php8.4 \
 | 
			
		||||
      php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl} \
 | 
			
		||||
      php8.4 composer \
 | 
			
		||||
      php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
 | 
			
		||||
      libapache2-mod-php8.4
 | 
			
		||||
    msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
 | 
			
		||||
  fi
 | 
			
		||||
@@ -58,9 +61,13 @@ function update_script() {
 | 
			
		||||
    msg_ok "Backup completed"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    rm -rf /opt/kimai
 | 
			
		||||
    trap "echo Unable to download release file for version ${RELEASE}; try again later" ERR
 | 
			
		||||
    set -e
 | 
			
		||||
    curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
    unzip -q "${RELEASE}".zip
 | 
			
		||||
    $STD unzip "${RELEASE}".zip
 | 
			
		||||
    set +e
 | 
			
		||||
    trap - ERR
 | 
			
		||||
    rm -rf /opt/kimai
 | 
			
		||||
    mv kimai-"${RELEASE}" /opt/kimai
 | 
			
		||||
    [ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/
 | 
			
		||||
    [ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv /opt/koillection/ /opt/koillection-backup
 | 
			
		||||
    curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
    unzip -q "${RELEASE}.zip"
 | 
			
		||||
    $STD unzip "${RELEASE}.zip"
 | 
			
		||||
    mv "/opt/koillection-${RELEASE}" /opt/koillection
 | 
			
		||||
    cd /opt/koillection
 | 
			
		||||
    cp -r /opt/koillection-backup/.env.local /opt/koillection
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,17 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://linkwarden.app/
 | 
			
		||||
 | 
			
		||||
APP="Linkwarden"
 | 
			
		||||
var_tags="${var_tags:-bookmark}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-12}"
 | 
			
		||||
var_os="${var_os:-ubuntu}"
 | 
			
		||||
var_version="${var_version:-22.04}"
 | 
			
		||||
var_version="${var_version:-24.04}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
@@ -27,48 +27,36 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    NODE_VERSION="22"
 | 
			
		||||
    NODE_MODULE="yarn@latest"
 | 
			
		||||
    install_node_and_modules
 | 
			
		||||
    
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
 | 
			
		||||
    NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop linkwarden
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Rust"
 | 
			
		||||
    $STD apt-get install -y build-essential
 | 
			
		||||
    $STD curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
 | 
			
		||||
    source $HOME/.cargo/env
 | 
			
		||||
    echo 'export PATH=/usr/local/cargo/bin:$PATH' >>/etc/profile
 | 
			
		||||
    source /etc/profile
 | 
			
		||||
    $STD cargo install monolith
 | 
			
		||||
    msg_ok "Updated Rust"
 | 
			
		||||
    RUST_CRATES="monolith" install_rust_and_crates
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv /opt/linkwarden/.env /opt/.env
 | 
			
		||||
    rm -rf /opt/linkwarden
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
    curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o ${RELEASE}.zip
 | 
			
		||||
    unzip -q ${RELEASE}.zip
 | 
			
		||||
    mv linkwarden-${RELEASE:1} /opt/linkwarden
 | 
			
		||||
    fetch_and_deploy_gh_release "linkwarden/linkwarden"
 | 
			
		||||
    cd /opt/linkwarden
 | 
			
		||||
    $STD yarn
 | 
			
		||||
    $STD npx playwright install-deps
 | 
			
		||||
    $STD yarn playwright install
 | 
			
		||||
    cp /opt/.env /opt/linkwarden/.env
 | 
			
		||||
    mv /opt/.env /opt/linkwarden/.env
 | 
			
		||||
    $STD yarn prisma:generate
 | 
			
		||||
    $STD yarn web:build
 | 
			
		||||
    $STD yarn prisma:deploy
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start linkwarden
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/${RELEASE}.zip
 | 
			
		||||
    rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
 | 
			
		||||
    rm -rf /root/.cache/yarn
 | 
			
		||||
    rm -rf /opt/linkwarden/.next/cache
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /etc/systemd/system/lldap.service ]]; then
 | 
			
		||||
    if [[ ! -f /lib/systemd/system/lldap.service ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@ function update_script() {
 | 
			
		||||
    [[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/data/
 | 
			
		||||
    [[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
 | 
			
		||||
    rm -rf /opt/lubelogger
 | 
			
		||||
    unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
 | 
			
		||||
    $STD unzip LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
 | 
			
		||||
    chmod 700 /opt/lubelogger/CarCareTracker
 | 
			
		||||
    cp -rf /tmp/lubeloggerData/* /opt/lubelogger/
 | 
			
		||||
    echo "${RELEASE}" >"/opt/${APP}_version.txt"
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/meilisearch-ui
 | 
			
		||||
    mkdir -p /opt/meilisearch-ui
 | 
			
		||||
    curl -fsSL "https://github.com/riccox/meilisearch-ui/archive/refs/tags/${RELEASE_UI}.zip" -o $tmp_file
 | 
			
		||||
    unzip -q "$tmp_file" -d "$tmp_dir"
 | 
			
		||||
    $STD unzip "$tmp_file" -d "$tmp_dir"
 | 
			
		||||
    mv "$tmp_dir"/*/* /opt/meilisearch-ui/
 | 
			
		||||
    cd /opt/meilisearch-ui
 | 
			
		||||
    sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
			
		||||
    rm -rf myspeed_bak
 | 
			
		||||
    mv myspeed myspeed_bak
 | 
			
		||||
    curl -fsSL "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip" -o $(basename "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip")
 | 
			
		||||
    unzip -q MySpeed-$RELEASE.zip -d myspeed
 | 
			
		||||
    $STD unzip MySpeed-$RELEASE.zip -d myspeed
 | 
			
		||||
    cd myspeed
 | 
			
		||||
    $STD npm install
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
			
		||||
    mv /opt/netbox/ /opt/netbox-backup
 | 
			
		||||
    cd /opt
 | 
			
		||||
    curl -fsSL "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
    unzip -q "v${RELEASE}.zip"
 | 
			
		||||
    $STD unzip "v${RELEASE}.zip"
 | 
			
		||||
    mv /opt/netbox-${RELEASE}/ /opt/netbox/
 | 
			
		||||
 | 
			
		||||
    cp -r /opt/netbox-backup/netbox/netbox/configuration.py /opt/netbox/netbox/netbox/
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								ct/oauth2-proxy.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								ct/oauth2-proxy.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
#!/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: bvdberg01
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/oauth2-proxy/oauth2-proxy/
 | 
			
		||||
 | 
			
		||||
APP="oauth2-proxy"
 | 
			
		||||
var_tags="${var_tags:-os}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-3}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/oauth2-proxy ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/oauth2-proxy/oauth2-proxy/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP} services"
 | 
			
		||||
    systemctl stop oauth2-proxy
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
    rm -f /opt/oauth2-proxy/oauth2-proxy
 | 
			
		||||
    curl -fsSL "https://github.com/oauth2-proxy/oauth2-proxy/releases/download/v${RELEASE}/oauth2-proxy-v${RELEASE}.linux-amd64.tar.gz" -o /opt/oauth2-proxy.tar.gz
 | 
			
		||||
    tar -xzf /opt/oauth2-proxy.tar.gz
 | 
			
		||||
    mv /opt/oauth2-proxy-v${RELEASE}.linux-amd64/oauth2-proxy /opt/oauth2-proxy
 | 
			
		||||
    systemctl start oauth2-proxy
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f "/opt/oauth2-proxy.tar.gz"
 | 
			
		||||
    rm -rf "/opt/oauth2-proxy-v${RELEASE}.linux-amd64"
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "${APP} is already up to date (${RELEASE})"
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Now you can modify /opt/oauth2-proxy/config.toml with your needed config.${CL}"
 | 
			
		||||
							
								
								
									
										71
									
								
								ct/odoo.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								ct/odoo.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
#!/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: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/odoo/odoo
 | 
			
		||||
 | 
			
		||||
APP="Odoo"
 | 
			
		||||
var_tags="${var_tags:-erp}"
 | 
			
		||||
var_disk="${var_disk:-6}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
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/odoo/odoo.conf ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://nightly.odoo.com/ | grep -oE 'href="[0-9]+\.[0-9]+/nightly"' | head -n1 | cut -d'"' -f2 | cut -d/ -f1)
 | 
			
		||||
  LATEST_VERSION=$(curl -fsSL "https://nightly.odoo.com/${RELEASE}/nightly/deb/" |
 | 
			
		||||
    grep -oP "odoo_${RELEASE}\.\d+_all\.deb" |
 | 
			
		||||
    sed -E "s/odoo_(${RELEASE}\.[0-9]+)_all\.deb/\1/" |
 | 
			
		||||
    sort -V |
 | 
			
		||||
    tail -n1)
 | 
			
		||||
 | 
			
		||||
  if [[ "${LATEST_VERSION}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP} service"
 | 
			
		||||
    systemctl stop odoo
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${LATEST_VERSION}"
 | 
			
		||||
    curl -fsSL https://nightly.odoo.com/${RELEASE}/nightly/deb/odoo_${RELEASE}.latest_all.deb -o /opt/odoo.deb
 | 
			
		||||
    $STD apt install -y /opt/odoo.deb
 | 
			
		||||
    echo "$LATEST_VERSION" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${LATEST_VERSION}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} service"
 | 
			
		||||
    systemctl start odoo
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -f /opt/odoo.deb
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${LATEST_VERSION}"
 | 
			
		||||
  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}:8069${CL}"
 | 
			
		||||
@@ -9,7 +9,7 @@ APP="Paperless-AI"
 | 
			
		||||
var_tags="${var_tags:-ai;document}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-5}"
 | 
			
		||||
var_disk="${var_disk:-12}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -27,6 +27,9 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if ! dpkg -s python3-pip >/dev/null 2>&1; then
 | 
			
		||||
    $STD apt-get install -y python3-pip
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/clusterzx/paperless-ai/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 "Stopping $APP"
 | 
			
		||||
@@ -37,11 +40,30 @@ function update_script() {
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv /opt/paperless-ai /opt/paperless-ai_bak
 | 
			
		||||
    curl -fsSL "https://github.com/clusterzx/paperless-ai/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/clusterzx/paperless-ai/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
    unzip -q v${RELEASE}.zip
 | 
			
		||||
    $STD unzip v${RELEASE}.zip
 | 
			
		||||
    mv paperless-ai-${RELEASE} /opt/paperless-ai
 | 
			
		||||
    mkdir -p /opt/paperless-ai/data
 | 
			
		||||
    cp -a /opt/paperless-ai_bak/data/. /opt/paperless-ai/data/
 | 
			
		||||
    cd /opt/paperless-ai
 | 
			
		||||
    if [[ ! -f /etc/systemd/system/paperless-rag.service ]]; then
 | 
			
		||||
      cat <<EOF >/etc/systemd/system/paperless-rag.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=PaperlessAI-RAG Service
 | 
			
		||||
After=network.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
WorkingDirectory=/opt/paperless-ai
 | 
			
		||||
ExecStart=/usr/bin/python3 main.py --host 0.0.0.0 --port 8000 --initialize
 | 
			
		||||
Restart=always
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
      echo "RAG_SERVICE_URL=http://localhost:8000" >>/opt/paperless-ai/data/.env
 | 
			
		||||
      echo "RAG_SERVICE_ENABLED=true" >>/opt/paperless-ai/data/.env
 | 
			
		||||
    fi
 | 
			
		||||
    $STD pip install --no-cache-dir -r requirements.txt
 | 
			
		||||
    mkdir -p data/chromadb
 | 
			
		||||
    $STD npm install
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv /opt/partdb/ /opt/partdb-backup
 | 
			
		||||
    curl -fsSL "https://github.com/Part-DB/Part-DB-server/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/Part-DB/Part-DB-server/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
    unzip -q "v${RELEASE}.zip"
 | 
			
		||||
    $STD unzip "v${RELEASE}.zip"
 | 
			
		||||
    mv /opt/Part-DB-server-${RELEASE}/ /opt/partdb
 | 
			
		||||
 | 
			
		||||
    cd /opt/partdb/
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,6 @@ function update_script() {
 | 
			
		||||
      php8.4 \
 | 
			
		||||
      php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
 | 
			
		||||
      libapache2-mod-php8.4
 | 
			
		||||
 | 
			
		||||
    msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
@@ -53,10 +52,13 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    cp -r /opt/pelican-panel/.env /opt/
 | 
			
		||||
    SQLITE_INSTALL=$(ls /opt/pelican-panel/database/*.sqlite 1> /dev/null 2>&1 && echo "true" || echo "false")
 | 
			
		||||
    $SQLITE_INSTALL && cp -r /opt/pelican-panel/database/*.sqlite /opt/
 | 
			
		||||
    rm -rf * .*
 | 
			
		||||
    curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
 | 
			
		||||
    tar -xzf "panel.tar.gz"
 | 
			
		||||
    mv /opt/.env /opt/pelican-panel/
 | 
			
		||||
    $SQLITE_INSTALL && mv /opt/*.sqlite /opt/pelican-panel/database/
 | 
			
		||||
    $STD composer install --no-dev --optimize-autoloader --no-interaction
 | 
			
		||||
    $STD php artisan p:environment:setup
 | 
			
		||||
    $STD php artisan view:clear
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								ct/petio.sh
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								ct/petio.sh
									
									
									
									
									
								
							@@ -19,20 +19,20 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/Petio ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    systemctl stop petio.service
 | 
			
		||||
    curl -fsSL https://petio.tv/releases/latest -o petio-latest.zip
 | 
			
		||||
    unzip petio-latest.zip -d /opt/Petio
 | 
			
		||||
    systemctl start petio.service
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/Petio ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP"
 | 
			
		||||
  systemctl stop petio.service
 | 
			
		||||
  curl -fsSL https://petio.tv/releases/latest -o petio-latest.zip
 | 
			
		||||
  $STD unzip petio-latest.zip -d /opt/Petio
 | 
			
		||||
  systemctl start petio.service
 | 
			
		||||
  msg_ok "Updated $APP"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    curl -fsSL "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
    unzip -q ${RELEASE}.zip
 | 
			
		||||
    $STD unzip ${RELEASE}.zip
 | 
			
		||||
    rm -rf "/opt/${APP}"
 | 
			
		||||
    mv ${APP}-${RELEASE:1} /opt/${APP}
 | 
			
		||||
    cd /opt/Pf2eTools
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv /opt/phpipam/ /opt/phpipam-backup
 | 
			
		||||
    curl -fsSL "https://github.com/phpipam/phpipam/releases/download/v${RELEASE}/phpipam-v${RELEASE}.zip" -o $(basename "https://github.com/phpipam/phpipam/releases/download/v${RELEASE}/phpipam-v${RELEASE}.zip")
 | 
			
		||||
    unzip -q "phpipam-v${RELEASE}.zip"
 | 
			
		||||
    $STD unzip "phpipam-v${RELEASE}.zip"
 | 
			
		||||
    cp /opt/phpipam-backup/config.php /opt/phpipam
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating Pingvin Share to v${RELEASE}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    curl -fsSL "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
    unzip -q v${RELEASE}.zip
 | 
			
		||||
    $STD unzip v${RELEASE}.zip
 | 
			
		||||
    cp -rf pingvin-share-${RELEASE}/* /opt/pingvin-share
 | 
			
		||||
    cd /opt/pingvin-share
 | 
			
		||||
    cd backend
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										111
									
								
								ct/pocketid.sh
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								ct/pocketid.sh
									
									
									
									
									
								
							@@ -20,63 +20,62 @@ 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/pocket-id ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/pocket-id/pocket-id/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 pocketid-backend.service
 | 
			
		||||
        systemctl stop pocketid-frontend.service
 | 
			
		||||
        systemctl stop caddy.service
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
        cd /opt
 | 
			
		||||
        cp -r /opt/pocket-id/backend/data /opt/data
 | 
			
		||||
        cp /opt/pocket-id/backend/.env /opt/backend.env
 | 
			
		||||
        cp /opt/pocket-id/frontend/.env /opt/frontend.env
 | 
			
		||||
        rm -r /opt/pocket-id
 | 
			
		||||
        curl -fsSL "https://github.com/pocket-id/pocket-id/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/pocket-id/pocket-id/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
        unzip -q v${RELEASE}.zip
 | 
			
		||||
        mv pocket-id-${RELEASE} /opt/pocket-id
 | 
			
		||||
        mv /opt/data /opt/pocket-id/backend/data
 | 
			
		||||
        mv /opt/backend.env /opt/pocket-id/backend/.env
 | 
			
		||||
        mv /opt/frontend.env /opt/pocket-id/frontend/.env
 | 
			
		||||
 | 
			
		||||
        cd /opt/pocket-id/backend/cmd
 | 
			
		||||
        go build -o ../pocket-id-backend
 | 
			
		||||
        cd ../../frontend
 | 
			
		||||
        npm install
 | 
			
		||||
        npm run build
 | 
			
		||||
        msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting $APP"
 | 
			
		||||
        systemctl start pocketid-backend.service
 | 
			
		||||
        systemctl start pocketid-frontend.service
 | 
			
		||||
        systemctl start caddy.service
 | 
			
		||||
        sleep 2
 | 
			
		||||
        msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
        # Cleaning up
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -f /opt/v${RELEASE}.zip
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
        echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  if [[ ! -d /opt/pocket-id ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/pocket-id/pocket-id/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
 | 
			
		||||
    if [[ "$(cat /opt/${APP}_version.txt)" < "1.0.0" ]]; then
 | 
			
		||||
      msg_info "Migrating ${APP} to v${RELEASE}"
 | 
			
		||||
      systemctl -q disable --now pocketid-backend pocketid-frontend caddy
 | 
			
		||||
      mv /etc/caddy/Caddyfile ~/Caddyfile.bak
 | 
			
		||||
      $STD apt remove --purge caddy nodejs -y
 | 
			
		||||
      $STD apt autoremove -y
 | 
			
		||||
      rm /etc/apt/{keyrings/nodesource.gpg,sources.list.d/nodesource.list}
 | 
			
		||||
      rm -r /usr/local/go
 | 
			
		||||
      cp -r /opt/pocket-id/backend/data /opt/data
 | 
			
		||||
      cp /opt/pocket-id/backend/.env /opt/env
 | 
			
		||||
      sed -i -e 's/PUBLIC_//g' \
 | 
			
		||||
        -e '/^SQLITE_DB_PATH/d' \
 | 
			
		||||
        -e '/^POSTGRES/s/^/# /' \
 | 
			
		||||
        -e '/^UPLOAD_PATH/d' \
 | 
			
		||||
        -e 's/8080/1411/' /opt/env
 | 
			
		||||
      rm -r /opt/pocket-id
 | 
			
		||||
      rm /etc/systemd/system/pocketid-frontend.service
 | 
			
		||||
      BACKEND="/etc/systemd/system/pocketid-backend.service"
 | 
			
		||||
      sed -i -e 's/Backend/Service/' \
 | 
			
		||||
        -e 's/\/backend\|-backend//g' "$BACKEND"
 | 
			
		||||
      mv "$BACKEND" ${BACKEND//-backend/}
 | 
			
		||||
      systemctl daemon-reload
 | 
			
		||||
      systemctl -q enable pocketid
 | 
			
		||||
      mkdir /opt/pocket-id
 | 
			
		||||
      mv /opt/data /opt/pocket-id
 | 
			
		||||
      msg_ok "Migration complete. The reverse proxy port has been changed to 1411."
 | 
			
		||||
    else
 | 
			
		||||
      msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
      systemctl stop pocketid
 | 
			
		||||
      cp /opt/pocket-id/.env /opt/env
 | 
			
		||||
    fi
 | 
			
		||||
    curl -fsSL "https://github.com/pocket-id/pocket-id/releases/download/v${RELEASE}/pocket-id-linux-amd64" -o /opt/pocket-id/pocket-id
 | 
			
		||||
    chmod u+x /opt/pocket-id/pocket-id
 | 
			
		||||
    mv /opt/env /opt/pocket-id/.env
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start pocketid
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -85,6 +84,6 @@ description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Configure your reverse proxy to point to:${BGN} ${IP}:80${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Configure your reverse proxy to point to:${BGN} ${IP}:1411${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}https://{PUBLIC_URL}/login/setup${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,6 @@ function update_script() {
 | 
			
		||||
  if [ "$UPD" == "2" ]; then
 | 
			
		||||
    msg_info "Installing Home Assistant Community Store (HACS)"
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt install unzip
 | 
			
		||||
    cd /var/lib/containers/storage/volumes/hass_config/_data
 | 
			
		||||
    $STD bash <(curl -fsSL https://get.hacs.xyz)
 | 
			
		||||
    msg_ok "Installed Home Assistant Community Store (HACS)"
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    cp -f /opt/privatebin/cfg/conf.php /tmp/privatebin_conf.bak
 | 
			
		||||
    curl -fsSL "https://github.com/PrivateBin/PrivateBin/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/PrivateBin/PrivateBin/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
    unzip -q ${RELEASE}.zip
 | 
			
		||||
    $STD unzip ${RELEASE}.zip
 | 
			
		||||
    rm -rf /opt/privatebin/*
 | 
			
		||||
    mv PrivateBin-${RELEASE}/* /opt/privatebin/
 | 
			
		||||
    mv /tmp/privatebin_conf.bak /opt/privatebin/cfg/conf.php
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    curl -fsSL "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip" -o $(basename "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip")
 | 
			
		||||
    unzip -o -q "projectsend-r${RELEASE}.zip" -d projectsend
 | 
			
		||||
    $STD unzip -o "projectsend-r${RELEASE}.zip" -d projectsend
 | 
			
		||||
    chown -R www-data:www-data /opt/projectsend
 | 
			
		||||
    chmod -R 775 /opt/projectsend
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										73
									
								
								ct/pulse.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								ct/pulse.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: rcourtman
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/rcourtman/Pulse
 | 
			
		||||
 | 
			
		||||
APP="Pulse"
 | 
			
		||||
var_tags="${var_tags:-monitoring,proxmox}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/pulse-proxmox ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/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
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop pulse-monitor
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Pulse"
 | 
			
		||||
    if [[ -f /opt/pulse-proxmox/.env ]]; then
 | 
			
		||||
      cp /opt/pulse-proxmox/.env /tmp/.env.backup.pulse
 | 
			
		||||
    fi
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    mkdir -p /opt/pulse-proxmox
 | 
			
		||||
    rm -rf /opt/pulse-proxmox/*
 | 
			
		||||
    curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
    tar zxf "$temp_file" --strip-components=1 -C /opt/pulse-proxmox
 | 
			
		||||
    if [[ -f /tmp/.env.backup.pulse ]]; then
 | 
			
		||||
      mv /tmp/.env.backup.pulse /opt/pulse-proxmox/.env
 | 
			
		||||
    fi
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated Pulse to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Setting permissions for /opt/pulse-proxmox..."
 | 
			
		||||
    chown -R pulse:pulse "/opt/pulse-proxmox"
 | 
			
		||||
    find "/opt/pulse-proxmox" -type d -exec chmod 755 {} \;
 | 
			
		||||
    find "/opt/pulse-proxmox" -type f -exec chmod 644 {} \;
 | 
			
		||||
    chmod 600 /opt/pulse-proxmox/.env
 | 
			
		||||
    msg_ok "Set permissions."
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start pulse-monitor
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}."
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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}(:your_port)${CL}"
 | 
			
		||||
							
								
								
									
										65
									
								
								ct/rclone.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								ct/rclone.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/rclone/rclone
 | 
			
		||||
 | 
			
		||||
APP="Rclone"
 | 
			
		||||
var_tags="${var_tags:-os}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/rclone ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/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
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop rclone-web
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    rm -rf /opt/rclone/*
 | 
			
		||||
    curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-amd64.zip" -o "$temp_file"
 | 
			
		||||
    $STD unzip -j "$temp_file" '*/**' -d /opt/rclone
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start rclone-web
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  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}:3000${CL}"
 | 
			
		||||
@@ -20,38 +20,38 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/rdtc/ ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop rdtc
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    if dpkg-query -W dotnet-sdk-8.0 >/dev/null 2>&1; then
 | 
			
		||||
        $STD apt-get remove --purge -y dotnet-sdk-8.0
 | 
			
		||||
        $STD apt-get install -y dotnet-sdk-9.0
 | 
			
		||||
    fi
 | 
			
		||||
    mkdir -p rdtc-backup
 | 
			
		||||
    cp -R /opt/rdtc/appsettings.json rdtc-backup/
 | 
			
		||||
    curl -fsSL "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip" -o $(basename "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip")
 | 
			
		||||
    unzip -oqq RealDebridClient.zip -d /opt/rdtc
 | 
			
		||||
    cp -R rdtc-backup/appsettings.json /opt/rdtc/
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start rdtc
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf rdtc-backup RealDebridClient.zip
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/rdtc/ ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  systemctl stop rdtc
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  if dpkg-query -W dotnet-sdk-8.0 >/dev/null 2>&1; then
 | 
			
		||||
    $STD apt-get remove --purge -y dotnet-sdk-8.0
 | 
			
		||||
    $STD apt-get install -y dotnet-sdk-9.0
 | 
			
		||||
  fi
 | 
			
		||||
  mkdir -p rdtc-backup
 | 
			
		||||
  cp -R /opt/rdtc/appsettings.json rdtc-backup/
 | 
			
		||||
  curl -fsSL "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip" -o $(basename "https://github.com/rogerfar/rdt-client/releases/latest/download/RealDebridClient.zip")
 | 
			
		||||
  $STD unzip -o RealDebridClient.zip -d /opt/rdtc
 | 
			
		||||
  cp -R rdtc-backup/appsettings.json /opt/rdtc/
 | 
			
		||||
  msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  systemctl start rdtc
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cleaning Up"
 | 
			
		||||
  rm -rf rdtc-backup RealDebridClient.zip
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
			
		||||
        res_tmp=$(mktemp)
 | 
			
		||||
        rm -rf /opt/${APP}
 | 
			
		||||
        curl -fsSL "https://github.com/AmruthPillai/Reactive-Resume/archive/refs/tags/v${RELEASE}.zip" -O $res_tmp
 | 
			
		||||
        unzip -q $res_tmp
 | 
			
		||||
        $STD unzip $res_tmp
 | 
			
		||||
        mv ${APP}-${RELEASE}/ /opt/${APP}
 | 
			
		||||
        cd /opt/${APP}
 | 
			
		||||
        export PUPPETEER_SKIP_DOWNLOAD="true"
 | 
			
		||||
@@ -66,7 +66,7 @@ function update_script() {
 | 
			
		||||
        brwsr_tmp=$(mktemp)
 | 
			
		||||
        TAG=$(curl -fsSL https://api.github.com/repos/browserless/browserless/tags?per_page=1 | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
        curl -fsSL https://github.com/browserless/browserless/archive/refs/tags/v${TAG}.zip -O $brwsr_tmp
 | 
			
		||||
        unzip -q $brwsr_tmp
 | 
			
		||||
        $STD unzip $brwsr_tmp
 | 
			
		||||
        mv browserless-${TAG}/ /opt/browserless
 | 
			
		||||
        cd /opt/browserless
 | 
			
		||||
        $STD npm install
 | 
			
		||||
 
 | 
			
		||||
@@ -20,42 +20,56 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
    if [[ ! -x /usr/bin/hbbr ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat /opt/rustdesk_version.txt)" ]] || [[ ! -f /opt/rustdesk_version.txt ]]; then
 | 
			
		||||
        msg_info "Stopping $APP"
 | 
			
		||||
        systemctl stop rustdesk-hbbr
 | 
			
		||||
        systemctl stop rustdesk-hbbs
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
        TEMPDIR=$(mktemp -d)
 | 
			
		||||
        curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbr_${RELEASE}_amd64.deb" \
 | 
			
		||||
            -o "${TEMPDIR}/rustdesk-server-hbbr_${RELEASE}_amd64.deb"
 | 
			
		||||
        curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbs_${RELEASE}_amd64.deb" \
 | 
			
		||||
            -o "${TEMPDIR}/rustdesk-server-hbbs_${RELEASE}_amd64.deb"
 | 
			
		||||
        curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-utils_${RELEASE}_amd64.deb" \
 | 
			
		||||
            -o "${TEMPDIR}/rustdesk-server-utils_${RELEASE}_amd64.deb"
 | 
			
		||||
        $STD dpkg -i $TEMPDIR/*.deb
 | 
			
		||||
        msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf $TEMPDIR
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
        echo "${RELEASE}" >/opt/rustdesk_version.txt
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  if [[ ! -x /usr/bin/hbbr ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if [[ ! -f /opt/rustdeskapi_version.txt ]]; then
 | 
			
		||||
    touch /opt/rustdeskapi_version.txt
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  APIRELEASE=$(curl -fsSL https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/rustdesk_version.txt)" ]] || [[ "${APIRELEASE}" != "$(cat /opt/rustdesk-api.txt)" ]] || [[ ! -f /opt/rustdesk_version.txt ]] || [[ ! -f /opt/rustdesk-api.txt ]]; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop rustdesk-hbbr
 | 
			
		||||
    systemctl stop rustdesk-hbbs
 | 
			
		||||
    if [[ -f /lib/systemd/system/rustdesk-api.service ]]; then
 | 
			
		||||
      systemctl stop rustdesk-api
 | 
			
		||||
    fi
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    TEMPDIR=$(mktemp -d)
 | 
			
		||||
    curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbr_${RELEASE}_amd64.deb" \
 | 
			
		||||
      -o "${TEMPDIR}/rustdesk-server-hbbr_${RELEASE}_amd64.deb"
 | 
			
		||||
    curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbs_${RELEASE}_amd64.deb" \
 | 
			
		||||
      -o "${TEMPDIR}/rustdesk-server-hbbs_${RELEASE}_amd64.deb"
 | 
			
		||||
    curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-utils_${RELEASE}_amd64.deb" \
 | 
			
		||||
      -o "${TEMPDIR}/rustdesk-server-utils_${RELEASE}_amd64.deb"
 | 
			
		||||
    curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/rustdesk-api-server_${APIRELEASE}_amd64.deb" \
 | 
			
		||||
      -o "${TEMPDIR}/rustdesk-api-server_${APIRELEASE}_amd64.deb"
 | 
			
		||||
    $STD dpkg -i $TEMPDIR/*.deb
 | 
			
		||||
    echo "${RELEASE}" >/opt/rustdesk_version.txt
 | 
			
		||||
    echo "${APIRELEASE}" >/opt/rustdeskapi_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf $TEMPDIR
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting services"
 | 
			
		||||
    systemctl start -q rustdesk-* --all
 | 
			
		||||
    msg_ok "Services started"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -65,4 +79,4 @@ 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}${IP}${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:21114${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  sed -i 's/^\([[:space:]]*limiter:\)[[:space:]]*true/\1 false/' /etc/searxng/settings.yml
 | 
			
		||||
  if cd /usr/local/searxng/searxng-src && git pull | grep -q 'Already up to date'; then
 | 
			
		||||
    msg_ok "There is currently no update available."
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    curl -fsSL "https://github.com/silverbulletmd/silverbullet/releases/download/${RELEASE}/silverbullet-server-linux-x86_64.zip" -o $(basename "https://github.com/silverbulletmd/silverbullet/releases/download/${RELEASE}/silverbullet-server-linux-x86_64.zip")
 | 
			
		||||
    unzip -q silverbullet-server-linux-x86_64.zip
 | 
			
		||||
    $STD unzip silverbullet-server-linux-x86_64.zip
 | 
			
		||||
    mv silverbullet /opt/silverbullet/bin/
 | 
			
		||||
    chmod +x /opt/silverbullet/bin/silverbullet
 | 
			
		||||
    echo "${RELEASE}" >/opt/silverbullet/${APP}_version.txt
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    tmp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/slskd/slskd/releases/download/${RELEASE}/slskd-${RELEASE}-linux-x64.zip" -o $tmp_file
 | 
			
		||||
    unzip -q -oj $tmp_file slskd -d /opt/${APP}
 | 
			
		||||
    $STD unzip -oj $tmp_file slskd -d /opt/${APP}
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
@@ -55,7 +55,7 @@ function update_script() {
 | 
			
		||||
  cd /tmp
 | 
			
		||||
  rm -rf /opt/soularr
 | 
			
		||||
  curl -fsSL -o main.zip https://github.com/mrusse/soularr/archive/refs/heads/main.zip
 | 
			
		||||
  unzip -q main.zip
 | 
			
		||||
  $STD unzip main.zip
 | 
			
		||||
  mv soularr-main /opt/soularr
 | 
			
		||||
  cd /opt/soularr
 | 
			
		||||
  $STD pip install -r requirements.txt
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
			
		||||
    rm -rf spoolman_bak
 | 
			
		||||
    mv spoolman spoolman_bak
 | 
			
		||||
    curl -fsSL "https://github.com/Donkie/Spoolman/releases/download/${RELEASE}/spoolman.zip" -o $(basename "https://github.com/Donkie/Spoolman/releases/download/${RELEASE}/spoolman.zip")
 | 
			
		||||
    unzip -q spoolman.zip -d spoolman
 | 
			
		||||
    $STD unzip spoolman.zip -d spoolman
 | 
			
		||||
    cd spoolman
 | 
			
		||||
    $STD pip3 install -r requirements.txt
 | 
			
		||||
    curl -fsSL "https://raw.githubusercontent.com/Donkie/Spoolman/master/.env.example" -o ".env"
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv /opt/teddycloud /opt/teddycloud_bak
 | 
			
		||||
    curl -fsSL "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" -o $(basename "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip")
 | 
			
		||||
    unzip -q -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip
 | 
			
		||||
    $STD unzip -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip
 | 
			
		||||
    cp -R /opt/teddycloud_bak/certs /opt/teddycloud_bak/config /opt/teddycloud_bak/data /opt/teddycloud
 | 
			
		||||
    echo "${VERSION}" >"/opt/${APP}_version.txt"
 | 
			
		||||
    msg_ok "Updated ${APP} to v${VERSION}"
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@ function update_script() {
 | 
			
		||||
    cp /opt/tianji/src/server/.env /opt/.env
 | 
			
		||||
    mv /opt/tianji /opt/tianji_bak
 | 
			
		||||
    curl -fsSL "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
    unzip -q v${RELEASE}.zip
 | 
			
		||||
    $STD unzip v${RELEASE}.zip
 | 
			
		||||
    mv tianji-${RELEASE} /opt/tianji
 | 
			
		||||
    cd tianji
 | 
			
		||||
    export NODE_OPTIONS="--max_old_space_size=4096"
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,7 @@ function update_script() {
 | 
			
		||||
    mkdir -p /opt/logos
 | 
			
		||||
    mv /opt/wallos/db/wallos.db /opt/wallos.db
 | 
			
		||||
    mv /opt/wallos/images/uploads/logos /opt/logos/
 | 
			
		||||
    unzip -q v${RELEASE}.zip
 | 
			
		||||
    $STD unzip v${RELEASE}.zip
 | 
			
		||||
    rm -rf /opt/wallos
 | 
			
		||||
    mv Wallos-${RELEASE} /opt/wallos
 | 
			
		||||
    rm -rf /opt/wallos/db/wallos.empty.db
 | 
			
		||||
 
 | 
			
		||||
@@ -20,28 +20,28 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/wastebin ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
    # Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
 | 
			
		||||
    msg_info "Running Migration"
 | 
			
		||||
    if [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
        echo "2.7.1" >/opt/${APP}_version.txt
 | 
			
		||||
        mkdir -p /opt/wastebin-data
 | 
			
		||||
        cat <<EOF >/opt/wastebin-data/.env
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/wastebin ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  # Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
 | 
			
		||||
  msg_info "Running Migration"
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    echo "2.7.1" >/opt/${APP}_version.txt
 | 
			
		||||
    mkdir -p /opt/wastebin-data
 | 
			
		||||
    cat <<EOF >/opt/wastebin-data/.env
 | 
			
		||||
WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db
 | 
			
		||||
WASTEBIN_CACHE_SIZE=1024
 | 
			
		||||
WASTEBIN_HTTP_TIMEOUT=30
 | 
			
		||||
WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32)
 | 
			
		||||
WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400
 | 
			
		||||
EOF
 | 
			
		||||
        systemctl stop wastebin
 | 
			
		||||
        cat <<EOF >/etc/systemd/system/wastebin.service
 | 
			
		||||
    systemctl stop wastebin
 | 
			
		||||
    cat <<EOF >/etc/systemd/system/wastebin.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Wastebin Service
 | 
			
		||||
After=network.target
 | 
			
		||||
@@ -54,35 +54,35 @@ EnvironmentFile=/opt/wastebin-data/.env
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
        systemctl daemon-reload
 | 
			
		||||
    fi
 | 
			
		||||
    msg_ok "Migration Done"
 | 
			
		||||
    if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
        msg_info "Stopping Wastebin"
 | 
			
		||||
        systemctl stop wastebin
 | 
			
		||||
        msg_ok "Wastebin Stopped"
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
  fi
 | 
			
		||||
  msg_ok "Migration Done"
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping Wastebin"
 | 
			
		||||
    systemctl stop wastebin
 | 
			
		||||
    msg_ok "Wastebin Stopped"
 | 
			
		||||
 | 
			
		||||
        msg_info "Updating Wastebin"
 | 
			
		||||
        temp_file=$(mktemp)
 | 
			
		||||
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.zip" -o "$temp_file"
 | 
			
		||||
        unzip -o -q $temp_file
 | 
			
		||||
        cp -f wastebin /opt/wastebin/
 | 
			
		||||
        chmod +x /opt/wastebin/wastebin
 | 
			
		||||
        echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
        msg_ok "Updated Wastebin"
 | 
			
		||||
    msg_info "Updating Wastebin"
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.zip" -o "$temp_file"
 | 
			
		||||
    $STD unzip -o $temp_file
 | 
			
		||||
    cp -f wastebin /opt/wastebin/
 | 
			
		||||
    chmod +x /opt/wastebin/wastebin
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated Wastebin"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting Wastebin"
 | 
			
		||||
        systemctl start wastebin
 | 
			
		||||
        msg_ok "Started Wastebin"
 | 
			
		||||
    msg_info "Starting Wastebin"
 | 
			
		||||
    systemctl start wastebin
 | 
			
		||||
    msg_ok "Started Wastebin"
 | 
			
		||||
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -f $temp_file
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
        msg_ok "Updated Successfully"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
    exit
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -f $temp_file
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ function update_script() {
 | 
			
		||||
      cp /opt/wavelog/assets/js/sections/custom.js /opt/custom.js
 | 
			
		||||
    fi
 | 
			
		||||
    curl -fsSL "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
    unzip -q ${RELEASE}.zip
 | 
			
		||||
    $STD unzip ${RELEASE}.zip
 | 
			
		||||
    rm -rf /opt/wavelog
 | 
			
		||||
    mv wavelog-${RELEASE}/ /opt/wavelog
 | 
			
		||||
    rm -rf /opt/wavelog/install
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user