mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			66 Commits
		
	
	
		
			2024-12-18
			...
			2024-12-26
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					943e6967f4 | ||
| 
						 | 
					e253fe6cee | ||
| 
						 | 
					4b0fff5a88 | ||
| 
						 | 
					ff3d2026a5 | ||
| 
						 | 
					1b57be94fd | ||
| 
						 | 
					b1dc0bc20f | ||
| 
						 | 
					8f243c74ff | ||
| 
						 | 
					b30e8c534f | ||
| 
						 | 
					9b07fe4178 | ||
| 
						 | 
					be66aefd9a | ||
| 
						 | 
					7aca36a3f0 | ||
| 
						 | 
					cf8dd2bfac | ||
| 
						 | 
					ee62a56cb9 | ||
| 
						 | 
					b8885e8d6c | ||
| 
						 | 
					55e02d8bdd | ||
| 
						 | 
					72df7e432d | ||
| 
						 | 
					0f2e49fbeb | ||
| 
						 | 
					d71bf7bcdf | ||
| 
						 | 
					4ed5bf0c12 | ||
| 
						 | 
					6debf20d19 | ||
| 
						 | 
					88120fcbcc | ||
| 
						 | 
					b65d55282f | ||
| 
						 | 
					ae67ee8768 | ||
| 
						 | 
					9523491c0a | ||
| 
						 | 
					b0a523aac3 | ||
| 
						 | 
					67a0c06b80 | ||
| 
						 | 
					1c4c3b71e3 | ||
| 
						 | 
					e98d96a232 | ||
| 
						 | 
					48e86b063b | ||
| 
						 | 
					53fcbb46be | ||
| 
						 | 
					5e22f990d2 | ||
| 
						 | 
					d74ad31e72 | ||
| 
						 | 
					8c989eee8e | ||
| 
						 | 
					326f706672 | ||
| 
						 | 
					e715adf3ba | ||
| 
						 | 
					57b881db45 | ||
| 
						 | 
					f40c606808 | ||
| 
						 | 
					4c042c180f | ||
| 
						 | 
					abb0e0f96d | ||
| 
						 | 
					8e1644ab6e | ||
| 
						 | 
					2892762a80 | ||
| 
						 | 
					45c1a73eda | ||
| 
						 | 
					6efc6504d4 | ||
| 
						 | 
					af30823bef | ||
| 
						 | 
					d283d0a1cb | ||
| 
						 | 
					5214c3d531 | ||
| 
						 | 
					7f86418cf5 | ||
| 
						 | 
					949ec3d181 | ||
| 
						 | 
					9379ac4032 | ||
| 
						 | 
					2326e11699 | ||
| 
						 | 
					94b51fefeb | ||
| 
						 | 
					6487885f4b | ||
| 
						 | 
					700902ba2e | ||
| 
						 | 
					23d7587f04 | ||
| 
						 | 
					4c04a33a29 | ||
| 
						 | 
					9da79b9a97 | ||
| 
						 | 
					785d745b22 | ||
| 
						 | 
					a5d6023da8 | ||
| 
						 | 
					773e3ba983 | ||
| 
						 | 
					ba76b4fe37 | ||
| 
						 | 
					08f6042f65 | ||
| 
						 | 
					25049290b0 | ||
| 
						 | 
					94d81fdf5c | ||
| 
						 | 
					c0ac8a7fab | ||
| 
						 | 
					bda30403da | ||
| 
						 | 
					6f96aebc27 | 
							
								
								
									
										25
									
								
								.github/workflows/shellcheck.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/shellcheck.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
name: Shellcheck
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
  pull_request:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: "5 1 * * *"
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  shellcheck:
 | 
			
		||||
    name: Shellcheck
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
    - name: Run ShellCheck
 | 
			
		||||
      uses: ludeeus/action-shellcheck@master
 | 
			
		||||
      with:
 | 
			
		||||
        ignore_paths: >-
 | 
			
		||||
          frontend
 | 
			
		||||
          json
 | 
			
		||||
							
								
								
									
										89
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										89
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -16,6 +16,95 @@ All LXC instances created using this repository come pre-installed with Midnight
 | 
			
		||||
> [!IMPORTANT]
 | 
			
		||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
 | 
			
		||||
 | 
			
		||||
## 2024-12-26
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
### ✨ New Scripts
 | 
			
		||||
 | 
			
		||||
