Compare commits

..

51 Commits

Author SHA1 Message Date
b4db6a6c70 Update CHANGELOG.md (#9897)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-12 00:15:56 +00:00
11a407b54f Update versions.json (#9896)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-12 01:15:30 +01:00
af5172a8cf Update CHANGELOG.md (#9893)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 17:32:43 +00:00
115ea10ecd dokploy: require unprivileged LXC environment (#9891) 2025-12-11 18:32:20 +01:00
8549f2a84d Update versions.json (#9889)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 13:06:13 +01:00
c80c2a2ecb Update CHANGELOG.md (#9888)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 11:32:05 +00:00
7255edc21b Fixes (#9872) 2025-12-11 12:31:37 +01:00
18d620705d Update CHANGELOG.md (#9887)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 11:30:50 +00:00
2b1f62e74f Fixes (#9874) 2025-12-11 12:30:27 +01:00
f5b0c03362 Update CHANGELOG.md (#9886)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 11:08:42 +00:00
1afefd20e9 Refactor (#9876) 2025-12-11 12:08:16 +01:00
723f9d63d6 Update CHANGELOG.md (#9884)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 09:57:28 +00:00
1ea0172b75 paperless: add note on website (uv usage) (#9833)
* paperless: add note on website (uv usage)

Added information about using 'uv run' for Paperless-NGX commands.

* switch branch to main to prevent conflicts
2025-12-11 10:57:05 +01:00
ef63f853b4 Update CHANGELOG.md (#9883)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 09:54:11 +00:00
179233810e Refactor (#9863) 2025-12-11 10:53:49 +01:00
748c08ddb5 Update CHANGELOG.md (#9882)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 09:53:14 +00:00
de944792de SonarQube: Fixes (#9875)
* Fixes

* Update
2025-12-11 10:52:49 +01:00
091271c8d6 Update CHANGELOG.md (#9881)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 09:52:34 +00:00
7fae5d71f5 fix(build): skip -features flag when empty (#9871)
Fixes '400 too many arguments' error when creating privileged containers without nesting/fuse features enabled.
2025-12-11 10:52:11 +01:00
3bc45aa0a2 Update CHANGELOG.md (#9880)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 09:51:50 +00:00
313b1b0b00 Update date in json (#9879)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-11 09:51:47 +00:00
3ad0777048 Speedtest-Tracker (#9802)
* Add speedtest-tracker (ct)

* Update speedtest-tracker.sh

* Update date_created and logo in JSON file

* Update Speedtest Tracker installation script for local IP

* Apply suggestion from @tremor021

* Update install/speedtest-tracker-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update install/speedtest-tracker-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-12-11 10:51:26 +01:00
7dcb2fa985 Update CHANGELOG.md (#9870)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 06:12:42 +00:00
6e86fa4c3b Update NetVisor repo information (#9864) 2025-12-11 07:12:19 +01:00
747e472d1f Update CHANGELOG.md (#9869)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 06:12:09 +00:00
38a9ad8e09 endurain: remove unneeded deps (#9855)
* Update endurain-install.sh

updated deps for v0.16.0. MariaDB support was dropped.

* chore: cosmetics

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-12-11 07:11:45 +01:00
5854318163 Update CHANGELOG.md (#9866)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 00:15:06 +00:00
39eda9cb81 Update versions.json (#9865)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 01:14:43 +01:00
c757c7a8eb Update .app files (#9862)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-10 22:24:03 +01:00
94126be8f9 Update CHANGELOG.md (#9861)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 21:03:44 +00:00
d2cce38266 DiscoPanel (#9847)
* Add discopanel (ct)

* Update date_created and logo in discopanel.json

* Update discopanel-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-12-10 22:03:20 +01:00
59fa15af88 Update CHANGELOG.md (#9860)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 20:38:53 +00:00
cafee135c4 Refactor (#9839) 2025-12-10 21:38:24 +01:00
fe8e1be644 Update CHANGELOG.md (#9859)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 20:38:00 +00:00
840bdae6f3 Update CHANGELOG.md (#9858)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 20:37:42 +00:00
6352694326 Small fixes (#9836) 2025-12-10 21:37:36 +01:00
fb5fc0524b Refactor (#9835) 2025-12-10 21:37:10 +01:00
9cbbcbdda5 Update CHANGELOG.md (#9857)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 20:33:57 +00:00
300b4d2a3a Refactor (#9838) 2025-12-10 21:33:33 +01:00
0ed1e36d9d Update CHANGELOG.md (#9856)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 20:32:38 +00:00
ca27ae4e4c Refactor (#9840) 2025-12-10 21:32:12 +01:00
43f1e88b98 Update CHANGELOG.md (#9850)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 17:41:45 +00:00
f98d2d3d15 Update icon URLs from master to main branch (#9834) 2025-12-10 18:41:22 +01:00
e22f9fbce7 Update CHANGELOG.md (#9849)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 17:40:54 +00:00
12e8ca6a95 Refactor: UrBackup Server (#9837) 2025-12-10 18:40:26 +01:00
b9967cb56a Update CHANGELOG.md (#9848)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 17:39:21 +00:00
4134136918 Refactor (#9842) 2025-12-10 18:38:56 +01:00
da7cafd82c Update CHANGELOG.md (#9846)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 16:02:54 +00:00
7800578ad4 Fix formatting issues in tracktor-install.sh (#9841) 2025-12-10 17:02:25 +01:00
7c39bc8787 Enable the 'disable' option in palmr.json 2025-12-10 14:27:59 +01:00
7a91dc765a Update versions.json (#9843)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-10 13:07:39 +01:00
45 changed files with 877 additions and 492 deletions

View File

@ -10,8 +10,65 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-12-12
## 2025-12-11
### 🆕 New Scripts
- Speedtest-Tracker ([#9802](https://github.com/community-scripts/ProxmoxVE/pull/9802))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- dokploy: require unprivileged LXC environment [@MickLesk](https://github.com/MickLesk) ([#9891](https://github.com/community-scripts/ProxmoxVE/pull/9891))
- Update NetVisor repo information [@vhsdream](https://github.com/vhsdream) ([#9864](https://github.com/community-scripts/ProxmoxVE/pull/9864))
- #### 🔧 Refactor
- Syncthing: Various fixes [@tremor021](https://github.com/tremor021) ([#9872](https://github.com/community-scripts/ProxmoxVE/pull/9872))
- Sonarr: Fix standard [@tremor021](https://github.com/tremor021) ([#9874](https://github.com/community-scripts/ProxmoxVE/pull/9874))
- Refactor: Snipe-IT [@tremor021](https://github.com/tremor021) ([#9876](https://github.com/community-scripts/ProxmoxVE/pull/9876))
- Technitium DNS: Various fixes [@tremor021](https://github.com/tremor021) ([#9863](https://github.com/community-scripts/ProxmoxVE/pull/9863))
- SonarQube: Fixes [@tremor021](https://github.com/tremor021) ([#9875](https://github.com/community-scripts/ProxmoxVE/pull/9875))
- endurain: remove unneeded deps [@johanngrobe](https://github.com/johanngrobe) ([#9855](https://github.com/community-scripts/ProxmoxVE/pull/9855))
### 💾 Core
- #### 🐞 Bug Fixes
- core: skip -features flag when empty [@MickLesk](https://github.com/MickLesk) ([#9871](https://github.com/community-scripts/ProxmoxVE/pull/9871))
### 🌐 Website
- #### 📝 Script Information
- paperless: add note on website (uv usage) [@MickLesk](https://github.com/MickLesk) ([#9833](https://github.com/community-scripts/ProxmoxVE/pull/9833))
## 2025-12-10
### 🆕 New Scripts
- DiscoPanel ([#9847](https://github.com/community-scripts/ProxmoxVE/pull/9847))
### 🚀 Updated Scripts
- #### 🔧 Refactor
- Refactor: UmlautAdaptarr [@tremor021](https://github.com/tremor021) ([#9839](https://github.com/community-scripts/ProxmoxVE/pull/9839))
- Verdaccio: Small fixes [@tremor021](https://github.com/tremor021) ([#9836](https://github.com/community-scripts/ProxmoxVE/pull/9836))
- Refactor: WaveLog [@tremor021](https://github.com/tremor021) ([#9835](https://github.com/community-scripts/ProxmoxVE/pull/9835))
- Refactor: Unifi Network Server [@tremor021](https://github.com/tremor021) ([#9838](https://github.com/community-scripts/ProxmoxVE/pull/9838))
- Refactor: Umami [@tremor021](https://github.com/tremor021) ([#9840](https://github.com/community-scripts/ProxmoxVE/pull/9840))
- Refactor: UrBackup Server [@tremor021](https://github.com/tremor021) ([#9837](https://github.com/community-scripts/ProxmoxVE/pull/9837))
- Refactor: Tianji [@tremor021](https://github.com/tremor021) ([#9842](https://github.com/community-scripts/ProxmoxVE/pull/9842))
- Tracktor: Remove unused variable [@tremor021](https://github.com/tremor021) ([#9841](https://github.com/community-scripts/ProxmoxVE/pull/9841))
### ❔ Uncategorized
- Update icon URLs from master to main branch [@MickLesk](https://github.com/MickLesk) ([#9834](https://github.com/community-scripts/ProxmoxVE/pull/9834))
## 2025-12-09
### 🆕 New Scripts

80
ct/discopanel.sh Normal file
View File

@ -0,0 +1,80 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: DragoQC
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://discopanel.app/
APP="DiscoPanel"
var_tags="${var_tags:-gaming}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-15}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d "/opt/discopanel" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
setup_docker
if check_for_gh_release "discopanel" "nickheyer/discopanel"; then
msg_info "Stopping Service"
systemctl stop discopanel
msg_ok "Stopped Service"
msg_info "Creating Backup"
mkdir -p /opt/discopanel_backup_temp
cp -r /opt/discopanel/data/discopanel.db \
/opt/discopanel/data/.recovery_key \
/opt/discopanel_backup_temp/
if [[ -d /opt/discopanel/data/servers ]]; then
cp -r /opt/discopanel/data/servers /opt/discopanel_backup_temp/
fi
msg_ok "Created Backup"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "tarball" "latest" "/opt/discopanel"
msg_info "Setting up DiscoPanel"
cd /opt/discopanel/web/discopanel
$STD npm install
$STD npm run build
cd /opt/discopanel
$STD go build -o discopanel cmd/discopanel/main.go
msg_ok "Setup DiscoPanel"
msg_info "Restoring Data"
mkdir -p /opt/discopanel/data
cp -a /opt/discopanel_backup_temp/. /opt/discopanel/data/
rm -rf /opt/discopanel_backup_temp
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start discopanel
msg_ok "Started Service"
msg_ok "Updated Successfully!"
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}:8080${CL}"

View File

@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
var_unprivileged="${var_unprivileged:-0}"
header_info "$APP"
variables

6
ct/headers/discopanel Normal file
View File

@ -0,0 +1,6 @@
____ _ ____ __
/ __ \(_)_____________ / __ \____ _____ ___ / /
/ / / / / ___/ ___/ __ \/ /_/ / __ `/ __ \/ _ \/ /
/ /_/ / (__ ) /__/ /_/ / ____/ /_/ / / / / __/ /
/_____/_/____/\___/\____/_/ \__,_/_/ /_/\___/_/

View File

@ -0,0 +1,6 @@
_____ ____ __ ______ __
/ ___/____ ___ ___ ____/ / /____ _____/ /_ /_ __/________ ______/ /_____ _____
\__ \/ __ \/ _ \/ _ \/ __ / __/ _ \/ ___/ __/_____/ / / ___/ __ `/ ___/ //_/ _ \/ ___/
___/ / /_/ / __/ __/ /_/ / /_/ __(__ ) /_/_____/ / / / / /_/ / /__/ ,< / __/ /
/____/ .___/\___/\___/\__,_/\__/\___/____/\__/ /_/ /_/ \__,_/\___/_/|_|\___/_/
/_/

View File

@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/mayanayza/netvisor
# Source: https://github.com/netvisor-io/netvisor
APP="NetVisor"
var_tags="${var_tags:-analytics}"
@ -29,7 +29,7 @@ function update_script() {
exit
fi
if check_for_gh_release "netvisor" "mayanayza/netvisor"; then
if check_for_gh_release "netvisor" "netvisor-io/netvisor"; then
msg_info "Stopping services"
systemctl stop netvisor-daemon netvisor-server
msg_ok "Stopped services"
@ -38,7 +38,7 @@ function update_script() {
cp /opt/netvisor/.env /opt/netvisor.env.bak
msg_ok "Backed up configurations"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "netvisor" "mayanayza/netvisor" "tarball" "latest" "/opt/netvisor"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "netvisor" "netvisor-io/netvisor" "tarball" "latest" "/opt/netvisor"
if ! dpkg -l | grep -q "pkg-config"; then
$STD apt install -y pkg-config

View File

@ -36,16 +36,16 @@ function update_script() {
systemctl stop nginx
msg_ok "Services Stopped"
msg_info "Creating backup"
msg_info "Creating Backup"
mv /opt/snipe-it /opt/snipe-it-backup
msg_ok "Backup created"
msg_ok "Created Backup"
fetch_and_deploy_gh_release "snipe-it" "grokability/snipe-it" "tarball"
[[ "$(php -v 2>/dev/null)" == PHP\ 8.2* ]] && PHP_VERSION="8.3" PHP_MODULE="common,ctype,ldap,fileinfo,iconv,mysql,soap,xsl" PHP_FPM="YES" setup_php
sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/snipeit.conf
setup_composer
msg_info "Updating ${APP}"
msg_info "Updating Snipe-IT"
$STD apt update
$STD apt -y upgrade
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
@ -63,7 +63,7 @@ function update_script() {
chown -R www-data: /opt/snipe-it
chmod -R 755 /opt/snipe-it
rm -rf /opt/snipe-it-backup
msg_ok "Updated ${APP}"
msg_ok "Updated Snipe-IT"
msg_info "Starting Service"
systemctl start nginx

View File

@ -33,30 +33,30 @@ function update_script() {
systemctl stop sonarqube
msg_ok "Stopped Service"
msg_info "Creating backup"
msg_info "Creating Backup"
BACKUP_DIR="/opt/sonarqube-backup"
mv /opt/sonarqube ${BACKUP_DIR}
msg_ok "Backup created"
msg_ok "Created Backup"
msg_info "Installing sonarqube"
msg_info "Updating SonarQube"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/SonarSource/sonarqube/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(get_latest_github_release "SonarSource/sonarqube")
curl -fsSL "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${RELEASE}.zip" -o $temp_file
unzip -q "$temp_file" -d /opt
mv /opt/sonarqube-* /opt/sonarqube
msg_ok "Installed sonarqube"
msg_ok "Updated SonarQube"
msg_info "Restoring backup"
msg_info "Restoring Backup"
cp -rp ${BACKUP_DIR}/data/ /opt/sonarqube/data/
cp -rp ${BACKUP_DIR}/extensions/ /opt/sonarqube/extensions/
cp -p ${BACKUP_DIR}/conf/sonar.properties /opt/sonarqube/conf/sonar.properties
rm -rf ${BACKUP_DIR}
chown -R sonarqube:sonarqube /opt/sonarqube
msg_ok "Backup restored"
msg_ok "Restored Backup"
msg_info "Starting Service"
systemctl start sonarqube
msg_ok "Service started"
msg_ok "Service Started"
msg_ok "Updated successfully!"
fi
exit

View File

@ -27,6 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping Service"
systemctl stop sonarr
msg_ok "Stopped Service"
@ -38,6 +39,7 @@ function update_script() {
mv Sonarr /opt
rm -rf SonarrV4.tar.gz
msg_ok "Updated Sonarr"
msg_info "Starting Service"
systemctl start sonarr
msg_ok "Started Service"

83
ct/speedtest-tracker.sh Normal file
View File

@ -0,0 +1,83 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: AlphaLawless
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/alexjustesen/speedtest-tracker
APP="Speedtest-Tracker"
var_tags="${var_tags:-monitoring}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/speedtest-tracker ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "speedtest-tracker" "alexjustesen/speedtest-tracker"; then
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="common,sqlite3,redis" setup_php
setup_composer
NODE_VERSION="22" setup_nodejs
msg_info "Stopping Service"
systemctl stop speedtest-tracker
msg_ok "Stopped Service"
msg_info "Updating Speedtest CLI"
$STD apt update
$STD apt --only-upgrade install -y speedtest
msg_ok "Updated Speedtest CLI"
msg_info "Creating Backup"
cp -r /opt/speedtest-tracker /opt/speedtest-tracker-backup
msg_ok "Backup Created"
fetch_and_deploy_gh_release "speedtest-tracker" "alexjustesen/speedtest-tracker" "tarball" "latest" "/opt/speedtest-tracker"
msg_info "Updating Speedtest Tracker"
cp -r /opt/speedtest-tracker-backup/.env /opt/speedtest-tracker/.env
cd /opt/speedtest-tracker
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --optimize-autoloader --no-dev
$STD npm ci
$STD npm run build
$STD php artisan migrate --force
$STD php artisan config:clear
$STD php artisan cache:clear
$STD php artisan view:clear
chown -R www-data:www-data /opt/speedtest-tracker
chmod -R 755 /opt/speedtest-tracker/storage
chmod -R 755 /opt/speedtest-tracker/bootstrap/cache
msg_ok "Updated Speedtest Tracker"
msg_info "Starting Service"
systemctl start speedtest-tracker
msg_ok "Started Service"
msg_ok "Updated successfully"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@ -27,9 +27,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
msg_info "Updating Syncthing"
$STD apt update
$STD apt -y upgrade
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit
}

View File

@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@ -30,6 +30,14 @@ function update_script() {
if is_package_installed "aspnetcore-runtime-8.0"; then
$STD apt remove -y aspnetcore-runtime-8.0
[ -f /etc/apt/sources.list.d/microsoft-prod.list ] && rm -f /etc/apt/sources.list.d/microsoft-prod.list
[ -f /usr/share/keyrings/microsoft-prod.gpg ] && rm -f /usr/share/keyrings/microsoft-prod.gpg
setup_deb822_repo \
"microsoft" \
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
"https://packages.microsoft.com/debian/13/prod/" \
"trixie" \
"main"
$STD apt install -y aspnetcore-runtime-9.0
fi

View File

@ -28,7 +28,6 @@ function update_script() {
fi
setup_uv
if check_for_gh_release "tianji" "msgbyte/tianji"; then
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs

View File

@ -27,24 +27,18 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/PCJones/Umlautadaptarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
if [[ ! -f /opt/UmlautAdaptarr_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/UmlautAdaptarr_version.txt)" ]]; then
if check_for_gh_release "UmlautAdaptarr" "PCJones/Umlautadaptarr"; then
msg_info "Stopping Service"
systemctl stop umlautadaptarr
msg_ok "Stopped Service"
msg_info "Updating ${APP}"
temp_file=$(mktemp)
curl -fsSL "https://github.com/PCJones/Umlautadaptarr/releases/download/${RELEASE}/linux-x64.zip" -o $temp_file
$STD unzip -u $temp_file '*/**' -d /opt/UmlautAdaptarr
msg_ok "Updated ${APP}"
fetch_and_deploy_gh_release "UmlautAdaptarr" "PCJones/Umlautadaptarr" "prebuild" "latest" "/opt/UmlautAdaptarr" "linux-x64.zip"
msg_info "Starting Service"
systemctl start umlautadaptarr
msg_ok "Started Service"
msg_ok "Updated successfully!"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://ui.com/download/unifi
APP="Unifi"
var_tags="${var_tags:-network;controller;unifi}"
var_tags="${var_tags:-network;unifi}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
@ -27,6 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP}"
$STD apt update --allow-releaseinfo-change
$STD apt install -y unifi

View File

@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://www.urbackup.org/
APP="UrBackup Server"
var_tags="${var_tags:-web}"
var_tags="${var_tags:-backup}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-16}"
@ -29,7 +29,7 @@ function update_script() {
fi
msg_info "Updating ${APP} LXC"
$STD apt update
$STD apt -y upgrade
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit
}

View File

@ -30,7 +30,7 @@ function update_script() {
msg_info "Updating LXC Container"
$STD apt update
$STD apt -y upgrade
$STD apt upgrade -y
msg_ok "Updated LXC Container"
NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs

View File

@ -0,0 +1,35 @@
{
"name": "DiscoPanel",
"slug": "discopanel",
"categories": [
24
],
"date_created": "2025-12-10",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://discopanel.app/docs/",
"config_path": "",
"website": "https://discopanel.app/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/discopanel.webp",
"description": "The Minecraft Server Manager That *Actually* Works\nBuilt by someone who was done with bloated panels, endless menus, and tools that break the moment you need them most.\nSpin up servers in minutes, configure your proxy without headaches, and link your own DNS name effortlessly.\nFast setup, clean controls, zero nonsense—just a manager that gets out of your way and lets you play.",
"install_methods": [
{
"type": "default",
"script": "ct/discopanel.sh",
"resources": {
"cpu": 4,
"ram": 4096,
"hdd": 15,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -7,7 +7,7 @@
"date_created": "2025-12-09",
"type": "ct",
"updateable": true,
"privileged": false,
"privileged": true,
"interface_port": 3000,
"documentation": "https://docs.dokploy.com/",
"config_path": "/etc/dokploy",

View File

@ -9,9 +9,9 @@
"updateable": true,
"privileged": false,
"interface_port": 60072,
"documentation": "https://github.com/mayanayza/netvisor",
"documentation": "https://github.com/netvisor-io/netvisor",
"config_path": "/opt/netvisor/.env, OIDC: /opt/netvisor/oidc.toml",
"website": "https://github.com/mayanayza/netvisor",
"website": "https://netvisor.io",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/png/netvisor.png",
"description": "Automatically discover and visually document network infrastructure",
"install_methods": [

View File

@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 3000,
"disable": true,
"disable": false,
"documentation": "https://palmr.kyantech.com.br/docs/3.1-beta",
"config_path": "/opt/palmr/apps/server/.env, /opt/palmr/apps/web/.env",
"website": "https://palmr.kyantech.com.br/",

View File

@ -39,6 +39,10 @@
{
"text": "Script installs English as default OCR language. To install additional languages, use `apt-get install tesseract-ocr-[lang]`, where [lang] is the language code (e.g. `apt-get install tesseract-ocr-deu`).",
"type": "info"
},
{
"text": "Paperless-NGX use uv, so all calls need to start with `uv run` f.e. `uv run python3 manage.py document_exporter $path` instead `python3 manage.py`",
"type": "info"
}
]
}

View File

@ -0,0 +1,35 @@
{
"name": "Speedtest-Tracker",
"slug": "speedtest-tracker",
"categories": [
4
],
"date_created": "2025-12-11",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://docs.speedtest-tracker.dev/",
"website": "https://github.com/alexjustesen/speedtest-tracker",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/speedtest-tracker.webp",
"config_path": "/opt/speedtest-tracker/.env",
"description": "Speedtest Tracker is a self-hosted application that runs scheduled speed tests using the Ookla Speedtest CLI and saves the results to a database for historical tracking and visualization.",
"install_methods": [
{
"type": "default",
"script": "ct/speedtest-tracker.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": "admin@example.com",
"password": "password"
},
"notes": []
}

View File

@ -23,7 +23,7 @@
"ram": 512,
"hdd": 2,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 5005,
"documentation": null,
"documentation": "https://github.com/PCJones/UmlautAdaptarr/blob/master/README.md",
"website": "https://github.com/PCJones/UmlautAdaptarr",
"logo": "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/images/logo.png",
"config_path": "/opt/UmlautAdaptarr/appsettings.json",

View File

@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 8443,
"documentation": null,
"documentation": "https://help.ui.com/hc/en-us/articles/360012282453-Self-Hosting-a-UniFi-Network-Server",
"website": "https://www.ui.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ubiquiti-unifi.webp",
"config_path": "",

View File

@ -1,4 +1,224 @@
[
{
"name": "metabase/metabase",
"version": "v0.57.6",
"date": "2025-12-11T23:31:19Z"
},
{
"name": "karakeep-app/karakeep",
"version": "v0.29.2",
"date": "2025-12-11T23:12:06Z"
},
{
"name": "WGDashboard/WGDashboard",
"version": "v4.3.0.3",
"date": "2025-12-11T23:03:52Z"
},
{
"name": "motioneye-project/motioneye",
"version": "0.43.1",
"date": "2025-12-11T22:45:52Z"
},
{
"name": "coollabsio/coolify",
"version": "v4.0.0-beta.454",
"date": "2025-12-11T20:37:05Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v0.23.0-alpha.35",
"date": "2025-12-11T18:20:45Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.22",
"date": "2025-12-11T18:02:06Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.30.0-network-topology.2",
"date": "2025-12-11T16:47:51Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.87",
"date": "2025-12-06T07:36:26Z"
},
{
"name": "joaovitoriasilva/endurain",
"version": "v0.16.2",
"date": "2025-12-11T15:16:01Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.11.1",
"date": "2025-12-11T14:12:20Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v2.1.3",
"date": "2025-12-11T13:31:56Z"
},
{
"name": "zabbix/zabbix",
"version": "7.4.6rc1",
"date": "2025-12-11T12:01:51Z"
},
{
"name": "pommee/goaway",
"version": "v0.62.24",
"date": "2025-12-11T09:54:59Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.13.2",
"date": "2025-12-11T06:31:24Z"
},
{
"name": "moghtech/komodo",
"version": "v1.19.5",
"date": "2025-09-27T20:59:46Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.436",
"date": "2025-12-11T05:57:30Z"
},
{
"name": "TwiN/gatus",
"version": "v5.33.1",
"date": "2025-12-11T01:59:13Z"
},
{
"name": "netvisor-io/netvisor",
"version": "v0.11.6",
"date": "2025-12-11T00:42:08Z"
},
{
"name": "jeedom/core",
"version": "4.5",
"date": "2025-12-11T00:27:04Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.92.2",
"date": "2025-12-10T21:20:31Z"
},
{
"name": "ollama/ollama",
"version": "v0.13.2-rc2",
"date": "2025-12-06T00:10:33Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.80.9.dev5",
"date": "2025-12-10T16:52:35Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.8.0",
"date": "2025-12-10T16:44:33Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.123.5-exp.0",
"date": "2025-12-10T16:35:50Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.541",
"date": "2025-12-10T15:57:13Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.7.2",
"date": "2025-12-10T12:52:31Z"
},
{
"name": "prometheus/alertmanager",
"version": "v0.29.0",
"date": "2025-11-04T15:00:07Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.30.0-rc2",
"date": "2025-12-10T14:58:00Z"
},
{
"name": "rclone/rclone",
"version": "v1.72.1",
"date": "2025-12-10T14:55:44Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-openapi@10.1.2",
"date": "2025-12-10T13:59:19Z"
},
{
"name": "evcc-io/evcc",
"version": "0.211.1",
"date": "2025-12-10T12:25:19Z"
},
{
"name": "cockpit-project/cockpit",
"version": "353",
"date": "2025-12-10T10:55:50Z"
},
{
"name": "theonedev/onedev",
"version": "v13.1.4",
"date": "2025-12-10T10:24:13Z"
},
{
"name": "mattermost/mattermost",
"version": "v10.11.8",
"date": "2025-11-21T17:06:07Z"
},
{
"name": "Dokploy/dokploy",
"version": "v0.26.1",
"date": "2025-12-10T06:53:36Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.3.2-beta",
"date": "2025-12-10T05:42:43Z"
},
{
"name": "esphome/esphome",
"version": "2025.11.5",
"date": "2025-12-09T17:54:33Z"
},
{
"name": "miniflux/v2",
"version": "2.2.15",
"date": "2025-12-10T01:52:14Z"
},
{
"name": "comfyanonymous/ComfyUI",
"version": "v0.4.0",
"date": "2025-12-10T00:11:48Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta29",
@ -19,26 +239,11 @@
"version": "1.12.2",
"date": "2025-12-09T20:39:50Z"
},
{
"name": "mayanayza/netvisor",
"version": "v0.11.4",
"date": "2025-12-09T20:10:45Z"
},
{
"name": "metabase/metabase",
"version": "v0.56.x",
"date": "2025-12-09T18:34:00Z"
},
{
"name": "valkey-io/valkey",
"version": "9.0.1",
"date": "2025-12-09T18:13:25Z"
},
{
"name": "esphome/esphome",
"version": "2025.11.5",
"date": "2025-12-09T17:54:33Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.90",
@ -64,11 +269,6 @@
"version": "0.21.4",
"date": "2025-12-09T15:25:28Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{
"name": "gelbphoenix/autocaliweb",
"version": "v0.11.3",
@ -84,11 +284,6 @@
"version": "v2025.12.0",
"date": "2025-12-09T14:30:23Z"
},
{
"name": "zabbix/zabbix",
"version": "7.0.22rc1",
"date": "2025-12-09T14:23:34Z"
},
{
"name": "home-assistant/operating-system",
"version": "16.3",
@ -99,61 +294,16 @@
"version": "6.16.1+251125",
"date": "2025-12-09T12:27:31Z"
},
{
"name": "joaovitoriasilva/endurain",
"version": "v0.16.0",
"date": "2025-12-09T12:26:46Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.4.7",
"date": "2025-12-09T11:44:49Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-typescript@4.0.14",
"date": "2025-12-09T11:11:49Z"
},
{
"name": "documenso/documenso",
"version": "v2.2.6",
"date": "2025-12-09T10:11:01Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.425",
"date": "2025-12-09T05:59:35Z"
},
{
"name": "mongodb/mongo",
"version": "r7.0.27-rc0",
"date": "2025-12-09T04:34:48Z"
},
{
"name": "ollama/ollama",
"version": "v0.13.2",
"date": "2025-12-08T05:49:52Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.80.9.dev1",
"date": "2025-12-09T01:38:18Z"
},
{
"name": "jeedom/core",
"version": "4.5",
"date": "2025-12-09T00:27:10Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "alexta69/metube",
"version": "2025.12.09",
@ -169,11 +319,6 @@
"version": "preview-test-fix-subscriptions",
"date": "2025-12-08T23:15:30Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "sabnzbd/sabnzbd",
"version": "4.5.5",
@ -189,11 +334,6 @@
"version": "1.13.0-rc.0",
"date": "2025-12-08T21:17:44Z"
},
{
"name": "Dokploy/dokploy",
"version": "v0.26.0",
"date": "2025-12-08T20:44:09Z"
},
{
"name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.9",
@ -204,26 +344,11 @@
"version": "v1.37.0",
"date": "2025-12-08T20:36:16Z"
},
{
"name": "pommee/goaway",
"version": "v0.62.23",
"date": "2025-12-08T20:30:54Z"
},
{
"name": "TuroYT/snowshare",
"version": "v1.1.2",
"date": "2025-12-08T20:29:51Z"
},
{
"name": "coollabsio/coolify",
"version": "v4.0.0-beta.453",
"date": "2025-12-08T20:23:48Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.123.4",
"date": "2025-12-08T13:30:40Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.45.3",
@ -234,16 +359,6 @@
"version": "v0.107.71",
"date": "2025-12-08T14:34:55Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v0.22.18",
"date": "2025-12-08T14:26:24Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.30.0-rc1",
"date": "2025-12-08T13:29:14Z"
},
{
"name": "wavelog/wavelog",
"version": "2.2.1",
@ -254,26 +369,6 @@
"version": "v1.1.08",
"date": "2025-12-08T10:13:51Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.7.1",
"date": "2025-12-08T10:05:21Z"
},
{
"name": "meilisearch/meilisearch",
"version": "latest",
"date": "2025-12-08T09:36:54Z"
},
{
"name": "WGDashboard/WGDashboard",
"version": "v4.3.0.2",
"date": "2025-12-08T09:01:37Z"
},
{
"name": "mattermost/mattermost",
"version": "v10.11.8",
"date": "2025-11-21T17:06:07Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.9",
@ -369,26 +464,11 @@
"version": "v4.9.0",
"date": "2025-12-06T08:58:40Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.87",
"date": "2025-12-06T07:36:26Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.3.0",
"date": "2025-12-06T06:18:23Z"
},
{
"name": "theonedev/onedev",
"version": "v13.1.3",
"date": "2025-12-06T04:40:09Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v2.1.1",
"date": "2025-12-05T23:48:08Z"
},
{
"name": "HydroshieldMKII/Guardian",
"version": "v1.3.1",
@ -399,11 +479,6 @@
"version": "v1.13.2",
"date": "2025-12-05T16:03:08Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.92.1",
"date": "2025-12-05T15:53:22Z"
},
{
"name": "community-scripts/ProxmoxVE-Local",
"version": "v0.5.2",
@ -434,11 +509,6 @@
"version": "v3.6.4",
"date": "2025-12-05T09:58:17Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.10.5",
"date": "2025-12-05T09:28:50Z"
},
{
"name": "transmission/transmission",
"version": "4.0.1-beta.1",
@ -454,15 +524,10 @@
"version": "v2.10.2",
"date": "2025-08-23T03:10:31Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.20",
"date": "2025-12-04T18:17:47Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w49-4.14.2",
"date": "2025-12-02T14:01:48Z"
"version": "coverity-w50-4.14.2",
"date": "2025-12-04T15:06:55Z"
},
{
"name": "crowdsecurity/crowdsec",
@ -489,11 +554,6 @@
"version": "v1.6.6",
"date": "2025-11-24T15:30:21Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.3.1-beta",
"date": "2025-12-04T03:33:38Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.2.0-experimental-sql-indexing",
@ -504,11 +564,6 @@
"version": "v4.36.2",
"date": "2025-12-03T22:46:29Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.42.1",
"date": "2025-12-03T22:42:22Z"
},
{
"name": "danielbrendel/hortusfox-web",
"version": "v5.5",
@ -519,11 +574,6 @@
"version": "v25.12.0",
"date": "2025-12-03T17:45:09Z"
},
{
"name": "karakeep-app/karakeep",
"version": "v0.29.1",
"date": "2025-12-03T16:56:18Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.2.10",
@ -539,11 +589,6 @@
"version": "v0.104.0",
"date": "2025-12-03T06:48:38Z"
},
{
"name": "comfyanonymous/ComfyUI",
"version": "v0.3.77",
"date": "2025-12-03T05:02:09Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
@ -557,7 +602,7 @@
{
"name": "mealie-recipes/mealie",
"version": "v3.6.1",
"date": "2025-12-02T23:08:41Z"
"date": "2025-12-02T22:54:10Z"
},
{
"name": "apache/tomcat",
@ -594,11 +639,6 @@
"version": "v6.2.4",
"date": "2025-12-02T17:47:52Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.540",
"date": "2025-12-02T16:56:49Z"
},
{
"name": "docker/compose",
"version": "v5.0.0",
@ -669,21 +709,11 @@
"version": "1.11.5",
"date": "2025-12-01T12:58:46Z"
},
{
"name": "evcc-io/evcc",
"version": "0.211.0",
"date": "2025-12-01T11:22:11Z"
},
{
"name": "opencloud-eu/opencloud",
"version": "v4.0.0",
"date": "2025-12-01T09:33:08Z"
},
{
"name": "cockpit-project/cockpit",
"version": "310.6",
"date": "2025-12-01T09:04:51Z"
},
{
"name": "photoprism/photoprism",
"version": "251130-b3068414c",
@ -884,16 +914,6 @@
"version": "v14.2.0",
"date": "2025-11-22T12:54:08Z"
},
{
"name": "TwiN/gatus",
"version": "v5.33.0",
"date": "2025-11-21T22:54:49Z"
},
{
"name": "rclone/rclone",
"version": "v1.72.0",
"date": "2025-11-21T18:20:58Z"
},
{
"name": "Bubka/2FAuth",
"version": "v5.6.1",
@ -1089,16 +1109,6 @@
"version": "v5.1.0",
"date": "2025-11-12T10:44:24Z"
},
{
"name": "moghtech/komodo",
"version": "v1.19.5",
"date": "2025-09-27T20:59:46Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.7.0",
"date": "2025-11-11T17:24:27Z"
},
{
"name": "CrazyWolf13/web-check",
"version": "1.1.0",
@ -1179,11 +1189,6 @@
"version": "v4.0.16.2944",
"date": "2025-11-05T01:56:48Z"
},
{
"name": "prometheus/alertmanager",
"version": "v0.29.0",
"date": "2025-11-04T15:00:07Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.13.6",
@ -1194,11 +1199,6 @@
"version": "v3.0.9",
"date": "2025-11-04T07:28:45Z"
},
{
"name": "motioneye-project/motioneye",
"version": "0.42.1",
"date": "2020-06-07T07:27:04Z"
},
{
"name": "wanetty/upgopher",
"version": "v1.12.0",
@ -1259,11 +1259,6 @@
"version": "v0.8.8.3",
"date": "2025-10-23T12:31:49Z"
},
{
"name": "miniflux/v2",
"version": "2.2.14",
"date": "2025-10-23T02:12:05Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.2",
@ -1289,11 +1284,6 @@
"version": "RELEASE.2025-10-15T17-29-55Z",
"date": "2025-10-16T19:33:51Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.13.1",
"date": "2025-10-15T13:29:37Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.119",
@ -1748,5 +1738,15 @@
"name": "thelounge/thelounge-deb",
"version": "v4.4.3",
"date": "2024-04-06T12:24:35Z"
},
{
"name": "deepch/RTSPtoWeb",
"version": "v2.4.3",
"date": "2023-03-29T12:05:02Z"
},
{
"name": "Shinobi-Systems/Shinobi",
"version": "furrykitten-3",
"date": "2022-07-15T05:20:17Z"
}
]

View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: DragoQC
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://discopanel.app/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y build-essential
msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
setup_go
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "tarball" "latest" "/opt/discopanel"
setup_docker
msg_info "Setting up DiscoPanel"
cd /opt/discopanel/web/discopanel
$STD npm install
$STD npm run build
cd /opt/discopanel
$STD go build -o discopanel cmd/discopanel/main.go
msg_ok "Setup DiscoPanel"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/discopanel.service
[Unit]
Description=DiscoPanel Service
After=network.target
[Service]
WorkingDirectory=/opt/discopanel
ExecStart=/opt/discopanel/discopanel
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now discopanel
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@ -14,10 +14,7 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
default-libmysqlclient-dev \
build-essential \
pkg-config
$STD apt install -y build-essential
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.13" setup_uv

View File

@ -3,7 +3,7 @@
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/mayanayza/netvisor
# Source: https://github.com/netvisor-io/netvisor
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
@ -24,7 +24,7 @@ PG_VERSION=17 setup_postgresql
NODE_VERSION="24" setup_nodejs
PG_DB_NAME="netvisor_db" PG_DB_USER="netvisor" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
fetch_and_deploy_gh_release "netvisor" "mayanayza/netvisor" "tarball" "latest" "/opt/netvisor"
fetch_and_deploy_gh_release "netvisor" "netvisor-io/netvisor" "tarball" "latest" "/opt/netvisor"
TOOLCHAIN="$(grep "channel" /opt/netvisor/backend/rust-toolchain.toml | awk -F\" '{print $2}')"
RUST_TOOLCHAIN=$TOOLCHAIN setup_rust
@ -78,7 +78,7 @@ NETVISOR_BIND_ADDRESS=0.0.0.0
NETVISOR_NAME="netvisor-daemon"
NETVISOR_HEARTBEAT_INTERVAL=30
### - see https://github.com/mayanayza/netvisor/blob/main/docs/CONFIGURATION.md for more options
### - see https://github.com/netvisor-io/netvisor/blob/main/docs/CONFIGURATION.md for more options
EOF
cat <<EOF >/etc/systemd/system/netvisor-server.service

View File

@ -23,45 +23,29 @@ PHP_VERSION="8.3" PHP_MODULE="common,ctype,ldap,fileinfo,iconv,mysql,soap,xsl" P
setup_composer
fetch_and_deploy_gh_release "snipe-it" "grokability/snipe-it" "tarball"
setup_mariadb
msg_info "Setting up database"
DB_NAME=snipeit_db
DB_USER=snipeit
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "SnipeIT-Credentials"
echo "SnipeIT Database User: $DB_USER"
echo "SnipeIT Database Password: $DB_PASS"
echo "SnipeIT Database Name: $DB_NAME"
} >>~/snipeit.creds
msg_ok "Set up database"
MARIADB_DB_NAME="snipeit_db" MARIADB_DB_USER="snipeit" setup_mariadb_db
import_local_ip
msg_info "Configuring Snipe-IT"
cd /opt/snipe-it
cp .env.example .env
IPADDRESS=$(hostname -I | awk '{print $1}')
sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
-e "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" \
-e "s|^DB_USERNAME=.*|DB_USERNAME=$DB_USER|" \
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" .env
sed -i -e "s|^APP_URL=.*|APP_URL=http://$LOCAL_IP|" \
-e "s|^DB_DATABASE=.*|DB_DATABASE=$MARIADB_DB_NAME|" \
-e "s|^DB_USERNAME=.*|DB_USERNAME=$MARIADB_DB_USER|" \
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$MARIADB_DB_PASS|" .env
chown -R www-data: /opt/snipe-it
chmod -R 755 /opt/snipe-it
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --no-dev --optimize-autoloader --no-interaction
$STD php artisan key:generate --force
msg_ok "Configured SnipeIT"
msg_ok "Configured Snipe-IT"
msg_info "Creating Service"
cat <<EOF >/etc/nginx/conf.d/snipeit.conf
server {
listen 80;
root /opt/snipe-it/public;
server_name $IPADDRESS;
server_name $LOCAL_IP;
client_max_body_size 100M;
index index.php;

View File

@ -14,24 +14,11 @@ update_os
JAVA_VERSION="21" setup_java
PG_VERSION="17" setup_postgresql
PG_DB_NAME="sonarqube" PG_DB_USER="sonarqube" setup_postgresql_db
msg_info "Installing Postgresql"
DB_NAME="sonarqube"
DB_USER="sonarqube"
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME OWNER $DB_USER;"
{
echo "Application Credentials"
echo "DB_NAME: $DB_NAME"
echo "DB_USER: $DB_USER"
echo "DB_PASS: $DB_PASS"
} >>~/sonarqube.creds
msg_ok "Installed PostgreSQL"
msg_info "Configuring SonarQube"
msg_info "Setting up SonarQube"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/SonarSource/sonarqube/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(get_latest_github_release "SonarSource/sonarqube")
curl -fsSL "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${RELEASE}.zip" -o $temp_file
unzip -q "$temp_file" -d /opt
mv /opt/sonarqube-* /opt/sonarqube

View File

@ -24,7 +24,6 @@ curl -fsSL "https://services.sonarr.tv/v1/download/main/latest?version=4&os=linu
tar -xzf SonarrV4.tar.gz
mv Sonarr /opt
rm -rf SonarrV4.tar.gz
msg_ok "Installed Sonarr v4"
msg_info "Creating Service"
@ -32,12 +31,14 @@ cat <<EOF >/etc/systemd/system/sonarr.service
[Unit]
Description=Sonarr Daemon
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/opt/Sonarr/Sonarr -nobrowser -data=/var/lib/sonarr/
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

View File

@ -0,0 +1,162 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: AlphaLawless
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/alexjustesen/speedtest-tracker
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
nginx \
sqlite3
msg_ok "Installed Dependencies"
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="common,sqlite3,redis" setup_php
setup_composer
NODE_VERSION="22" setup_nodejs
import_local_ip
fetch_and_deploy_gh_release "speedtest-tracker" "alexjustesen/speedtest-tracker" "tarball" "latest" "/opt/speedtest-tracker"
msg_info "Installing Speedtest CLI"
setup_deb822_repo \
"speedtest-cli" \
"https://packagecloud.io/ookla/speedtest-cli/gpgkey" \
"https://packagecloud.io/ookla/speedtest-cli/debian" \
"$(get_os_info codename)" \
"main"
$STD apt install -y speedtest
msg_ok "Installed Speedtest CLI"
msg_info "Configuring PHP-FPM runtime directory"
mkdir -p /etc/systemd/system/php8.4-fpm.service.d/
cat <<EOF >/etc/systemd/system/php8.4-fpm.service.d/override.conf
[Service]
RuntimeDirectory=php
RuntimeDirectoryMode=0755
EOF
msg_ok "Configured PHP-FPM runtime directory"
msg_info "Setting up Speedtest Tracker"
cd /opt/speedtest-tracker
APP_KEY=$(php -r "echo bin2hex(random_bytes(16));")
TIMEZONE=$(timedatectl | grep "Time zone" | awk '{print $3}')
cat <<EOF >/opt/speedtest-tracker/.env
APP_NAME="Speedtest Tracker"
APP_ENV=production
APP_TIMEZONE=${TIMEZONE}
APP_KEY=base64:$(echo -n $APP_KEY | base64)
APP_DEBUG=false
APP_URL=http://${LOCAL_IP}
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=sqlite
DB_DATABASE=/opt/speedtest-tracker/database/database.sqlite
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
SPEEDTEST_SCHEDULE="0 */6 * * *"
SPEEDTEST_SERVERS=
PRUNE_RESULTS_OLDER_THAN=0
DISPLAY_TIMEZONE=${TIMEZONE}
EOF
mkdir -p /opt/speedtest-tracker/database
touch /opt/speedtest-tracker/database/database.sqlite
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --optimize-autoloader --no-dev
$STD npm ci
$STD npm run build
$STD php artisan key:generate --force
$STD php artisan migrate --force --seed
$STD php artisan config:clear
$STD php artisan cache:clear
$STD php artisan view:clear
chown -R www-data:www-data /opt/speedtest-tracker
chmod -R 755 /opt/speedtest-tracker/storage
chmod -R 755 /opt/speedtest-tracker/bootstrap/cache
msg_ok "Set up Speedtest Tracker"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/speedtest-tracker.service
[Unit]
Description=Speedtest Tracker Queue Worker
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /opt/speedtest-tracker/artisan queue:work --sleep=3 --tries=3 --max-time=3600
WorkingDirectory=/opt/speedtest-tracker
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now speedtest-tracker
msg_ok "Created Service"
msg_info "Setting up Scheduler"
cat <<EOF >/etc/cron.d/speedtest-tracker
* * * * * www-data cd /opt/speedtest-tracker && php artisan schedule:run >> /dev/null 2>&1
EOF
msg_ok "Set up Scheduler"
msg_info "Configuring Nginx"
cat <<EOF >/etc/nginx/sites-available/speedtest-tracker
server {
listen 80;
server_name _;
root /opt/speedtest-tracker/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
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.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
EOF
ln -sf /etc/nginx/sites-available/speedtest-tracker /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
systemctl reload nginx
msg_ok "Configured Nginx"
motd_ssh
customize
cleanup_lxc

View File

@ -13,26 +13,20 @@ setting_up_container
network_check
update_os
msg_info "Setting up Syncthing repo"
mkdir -p /usr/share/keyrings
curl -fsSL "https://syncthing.net/release-key.gpg" -o /usr/share/keyrings/syncthing-archive-keyring.gpg
cat <<EOF >/etc/apt/sources.list.d/syncthing.sources
Types: deb
URIs: https://apt.syncthing.net/
Suites: syncthing
Components: stable-v2
Signed-By: /usr/share/keyrings/syncthing-archive-keyring.gpg
EOF
$STD apt update
msg_ok "Set up Syncthing repo"
setup_deb822_repo \
"syncthing" \
"https://syncthing.net/release-key.gpg" \
"https://apt.syncthing.net/" \
"syncthing" \
"stable-v2"
msg_info "Installing Syncthing"
msg_info "Setting up Syncthing"
$STD apt install -y syncthing
systemctl enable -q --now syncthing@root
sleep 5
sed -i "{s/127.0.0.1:8384/0.0.0.0:8384/g}" /root/.local/state/syncthing/config.xml
systemctl restart syncthing@root
msg_ok "Installed Syncthing"
msg_ok "Setup Syncthing"
motd_ssh
customize

View File

@ -13,13 +13,15 @@ setting_up_container
network_check
update_os
msg_info "Installing ASP.NET Core Runtime"
curl -fsSL "https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb" -o "packages-microsoft-prod.deb"
$STD dpkg -i packages-microsoft-prod.deb
rm -rf packages-microsoft-prod.deb
$STD apt update
msg_info "Installing Dependencies"
setup_deb822_repo \
"microsoft" \
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
"https://packages.microsoft.com/debian/13/prod/" \
"trixie" \
"main"
$STD apt install -y aspnetcore-runtime-9.0
msg_ok "Installed ASP.NET Core Runtime"
msg_ok "Installed Dependencies"
RELEASE=$(curl -fsSL https://technitium.com/dns/ | grep -oP 'Version \K[\d.]+')
msg_info "Installing Technitium DNS"

View File

@ -18,38 +18,17 @@ msg_info "Installing Dependencies"
$STD apt install -y \
python3 \
cmake \
g++ \
build-essential \
git \
ca-certificates
git
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
PG_VERSION="17" setup_postgresql
PG_DB_NAME="tianji_db" PG_DB_USER="tianji" setup_postgresql_db
PYTHON_VERSION="3.13" setup_uv
msg_info "Setting up PostgreSQL"
DB_NAME=tianji_db
DB_USER=tianji
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
TIANJI_SECRET="$(openssl rand -base64 32 | cut -c1-24)"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME;"
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME OWNER TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
{
echo ""
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME"
echo "Tianji Secret: $TIANJI_SECRET"
} >>~/tianji.creds
msg_ok "Set up PostgreSQL"
fetch_and_deploy_gh_release "tianji" "msgbyte/tianji"
msg_info "Setup Tianji"
msg_info "Setting up Tianji"
cd /opt/tianji
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
$STD pnpm build:static
@ -69,7 +48,7 @@ rm -rf /opt/tianji/website
rm -rf /opt/tianji/reporter
msg_ok "Setup Tianji"
msg_info "Setup AppRise"
msg_info "Setting up AppRise"
$STD uv pip install apprise cryptography --system
msg_ok "Setup AppRise"
@ -84,7 +63,6 @@ ExecStart=/usr/bin/node /opt/tianji/src/server/dist/src/server/main.js
WorkingDirectory=/opt/tianji/src/server
Restart=always
RestartSec=10
Environment=NODE_ENV=production
[Install]

View File

@ -21,7 +21,6 @@ cd /opt/tracktor
$STD npm install
$STD npm run build
mkdir -p /opt/tracktor-data/{uploads,logs}
HOST_IP=$(hostname -I | awk '{print $1}')
cat <<EOF >/opt/tracktor.env
NODE_ENV=production
DB_PATH=/opt/tracktor-data/tracktor.db

View File

@ -15,31 +15,13 @@ update_os
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
PG_VERSION="17" setup_postgresql
PG_DB_NAME="umamidb" PG_DB_USER="umami" setup_postgresql_db
fetch_and_deploy_gh_release "umami" "umami-software/umami" "tarball"
msg_info "Setting up postgresql"
DB_NAME=umamidb
DB_USER=umami
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
{
echo "Umami-Credentials"
echo "Umami Database User: $DB_USER"
echo "Umami Database Password: $DB_PASS"
echo "Umami Database Name: $DB_NAME"
echo "Umami Secret Key: $SECRET_KEY"
} >>~/umami.creds
msg_ok "Set up postgresql"
msg_info "Configuring Umami"
cd /opt/umami
$STD yarn install
echo -e "DATABASE_URL=postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME" >>/opt/umami/.env
echo -e "DATABASE_URL=postgresql://$PG_DB_USER:$PG_DB_PASS@localhost:5432/$PG_DB_NAME" >>/opt/umami/.env
$STD yarn run build
msg_ok "Configured Umami"

View File

@ -14,30 +14,20 @@ network_check
update_os
msg_info "Installing Dependencies"
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/microsoft-prod.sources >/dev/null
Types: deb
URIs: https://packages.microsoft.com/debian/12/prod/
Suites: bookworm
Components: main
Signed-By: /usr/share/keyrings/microsoft-prod.gpg
EOF
$STD apt update
setup_deb822_repo \
"microsoft" \
"https://packages.microsoft.com/keys/microsoft.asc" \
"https://packages.microsoft.com/debian/12/prod/" \
"bookworm" \
"main"
$STD apt install -y \
dotnet-sdk-8.0 \
aspnetcore-runtime-8.0
msg_ok "Installed Dependencies"
msg_info "Installing Umlautadaptarr"
temp_file=$(mktemp)
RELEASE=$(curl -s https://api.github.com/repos/PCJones/Umlautadaptarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
curl -fsSL "https://github.com/PCJones/Umlautadaptarr/releases/download/${RELEASE}/linux-x64.zip" -o $temp_file
$STD unzip -j $temp_file '*/**' -d /opt/UmlautAdaptarr
rm -f $temp_file
echo "${RELEASE}" >"/opt/UmlautAdaptarr_version.txt"
msg_ok "Installation completed"
fetch_and_deploy_gh_release "UmlautAdaptarr" "PCJones/Umlautadaptarr" "prebuild" "latest" "/opt/UmlautAdaptarr" "linux-x64.zip"
msg_info "Creating appsettings.json"
msg_info "Setting up UmlautAdaptarr"
cat <<EOF >/opt/UmlautAdaptarr/appsettings.json
{
"Logging": {
@ -97,7 +87,7 @@ cat <<EOF >/opt/UmlautAdaptarr/appsettings.json
}
}
EOF
msg_ok "appsettings.json created"
msg_ok "Setup UmlautAdaptarr"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/umlautadaptarr.service
@ -116,7 +106,7 @@ Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
EOF
systemctl -q --now enable umlautadaptarr
systemctl enable -q --now umlautadaptarr
msg_ok "Created Service"
motd_ssh

View File

@ -17,63 +17,28 @@ msg_info "Installing Dependencies"
$STD apt install -y apt-transport-https
msg_ok "Installed Dependencies"
msg_info "Installing Eclipse Temurin JRE"
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/adoptium.sources >/dev/null
Types: deb
URIs: https://packages.adoptium.net/artifactory/deb
Suites: bookworm
Components: main
Architectures: amd64
Signed-By: /usr/share/keyrings/adoptium.gpg
EOF
$STD apt update
$STD apt install -y temurin-17-jre
msg_ok "Installed Eclipse Temurin JRE"
JAVA_VERION="17" setup_java
setup_deb822_repo \
"unifi" \
"https://dl.ui.com/unifi/unifi-repo.gpg" \
"https://www.ui.com/downloads/unifi/debian" \
"stable" \
"ubiquiti" \
"amd64"
if ! grep -q -m1 'avx[^ ]*' /proc/cpuinfo; then
msg_ok "No AVX Support Detected"
msg_info "Installing MongoDB 4.4"
msg_warn "No AVX Support Detected. MongoDB v4.4 will be installed"
if ! dpkg -l | grep -q "libssl1.1"; then
curl -fsSL "https://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1w-0+deb11u4_amd64.deb" -o "libssl1.1_1.1.1w-0+deb11u4_amd64.deb"
$STD dpkg -i libssl1.1_1.1.1w-0+deb11u4_amd64.deb
fi
curl -fsSL "https://www.mongodb.org/static/pgp/server-4.4.asc" | gpg --dearmor -o /usr/share/keyrings/mongodb-server-4.4.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.sources >/dev/null
Types: deb
URIs: https://repo.mongodb.org/apt/debian
Suites: buster/mongodb-org/4.4
Components: main
Signed-By: /usr/share/keyrings/mongodb-server-4.4.gpg
EOF
$STD apt update
$STD apt install -y mongodb-org
MONGO_VERSION="4.4" setup_mongodb
else
msg_info "Installing MongoDB 7.0"
curl -fsSL "https://www.mongodb.org/static/pgp/server-7.0.asc" | gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.sources >/dev/null
Types: deb
URIs: http://repo.mongodb.org/apt/debian
Suites: bookworm/mongodb-org/7.0
Components: main
Signed-By: /usr/share/keyrings/mongodb-server-7.0.gpg
EOF
$STD apt update
$STD apt install -y mongodb-org
MONGO_VERSION="7.0" setup_mongodb
fi
msg_ok "Installed MongoDB"
msg_info "Installing UniFi Network Server"
curl -fsSL "https://dl.ui.com/unifi/unifi-repo.gpg" -o "/usr/share/keyrings/unifi-repo.gpg"
cat <<EOF | sudo tee /etc/apt/sources.list.d/100-ubnt-unifi.sources >/dev/null
Types: deb
URIs: https://www.ui.com/downloads/unifi/debian
Suites: stable
Components: ubiquiti
Architectures: amd64
Signed-By: /usr/share/keyrings/unifi-repo.gpg
EOF
$STD apt update
$STD apt install -y unifi
msg_ok "Installed UniFi Network Server"

View File

@ -14,25 +14,21 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
coreutils \
debconf-utils
$STD apt install -y debconf-utils
msg_ok "Installed Dependencies"
msg_info "Installing UrBackup Server"
curl -fsSL https://download.opensuse.org/repositories/home:uroni/Debian_12/Release.key | gpg --dearmor -o /usr/share/keyrings/home-uroni.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/home-uroni.sources >/dev/null
Types: deb
URIs: http://download.opensuse.org/repositories/home:/uroni/Debian_12/
Suites: ./
Components:
Signed-By: /usr/share/keyrings/home-uroni.gpg
EOF
$STD apt update
setup_deb822_repo \
"urbackup" \
"https://download.opensuse.org/repositories/home:uroni/Debian_13/Release.key" \
"http://download.opensuse.org/repositories/home:/uroni/Debian_13/" \
"./" \
""
msg_info "Setting up UrBackup Server"
mkdir -p /opt/urbackup/backups
echo "urbackup-server urbackup/backuppath string /opt/urbackup/backups" | debconf-set-selections
$STD apt install -y urbackup-server
msg_ok "Installed UrBackup Server"
msg_ok "Setup UrBackup Server"
motd_ssh
customize

View File

@ -14,9 +14,7 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
ca-certificates \
build-essential
$STD apt install -y build-essential
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs
@ -24,7 +22,6 @@ NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs
msg_info "Configuring Verdaccio"
mkdir -p /opt/verdaccio/config
mkdir -p /opt/verdaccio/storage
cat <<EOF >/opt/verdaccio/config/config.yaml
# Verdaccio configuration
storage: /opt/verdaccio/storage
@ -58,7 +55,6 @@ web:
sort_packages: asc
login: true
EOF
chown -R root:root /opt/verdaccio
chmod -R 755 /opt/verdaccio
msg_ok "Configured Verdaccio"
@ -81,7 +77,6 @@ KillMode=control-group
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now verdaccio
msg_ok "Created Service"

View File

@ -15,23 +15,9 @@ update_os
PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" PHP_MAX_EXECUTION_TIME="600" setup_php
setup_mariadb
MARIADB_DB_NAME="wavelog" MARIADB_DB_USER="waveloguser" setup_mariadb_db
fetch_and_deploy_gh_release "wavelog" "wavelog/wavelog" "tarball"
msg_info "Setting up Database"
DB_NAME=wavelog
DB_USER=waveloguser
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "Wavelog-Credentials"
echo "Wavelog Database User: $DB_USER"
echo "Wavelog Database Password: $DB_PASS"
echo "Wavelog Database Name: $DB_NAME"
} >>~/wavelog.creds
msg_ok "Set up database"
msg_info "Configuring Wavelog"
chown -R www-data:www-data /opt/wavelog/
find /opt/wavelog/ -type d -exec chmod 755 {} \;

View File

@ -1047,7 +1047,7 @@ advanced_settings() {
local _enable_mknod="${var_mknod:-0}"
local _mount_fs="${var_mount_fs:-}"
local _protect_ct="${var_protection:-no}"
# Detect host timezone for default (if not set via var_timezone)
local _host_timezone=""
if command -v timedatectl >/dev/null 2>&1; then
@ -2630,10 +2630,15 @@ build_container() {
export DEV_MODE_DRYRUN="${DEV_MODE_DRYRUN:-false}"
# Build PCT_OPTIONS as multi-line string
PCT_OPTIONS_STRING=" -features $FEATURES
-hostname $HN
PCT_OPTIONS_STRING=" -hostname $HN
-tags $TAGS"
# Only add -features if FEATURES is not empty
if [ -n "$FEATURES" ]; then
PCT_OPTIONS_STRING=" -features $FEATURES
$PCT_OPTIONS_STRING"
fi
# Add storage if specified
if [ -n "$SD" ]; then
PCT_OPTIONS_STRING="$PCT_OPTIONS_STRING