-  New Script: Jenkins [@quantumryuu](https://github.com/quantumryuu) ([#1019](https://github.com/community-scripts/ProxmoxVE/pull/1019))
 | 
			
		||||
- New Script: 2FAuth [@jkrgr0](https://github.com/jkrgr0) ([#943](https://github.com/community-scripts/ProxmoxVE/pull/943))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
- ChangeDetection Update: Update also Browsers [@Niklas04](https://github.com/Niklas04) ([#1027](https://github.com/community-scripts/ProxmoxVE/pull/1027))
 | 
			
		||||
- ensure all RFC1918 local Ipv4 addresses are in iptag script [@AskAlice](https://github.com/AskAlice) ([#992](https://github.com/community-scripts/ProxmoxVE/pull/992))
 | 
			
		||||
- Fix Proxmox DataCenter: incorrect build.func url [@rbradley0](https://github.com/rbradley0) ([#1013](https://github.com/community-scripts/ProxmoxVE/pull/1013))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
- [GitHub Actions] Introduce Shellcheck to check bash code [@andygrunwald](https://github.com/andygrunwald) ([#1018](https://github.com/community-scripts/ProxmoxVE/pull/1018))
 | 
			
		||||
 | 
			
		||||
## 2024-12-25
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
### ✨ New Scripts
 | 
			
		||||
 | 
			
		||||
- add: pve-datacenter-manager [@CrazyWolf13](https://github.com/CrazyWolf13) ([#947](https://github.com/community-scripts/ProxmoxVE/pull/947))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
- Fix Script: Alpine Nextcloud Upload File Size Limit [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#933](https://github.com/community-scripts/ProxmoxVE/pull/933))
 | 
			
		||||
- Doubled RAM for SAB [@TheRealVira](https://github.com/TheRealVira) ([#1007](https://github.com/community-scripts/ProxmoxVE/pull/1007))
 | 
			
		||||
 | 
			
		||||
## 2024-12-23
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
- Fix Navidrome Update & Install [@MickLesk](https://github.com/MickLesk) ([#991](https://github.com/community-scripts/ProxmoxVE/pull/991))
 | 
			
		||||
- Update emby.sh to correct port [@Rageplant](https://github.com/Rageplant) ([#989](https://github.com/community-scripts/ProxmoxVE/pull/989))
 | 
			
		||||
 | 
			
		||||
## 2024-12-21
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
- update Port in homeassistant-core CT [@fraefel](https://github.com/fraefel) ([#961](https://github.com/community-scripts/ProxmoxVE/pull/961))
 | 
			
		||||
 | 
			
		||||
## 2024-12-20
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
### ✨ New Scripts
 | 
			
		||||
 | 
			
		||||
- New Script: Apache Guacamole [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#657](https://github.com/community-scripts/ProxmoxVE/pull/657))
 | 
			
		||||
- New Script: silverbullet [@dsiebel](https://github.com/dsiebel) ([#659](https://github.com/community-scripts/ProxmoxVE/pull/659))
 | 
			
		||||
- New Script: Zammad [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#640](https://github.com/community-scripts/ProxmoxVE/pull/640))
 | 
			
		||||
- New Script: CheckMk [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#926](https://github.com/community-scripts/ProxmoxVE/pull/926))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
- Fix: Remove PHP Key generation in Bookstack Update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#948](https://github.com/community-scripts/ProxmoxVE/pull/948))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
- Update checkmk description [@BramSuurdje](https://github.com/BramSuurdje) ([#954](https://github.com/community-scripts/ProxmoxVE/pull/954))
 | 
			
		||||
- Add Login Note for Checkmk [@MickLesk](https://github.com/MickLesk) ([#940](https://github.com/community-scripts/ProxmoxVE/pull/940))
 | 
			
		||||
 | 
			
		||||
### ❔ Unlabelled
 | 
			
		||||
 | 
			
		||||
- Update build.func to display the Proxmox Hostname [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#894](https://github.com/community-scripts/ProxmoxVE/pull/894))
 | 
			
		||||
 | 
			
		||||
## 2024-12-19
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
- Fix: Bookstack Update Function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#844](https://github.com/community-scripts/ProxmoxVE/pull/844))
 | 
			
		||||
- mysql not showing ip after install [@snow2k9](https://github.com/snow2k9) ([#924](https://github.com/community-scripts/ProxmoxVE/pull/924))
 | 
			
		||||
- Fix Omada - Crawling latest version [@MickLesk](https://github.com/MickLesk) ([#918](https://github.com/community-scripts/ProxmoxVE/pull/918))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
- Fix script path formatting in InstallMethod component [@BramSuurdje](https://github.com/BramSuurdje) ([#909](https://github.com/community-scripts/ProxmoxVE/pull/909))
 | 
			
		||||
- Fix Part-DB Docu (cred command) [@EvilBlood](https://github.com/EvilBlood) ([#898](https://github.com/community-scripts/ProxmoxVE/pull/898))
 | 
			
		||||
- Enhance Tooltip component by adding CircleHelp icon and fix instructions in script component [@BramSuurdje](https://github.com/BramSuurdje) ([#910](https://github.com/community-scripts/ProxmoxVE/pull/910))
 | 
			
		||||
 | 
			
		||||
## 2024-12-18
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										90
									
								
								ct/2fauth.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								ct/2fauth.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: jkrgr0
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://docs.2fauth.app/
 | 
			
		||||
 | 
			
		||||
# App Default Values
 | 
			
		||||
APP="2FAuth"
 | 
			
		||||
TAGS="2fa;authenticator"
 | 
			
		||||
var_cpu="1"
 | 
			
		||||
var_ram="512"
 | 
			
		||||
var_disk="2"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
 | 
			
		||||
# App Output & Base Settings
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
base_settings
 | 
			
		||||
 | 
			
		||||
# Core
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    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 -s 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}"
 | 
			
		||||
 | 
			
		||||
        apt-get update &>/dev/null
 | 
			
		||||
        apt-get -y upgrade &>/dev/null
 | 
			
		||||
 | 
			
		||||
        # Creating Backup
 | 
			
		||||
        msg_info "Creating Backup"
 | 
			
		||||
        mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
			
		||||
        msg_ok "Backup Created"
 | 
			
		||||
 | 
			
		||||
        # Execute Update
 | 
			
		||||
        wget -q "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
 | 
			
		||||
        composer install --no-dev --prefer-source &>/dev/null
 | 
			
		||||
 | 
			
		||||
        php artisan 2fauth:install
 | 
			
		||||
 | 
			
		||||
        # Cleaning up
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf "v${RELEASE}.zip"
 | 
			
		||||
        $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
 | 
			
		||||
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}:80${CL}"
 | 
			
		||||
							
								
								
									
										47
									
								
								ct/apache-guacamole.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								ct/apache-guacamole.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
			
		||||
# License: | MIT https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://guacamole.apache.org/
 | 
			
		||||
 | 
			
		||||
#App Default Values
 | 
			
		||||
APP="Apache-Guacamole"
 | 
			
		||||
TAGS="webserver;remote"
 | 
			
		||||
var_disk="4"
 | 
			
		||||
var_cpu="1"
 | 
			
		||||
var_ram="2048"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
 | 
			
		||||
# App Output & Base Settings
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
base_settings
 | 
			
		||||
 | 
			
		||||
# Core
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/apache-guacamole ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_error "Ther is currently no automatic update function for ${APP}."
 | 
			
		||||
    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}:8080/guacamole${CL}"
 | 
			
		||||
 | 
			
		||||
@@ -38,32 +38,40 @@ function update_script() {
 | 
			
		||||
    systemctl stop apache2
 | 
			
		||||
    msg_ok "Services Stopped"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cp /opt/bookstack/.env /opt/.env
 | 
			
		||||
    wget -q "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip"
 | 
			
		||||
    unzip -q v${RELEASE}.zip
 | 
			
		||||
    mv BookStack-${RELEASE} /opt/bookstack
 | 
			
		||||
    mv /opt/.env /opt/bookstack/.env
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    mv /opt/bookstack /opt/bookstack-backup
 | 
			
		||||
    wget -q --directory-prefix=/opt "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip"
 | 
			
		||||
    unzip -q /opt/v${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
 | 
			
		||||
    cp -r /opt/bookstack-backup/storage/uploads/ /opt/bookstack/storage/uploads
 | 
			
		||||
    cp -r /opt/bookstack-backup/themes/ /opt/bookstack/themes
 | 
			
		||||
    cd /opt/bookstack
 | 
			
		||||
    COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
 | 
			
		||||
    php artisan key:generate --force &>/dev/null
 | 
			
		||||
    php artisan migrate --force &>/dev/null
 | 
			
		||||
    chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
 | 
			
		||||
    chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
 | 
			
		||||
    chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
 | 
			
		||||
    chmod -R 640 /opt/bookstack/.env
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Apache2"
 | 
			
		||||
    systemctl start apache2
 | 
			
		||||
    msg_ok "Started Apache2"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf v${RELEASE}.zip
 | 
			
		||||
    rm -rf /opt/bookstack-backup
 | 
			
		||||
    rm -rf /opt/v${RELEASE}.zip
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 
 | 
			
		||||
@@ -28,28 +28,45 @@ function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -f /etc/systemd/system/changedetection.service ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
 | 
			
		||||
  if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
 | 
			
		||||
    msg_info "Installing Dependencies"
 | 
			
		||||
    apt-get update
 | 
			
		||||
    apt-get install -y libjpeg-dev
 | 
			
		||||
    msg_ok "Updated Dependencies"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  pip3 install changedetection.io --upgrade &>/dev/null
 | 
			
		||||
  msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Playwright"
 | 
			
		||||
  pip3 install playwright --upgrade &>/dev/null
 | 
			
		||||
  msg_ok "Updated Playwright"
 | 
			
		||||
 | 
			
		||||
  if [[ -f /etc/systemd/system/browserless.service ]]; then
 | 
			
		||||
    msg_info "Updating Browserless (Patience)"
 | 
			
		||||
    git -C /opt/browserless/ fetch --all &>/dev/null
 | 
			
		||||
    git -C /opt/browserless/ reset --hard origin/main &>/dev/null
 | 
			
		||||
    npm update --prefix /opt/browserless &>/dev/null
 | 
			
		||||
    /opt/browserless/node_modules/playwright-core/cli.js install --with-deps &>/dev/null
 | 
			
		||||
    # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
 | 
			
		||||
    /opt/browserless/node_modules/playwright-core/cli.js install --force chrome &>/dev/null
 | 
			
		||||
    /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit &>/dev/null
 | 
			
		||||
    npm run build --prefix /opt/browserless &>/dev/null
 | 
			
		||||
    npm run build:function --prefix /opt/browserless &>/dev/null
 | 
			
		||||
    npm prune production --prefix /opt/browserless &>/dev/null
 | 
			
		||||
    systemctl restart browserless
 | 
			
		||||
    msg_ok "Updated Browserless"
 | 
			
		||||
  else
 | 
			
		||||
    msg_error "No Browserless Installation Found!"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  systemctl restart changedetection
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
@@ -62,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}http://${IP}:5000${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								ct/checkmk.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								ct/checkmk.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://checkmk.com/
 | 
			
		||||
 | 
			
		||||
APP="checkmk"
 | 
			
		||||
var_tags="monitoring"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="2048"
 | 
			
		||||
var_disk="4"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
base_settings
 | 
			
		||||
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /opt/checkmk_version.txt ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | grep -v "*-rc" | tail -n +2 | head -n 1)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    omd stop monitoring &>/dev/null
 | 
			
		||||
    omd cp monitoring monitoringbackup &>/dev/null
 | 
			
		||||
    wget -q https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb -O /opt/checkmk.deb
 | 
			
		||||
    apt-get install -y /opt/checkmk.deb &>/dev/null
 | 
			
		||||
    omd --force -V ${RELEASE}.cre update --conflict=install monitoring &>/dev/null
 | 
			
		||||
    omd start monitoring &>/dev/null
 | 
			
		||||
    omd -f rm monitoringbackup  &>/dev/null
 | 
			
		||||
    omd cleanup &>/dev/null
 | 
			
		||||
    rm -rf /opt/checkmk.deb
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
  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}/monitoring${CL}"
 | 
			
		||||
@@ -57,4 +57,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}:8086${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -128,4 +128,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}:8132${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
 | 
			
		||||
 | 
			
		||||
# App Default Values
 | 
			
		||||
APP="Hyperion"
 | 
			
		||||
var_tags="ambient lightning"
 | 
			
		||||
var_tags="ambient-lightning"
 | 
			
		||||
var_cpu="1"
 | 
			
		||||
var_ram="512"
 | 
			
		||||
var_disk="2"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								ct/jenkins.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								ct/jenkins.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: kristocopani
 | 
			
		||||
# License: MIT
 | 
			
		||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://www.jenkins.io/
 | 
			
		||||
 | 
			
		||||
# App Default Values
 | 
			
		||||
APP="Jenkins"
 | 
			
		||||
var_tags="automation"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="1024"
 | 
			
		||||
var_disk="4"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
 | 
			
		||||
# App Output & Base Settings
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
base_settings
 | 
			
		||||
 | 
			
		||||
# Core
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /var/lib/jenkins ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    apt-get update &>/dev/null
 | 
			
		||||
    apt-get -y upgrade &>/dev/null
 | 
			
		||||
    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}http://${IP}:8080${CL}"
 | 
			
		||||
@@ -46,4 +46,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 IP:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}{IP}:3306${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:3306${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -34,16 +34,18 @@ function update_script() {
 | 
			
		||||
    fi
 | 
			
		||||
    RELEASE=$(curl -s https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop navidrome.service
 | 
			
		||||
    systemctl stop navidrome
 | 
			
		||||
    msg_ok "Stopped Navidrome"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating to v${RELEASE}"
 | 
			
		||||
    wget https://github.com/navidrome/navidrome/releases/download/v${RELEASE}/navidrome_${RELEASE}_linux_amd64.tar.gz -O Navidrome.tar.gz &>/dev/null
 | 
			
		||||
    cd /opt
 | 
			
		||||
    wget -q https://github.com/navidrome/navidrome/releases/download/v${RELEASE}/navidrome_${RELEASE}_linux_amd64.tar.gz -O Navidrome.tar.gz
 | 
			
		||||
    tar -xvzf Navidrome.tar.gz -C /opt/navidrome/ &>/dev/null
 | 
			
		||||
    chmod +x /opt/navidrome/navidrome
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
    rm Navidrome.tar.gz
 | 
			
		||||
    rm -rf /opt/Navidrome.tar.gz
 | 
			
		||||
 | 
			
		||||
    msg_info "${GN} Starting ${APP}"
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start navidrome.service
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
@@ -57,4 +59,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}:4533${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4533${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -32,8 +32,10 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
 | 
			
		||||
  latest_version=$(basename "${latest_url}")
 | 
			
		||||
  latest_url=$(curl -s "https://support.omadanetworks.com/en/product/omada-software-controller/?resourceType=download" | \
 | 
			
		||||
  grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | \
 | 
			
		||||
  head -n 1)
 | 
			
		||||
  latest_version=$(basename "$latest_url")
 | 
			
		||||
  if [ -z "${latest_version}" ]; then
 | 
			
		||||
    msg_error "It seems that the server (tp-link.com) might be down. Please try again at a later time."
 | 
			
		||||
    exit
 | 
			
		||||
@@ -53,4 +55,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}:8043${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8043${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								ct/proxmox-datacenter-manager.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								ct/proxmox-datacenter-manager.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: CrazyWolf13
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: Proxmox Server Solution GmbH
 | 
			
		||||
 | 
			
		||||
# App Default Values
 | 
			
		||||
APP="proxmox-datacenter-manager"
 | 
			
		||||
var_tags="datacenter"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="2048"
 | 
			
		||||
var_disk="10"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
 | 
			
		||||
# App Output & Base Settings
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
base_settings
 | 
			
		||||
 | 
			
		||||
# Core
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -e /usr/sbin/proxmox-datacenter-manager-admin ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
 | 
			
		||||
        msg_info "Updating $APP LXC"
 | 
			
		||||
        apt-get update &>/dev/null
 | 
			
		||||
        apt-get -y upgrade &>/dev/null
 | 
			
		||||
        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}:8443${CL}"
 | 
			
		||||
@@ -9,7 +9,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
 | 
			
		||||
APP="SABnzbd"
 | 
			
		||||
var_tags="downloader"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="2048"
 | 
			
		||||
var_ram="4096"
 | 
			
		||||
var_disk="8"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
@@ -57,4 +57,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}:7777${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7777${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								ct/silverbullet.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								ct/silverbullet.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Dominik Siebel (dsiebel)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://silverbullet.md
 | 
			
		||||
 | 
			
		||||
# App default values
 | 
			
		||||
APP="Silverbullet"
 | 
			
		||||
var_tags="notes"
 | 
			
		||||
var_cpu="1"
 | 
			
		||||
var_disk="2"
 | 
			
		||||
var_ram="512"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
 | 
			
		||||
# App Output & Base Settings
 | 
			
		||||
header_info "${APP}"
 | 
			
		||||
base_settings
 | 
			
		||||
 | 
			
		||||
# Core
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/silverbullet ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/silverbulletmd/silverbullet/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ ! -f "/opt/${APP}_version.txt" || "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop silverbullet
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    wget -q https://github.com/silverbulletmd/silverbullet/releases/download/${RELEASE}/silverbullet-server-linux-x86_64.zip
 | 
			
		||||
    unzip -q silverbullet-server-linux-x86_64.zip
 | 
			
		||||
    mv silverbullet /opt/silverbullet/bin/
 | 
			
		||||
    chmod +x /opt/silverbullet/bin/silverbullet
 | 
			
		||||
    echo "${RELEASE}" >/opt/silverbullet/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start silverbullet
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
  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}"
 | 
			
		||||
							
								
								
									
										56
									
								
								ct/zammad.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								ct/zammad.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://zammad.com
 | 
			
		||||
 | 
			
		||||
#App Default Values
 | 
			
		||||
APP="Zammad"
 | 
			
		||||
TAGS="webserver;ticket-system"
 | 
			
		||||
var_disk="8"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="4096"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
 | 
			
		||||
# App Output & Base Settings
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
base_settings
 | 
			
		||||
 | 
			
		||||
# Core
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/zamad ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop zammad &>/dev/null
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    apt-get update &>/dev/null
 | 
			
		||||
    apt-mark hold zammad &>/dev/null
 | 
			
		||||
    apt-get -y upgrade &>/dev/null
 | 
			
		||||
    apt-mark unhold zammad &>/dev/null
 | 
			
		||||
    apt-get -y upgrade &>/dev/null
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start zammad &>/dev/null
 | 
			
		||||
    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}http://${IP}${CL}"
 | 
			
		||||
@@ -34,7 +34,7 @@ function InstallMethod({
 | 
			
		||||
    setScript((prev) => {
 | 
			
		||||
      const method = InstallMethodSchema.parse({
 | 
			
		||||
        type: "default",
 | 
			
		||||
        script: `/${prev.type}/${prev.slug}.sh`,
 | 
			
		||||
        script: `${prev.type}/${prev.slug}.sh`,
 | 
			
		||||
        resources: {
 | 
			
		||||
          cpu: null,
 | 
			
		||||
          ram: null,
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,7 @@ function ScriptItem({
 | 
			
		||||
              <div className="mt-4 rounded-lg border bg-accent/50">
 | 
			
		||||
                <div className="flex gap-3 px-4 py-2">
 | 
			
		||||
                  <h2 className="text-lg font-semibold">
 | 
			
		||||
                    How to {item.type ? "install" : "use"}
 | 
			
		||||
                    How to {item.type == "misc" ? "use" : "install"}
 | 
			
		||||
                  </h2>
 | 
			
		||||
                  <Tooltips item={item} />
 | 
			
		||||
                </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -28,15 +28,16 @@ export default function InstallCommand({ item }: { item: Script }) {
 | 
			
		||||
            time and minimal system resource usage. You are also obliged to
 | 
			
		||||
            adhere to updates provided by the package maintainer.
 | 
			
		||||
          </>
 | 
			
		||||
        ) : item.type ? (
 | 
			
		||||
        ) : item.type == "misc" ? (
 | 
			
		||||
          <>
 | 
			
		||||
            To create a new Proxmox VE {item.name}{" "}
 | 
			
		||||
            {getDisplayValueFromType(item.type)}, run the command below in the
 | 
			
		||||
            Proxmox VE Shell.
 | 
			
		||||
            To use the {item.name} script, run the command below in the shell.
 | 
			
		||||
          </>
 | 
			
		||||
        ) : (
 | 
			
		||||
          <>
 | 
			
		||||
            To use the {item.name} script, run the command below in the shell.
 | 
			
		||||
            {" "}
 | 
			
		||||
            To create a new Proxmox VE {item.name}{" "}
 | 
			
		||||
            {getDisplayValueFromType(item.type)}, run the command below in the
 | 
			
		||||
            Proxmox VE Shell.
 | 
			
		||||
          </>
 | 
			
		||||
        )}
 | 
			
		||||
      </p>
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import {
 | 
			
		||||
  TooltipTrigger,
 | 
			
		||||
} from "@/components/ui/tooltip";
 | 
			
		||||
import { Script } from "@/lib/types";
 | 
			
		||||
import { CircleHelp } from "lucide-react";
 | 
			
		||||
import React from "react";
 | 
			
		||||
 | 
			
		||||
interface TooltipProps {
 | 
			
		||||
@@ -18,9 +19,11 @@ const TooltipBadge: React.FC<TooltipProps> = ({ variant, label, content }) => (
 | 
			
		||||
  <TooltipProvider>
 | 
			
		||||
    <Tooltip delayDuration={100}>
 | 
			
		||||
      <TooltipTrigger className="flex items-center">
 | 
			
		||||
        <Badge variant={variant}>{label}</Badge>
 | 
			
		||||
        <Badge variant={variant} className="flex items-center gap-1">
 | 
			
		||||
          {label} <CircleHelp className="size-3" />
 | 
			
		||||
        </Badge>
 | 
			
		||||
      </TooltipTrigger>
 | 
			
		||||
      <TooltipContent side="bottom" className="text-sm">
 | 
			
		||||
      <TooltipContent side="bottom" className="text-sm max-w-64">
 | 
			
		||||
        {content}
 | 
			
		||||
      </TooltipContent>
 | 
			
		||||
    </Tooltip>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										123
									
								
								install/2fauth-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								install/2fauth-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,123 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: jkrgr0
 | 
			
		||||
# License: MIT
 | 
			
		||||
# Source: https://docs.2fauth.app/
 | 
			
		||||
 | 
			
		||||
# Import Functions und Setup
 | 
			
		||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
# Installing Dependencies with the 3 core dependencies (curl;sudo;mc)
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  curl \
 | 
			
		||||
  sudo \
 | 
			
		||||
  mc \
 | 
			
		||||
  nginx \
 | 
			
		||||
  composer \
 | 
			
		||||
  php8.2-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli} \
 | 
			
		||||
  mariadb-server
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
# Template: MySQL Database
 | 
			
		||||
msg_info "Setting up Database"
 | 
			
		||||
DB_NAME=2fauth_db
 | 
			
		||||
DB_USER=2fauth
 | 
			
		||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
 | 
			
		||||
$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 "2FAuth Credentials"
 | 
			
		||||
    echo "Database User: $DB_USER"
 | 
			
		||||
    echo "Database Password: $DB_PASS"
 | 
			
		||||
    echo "Database Name: $DB_NAME"
 | 
			
		||||
} >> ~/2FAuth.creds
 | 
			
		||||
msg_ok "Set up Database"
 | 
			
		||||
 | 
			
		||||
# Setup App
 | 
			
		||||
msg_info "Setup 2FAuth"
 | 
			
		||||
RELEASE=$(curl -s https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
 | 
			
		||||
unzip -q "${RELEASE}.zip"
 | 
			
		||||
mv "2FAuth-${RELEASE//v}/" /opt/2fauth
 | 
			
		||||
 | 
			
		||||
cd "/opt/2fauth" || return
 | 
			
		||||
cp .env.example .env
 | 
			
		||||
IPADDRESS=$(hostname -I | awk '{print $1}')
 | 
			
		||||
 | 
			
		||||
sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
 | 
			
		||||
       -e "s|^DB_CONNECTION=$|DB_CONNECTION=mysql|" \
 | 
			
		||||
       -e "s|^DB_DATABASE=$|DB_DATABASE=$DB_NAME|" \
 | 
			
		||||
       -e "s|^DB_HOST=$|DB_HOST=127.0.0.1|" \
 | 
			
		||||
       -e "s|^DB_PORT=$|DB_PORT=3306|" \
 | 
			
		||||
       -e "s|^DB_USERNAME=$|DB_USERNAME=$DB_USER|" \
 | 
			
		||||
       -e "s|^DB_PASSWORD=$|DB_PASSWORD=$DB_PASS|" .env
 | 
			
		||||
 | 
			
		||||
export COMPOSER_ALLOW_SUPERUSER=1
 | 
			
		||||
$STD composer update --no-plugins --no-scripts
 | 
			
		||||
$STD composer install --no-dev --prefer-source --no-plugins --no-scripts
 | 
			
		||||
 | 
			
		||||
$STD php artisan key:generate --force
 | 
			
		||||
 | 
			
		||||
$STD php artisan migrate:refresh
 | 
			
		||||
$STD php artisan passport:install -q -n
 | 
			
		||||
$STD php artisan storage:link
 | 
			
		||||
$STD php artisan config:cache
 | 
			
		||||
 | 
			
		||||
chown -R www-data: /opt/2fauth
 | 
			
		||||
chmod -R 755 /opt/2fauth
 | 
			
		||||
 | 
			
		||||
echo "${RELEASE}" >"/opt/2fauth_version.txt"
 | 
			
		||||
msg_ok "Setup 2fauth"
 | 
			
		||||
 | 
			
		||||
# Configure Service (NGINX)
 | 
			
		||||
msg_info "Configure Service"
 | 
			
		||||
cat <<EOF >/etc/nginx/conf.d/2fauth.conf
 | 
			
		||||
server {
 | 
			
		||||
        listen 80;
 | 
			
		||||
        root /opt/2fauth/public;
 | 
			
		||||
        server_name $IPADDRESS;
 | 
			
		||||
        index index.php;
 | 
			
		||||
        charset utf-8;
 | 
			
		||||
 | 
			
		||||
        location / {
 | 
			
		||||
                try_files \$uri \$uri/ /index.php?\$query_string;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        location = /favicon.ico { access_log off; log_not_found off; }
 | 
			
		||||
        location = /robots.txt { access_log off; log_not_found off; }
 | 
			
		||||
 | 
			
		||||
        error_page 404 /index.php;
 | 
			
		||||
 | 
			
		||||
        location ~ \.php\$ {
 | 
			
		||||
                fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
 | 
			
		||||
                fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
 | 
			
		||||
                include fastcgi_params;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        location ~ /\.(?!well-known).* {
 | 
			
		||||
                deny all;
 | 
			
		||||
        }
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
systemctl reload nginx
 | 
			
		||||
msg_ok "Configured Service"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
# Cleanup
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -f "/opt/v${RELEASE}.zip"
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
@@ -103,6 +103,8 @@ server {
 | 
			
		||||
        listen       80;
 | 
			
		||||
        return 301 https://$host$request_uri;
 | 
			
		||||
        server_name localhost;
 | 
			
		||||
        client_max_body_size 16G;
 | 
			
		||||
        fastcgi_read_timeout 120s;
 | 
			
		||||
}
 | 
			
		||||
server {
 | 
			
		||||
        listen       443 ssl http2;
 | 
			
		||||
@@ -127,6 +129,8 @@ server {
 | 
			
		||||
                fastcgi_pass unix:/run/nextcloud/fastcgi.sock; # From the nextcloud-initscript package
 | 
			
		||||
                fastcgi_index index.php;
 | 
			
		||||
                include fastcgi.conf;
 | 
			
		||||
                fastcgi_read_timeout 120s;
 | 
			
		||||
                client_max_body_size 16G;
 | 
			
		||||
        }
 | 
			
		||||
        location ^~ /.well-known/carddav { return 301 /remote.php/dav/; }
 | 
			
		||||
        location ^~ /.well-known/caldav { return 301 /remote.php/dav/; }
 | 
			
		||||
@@ -135,6 +139,7 @@ server {
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
sed -i -e 's|memory_limit = 128M|memory_limit = 512M|; $aapc.enable_cli=1' /etc/php83/php.ini
 | 
			
		||||
sed -i -e 's|upload_max_file_size = 2M|upload_max_file_size = 16G|' /etc/php83/php.ini 
 | 
			
		||||
sed -i -E '/^php_admin_(flag|value)\[opcache/s/^/;/' /etc/php83/php-fpm.d/nextcloud.conf
 | 
			
		||||
msg_ok "Installed Nextcloud"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										135
									
								
								install/apache-guacamole-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								install/apache-guacamole-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,135 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Michel Roegl-Brunner (michelroegl-brunner) | MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT
 | 
			
		||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
   build-essential \
 | 
			
		||||
   curl \
 | 
			
		||||
   jq \
 | 
			
		||||
   libcairo2-dev \
 | 
			
		||||
   libturbojpeg0 \
 | 
			
		||||
   libpng-dev \
 | 
			
		||||
   libtool-bin \
 | 
			
		||||
   libossp-uuid-dev \
 | 
			
		||||
   libvncserver-dev \
 | 
			
		||||
   freerdp2-dev \
 | 
			
		||||
   libssh2-1-dev \
 | 
			
		||||
   libtelnet-dev \
 | 
			
		||||
   libwebsockets-dev \
 | 
			
		||||
   libpulse-dev \
 | 
			
		||||
   libvorbis-dev \
 | 
			
		||||
   libwebp-dev \
 | 
			
		||||
   libssl-dev \
 | 
			
		||||
   libpango1.0-dev \
 | 
			
		||||
   libswscale-dev \
 | 
			
		||||
   libavcodec-dev \
 | 
			
		||||
   libavutil-dev \
 | 
			
		||||
   libavformat-dev \
 | 
			
		||||
   mariadb-server \
 | 
			
		||||
   default-jdk
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Apache Tomcat"
 | 
			
		||||
RELEASE=$(wget -qO- https://dlcdn.apache.org/tomcat/tomcat-9/ | grep -oP '(?<=href=")v[^"/]+(?=/")' | sed 's/^v//')
 | 
			
		||||
mkdir -p /opt/apache-guacamole/tomcat9
 | 
			
		||||
mkdir -p /opt/apache-guacamole/server
 | 
			
		||||
wget -qO- "https://dlcdn.apache.org/tomcat/tomcat-9/v${RELEASE}/bin/apache-tomcat-${RELEASE}.tar.gz" | tar -xz -C /opt/apache-guacamole/tomcat9 --strip-components=1
 | 
			
		||||
useradd -r -d /opt/apache-guacamole/tomcat9 -s /bin/false tomcat
 | 
			
		||||
chown -R tomcat: /opt/apache-guacamole/tomcat9
 | 
			
		||||
chmod -R g+r /opt/apache-guacamole/tomcat9/conf
 | 
			
		||||
chmod g+x /opt/apache-guacamole/tomcat9/conf
 | 
			
		||||
msg_ok "Setup Apache Tomcat"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Apache Guacamole"
 | 
			
		||||
mkdir -p /etc/guacamole/{extensions,lib}
 | 
			
		||||
RELEASE_SERVER=$(curl -sL https://api.github.com/repos/apache/guacamole-server/tags | jq -r '.[0].name')
 | 
			
		||||
wget -qO- https://api.github.com/repos/apache/guacamole-server/tarball/refs/tags/${RELEASE_SERVER} | tar -xz --strip-components=1 -C /opt/apache-guacamole/server
 | 
			
		||||
cd /opt/apache-guacamole/server
 | 
			
		||||
$STD autoreconf -fi
 | 
			
		||||
$STD ./configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots
 | 
			
		||||
$STD make
 | 
			
		||||
$STD make install
 | 
			
		||||
$STD ldconfig
 | 
			
		||||
RELEASE_CLIENT=$(curl -sL https://api.github.com/repos/apache/guacamole-client/tags | jq -r '.[0].name')
 | 
			
		||||
wget -q -O /opt/apache-guacamole/tomcat9/webapps/guacamole.war https://downloads.apache.org/guacamole/${RELEASE_CLIENT}/binary/guacamole-${RELEASE_CLIENT}.war
 | 
			
		||||
cd /root
 | 
			
		||||
wget -q --directory-prefix=/root/ https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.26.tar.gz
 | 
			
		||||
$STD tar -xf ~/mysql-connector-java-8.0.26.tar.gz
 | 
			
		||||
mv ~/mysql-connector-java-8.0.26/mysql-connector-java-8.0.26.jar /etc/guacamole/lib/
 | 
			
		||||
wget -q --directory-prefix=/root/ https://downloads.apache.org/guacamole/1.5.5/binary/guacamole-auth-jdbc-1.5.5.tar.gz
 | 
			
		||||
$STD tar -xf ~/guacamole-auth-jdbc-1.5.5.tar.gz
 | 
			
		||||
mv ~/guacamole-auth-jdbc-1.5.5/mysql/guacamole-auth-jdbc-mysql-1.5.5.jar /etc/guacamole/extensions/
 | 
			
		||||
msg_ok "Setup Apache Guacamole"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Database"
 | 
			
		||||
DB_NAME=guacamole_db
 | 
			
		||||
DB_USER=guacamole_user
 | 
			
		||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
 | 
			
		||||
mysql -u root -e "CREATE DATABASE $DB_NAME;"
 | 
			
		||||
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
 | 
			
		||||
mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
 | 
			
		||||
{
 | 
			
		||||
    echo "Guacamole-Credentials"
 | 
			
		||||
    echo "Database User: $DB_USER"
 | 
			
		||||
    echo "Database Password: $DB_PASS"
 | 
			
		||||
    echo "Database Name: $DB_NAME"
 | 
			
		||||
} >> ~/guacamole.creds
 | 
			
		||||
cd guacamole-auth-jdbc-1.5.5/mysql/schema
 | 
			
		||||
cat *.sql | mysql -u root ${DB_NAME}
 | 
			
		||||
{
 | 
			
		||||
    echo "mysql-hostname: 127.0.0.1"
 | 
			
		||||
    echo "mysql-port: 3306"
 | 
			
		||||
    echo "mysql-database: $DB_NAME"
 | 
			
		||||
    echo "mysql-username: $DB_USER"
 | 
			
		||||
    echo "mysql-password: $DB_PASS"
 | 
			
		||||
 | 
			
		||||
} >> /etc/guacamole/guacamole.properties
 | 
			
		||||
msg_ok "Setup Database"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Service"
 | 
			
		||||
JAVA_HOME=$(update-alternatives --query javadoc | grep Value: | head -n1 | sed 's/Value: //' | sed 's@bin/javadoc$@@')
 | 
			
		||||
cat <<EOF >/etc/systemd/system/tomcat.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Apache Tomcat Web Application Container
 | 
			
		||||
After=network.target
 | 
			
		||||
[Service]
 | 
			
		||||
Type=forking
 | 
			
		||||
Environment="JAVA_HOME=${JAVA_HOME}"
 | 
			
		||||
Environment="CATALINA_PID=/opt/apache-guacamole/tomcat9/temp/tomcat.pid"
 | 
			
		||||
Environment="CATALINA_HOME=/opt/apache-guacamole/tomcat9/"
 | 
			
		||||
Environment="CATALINA_BASE=/opt/apache-guacamole/tomcat9/"
 | 
			
		||||
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
 | 
			
		||||
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
 | 
			
		||||
ExecStart=/opt/apache-guacamole/tomcat9/bin/startup.sh
 | 
			
		||||
ExecStop=/opt/apache-guacamole/tomcat9/bin/shutdown.sh
 | 
			
		||||
User=tomcat
 | 
			
		||||
Group=tomcat
 | 
			
		||||
UMask=0007
 | 
			
		||||
RestartSec=10
 | 
			
		||||
Restart=always
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
systemctl -q enable --now tomcat guacd mysql
 | 
			
		||||
msg_ok "Setup Service"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf ~/mysql-connector-java-8.0.26{,.tar.gz} 
 | 
			
		||||
rm -rf ~/guacamole-auth-jdbc-1.5.5{,.tar.gz}
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
							
								
								
									
										48
									
								
								install/checkmk-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								install/checkmk-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
#Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
			
		||||
# License: MIT
 | 
			
		||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  curl \
 | 
			
		||||
  sudo \
 | 
			
		||||
  mc 
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Install Checkmk"
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | grep -v "*-rc" | tail -n +2 | head -n 1)
 | 
			
		||||
wget -q https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb -O /opt/checkmk.deb
 | 
			
		||||
$STD apt-get install -y /opt/checkmk.deb
 | 
			
		||||
echo "${RELEASE}" >"/opt/checkmk_version.txt"
 | 
			
		||||
msg_ok "Installed Checkmk"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Service"
 | 
			
		||||
PASSWORD=$(omd create monitoring | grep "password:" | awk '{print $NF}')
 | 
			
		||||
$STD omd start
 | 
			
		||||
{
 | 
			
		||||
    echo "Application-Credentials"
 | 
			
		||||
    echo "Username: cmkadmin"
 | 
			
		||||
    echo "Password: $PASSWORD"
 | 
			
		||||
} >> ~/checkmk.creds
 | 
			
		||||
msg_ok "Created Service"
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf /opt/checkmk.deb
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
							
								
								
									
										36
									
								
								install/jenkins-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								install/jenkins-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: kristocopani
 | 
			
		||||
# License: MIT
 | 
			
		||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
    curl \
 | 
			
		||||
    mc \
 | 
			
		||||
    sudo \
 | 
			
		||||
    openjdk-17-jre
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Jenkins"
 | 
			
		||||
wget -qO /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian/jenkins.io-2023.key
 | 
			
		||||
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" https://pkg.jenkins.io/debian binary/ >/etc/apt/sources.list.d/jenkins.list
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get install -y jenkins
 | 
			
		||||
msg_ok "Setup Jenkins"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
@@ -20,14 +20,14 @@ $STD apt-get install -y mc
 | 
			
		||||
$STD apt-get install -y ffmpeg
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
RELEASE=$(curl -s https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Navidrome"
 | 
			
		||||
RELEASE=$(curl -s https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
install -d -o root -g root /opt/navidrome
 | 
			
		||||
install -d -o root -g root /var/lib/navidrome
 | 
			
		||||
wget -q https://github.com/navidrome/navidrome/releases/download/v${RELEASE}/navidrome_${RELEASE}_linux_amd64.tar.gz -O Navidrome.tar.gz
 | 
			
		||||
$STD tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
 | 
			
		||||
chown -R root:root /opt/navidrome
 | 
			
		||||
chmod +x /opt/navidrome/navidrome
 | 
			
		||||
mkdir -p /music
 | 
			
		||||
cat <<EOF >/var/lib/navidrome/navidrome.toml
 | 
			
		||||
MusicFolder = '/music'
 | 
			
		||||
 
 | 
			
		||||
@@ -14,11 +14,12 @@ network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y curl
 | 
			
		||||
$STD apt-get install -y sudo
 | 
			
		||||
$STD apt-get install -y mc
 | 
			
		||||
$STD apt-get install -y gnupg
 | 
			
		||||
$STD apt-get install -y jsvc
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  curl \
 | 
			
		||||
  sudo \
 | 
			
		||||
  mc \
 | 
			
		||||
  gnupg \
 | 
			
		||||
  jsvc
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Azul Zulu"
 | 
			
		||||
@@ -37,7 +38,9 @@ wget -qL https://repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/3.6/multiv
 | 
			
		||||
$STD dpkg -i mongodb-org-server_3.6.23_amd64.deb
 | 
			
		||||
msg_ok "Installed MongoDB"
 | 
			
		||||
 | 
			
		||||
latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
 | 
			
		||||
latest_url=$(curl -s "https://support.omadanetworks.com/en/product/omada-software-controller/?resourceType=download" | \
 | 
			
		||||
grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | \
 | 
			
		||||
head -n 1)
 | 
			
		||||
latest_version=$(basename "$latest_url")
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Omada Controller"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								install/proxmox-datacenter-manager-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								install/proxmox-datacenter-manager-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: CrazyWolf13
 | 
			
		||||
# License: MIT
 | 
			
		||||
# Source: Proxmox Server Solution GmbH
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
    curl \
 | 
			
		||||
    sudo \
 | 
			
		||||
    gpg \
 | 
			
		||||
    mc 
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Proxmox Datacenter Manager"
 | 
			
		||||
curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg | gpg --dearmor -o /etc/apt/keyrings/proxmox-release-bookworm.gpg
 | 
			
		||||
echo "deb [signed-by=/etc/apt/keyrings/proxmox-release-bookworm.gpg] http://download.proxmox.com/debian/pdm bookworm pdm-test  " >/etc/apt/sources.list.d/proxmox-release-bookworm.list
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
    proxmox-datacenter-manager \
 | 
			
		||||
    proxmox-datacenter-manager-ui
 | 
			
		||||
msg_ok "Installed Proxmox Datacenter Manager"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
							
								
								
									
										59
									
								
								install/silverbullet-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								install/silverbullet-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Dominik Siebel (dsiebel)
 | 
			
		||||
# License: MIT
 | 
			
		||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  curl \
 | 
			
		||||
  sudo \
 | 
			
		||||
  mc
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Silverbullet"
 | 
			
		||||
RELEASE=$(curl -s https://api.github.com/repos/silverbulletmd/silverbullet/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
mkdir -p /opt/silverbullet/bin /opt/silverbullet/space
 | 
			
		||||
wget -q https://github.com/silverbulletmd/silverbullet/releases/download/${RELEASE}/silverbullet-server-linux-x86_64.zip
 | 
			
		||||
unzip -oq -d /opt/silverbullet/bin/ silverbullet-server-linux-x86_64.zip
 | 
			
		||||
chmod +x /opt/silverbullet/bin/silverbullet
 | 
			
		||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
 | 
			
		||||
msg_ok "Installed Silverbullet"
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Service"
 | 
			
		||||
 | 
			
		||||
cat <<EOF >/etc/systemd/system/silverbullet.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Silverbullet Daemon
 | 
			
		||||
After=syslog.target network.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
User=root
 | 
			
		||||
Type=simple
 | 
			
		||||
ExecStart=/opt/silverbullet/bin/silverbullet --hostname 0.0.0.0 --port 3000 /opt/silverbullet/space
 | 
			
		||||
WorkingDirectory=/opt/silverbullet
 | 
			
		||||
Restart=on-failure
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
systemctl enable --now -q silverbullet
 | 
			
		||||
msg_ok "Created Service"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf silverbullet-server-linux-x86_64.zip
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
							
								
								
									
										61
									
								
								install/zammad-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								install/zammad-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
#Copyright (c) 2021-2024 community-scripts ORG
 | 
			
		||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
			
		||||
# License: MIT
 | 
			
		||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  curl \
 | 
			
		||||
  git \
 | 
			
		||||
  sudo \
 | 
			
		||||
  gpg \
 | 
			
		||||
  wget \
 | 
			
		||||
  nginx \
 | 
			
		||||
  apt-transport-https \
 | 
			
		||||
  gnupg 
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Setting up Elasticsearch"
 | 
			
		||||
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
 | 
			
		||||
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list >/dev/null
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get -y install elasticsearch
 | 
			
		||||
echo "-Xms2g" >>/etc/elasticsearch/jvm.options
 | 
			
		||||
echo "-Xmx2g" >>/etc/elasticsearch/jvm.options
 | 
			
		||||
$STD /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment -b
 | 
			
		||||
systemctl -q restart elasticsearch
 | 
			
		||||
msg_ok "Setup Elasticsearch"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Zammad"
 | 
			
		||||
curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | gpg --dearmor | sudo tee /etc/apt/keyrings/pkgr-zammad.gpg >/dev/null
 | 
			
		||||
echo "deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 12 main" | sudo tee /etc/apt/sources.list.d/zammad.list >/dev/null
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get -y install zammad
 | 
			
		||||
$STD zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
 | 
			
		||||
$STD zammad run rake zammad:searchindex:rebuild
 | 
			
		||||
msg_ok "Installed Zammad"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Services"
 | 
			
		||||
cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/sites-available/zammad.conf
 | 
			
		||||
IPADDRESS=$(hostname -I | awk '{print $1}')
 | 
			
		||||
sed -i "s/server_name localhost;/server_name $IPADDRESS;/g" /etc/nginx/sites-available/zammad.conf
 | 
			
		||||
$STD systemctl reload nginx
 | 
			
		||||
msg_ok "Created Service"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
							
								
								
									
										43
									
								
								json/2fauth.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								json/2fauth.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "2FAuth",
 | 
			
		||||
    "slug": "2fauth",
 | 
			
		||||
    "categories": [
 | 
			
		||||
      0
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2024-12-20",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
    "updateable": true,
 | 
			
		||||
    "privileged": false,
 | 
			
		||||
    "interface_port": 80,
 | 
			
		||||
    "documentation": null,
 | 
			
		||||
    "website": "https://docs.2fauth.app/",
 | 
			
		||||
    "logo": "https://raw.githubusercontent.com/Bubka/2FAuth/refs/heads/master/public/logo.svg",
 | 
			
		||||
    "description": "2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop. It aims to ease you perform your 2FA authentication steps whatever the device you handle, with a clean and suitable interface.",
 | 
			
		||||
    "install_methods": [
 | 
			
		||||
      {
 | 
			
		||||
        "type": "default",
 | 
			
		||||
        "script": "ct/2fauth.sh",
 | 
			
		||||
        "resources": {
 | 
			
		||||
          "cpu": 1,
 | 
			
		||||
          "ram": 512,
 | 
			
		||||
          "hdd": 2,
 | 
			
		||||
          "os": "Debian",
 | 
			
		||||
          "version": "12"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
      "username": null,
 | 
			
		||||
      "password": null
 | 
			
		||||
    },
 | 
			
		||||
    "notes": [
 | 
			
		||||
      {
 | 
			
		||||
        "text": "Database credentials: `cat ~/2FAuth.creds`",
 | 
			
		||||
        "type": "info"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "text": "The very first account created is automatically set up as an administrator account.",
 | 
			
		||||
        "type": "info"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
@@ -33,11 +33,15 @@
 | 
			
		||||
    "notes": [
 | 
			
		||||
        {
 | 
			
		||||
            "text": "Execute within the Proxmox shell",
 | 
			
		||||
            "type": "Info"
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "text": "Configuration: `nano /opt/lxc-iptag/iptag.conf`. iptag.service must be restarted after change.",
 | 
			
		||||
            "type": "Info"
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "text": "The Proxmox Node must contain ipcalc and net-tools. `apt-get install -y ipcalc net-tools`",
 | 
			
		||||
            "type": "warn"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								json/apache-guacamole.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								json/apache-guacamole.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "Apache Guacamole",
 | 
			
		||||
  "slug": "apache-guacamole",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    11
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2024-12-19",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": false,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": 8080,
 | 
			
		||||
  "documentation": null,
 | 
			
		||||
  "website": "https://guacamole.apache.org/",
 | 
			
		||||
  "logo": "https://guacamole.apache.org/images/logos/guac-tricolor-logo.svg",
 | 
			
		||||
  "description": "Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/apache-guacamole.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 1,
 | 
			
		||||
        "ram": 2048,
 | 
			
		||||
        "hdd": 4,
 | 
			
		||||
        "os": "Debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": "guacadmin",
 | 
			
		||||
    "password": "guacadmin"
 | 
			
		||||
  },
 | 
			
		||||
  "notes": []
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								json/checkmk.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								json/checkmk.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "Checkmk",
 | 
			
		||||
  "slug": "checkmk",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    7
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2024-12-19",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": true,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": 80,
 | 
			
		||||
  "documentation": "https://docs.checkmk.com/",
 | 
			
		||||
  "website": "https://checkmk.com/",
 | 
			
		||||
  "logo": "https://checkmk.com/application/files/cache/thumbnails/67fc39c599afdf20557d538416e3efd3.png",
 | 
			
		||||
  "description": "Checkmk is an IT monitoring software that tracks the health and performance of your systems, networks, servers, applications, and cloud services. It provides real-time insights, alerts for issues, and tools for troubleshooting, helping ensure smooth operations across your infrastructure.",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/checkmk.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 2,
 | 
			
		||||
        "ram": 2048,
 | 
			
		||||
        "hdd": 4,
 | 
			
		||||
        "os": null,
 | 
			
		||||
        "version": null
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": null,
 | 
			
		||||
    "password": null
 | 
			
		||||
  },
 | 
			
		||||
    "notes": [
 | 
			
		||||
        {
 | 
			
		||||
            "text": "Login Credentials : `cat ~/checkmk.creds`",
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								json/jenkins.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								json/jenkins.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "Jenkins",
 | 
			
		||||
    "slug": "jenkins",
 | 
			
		||||
    "categories": [
 | 
			
		||||
      3
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2024-12-26",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
    "updateable": false,
 | 
			
		||||
    "privileged": false,
 | 
			
		||||
    "interface_port": 8080,
 | 
			
		||||
    "documentation": "https://www.jenkins.io/doc/",
 | 
			
		||||
    "website": "https://www.jenkins.io/",
 | 
			
		||||
    "logo": "https://www.jenkins.io/images/logos/jenkins/jenkins.svg",
 | 
			
		||||
    "description": "Jenkins provides hundreds of plugins to support building, deploying and automating any project. ",
 | 
			
		||||
    "install_methods": [
 | 
			
		||||
      {
 | 
			
		||||
        "type": "default",
 | 
			
		||||
        "script": "ct/jenkins.sh",
 | 
			
		||||
        "resources": {
 | 
			
		||||
          "cpu": 2,
 | 
			
		||||
          "ram": 1024,
 | 
			
		||||
          "hdd": 4,
 | 
			
		||||
          "os": "Debian",
 | 
			
		||||
          "version": "12"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
      "username": null,
 | 
			
		||||
      "password": null
 | 
			
		||||
    },
 | 
			
		||||
    "notes": []
 | 
			
		||||
  }
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "notes": [
 | 
			
		||||
        {
 | 
			
		||||
            "text": "Show login and database credentials: `cat part-db.creds`",
 | 
			
		||||
            "text": "Show login and database credentials: `cat partdb.creds`",
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								json/proxmox-datacenter-manager.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								json/proxmox-datacenter-manager.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "Proxmox Datacenter Manager",
 | 
			
		||||
    "slug": "proxmox-datacenter-manager",
 | 
			
		||||
    "categories": [
 | 
			
		||||
      1
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2024-12-25",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
    "updateable": true,
 | 
			
		||||
    "privileged": false,
 | 
			
		||||
    "interface_port": 8443,
 | 
			
		||||
    "documentation": "https://pve.proxmox.com/wiki/Proxmox_Datacenter_Manager_Roadmap",
 | 
			
		||||
    "website": "https://pve.proxmox.com/wiki/Proxmox_Datacenter_Manager_Roadmap",
 | 
			
		||||
    "logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png",
 | 
			
		||||
    "description": "The Proxmox Datacenter Manager project has been developed with the objective of providing a centralized overview of all your individual nodes and clusters. It also enables basic management like migrations of virtual guests without any cluster network requirements. ",
 | 
			
		||||
    "install_methods": [
 | 
			
		||||
      {
 | 
			
		||||
        "type": "default",
 | 
			
		||||
        "script": "ct/proxmox-datacenter-manager.sh",
 | 
			
		||||
        "resources": {
 | 
			
		||||
          "cpu": 2,
 | 
			
		||||
          "ram": 2048,
 | 
			
		||||
          "hdd": 10,
 | 
			
		||||
          "os": "Debian",
 | 
			
		||||
          "version": "12"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
      "username": null,
 | 
			
		||||
      "password": null
 | 
			
		||||
    },
 | 
			
		||||
    "notes": [
 | 
			
		||||
      {
 | 
			
		||||
        "text": "Set a root password if using autologin. This will be the Proxmox-Datacenter-Manager password. `sudo passwd root`",
 | 
			
		||||
        "type": "info"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "text": "Proxmox Datacenter Manager is in an alpha stage of development. Use it cautiously, as bugs, incomplete features, and potential instabilities are expected.",
 | 
			
		||||
        "type": "warning"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
							
								
								
									
										34
									
								
								json/silverbullet.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								json/silverbullet.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "Silverbullet",
 | 
			
		||||
    "slug": "silverbullet",
 | 
			
		||||
    "categories": [
 | 
			
		||||
        14
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2024-12-03",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
    "updateable": true,
 | 
			
		||||
    "privileged": false,
 | 
			
		||||
    "interface_port": 3000,
 | 
			
		||||
    "documentation": "https://silverbullet.md/Manual",
 | 
			
		||||
    "website": "https://silverbullet.md",
 | 
			
		||||
    "logo": "https://silverbullet.md/.client/logo.png",
 | 
			
		||||
    "description": "SilverBullet is a note-taking application optimized for people with a hacker mindset.",
 | 
			
		||||
    "install_methods": [
 | 
			
		||||
        {
 | 
			
		||||
            "type": "default",
 | 
			
		||||
            "script": "ct/silverbullet.sh",
 | 
			
		||||
            "resources": {
 | 
			
		||||
                "cpu": 1,
 | 
			
		||||
                "ram": 512,
 | 
			
		||||
                "hdd": 2,
 | 
			
		||||
                "os": "debian",
 | 
			
		||||
                "version": "12"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
        "username": null,
 | 
			
		||||
        "password": null
 | 
			
		||||
    },
 | 
			
		||||
    "notes": []
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								json/zammad.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								json/zammad.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "Zammad",
 | 
			
		||||
  "slug": "zammad",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    11
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2024-12-18",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": true,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": null,
 | 
			
		||||
  "documentation": "https://docs.zammad.org/en/latest/",
 | 
			
		||||
  "website": "https://zammad.com/",
 | 
			
		||||
  "logo": "https://raw.githubusercontent.com/zammad/zammad/refs/heads/develop/public/assets/images/logo.svg",
 | 
			
		||||
  "description": "Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and emails. It is distributed under version 3 of the GNU AFFERO General Public License (GNU AGPLv3).",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/zammad.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 2,
 | 
			
		||||
        "ram": 4096,
 | 
			
		||||
        "hdd": 8,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": null,
 | 
			
		||||
    "password": null
 | 
			
		||||
  },
 | 
			
		||||
  "notes": []
 | 
			
		||||
}
 | 
			
		||||
@@ -133,8 +133,9 @@ if [[ ! -f /opt/lxc-iptag/iptag.conf ]]; then
 | 
			
		||||
# List of allowed CIDRs
 | 
			
		||||
CIDR_LIST=(
 | 
			
		||||
  192.168.0.0/16
 | 
			
		||||
  100.64.0.0/10
 | 
			
		||||
  172.16.0.0/12
 | 
			
		||||
  10.0.0.0/8
 | 
			
		||||
  100.64.0.0/10
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Interval settings (in seconds)
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ variables() {
 | 
			
		||||
  NSAPP=$(echo ${APP,,} | tr -d ' ') # This function sets the NSAPP variable by converting the value of the APP variable to lowercase and removing any spaces.
 | 
			
		||||
  var_install="${NSAPP}-install"     # sets the var_install variable by appending "-install" to the value of NSAPP.
 | 
			
		||||
  INTEGER='^[0-9]+([.][0-9]+)?$'     # it defines the INTEGER regular expression pattern.
 | 
			
		||||
  PVEHOST_NAME=$(hostname) # gets the Proxmox Hostname and sets it to Uppercase
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# This function sets various color variables using ANSI escape codes for formatting text in the terminal.
 | 
			
		||||
@@ -163,13 +164,14 @@ header_info() {
 | 
			
		||||
    apt-get install -y figlet &> /dev/null
 | 
			
		||||
  elif [ -f /etc/alpine-release ]; then
 | 
			
		||||
    # Alpine Linux
 | 
			
		||||
    apk add --no-cache figlet &> /dev/null
 | 
			
		||||
    apk add --no-cache figlet ncurses &> /dev/null
 | 
			
		||||
    export TERM=xterm
 | 
			
		||||
  else
 | 
			
		||||
    echo "Unsupported OS"
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  term_width=$(tput cols)
 | 
			
		||||
  term_width=$(tput cols 2>/dev/null || echo 120)  # Fallback to 120 columns
 | 
			
		||||
  ascii_art=$(figlet -f slant -w "$term_width" "$APP")
 | 
			
		||||
  clear
 | 
			
		||||
  cat <<EOF
 | 
			
		||||
@@ -314,7 +316,6 @@ advanced_settings() {
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Setting Default Tag for Advanced Settings
 | 
			
		||||
  TAGS="community-script;"
 | 
			
		||||
 | 
			
		||||
@@ -580,7 +581,7 @@ advanced_settings() {
 | 
			
		||||
  else
 | 
			
		||||
    clear
 | 
			
		||||
    header_info
 | 
			
		||||
    echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}"
 | 
			
		||||
    echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings on node $PVEHOST_NAME${CL}"
 | 
			
		||||
    advanced_settings
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
@@ -614,7 +615,7 @@ install_script() {
 | 
			
		||||
    case $CHOICE in
 | 
			
		||||
      1)
 | 
			
		||||
        header_info
 | 
			
		||||
        echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings${CL}"
 | 
			
		||||
        echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}"
 | 
			
		||||
        VERB="no"
 | 
			
		||||
        base_settings "$VERB"  
 | 
			
		||||
        echo_default
 | 
			
		||||
@@ -622,7 +623,7 @@ install_script() {
 | 
			
		||||
        ;;
 | 
			
		||||
      2)
 | 
			
		||||
        header_info
 | 
			
		||||
        echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings (${SEARCH}${BOLD}${BL} Verbose)${CL}"
 | 
			
		||||
        echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME (${SEARCH}${BL}Verbose)${CL}"
 | 
			
		||||
        VERB="yes"
 | 
			
		||||
        base_settings "$VERB"  
 | 
			
		||||
        echo_default
 | 
			
		||||
@@ -630,7 +631,7 @@ install_script() {
 | 
			
		||||
        ;;
 | 
			
		||||
      3)
 | 
			
		||||
        header_info
 | 
			
		||||
        echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}"
 | 
			
		||||
        echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings on node $PVEHOST_NAME${CL}"
 | 
			
		||||
        advanced_settings
 | 
			
		||||
        break
 | 
			
		||||
        ;;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user