mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-06 03:12:50 +00:00
Compare commits
82 Commits
2025-08-22
...
2025-08-26
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d25a12c87e | ||
|
|
e24315c50b | ||
|
|
753ed67b50 | ||
|
|
d6e498050f | ||
|
|
4a69a7b39f | ||
|
|
1dcde93b4a | ||
|
|
663c6570f4 | ||
|
|
6a17e25871 | ||
|
|
e609552cec | ||
|
|
bd4b781c9e | ||
|
|
7eb6715a1f | ||
|
|
aa0190978f | ||
|
|
e0f5e588e0 | ||
|
|
3949e2e049 | ||
|
|
ab4560b879 | ||
|
|
b8f854e7ad | ||
|
|
ea1c5b4561 | ||
|
|
957eea7a0f | ||
|
|
476fcedfe0 | ||
|
|
d590e91597 | ||
|
|
8c796a0870 | ||
|
|
b57efdb78a | ||
|
|
2cc3ce1ea1 | ||
|
|
468defcd97 | ||
|
|
78398309c0 | ||
|
|
08d1d7be62 | ||
|
|
05a4fcd471 | ||
|
|
36acf4aaae | ||
|
|
4182815b4c | ||
|
|
73a0910239 | ||
|
|
bd6626e919 | ||
|
|
3ad6cdf85a | ||
|
|
732bb75e9b | ||
|
|
d372b45a95 | ||
|
|
df564ace13 | ||
|
|
d2b28413eb | ||
|
|
b93a30ffb0 | ||
|
|
a4044b1cfd | ||
|
|
83eb2da451 | ||
|
|
9fda9f34c5 | ||
|
|
3715ea5946 | ||
|
|
de2d8d0e75 | ||
|
|
9f6abbe572 | ||
|
|
d90a071d88 | ||
|
|
69dd06b107 | ||
|
|
2be054a004 | ||
|
|
a2fcd3992e | ||
|
|
9a92df420e | ||
|
|
c6864c74bc | ||
|
|
941457b392 | ||
|
|
e84ea56a8f | ||
|
|
0d36d64454 | ||
|
|
74b2407c53 | ||
|
|
b97331282f | ||
|
|
fed5ebd9c8 | ||
|
|
be4a6f1a4f | ||
|
|
b383d43d9c | ||
|
|
54b676b529 | ||
|
|
d465ca87f2 | ||
|
|
e32c2b7dea | ||
|
|
444cbc2aa1 | ||
|
|
497622832e | ||
|
|
f36ac8831e | ||
|
|
66049f400c | ||
|
|
8daa235a88 | ||
|
|
072595c8fb | ||
|
|
85f8e5cd73 | ||
|
|
07fbcf57d4 | ||
|
|
f09c5db961 | ||
|
|
c1e93d7d79 | ||
|
|
292e48f4b4 | ||
|
|
1d8b8c87bd | ||
|
|
acfcf98273 | ||
|
|
5bb15dedae | ||
|
|
07394b9a7d | ||
|
|
1fce2de5c1 | ||
|
|
88579d4be3 | ||
|
|
e7ccf9a512 | ||
|
|
52a9ad733d | ||
|
|
23f65d0eb7 | ||
|
|
aece852e10 | ||
|
|
d7dea7cc5d |
86
CHANGELOG.md
86
CHANGELOG.md
@@ -10,8 +10,94 @@
|
|||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||||
|
|
||||||
|
## 2025-08-27
|
||||||
|
|
||||||
|
## 2025-08-26
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- tracktor ([#7190](https://github.com/community-scripts/ProxmoxVE/pull/7190))
|
||||||
|
- PBS: Upgrade Script for v4 [@MickLesk](https://github.com/MickLesk) ([#7214](https://github.com/community-scripts/ProxmoxVE/pull/7214))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor: Post-PBS-Script [@MickLesk](https://github.com/MickLesk) ([#7213](https://github.com/community-scripts/ProxmoxVE/pull/7213))
|
||||||
|
- Refactor: Post-PMG-Script [@MickLesk](https://github.com/MickLesk) ([#7212](https://github.com/community-scripts/ProxmoxVE/pull/7212))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- [website] Update documentation URLs [@tremor021](https://github.com/tremor021) ([#7201](https://github.com/community-scripts/ProxmoxVE/pull/7201))
|
||||||
|
|
||||||
|
## 2025-08-25
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Alpine-RustDesk Server [@tremor021](https://github.com/tremor021) ([#7191](https://github.com/community-scripts/ProxmoxVE/pull/7191))
|
||||||
|
- Alpine-Redlib ([#7178](https://github.com/community-scripts/ProxmoxVE/pull/7178))
|
||||||
|
- healthchecks ([#7177](https://github.com/community-scripts/ProxmoxVE/pull/7177))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- FileBrowser Quantum: safer update (tmp download + atomic replace + arch autodetect) [@CommanderPaladin](https://github.com/CommanderPaladin) ([#7174](https://github.com/community-scripts/ProxmoxVE/pull/7174))
|
||||||
|
- Immich: bump to v1.139.4 [@vhsdream](https://github.com/vhsdream) ([#7138](https://github.com/community-scripts/ProxmoxVE/pull/7138))
|
||||||
|
- Komodo: Fix compose.env path [@tremor021](https://github.com/tremor021) ([#7202](https://github.com/community-scripts/ProxmoxVE/pull/7202))
|
||||||
|
- Komodo: Fix update procedure and missing env var [@tremor021](https://github.com/tremor021) ([#7198](https://github.com/community-scripts/ProxmoxVE/pull/7198))
|
||||||
|
- SnipeIT: Update nginx config to v8.3 [@tremor021](https://github.com/tremor021) ([#7171](https://github.com/community-scripts/ProxmoxVE/pull/7171))
|
||||||
|
- Lidarr: Fix RELEASE variable fetching [@tremor021](https://github.com/tremor021) ([#7162](https://github.com/community-scripts/ProxmoxVE/pull/7162))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Komodo: Generate admin users password [@tremor021](https://github.com/tremor021) ([#7193](https://github.com/community-scripts/ProxmoxVE/pull/7193))
|
||||||
|
- [core]: uv uses now "update-shell" command [@MickLesk](https://github.com/MickLesk) ([#7172](https://github.com/community-scripts/ProxmoxVE/pull/7172))
|
||||||
|
- [core]: tools.func - better verbose for postgresql [@MickLesk](https://github.com/MickLesk) ([#7173](https://github.com/community-scripts/ProxmoxVE/pull/7173))
|
||||||
|
- n8n: Force update to NodeJS v22 [@tremor021](https://github.com/tremor021) ([#7176](https://github.com/community-scripts/ProxmoxVE/pull/7176))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- 2FAuth: Fix website and docs URLs [@tremor021](https://github.com/tremor021) ([#7199](https://github.com/community-scripts/ProxmoxVE/pull/7199))
|
||||||
|
|
||||||
|
## 2025-08-24
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Kasm: Fix install log parsing [@tremor021](https://github.com/tremor021) ([#7140](https://github.com/community-scripts/ProxmoxVE/pull/7140))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- BookLore: Fix Nginx config [@tremor021](https://github.com/tremor021) ([#7155](https://github.com/community-scripts/ProxmoxVE/pull/7155))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Syncthing: Switch to v2 stable repository [@tremor021](https://github.com/tremor021) ([#7150](https://github.com/community-scripts/ProxmoxVE/pull/7150))
|
||||||
|
|
||||||
## 2025-08-23
|
## 2025-08-23
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- qBittorrent: Fix file names [@tremor021](https://github.com/tremor021) ([#7136](https://github.com/community-scripts/ProxmoxVE/pull/7136))
|
||||||
|
- Tandoor: Fix env path [@tremor021](https://github.com/tremor021) ([#7130](https://github.com/community-scripts/ProxmoxVE/pull/7130))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Immich: v1.139.2 [@vhsdream](https://github.com/vhsdream) ([#7116](https://github.com/community-scripts/ProxmoxVE/pull/7116))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Pf2eTools [@tremor021](https://github.com/tremor021) ([#7096](https://github.com/community-scripts/ProxmoxVE/pull/7096))
|
||||||
|
- Refactor: Prowlarr [@tremor021](https://github.com/tremor021) ([#7091](https://github.com/community-scripts/ProxmoxVE/pull/7091))
|
||||||
|
- Refactor: Radarr [@tremor021](https://github.com/tremor021) ([#7088](https://github.com/community-scripts/ProxmoxVE/pull/7088))
|
||||||
|
- Refactor: Snipe-IT [@tremor021](https://github.com/tremor021) ([#7081](https://github.com/community-scripts/ProxmoxVE/pull/7081))
|
||||||
|
|
||||||
## 2025-08-22
|
## 2025-08-22
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
56
ct/alpine-redlib.sh
Normal file
56
ct/alpine-redlib.sh
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/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: andrej-kocijan (Andrej Kocijan)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/redlib-org/redlib
|
||||||
|
|
||||||
|
APP="Alpine-Redlib"
|
||||||
|
var_tags="${var_tags:-alpine;frontend}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-1}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.22}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/redlib ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating Alpine Packages"
|
||||||
|
$STD apk -U upgrade
|
||||||
|
msg_ok "Updated Alpine Packages"
|
||||||
|
|
||||||
|
msg_info "Stopping ${APP} Service"
|
||||||
|
$STD rc-service redlib stop
|
||||||
|
msg_ok "Stopped ${APP} Service"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP} Service"
|
||||||
|
$STD rc-service redlib start
|
||||||
|
msg_ok "Started ${APP} Service"
|
||||||
|
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
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}:5252${CL}"
|
||||||
74
ct/alpine-rustdeskserver.sh
Normal file
74
ct/alpine-rustdeskserver.sh
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/rustdesk/rustdesk-server
|
||||||
|
|
||||||
|
APP="Alpine-RustDeskServer"
|
||||||
|
var_tags="${var_tags:-alpine;monitoring}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-3}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.22}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
if [[ ! -d /opt/rustdesk-server ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then
|
||||||
|
msg_info "Updating RustDesk Server to v${RELEASE}"
|
||||||
|
$STD apk -U upgrade
|
||||||
|
$STD service rustdesk-server-hbbs stop
|
||||||
|
$STD service rustdesk-server-hbbr stop
|
||||||
|
temp_file1=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
|
||||||
|
$STD unzip "$temp_file1"
|
||||||
|
cp -r amd64/* /opt/rustdesk-server/
|
||||||
|
echo "${RELEASE}" >~/.rustdesk-server
|
||||||
|
$STD service rustdesk-server-hbbs start
|
||||||
|
$STD service rustdesk-server-hbbr start
|
||||||
|
rm -rf amd64
|
||||||
|
rm -f $temp_file1
|
||||||
|
msg_ok "Updated RustDesk Server successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
if [ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ] || [ ! -f ~/.rustdesk-api ]; then
|
||||||
|
msg_info "Updating RustDesk API to v${APIRELEASE}"
|
||||||
|
$STD service rustdesk-api stop
|
||||||
|
temp_file2=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-amd64.tar.gz" -o "$temp_file2"
|
||||||
|
$STD tar zxvf "$temp_file2"
|
||||||
|
cp -r release/* /opt/rustdesk-api
|
||||||
|
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||||
|
$STD service rustdesk-api start
|
||||||
|
rm -rf release
|
||||||
|
rm -f $temp_file2
|
||||||
|
msg_ok "Updated RustDesk API"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. RustDesk API is already at v${APIRELEASE}"
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:21114${CL}"
|
||||||
6
ct/headers/alpine-redlib
Normal file
6
ct/headers/alpine-redlib
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ ____ _____ __
|
||||||
|
/ | / /___ (_)___ ___ / __ \___ ____/ / (_) /_
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ /_/ / _ \/ __ / / / __ \
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ _, _/ __/ /_/ / / / /_/ /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\___/\__,_/_/_/_.___/
|
||||||
|
/_/
|
||||||
6
ct/headers/alpine-rustdeskserver
Normal file
6
ct/headers/alpine-rustdeskserver
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ ____ __ ____ __ _____
|
||||||
|
/ | / /___ (_)___ ___ / __ \__ _______/ /_/ __ \___ _____/ /__/ ___/___ ______ _____ _____
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ /_/ / / / / ___/ __/ / / / _ \/ ___/ //_/\__ \/ _ \/ ___/ | / / _ \/ ___/
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ _, _/ /_/ (__ ) /_/ /_/ / __(__ ) ,< ___/ / __/ / | |/ / __/ /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\__,_/____/\__/_____/\___/____/_/|_|/____/\___/_/ |___/\___/_/
|
||||||
|
/_/
|
||||||
6
ct/headers/healthchecks
Normal file
6
ct/headers/healthchecks
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ ____ __ __ __
|
||||||
|
/ /_ ___ ____ _/ / /_/ /_ _____/ /_ ___ _____/ /_______
|
||||||
|
/ __ \/ _ \/ __ `/ / __/ __ \/ ___/ __ \/ _ \/ ___/ //_/ ___/
|
||||||
|
/ / / / __/ /_/ / / /_/ / / / /__/ / / / __/ /__/ ,< (__ )
|
||||||
|
/_/ /_/\___/\__,_/_/\__/_/ /_/\___/_/ /_/\___/\___/_/|_/____/
|
||||||
|
|
||||||
6
ct/headers/tracktor
Normal file
6
ct/headers/tracktor
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ __ __
|
||||||
|
/ /__________ ______/ /__/ /_____ _____
|
||||||
|
/ __/ ___/ __ `/ ___/ //_/ __/ __ \/ ___/
|
||||||
|
/ /_/ / / /_/ / /__/ ,< / /_/ /_/ / /
|
||||||
|
\__/_/ \__,_/\___/_/|_|\__/\____/_/
|
||||||
|
|
||||||
70
ct/healthchecks.sh
Normal file
70
ct/healthchecks.sh
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://healthchecks.io/
|
||||||
|
|
||||||
|
APP="healthchecks"
|
||||||
|
var_tags="${var_tags:-monitoring}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-5}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/healthchecks ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/healthchecks/healthchecks/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
|
||||||
|
if [[ "${RELEASE}" != "$(cat ~/.healthchecks 2>/dev/null)" ]] || [[ ! -f ~/.healthchecks ]]; then
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop healthchecks
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
|
||||||
|
|
||||||
|
msg_info "Updating $APP to v${RELEASE}"
|
||||||
|
cd /opt/healthchecks
|
||||||
|
mkdir -p /opt/healthchecks/static-collected/
|
||||||
|
$STD uv pip install wheel gunicorn -r requirements.txt --system
|
||||||
|
$STD uv run -- python manage.py makemigrations
|
||||||
|
$STD uv run -- python manage.py migrate --noinput
|
||||||
|
$STD uv run -- python manage.py collectstatic --noinput
|
||||||
|
$STD uv run -- python manage.py compress
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start healthchecks
|
||||||
|
systemctl restart caddy
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"
|
||||||
52
ct/immich.sh
52
ct/immich.sh
@@ -29,6 +29,8 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
setup_uv
|
setup_uv
|
||||||
|
PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
|
||||||
|
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||||
|
|
||||||
STAGING_DIR=/opt/staging
|
STAGING_DIR=/opt/staging
|
||||||
BASE_DIR=${STAGING_DIR}/base-images
|
BASE_DIR=${STAGING_DIR}/base-images
|
||||||
@@ -59,7 +61,7 @@ function update_script() {
|
|||||||
done
|
done
|
||||||
msg_ok "Image-processing libraries up to date"
|
msg_ok "Image-processing libraries up to date"
|
||||||
fi
|
fi
|
||||||
RELEASE="1.138.1"
|
RELEASE="1.139.4"
|
||||||
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
|
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
@@ -116,8 +118,12 @@ set +a
|
|||||||
EOF
|
EOF
|
||||||
chmod +x "$INSTALL_DIR"/start.sh
|
chmod +x "$INSTALL_DIR"/start.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
shopt -s dotglob
|
||||||
rm -rf "${APP_DIR:?}"/*
|
rm -rf "${APP_DIR:?}"/*
|
||||||
mkdir -p "$ML_DIR"
|
)
|
||||||
|
|
||||||
rm -rf "$SRC_DIR"
|
rm -rf "$SRC_DIR"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
|
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
|
||||||
@@ -127,30 +133,36 @@ EOF
|
|||||||
if [[ "$RELEASE" == "1.135.1" ]]; then
|
if [[ "$RELEASE" == "1.135.1" ]]; then
|
||||||
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
|
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
|
||||||
fi
|
fi
|
||||||
$STD npm install -g node-gyp node-pre-gyp
|
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||||
$STD npm ci
|
export CI=1
|
||||||
$STD npm run build
|
corepack enable
|
||||||
$STD npm prune --omit=dev --omit=optional
|
|
||||||
cp -a {bin,dist,node_modules,resources,package*.json} "$APP_DIR"/
|
# server build
|
||||||
cp package.json "$APP_DIR"/bin
|
export SHARP_IGNORE_GLOBAL_LIBVIPS=true
|
||||||
mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
|
$STD pnpm --filter immich --frozen-lockfile build
|
||||||
|
unset SHARP_IGNORE_GLOBAL_LIBVIPS
|
||||||
|
export SHARP_FORCE_GLOBAL_LIBVIPS=true
|
||||||
|
$STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR"
|
||||||
|
cp "$APP_DIR"/package.json "$APP_DIR"/bin
|
||||||
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
|
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
|
||||||
cd "$SRC_DIR"/open-api/typescript-sdk
|
|
||||||
$STD npm ci
|
# openapi & web build
|
||||||
$STD npm run build
|
|
||||||
cd "$SRC_DIR"/web
|
|
||||||
$STD npm ci
|
|
||||||
$STD npm run build
|
|
||||||
cd "$SRC_DIR"
|
cd "$SRC_DIR"
|
||||||
|
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
|
||||||
|
$STD pnpm --filter @immich/sdk --filter immich-web build
|
||||||
cp -a web/build "$APP_DIR"/www
|
cp -a web/build "$APP_DIR"/www
|
||||||
cp LICENSE "$APP_DIR"
|
cp LICENSE "$APP_DIR"
|
||||||
|
|
||||||
|
# cli build
|
||||||
|
$STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
|
||||||
|
$STD pnpm --filter @immich/sdk --filter @immich/cli build
|
||||||
|
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
|
||||||
cd "$APP_DIR"
|
cd "$APP_DIR"
|
||||||
export SHARP_FORCE_GLOBAL_LIBVIPS=true
|
mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
|
||||||
$STD npm install sharp
|
|
||||||
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
|
|
||||||
msg_ok "Updated ${APP} web and microservices"
|
msg_ok "Updated ${APP} web and microservices"
|
||||||
|
|
||||||
cd "$SRC_DIR"/machine-learning
|
cd "$SRC_DIR"/machine-learning
|
||||||
|
mkdir -p "$ML_DIR"
|
||||||
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
||||||
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
|
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
|
||||||
if [[ -f ~/.openvino ]]; then
|
if [[ -f ~/.openvino ]]; then
|
||||||
@@ -178,10 +190,6 @@ EOF
|
|||||||
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
|
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
|
||||||
ln -s "$GEO_DIR" "$APP_DIR"
|
ln -s "$GEO_DIR" "$APP_DIR"
|
||||||
|
|
||||||
msg_info "Updating Immich CLI"
|
|
||||||
$STD npm i -g @immich/cli
|
|
||||||
msg_ok "Updated Immich CLI"
|
|
||||||
|
|
||||||
chown -R immich:immich "$INSTALL_DIR"
|
chown -R immich:immich "$INSTALL_DIR"
|
||||||
if [[ ! -f ~/.debian_version.bak ]]; then
|
if [[ ! -f ~/.debian_version.bak ]]; then
|
||||||
cp /etc/debian_version ~/.debian_version.bak
|
cp /etc/debian_version ~/.debian_version.bak
|
||||||
|
|||||||
@@ -56,6 +56,9 @@ function update_script() {
|
|||||||
mv "$BACKUP_FILE" "$COMPOSE_FILE"
|
mv "$BACKUP_FILE" "$COMPOSE_FILE"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if ! grep -qxF 'COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups' /opt/komodo/compose.env; then
|
||||||
|
sed -i '/^COMPOSE_KOMODO_IMAGE_TAG=latest$/a COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups' /opt/komodo/compose.env
|
||||||
|
fi
|
||||||
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
|
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -28,6 +28,10 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
if ! command -v jq &>/dev/null; then
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y jq
|
||||||
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
if [[ "${RELEASE}" != "$(cat ~/.lidarr)" ]] || [[ ! -f ~/.lidarr ]]; then
|
if [[ "${RELEASE}" != "$(cat ~/.lidarr)" ]] || [[ ! -f ~/.lidarr ]]; then
|
||||||
|
|||||||
@@ -27,13 +27,6 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
|
||||||
if ! command -v npm >/dev/null 2>&1; then
|
|
||||||
echo "Installing NPM..."
|
|
||||||
$STD apt-get install -y npm
|
|
||||||
echo "Installed NPM..."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ ! -f /opt/n8n.env ]; then
|
if [ ! -f /opt/n8n.env ]; then
|
||||||
sed -i 's|^Environment="N8N_SECURE_COOKIE=false"$|EnvironmentFile=/opt/n8n.env|' /etc/systemd/system/n8n.service
|
sed -i 's|^Environment="N8N_SECURE_COOKIE=false"$|EnvironmentFile=/opt/n8n.env|' /etc/systemd/system/n8n.service
|
||||||
HOST_IP=$(hostname -I | awk '{print $1}')
|
HOST_IP=$(hostname -I | awk '{print $1}')
|
||||||
@@ -45,6 +38,7 @@ N8N_PROTOCOL=http
|
|||||||
N8N_HOST=$HOST_IP
|
N8N_HOST=$HOST_IP
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
$STD npm update -g n8n
|
$STD npm update -g n8n
|
||||||
|
|||||||
@@ -29,30 +29,25 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Pf2eToolsOrg/Pf2eTools/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Pf2eToolsOrg/Pf2eTools/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f "/opt/${APP}_version.txt" ]]; then
|
if [[ "${RELEASE}" != "$(cat ~/.pf2etools 2>/dev/null)" ]] || [[ ! -f ~/.pf2etools ]]; then
|
||||||
msg_info "Updating System"
|
msg_info "Updating System"
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get -y upgrade
|
$STD apt-get -y upgrade
|
||||||
msg_ok "Updated System"
|
msg_ok "Updated System"
|
||||||
|
|
||||||
|
rm -rf /opt/Pf2eTools
|
||||||
|
fetch_and_deploy_gh_release "pf2etools" "Pf2eToolsOrg/Pf2eTools" "tarball" "latest" "/opt/Pf2eTools"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
cd /opt
|
|
||||||
curl -fsSL "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Pf2eToolsOrg/Pf2eTools/archive/refs/tags/${RELEASE}.zip")
|
|
||||||
$STD unzip ${RELEASE}.zip
|
|
||||||
rm -rf "/opt/${APP}"
|
|
||||||
mv ${APP}-${RELEASE:1} /opt/${APP}
|
|
||||||
cd /opt/Pf2eTools
|
cd /opt/Pf2eTools
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
chown -R www-data: "/opt/${APP}"
|
chown -R www-data: "/opt/${APP}"
|
||||||
chmod -R 755 "/opt/${APP}"
|
chmod -R 755 "/opt/${APP}"
|
||||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
msg_ok "Updated successfully"
|
||||||
rm -rf /opt/${RELEASE}.zip
|
|
||||||
msg_ok "Cleanup Completed"
|
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -23,25 +23,21 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /var/lib/prowlarr/ ]]; then
|
if [[ ! -d /var/lib/prowlarr/ ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating $APP LXC"
|
|
||||||
temp_file="$(mktemp)"
|
|
||||||
rm -rf /opt/Prowlarr
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
curl -fsSL "https://github.com/Prowlarr/Prowlarr/releases/download/v${RELEASE}/Prowlarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
if [[ "${RELEASE}" != "$(cat ~/.prowlarr 2>/dev/null)" ]] || [[ ! -f ~/.prowlarr ]]; then
|
||||||
$STD tar -xvzf "$temp_file"
|
rm -rf /opt/Prowlarr
|
||||||
mv Prowlarr /opt
|
fetch_and_deploy_gh_release "prowlarr" "Prowlarr/Prowlarr" "prebuild" "latest" "/opt/Prowlarr" "Prowlarr.master*linux-core-x64.tar.gz"
|
||||||
chmod 775 /opt/Prowlarr
|
chmod 775 /opt/Prowlarr
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Successfully updated"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -f "$temp_file"
|
|
||||||
msg_ok "Cleaned up"
|
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,8 +38,9 @@ function update_script() {
|
|||||||
systemctl stop qbittorrent-nox
|
systemctl stop qbittorrent-nox
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
rm -f /opt/qbittorrent/qbittorrent-nox
|
||||||
fetch_and_deploy_gh_release "qbittorrent" "userdocs/qbittorrent-nox-static" "singlefile" "latest" "/opt/qbittorrent" "x86_64-qbittorrent-nox"
|
fetch_and_deploy_gh_release "qbittorrent" "userdocs/qbittorrent-nox-static" "singlefile" "latest" "/opt/qbittorrent" "x86_64-qbittorrent-nox"
|
||||||
mv /opt/qbittorrent/x86_64-qbittorrent-nox /opt/qbittorrent/qbittorrent-nox
|
mv /opt/qbittorrent/qbittorrent /opt/qbittorrent/qbittorrent-nox
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start qbittorrent-nox
|
systemctl start qbittorrent-nox
|
||||||
|
|||||||
17
ct/radarr.sh
17
ct/radarr.sh
@@ -29,19 +29,16 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating $APP LXC"
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
temp_file="$(mktemp)"
|
if [[ ! -f ~/.radarr ]] || [[ "$RELEASE" != "$(cat ~/.radarr 2>/dev/null)" ]]; then
|
||||||
rm -rf /opt/Radarr
|
rm -rf /opt/Radarr
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
fetch_and_deploy_gh_release "Radarr" "Radarr/Radarr" "prebuild" "latest" "/opt/Radarr" "Radarr.master*linux-core-x64.tar.gz"
|
||||||
curl -fsSL "https://github.com/Radarr/Radarr/releases/download/v${RELEASE}/Radarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
|
||||||
$STD tar -xvzf "$temp_file"
|
|
||||||
mv Radarr /opt
|
|
||||||
chmod 775 /opt/Radarr
|
chmod 775 /opt/Radarr
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Updated successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. $APP is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -rf "$temp_file"
|
|
||||||
msg_ok "Cleaned up"
|
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,20 +27,25 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f ~/.snipe-it ]] || [[ "${RELEASE}" != "$(cat ~/.snipe-it 2>/dev/null)" ]]; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop nginx
|
systemctl stop nginx
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
|
msg_info "Creating backup"
|
||||||
|
mv /opt/snipe-it /opt/snipe-it-backup
|
||||||
|
msg_ok "Backup created"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "snipe-it" "snipe/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} to v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get -y upgrade
|
$STD apt-get -y upgrade
|
||||||
mv /opt/snipe-it /opt/snipe-it-backup
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
curl -fsSL "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
|
||||||
tar zxf "$temp_file"
|
|
||||||
mv "snipe-it-${RELEASE}" /opt/snipe-it
|
|
||||||
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
|
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
|
||||||
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
|
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
|
||||||
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
|
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
|
||||||
@@ -55,7 +60,6 @@ function update_script() {
|
|||||||
$STD php artisan view:clear
|
$STD php artisan view:clear
|
||||||
chown -R www-data: /opt/snipe-it
|
chown -R www-data: /opt/snipe-it
|
||||||
chmod -R 755 /opt/snipe-it
|
chmod -R 755 /opt/snipe-it
|
||||||
rm -rf "$temp_file"
|
|
||||||
rm -rf /opt/snipe-it-backup
|
rm -rf /opt/snipe-it-backup
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/
|
cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/
|
||||||
mv /opt/.env /opt/tandoor/.env
|
mv /opt/tandoor.bak/.env /opt/tandoor/.env
|
||||||
cd /opt/tandoor
|
cd /opt/tandoor
|
||||||
$STD uv venv .venv --python=python3
|
$STD uv venv .venv --python=python3
|
||||||
$STD uv pip install -r requirements.txt --python .venv/bin/python
|
$STD uv pip install -r requirements.txt --python .venv/bin/python
|
||||||
|
|||||||
72
ct/tracktor.sh
Normal file
72
ct/tracktor.sh
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/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: CrazyWolf13
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://tracktor.bytedge.in/
|
||||||
|
|
||||||
|
APP="tracktor"
|
||||||
|
var_tags="${var_tags:-car;monitoring}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-4096}"
|
||||||
|
var_disk="${var_disk:-6}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/tracktor ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/javedh-dev/tracktor/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
|
if [[ "${RELEASE}" != "$(cat ~/.tracktor 2>/dev/null)" ]] || [[ ! -f ~/.tracktor ]]; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop tracktor
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Creating Backup"
|
||||||
|
cp /opt/tracktor/app/backend/.env /opt/tracktor.env
|
||||||
|
msg_ok "Created Backup"
|
||||||
|
|
||||||
|
setup_nodejs
|
||||||
|
fetch_and_deploy_gh_release "tracktor" "javedh-dev/tracktor" "tarball" "latest" "/opt/tracktor"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
cd /opt/tracktor
|
||||||
|
$STD npm install
|
||||||
|
$STD npm run build
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
|
msg_info "Restoring Backup"
|
||||||
|
cp /opt/tracktor.env /opt/tracktor/app/backend/.env
|
||||||
|
msg_ok "Restored Backup"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start tracktor
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "Already up to date"
|
||||||
|
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}"
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://docs.2fauth.app/",
|
||||||
"website": "https://docs.2fauth.app/",
|
"website": "https://2fauth.app/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/2fauth.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/2fauth.webp",
|
||||||
"config_path": "cat /opt/2fauth/.env",
|
"config_path": "cat /opt/2fauth/.env",
|
||||||
"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.",
|
"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.",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8080,
|
"interface_port": 8080,
|
||||||
"documentation": null,
|
"documentation": "https://guacamole.apache.org/doc/gug/",
|
||||||
"website": "https://guacamole.apache.org/",
|
"website": "https://guacamole.apache.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/apache-guacamole.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/apache-guacamole.webp",
|
||||||
"config_path": "/etc/guacamole/guacd.conf",
|
"config_path": "/etc/guacamole/guacd.conf",
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3142,
|
"interface_port": 3142,
|
||||||
"documentation": null,
|
"documentation": "https://www.unix-ag.uni-kl.de/~bloch/acng/html/index.html",
|
||||||
"website": "https://www.unix-ag.uni-kl.de/~bloch/acng/",
|
"website": "https://www.unix-ag.uni-kl.de/~bloch/acng/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/linux.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/linux.webp",
|
||||||
"config_path": "",
|
"config_path": "/etc/apt-cacher-ng/acng.conf",
|
||||||
"description": "Apt-Cacher-NG is a caching proxy. Specialized for package files from Linux distributors, primarily for Debian (and Debian based) distributions.",
|
"description": "Apt-Cacher-NG is a caching proxy. Specialized for package files from Linux distributors, primarily for Debian (and Debian based) distributions.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://wiki.archlinux.org/title/Main_page",
|
||||||
"website": null,
|
"website": "https://archlinux.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/arch-linux.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/arch-linux.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
"description": "Arch Linux is a highly customizable, independent Linux distribution that gives users complete control over their system. Known for its rolling release model, Arch Linux is always up-to-date with the latest software. It's favored by experienced users who appreciate its minimalist approach, demanding a hands-on installation and configuration process. This level of control and flexibility makes it a popular choice for those who want to tailor their Linux system to their exact needs.",
|
"description": "Arch Linux is a highly customizable, independent Linux distribution that gives users complete control over their system. Known for its rolling release model, Arch Linux is always up-to-date with the latest software. It's favored by experienced users who appreciate its minimalist approach, demanding a hands-on installation and configuration process. This level of control and flexibility makes it a popular choice for those who want to tailor their Linux system to their exact needs.",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://sabre.io/dav/",
|
||||||
"website": "https://sabre.io/baikal/",
|
"website": "https://sabre.io/baikal/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/baikal.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/baikal.webp",
|
||||||
"config_path": "/opt/baikal/config/baikal.yaml",
|
"config_path": "/opt/baikal/config/baikal.yaml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 4000,
|
"interface_port": 4000,
|
||||||
"documentation": null,
|
"documentation": "https://0xerr0r.github.io/blocky/latest/configuration/",
|
||||||
"website": "https://0xerr0r.github.io/blocky/",
|
"website": "https://0xerr0r.github.io/blocky/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/blocky.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/blocky.webp",
|
||||||
"config_path": "/opt/blocky/config.yml",
|
"config_path": "/opt/blocky/config.yml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://www.bookstackapp.com/docs/",
|
||||||
"website": "https://www.bookstackapp.com/",
|
"website": "https://www.bookstackapp.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/bookstack.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/bookstack.webp",
|
||||||
"config_path": "/opt/bookstack/.env",
|
"config_path": "/opt/bookstack/.env",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://wiki.casaos.io/en/home",
|
||||||
"website": "https://www.casaos.io/",
|
"website": "https://www.casaos.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/casaos.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/casaos.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8082,
|
"interface_port": 8082,
|
||||||
"documentation": null,
|
"documentation": "https://athou.github.io/commafeed/documentation/",
|
||||||
"website": "https://www.commafeed.com/",
|
"website": "https://www.commafeed.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/commafeed.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/commafeed.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://doc.crowdsec.net/",
|
||||||
"website": "https://crowdsec.net/",
|
"website": "https://crowdsec.net/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/crowdsec.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/crowdsec.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
"name": "Dashy",
|
"name": "Dashy",
|
||||||
"slug": "dashy",
|
"slug": "dashy",
|
||||||
"categories": [
|
"categories": [
|
||||||
@@ -10,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 4000,
|
"interface_port": 4000,
|
||||||
"documentation": null,
|
"documentation": "https://dashy.to/docs",
|
||||||
"website": "https://dashy.to/",
|
"website": "https://dashy.to/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/dashy.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/dashy.webp",
|
||||||
"config_path": "/opt/dashy/user-data/conf.yml",
|
"config_path": "/opt/dashy/user-data/conf.yml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3000,
|
"interface_port": 3000,
|
||||||
"documentation": null,
|
"documentation": "https://forgejo.org/docs/latest/",
|
||||||
"website": "https://forgejo.org/",
|
"website": "https://forgejo.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/forgejo.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/forgejo.webp",
|
||||||
"config_path": "/etc/forgejo/app.ini",
|
"config_path": "/etc/forgejo/app.ini",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": true,
|
"privileged": true,
|
||||||
"interface_port": 5000,
|
"interface_port": 5000,
|
||||||
"documentation": null,
|
"documentation": "https://docs.frigate.video/",
|
||||||
"website": "https://frigate.video/",
|
"website": "https://frigate.video/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/frigate.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/frigate.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3000,
|
"interface_port": 3000,
|
||||||
"documentation": null,
|
"documentation": "https://docs.gitea.com/",
|
||||||
"website": "https://gitea.com",
|
"website": "https://gitea.com",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/gitea.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/gitea.webp",
|
||||||
"config_path": "/etc/gitea/app.ini",
|
"config_path": "/etc/gitea/app.ini",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8484,
|
"interface_port": 8484,
|
||||||
"documentation": null,
|
"documentation": "https://support.getgrist.com/self-managed/#the-essentials",
|
||||||
"website": "https://www.getgrist.com/",
|
"website": "https://www.getgrist.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/grist.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/grist.webp",
|
||||||
"config_path": "/opt/grist/.env",
|
"config_path": "/opt/grist/.env",
|
||||||
|
|||||||
44
frontend/public/json/healthchecks.json
Normal file
44
frontend/public/json/healthchecks.json
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"name": "Healthchecks",
|
||||||
|
"slug": "healthchecks",
|
||||||
|
"categories": [
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"date_created": "2025-08-25",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"config_path": "/opt/healthchecks/hc/local_settings.py",
|
||||||
|
"interface_port": 3000,
|
||||||
|
"documentation": "https://healthchecks.io/docs/",
|
||||||
|
"website": "https://healthchecks.io/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/healthchecks.webp",
|
||||||
|
"description": "Healthchecks is a cron job monitoring service. It listens for HTTP requests and email messages (\"pings\") from your cron jobs and scheduled tasks (\"checks\"). When a ping does not arrive on time, Healthchecks sends out alerts. Healthchecks comes with a web dashboard, API, 25+ integrations for delivering notifications, monthly email reports, WebAuthn 2FA support, team management features: projects, team members, read-only access.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/healthchecks.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 5,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "if you change your LXC-IP, you need to update /etc/caddy/Caddyfile & /opt/healthchecks/hc/local_settings.py",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Show credentials: `cat ~/healthchecks.creds`",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 7990,
|
"interface_port": 7990,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/linuxserver/Heimdall/blob/2.x/readme.md",
|
||||||
"website": "https://heimdall.site/",
|
"website": "https://heimdall.site/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/heimdall.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/heimdall.webp",
|
||||||
"config_path": "/opt/Heimdall/.env",
|
"config_path": "/opt/Heimdall/.env",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 1080,
|
"interface_port": 1080,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/heiher/hev-socks5-server/blob/main/README.md",
|
||||||
"website": "https://github.com/heiher/hev-socks5-server",
|
"website": "https://github.com/heiher/hev-socks5-server",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/hev.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/hev.webp",
|
||||||
"config_path": "/opt/hivemq/conf/config.xml",
|
"config_path": "/opt/hivemq/conf/config.xml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 7575,
|
"interface_port": 7575,
|
||||||
"documentation": null,
|
"documentation": "https://homarr.dev/docs/getting-started/",
|
||||||
"website": "https://homarr.dev/",
|
"website": "https://homarr.dev/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/homarr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/homarr.webp",
|
||||||
"config_path": "/opt/homarr/.env",
|
"config_path": "/opt/homarr/.env",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8010,
|
"interface_port": 8010,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/bastienwirtz/homer/blob/main/README.md#table-of-contents",
|
||||||
"website": "https://github.com/bastienwirtz/homer",
|
"website": "https://github.com/bastienwirtz/homer",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/homer.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/homer.webp",
|
||||||
"config_path": "/opt/homer/assets/config.yml",
|
"config_path": "/opt/homer/assets/config.yml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8086,
|
"interface_port": 8086,
|
||||||
"documentation": null,
|
"documentation": "https://docs.influxdata.com/",
|
||||||
"website": "https://www.influxdata.com/",
|
"website": "https://www.influxdata.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/influxdb.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/influxdb.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 26000,
|
"interface_port": 26000,
|
||||||
"documentation": null,
|
"documentation": "https://www.iventoy.com/en/doc_news.html",
|
||||||
"website": "https://www.iventoy.com/",
|
"website": "https://www.iventoy.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/iventoy.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/iventoy.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5055,
|
"interface_port": 5055,
|
||||||
"documentation": null,
|
"documentation": "https://docs.jellyseerr.dev/",
|
||||||
"website": "https://github.com/Fallenbagel/jellyseerr",
|
"website": "https://github.com/Fallenbagel/jellyseerr",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jellyseerr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jellyseerr.webp",
|
||||||
"config_path": "/etc/jellyseerr/jellyseerr.conf",
|
"config_path": "/etc/jellyseerr/jellyseerr.conf",
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
"type": "warning"
|
"type": "warning"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Show password: `cat ~/kasm.creds`",
|
"text": "Show credentials: `cat ~/kasm.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "After the initial installation: Enter your desired admin user and password and then click on Sign Up",
|
"text": "For admin username and password type `cat ~/komodo.creds` inside LXC.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3000,
|
"interface_port": 3000,
|
||||||
"documentation": null,
|
"documentation": "https://mafl.hywax.space/reference/configuration.html",
|
||||||
"website": "https://mafl.hywax.space/",
|
"website": "https://mafl.hywax.space/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mafl.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mafl.webp",
|
||||||
"config_path": "/opt/mafl/data/config.yml",
|
"config_path": "/opt/mafl/data/config.yml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8283,
|
"interface_port": 8283,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/Luligu/matterbridge/blob/main/README.md",
|
||||||
"website": "https://github.com/Luligu/matterbridge",
|
"website": "https://github.com/Luligu/matterbridge",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/matterbridge.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/matterbridge.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8065,
|
"interface_port": 8065,
|
||||||
"documentation": null,
|
"documentation": "https://docs.mattermost.com/",
|
||||||
"website": "https://mattermost.com/",
|
"website": "https://mattermost.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mattermost.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mattermost.webp",
|
||||||
"config_path": "/opt/mattermost/config/config.json",
|
"config_path": "/opt/mattermost/config/config.json",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8081,
|
"interface_port": 8081,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/pymedusa/Medusa/wiki",
|
||||||
"website": "https://pymedusa.com/",
|
"website": "https://pymedusa.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/py-medusa.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/py-medusa.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8081,
|
"interface_port": 8081,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/alexta69/metube/blob/master/README.md",
|
||||||
"website": "https://github.com/alexta69/metube",
|
"website": "https://github.com/alexta69/metube",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
|
||||||
"config_path": "/opt/metube/.env",
|
"config_path": "/opt/metube/.env",
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://help.mikrotik.com/docs/spaces/ROS/pages/18350234/Cloud+Hosted+Router+CHR",
|
||||||
"website": "https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR",
|
"website": "https://mikrotik.com",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mikrotik.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mikrotik.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
"description": "Mikrotik RouterOS CHR is a Linux-based operating system that transforms a computer into a router. It provides a wide range of features for network routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server, and many others. RouterOS is a versatile solution that supports various network configurations, including those with multiple WAN links, hotspots, and VPNs. It is highly customizable, allowing administrators to configure and manage their networks according to their specific requirements. With RouterOS, network administrators can monitor and control the performance and security of their networks, ensuring reliable and secure communication for their users. The software is designed to be easy to use and provides a wide range of tools for network management, making it a valuable solution for small and large networks alike.",
|
"description": "Mikrotik RouterOS CHR is a Linux-based operating system that transforms a computer into a router. It provides a wide range of features for network routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server, and many others. RouterOS is a versatile solution that supports various network configurations, including those with multiple WAN links, hotspots, and VPNs. It is highly customizable, allowing administrators to configure and manage their networks according to their specific requirements. With RouterOS, network administrators can monitor and control the performance and security of their networks, ensuring reliable and secure communication for their users. The software is designed to be easy to use and provides a wide range of tools for network management, making it a valuable solution for small and large networks alike.",
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": 27017,
|
||||||
"documentation": null,
|
"documentation": "https://www.mongodb.com/docs/manual/",
|
||||||
"website": "https://www.mongodb.com/",
|
"website": "https://www.mongodb.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mongodb.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mongodb.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://docs.nextcloud.com/server/21/admin_manual/contents.html",
|
||||||
"website": "https://www.turnkeylinux.org/nextcloud",
|
"website": "https://www.turnkeylinux.org/nextcloud",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/nextcloud.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/nextcloud.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 81,
|
"interface_port": 81,
|
||||||
"documentation": null,
|
"documentation": "https://nginxproxymanager.com/guide/",
|
||||||
"website": "https://nginxproxymanager.com/",
|
"website": "https://nginxproxymanager.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/nginx-proxy-manager.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/nginx-proxy-manager.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5454,
|
"interface_port": 5454,
|
||||||
"documentation": null,
|
"documentation": "https://notifiarr.wiki/",
|
||||||
"website": "https://notifiarr.com/",
|
"website": "https://notifiarr.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/notifiarr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/notifiarr.webp",
|
||||||
"config_path": "/etc/notifiarr/notifiarr.conf",
|
"config_path": "/etc/notifiarr/notifiarr.conf",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://docs.ntfy.sh/",
|
||||||
"website": "https://ntfy.sh/",
|
"website": "https://ntfy.sh/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/ntfy.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/ntfy.webp",
|
||||||
"config_path": "/etc/ntfy/server.yml",
|
"config_path": "/etc/ntfy/server.yml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 1337,
|
"interface_port": 1337,
|
||||||
"documentation": null,
|
"documentation": "https://docs.olivetin.app/",
|
||||||
"website": "https://www.olivetin.app/",
|
"website": "https://www.olivetin.app/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/olivetin.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/olivetin.webp",
|
||||||
"config_path": "/etc/OliveTin/config.yaml",
|
"config_path": "/etc/OliveTin/config.yaml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://docs.openmediavault.org/en/stable/",
|
||||||
"website": "https://www.openmediavault.org/",
|
"website": "https://www.openmediavault.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/openmediavault.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/openmediavault.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://openwrt.org/docs/start",
|
||||||
"website": "https://openwrt.org/",
|
"website": "https://openwrt.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/openwrt.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/openwrt.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://doc.owncloud.com/",
|
||||||
"website": "https://www.turnkeylinux.org/owncloud",
|
"website": "https://www.turnkeylinux.org/owncloud",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/owncloud.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/owncloud.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3000,
|
"interface_port": 3000,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/clusterzx/paperless-ai/wiki/1.-Home",
|
||||||
"website": "https://github.com/clusterzx/paperless-ai",
|
"website": "https://github.com/clusterzx/paperless-ai",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/paperless-ai.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/paperless-ai.webp",
|
||||||
"config_path": "/opt/paperless-ai/data/.env",
|
"config_path": "/opt/paperless-ai/data/.env",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8080,
|
"interface_port": 8080,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/icereed/paperless-gpt/blob/main/README.md",
|
||||||
"website": "https://github.com/icereed/paperless-gpt",
|
"website": "https://github.com/icereed/paperless-gpt",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/paperless-ngx-light.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/paperless-ngx-light.webp",
|
||||||
"config_path": "/opt/paperless-gpt-data/.env",
|
"config_path": "/opt/paperless-gpt-data/.env",
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "Show Login Credentials, type `cat ~/paperless.creds` in the LXC console",
|
"text": "Show Login Credentials, type `cat ~/paperless-ngx.creds` in the LXC console",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
52
frontend/public/json/pbs4-upgrade.json
Normal file
52
frontend/public/json/pbs4-upgrade.json
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"name": "PBS 4 Upgrade",
|
||||||
|
"slug": "pbs4-upgrade",
|
||||||
|
"categories": [
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"date_created": "2025-08-26",
|
||||||
|
"type": "pve",
|
||||||
|
"updateable": false,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": null,
|
||||||
|
"documentation": "https://pbs.proxmox.com/wiki/Upgrade_from_3_to_4",
|
||||||
|
"website": "https://www.proxmox.com/en/proxmox-backup-server",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
|
||||||
|
"config_path": "",
|
||||||
|
"description": "This script guides you through upgrading Proxmox Backup Server from version 3.x (Debian 12 Bookworm) to version 4.0 (Debian 13 Trixie). It adjusts the Debian base sources, configures PBS 4 repositories in deb822 format, updates enterprise/no-subscription/test repos, runs a full system upgrade, and finalizes with a reboot.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "tools/pve/pbs4-upgrade.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": null,
|
||||||
|
"ram": null,
|
||||||
|
"hdd": null,
|
||||||
|
"os": null,
|
||||||
|
"version": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Execute this script directly on the PBS 3.x host as root.",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Ensure you have a verified backup of /etc/proxmox-backup before starting.",
|
||||||
|
"type": "warning"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Do not run this on an already upgraded PBS 4.x system.",
|
||||||
|
"type": "warning"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "A reboot is strongly recommended after upgrade to activate the new kernel and services.",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3000,
|
"interface_port": 3000,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/Brandawg93/PeaNUT/blob/main/README.md",
|
||||||
"website": "https://github.com/Brandawg93/PeaNUT/",
|
"website": "https://github.com/Brandawg93/PeaNUT/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/peanut.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/peanut.webp",
|
||||||
"config_path": "/etc/peanut/settings.yml",
|
"config_path": "/etc/peanut/settings.yml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 2342,
|
"interface_port": 2342,
|
||||||
"documentation": null,
|
"documentation": "https://docs.photoprism.app/",
|
||||||
"website": "https://photoprism.app/",
|
"website": "https://photoprism.app/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/photoprism.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/photoprism.webp",
|
||||||
"config_path": "/opt/photoprism/config/.env",
|
"config_path": "/opt/photoprism/config/.env",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/leiweibau/Pi.Alert/blob/main/README.md",
|
||||||
"website": "https://github.com/leiweibau/Pi.Alert/",
|
"website": "https://github.com/leiweibau/Pi.Alert/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/pi-alert.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/pi-alert.webp",
|
||||||
"config_path": "/opt/pialert/config/pialert.conf",
|
"config_path": "/opt/pialert/config/pialert.conf",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://podman.io/docs",
|
||||||
"website": "https://podman.io/",
|
"website": "https://podman.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/podman.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/podman.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5432,
|
"interface_port": 5432,
|
||||||
"documentation": null,
|
"documentation": "https://www.postgresql.org/docs/",
|
||||||
"website": "https://www.postgresql.org/",
|
"website": "https://www.postgresql.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/postgresql.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/postgresql.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 9696,
|
"interface_port": 9696,
|
||||||
"documentation": null,
|
"documentation": "https://wiki.servarr.com/prowlarr",
|
||||||
"website": "https://github.com/Prowlarr/Prowlarr",
|
"website": "https://github.com/Prowlarr/Prowlarr",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/prowlarr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/prowlarr.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 7878,
|
"interface_port": 7878,
|
||||||
"documentation": null,
|
"documentation": "https://wiki.servarr.com/radarr",
|
||||||
"website": "https://radarr.video/",
|
"website": "https://radarr.video/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/radarr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/radarr.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 6500,
|
"interface_port": 6500,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/rogerfar/rdt-client/blob/main/README.md",
|
||||||
"website": "https://github.com/rogerfar/rdt-client",
|
"website": "https://github.com/rogerfar/rdt-client",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/real-debrid.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/real-debrid.webp",
|
||||||
"config_path": "/opt/rdtc/appsettings.json",
|
"config_path": "/opt/rdtc/appsettings.json",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://recyclarr.dev/wiki/",
|
||||||
"website": "https://recyclarr.dev/",
|
"website": "https://recyclarr.dev/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/recyclarr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/recyclarr.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://redis.io/docs/latest/",
|
||||||
"website": "https://redis.io/",
|
"website": "https://redis.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/redis.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/redis.webp",
|
||||||
"config_path": "Debian /etc/redis/redis.conf | Alpine: /etc/redis.conf",
|
"config_path": "Debian /etc/redis/redis.conf | Alpine: /etc/redis.conf",
|
||||||
|
|||||||
35
frontend/public/json/redlib.json
Normal file
35
frontend/public/json/redlib.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "Redlib",
|
||||||
|
"slug": "redlib",
|
||||||
|
"categories": [
|
||||||
|
10
|
||||||
|
],
|
||||||
|
"date_created": "2025-08-25",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 5252,
|
||||||
|
"documentation": "https://github.com/redlib-org/redlib/blob/main/README.md",
|
||||||
|
"website": "https://github.com/redlib-org/redlib",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/redlib.webp",
|
||||||
|
"config_path": "/opt/redlib/redlib.conf",
|
||||||
|
"description": "An alternative private front-end to Reddit. Redlib hopes to provide an easier way to browse Reddit, without the ads, trackers, and bloat.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/alpine-redlib.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 512,
|
||||||
|
"hdd": 1,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.22"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://runtipi.io/docs/introduction",
|
||||||
"website": "https://runtipi.io/",
|
"website": "https://runtipi.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/runtipi.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/runtipi.webp",
|
||||||
"config_path": "opt/runtipi/state/settings.json",
|
"config_path": "opt/runtipi/state/settings.json",
|
||||||
|
|||||||
@@ -25,6 +25,17 @@
|
|||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alpine",
|
||||||
|
"script": "ct/alpine-rustdeskserver.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 512,
|
||||||
|
"hdd": 2,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.22"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
|
|||||||
35
frontend/public/json/searxng.json
Normal file
35
frontend/public/json/searxng.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "SearXNG",
|
||||||
|
"slug": "searxng",
|
||||||
|
"categories": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"date_created": "2025-08-26",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 8888,
|
||||||
|
"documentation": "https://docs.searxng.org/",
|
||||||
|
"website": "https://github.com/searxng/searxng",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/searxng.webp",
|
||||||
|
"config_path": "/etc/searxng/settings.yml",
|
||||||
|
"description": "SearXNG is a free internet metasearch engine which aggregates results from up to 215 search services. Users are neither tracked nor profiled. Additionally, SearXNG can be used over Tor for online anonymity.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/searxng.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 7,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8080,
|
"interface_port": 8080,
|
||||||
"documentation": null,
|
"documentation": "https://docs.shinobi.video/",
|
||||||
"website": "https://shinobi.video/",
|
"website": "https://shinobi.video/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/shinobi.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/shinobi.webp",
|
||||||
"config_path": "/opt/Shinobi/conf.json",
|
"config_path": "/opt/Shinobi/conf.json",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://oss.oetiker.ch/smokeping/doc/index.en.html",
|
||||||
"website": "https://oss.oetiker.ch/smokeping/",
|
"website": "https://oss.oetiker.ch/smokeping/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/smokeping.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/smokeping.webp",
|
||||||
"config_path": "/etc/smokeping/config.d/Targets",
|
"config_path": "/etc/smokeping/config.d/Targets",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8989,
|
"interface_port": 8989,
|
||||||
"documentation": null,
|
"documentation": "https://wiki.servarr.com/sonarr",
|
||||||
"website": "https://sonarr.tv/",
|
"website": "https://sonarr.tv/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/sonarr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/sonarr.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8080,
|
"interface_port": 8080,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://github.com/Stirling-Tools/Stirling-PDF",
|
"website": "https://docs.stirlingpdf.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/stirling-pdf.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/stirling-pdf.webp",
|
||||||
"config_path": "/opt/Stirling-PDF/.env",
|
"config_path": "/opt/Stirling-PDF/.env",
|
||||||
"description": "Stirling-PDF is a powerful locally hosted web based PDF manipulation tool that allows you to perform various operations on PDF files, such as splitting merging, converting, reorganizing, adding images, rotating, compressing, and more.",
|
"description": "Stirling-PDF is a powerful locally hosted web based PDF manipulation tool that allows you to perform various operations on PDF files, such as splitting merging, converting, reorganizing, adding images, rotating, compressing, and more.",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8384,
|
"interface_port": 8384,
|
||||||
"documentation": null,
|
"documentation": "https://docs.syncthing.net/",
|
||||||
"website": "https://syncthing.net/",
|
"website": "https://syncthing.net/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/syncthing.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/syncthing.webp",
|
||||||
"config_path": "/root/.local/state/syncthing/config.xml - Alpine: /var/lib/syncthing/.local/state/syncthing/config.xml",
|
"config_path": "/root/.local/state/syncthing/config.xml - Alpine: /var/lib/syncthing/.local/state/syncthing/config.xml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8002,
|
"interface_port": 8002,
|
||||||
"documentation": null,
|
"documentation": "https://docs.tandoor.dev/",
|
||||||
"website": "https://tandoor.dev/",
|
"website": "https://tandoor.dev/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tandoor-recipes.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tandoor-recipes.webp",
|
||||||
"config_path": "/opt/tandoor/.env",
|
"config_path": "/opt/tandoor/.env",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8181,
|
"interface_port": 8181,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/Tautulli/Tautulli/wiki",
|
||||||
"website": "https://tautulli.com/",
|
"website": "https://tautulli.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tautulli.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tautulli.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8265,
|
"interface_port": 8265,
|
||||||
"documentation": null,
|
"documentation": "https://docs.tdarr.io/docs/welcome/what",
|
||||||
"website": "https://tdarr.io/",
|
"website": "https://tdarr.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tdarr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tdarr.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 34400,
|
"interface_port": 34400,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md",
|
||||||
"website": "https://github.com/Threadfin/Threadfin",
|
"website": "https://github.com/Threadfin/Threadfin",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/threadfin.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/threadfin.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 12345,
|
"interface_port": 12345,
|
||||||
"documentation": null,
|
"documentation": "https://tianji.dev/docs/intro",
|
||||||
"website": "https://tianji.msgbyte.com/",
|
"website": "https://tianji.msgbyte.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tianji.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tianji.webp",
|
||||||
"config_path": "/opt/tianji/src/server/.env",
|
"config_path": "/opt/tianji/src/server/.env",
|
||||||
|
|||||||
40
frontend/public/json/tracktor.json
Normal file
40
frontend/public/json/tracktor.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"name": "Tracktor",
|
||||||
|
"slug": "tracktor",
|
||||||
|
"categories": [
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"date_created": "2025-08-26",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 3000,
|
||||||
|
"documentation": "https://tracktor.bytedge.in/introduction.html",
|
||||||
|
"config_path": "/opt/tracktor/app/server/.env",
|
||||||
|
"website": "https://tracktor.bytedge.in/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tracktor.webp",
|
||||||
|
"description": "Tracktor is an open-source web application for comprehensive vehicle management.\nEasily track fuel consumption, maintenance, insurance, and regulatory documents for all your vehicles in one place.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/tracktor.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 1024,
|
||||||
|
"hdd": 6,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Please check and update the '/opt/tracktor/app/backend/.env' file if using behind reverse proxy.",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3002,
|
"interface_port": 3002,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/chrisvel/tududi#-getting-started",
|
||||||
"config_path": "/opt/tududi/backend/.env",
|
"config_path": "/opt/tududi/backend/.env",
|
||||||
"website": "https://tududi.com/",
|
"website": "https://tududi.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tududi.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tududi.webp",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5335,
|
"interface_port": 5335,
|
||||||
"documentation": null,
|
"documentation": "https://unbound.docs.nlnetlabs.nl/en/latest/",
|
||||||
"website": "https://www.nlnetlabs.nl/projects/unbound/about/",
|
"website": "https://www.nlnetlabs.nl/projects/unbound/about/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/unbound.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/unbound.webp",
|
||||||
"config_path": "/etc/unbound/unbound.conf.d/unbound.conf",
|
"config_path": "/etc/unbound/unbound.conf.d/unbound.conf",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": true,
|
"privileged": true,
|
||||||
"interface_port": 8888,
|
"interface_port": 8888,
|
||||||
"documentation": null,
|
"documentation": "https://docs.unmanic.app/docs/",
|
||||||
"website": "https://docs.unmanic.app/",
|
"website": "https://docs.unmanic.app/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/unmanic.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/unmanic.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -1,34 +1,299 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "Threadfin/Threadfin",
|
||||||
|
"version": "1.2.36",
|
||||||
|
"date": "2025-08-26T20:40:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "influxdata/influxdb",
|
||||||
|
"version": "v3.4.0",
|
||||||
|
"date": "2025-08-26T20:10:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "msgbyte/tianji",
|
||||||
|
"version": "v1.24.23",
|
||||||
|
"date": "2025-08-26T18:02:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "netbox-community/netbox",
|
||||||
|
"version": "v4.3.7",
|
||||||
|
"date": "2025-08-26T17:54:25Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jenkinsci/jenkins",
|
||||||
|
"version": "jenkins-2.525",
|
||||||
|
"date": "2025-08-26T14:28:44Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "meilisearch/meilisearch",
|
||||||
|
"version": "latest",
|
||||||
|
"date": "2025-08-26T14:14:42Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "traefik/traefik",
|
||||||
|
"version": "v2.11.29",
|
||||||
|
"date": "2025-08-26T13:14:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "element-hq/synapse",
|
||||||
|
"version": "v1.137.0",
|
||||||
|
"date": "2025-08-26T09:51:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MediaBrowser/Emby.Releases",
|
||||||
|
"version": "4.9.1.2",
|
||||||
|
"date": "2025-06-26T22:08:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "evcc-io/evcc",
|
||||||
|
"version": "0.207.5",
|
||||||
|
"date": "2025-08-26T06:57:07Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "morpheus65535/bazarr",
|
||||||
|
"version": "v1.5.3-beta.10",
|
||||||
|
"date": "2025-07-15T06:07:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.22.2349",
|
||||||
|
"date": "2025-08-26T05:58:15Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "henrygd/beszel",
|
||||||
|
"version": "v0.12.4",
|
||||||
|
"date": "2025-08-26T01:45:02Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "documenso/documenso",
|
||||||
|
"version": "v1.12.2-rc.6",
|
||||||
|
"date": "2025-08-26T01:17:43Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hyperion-project/hyperion.ng",
|
||||||
|
"version": "2.1.1",
|
||||||
|
"date": "2025-06-14T17:45:06Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jeedom/core",
|
||||||
|
"version": "4.4.19",
|
||||||
|
"date": "2025-08-26T00:27:08Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "steveiliop56/tinyauth",
|
||||||
|
"version": "v3.6.2",
|
||||||
|
"date": "2025-07-17T12:08:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "coder/code-server",
|
||||||
|
"version": "v4.103.2",
|
||||||
|
"date": "2025-08-25T23:30:54Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.3.3",
|
||||||
|
"date": "2025-08-20T10:12:51Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "advplyr/audiobookshelf",
|
||||||
|
"version": "v2.29.0",
|
||||||
|
"date": "2025-08-25T22:43:20Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "booklore-app/booklore",
|
||||||
|
"version": "v0.38.2",
|
||||||
|
"date": "2025-08-25T22:41:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "esphome/esphome",
|
||||||
|
"version": "2025.8.1",
|
||||||
|
"date": "2025-08-25T20:48:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Brandawg93/PeaNUT",
|
||||||
|
"version": "v5.13.0",
|
||||||
|
"date": "2025-08-25T19:19:51Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "immich-app/immich",
|
||||||
|
"version": "v1.139.4",
|
||||||
|
"date": "2025-08-25T18:31:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ollama/ollama",
|
||||||
|
"version": "v0.11.7",
|
||||||
|
"date": "2025-08-25T18:04:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mealie-recipes/mealie",
|
||||||
|
"version": "v3.1.2",
|
||||||
|
"date": "2025-08-25T18:00:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "linkwarden/linkwarden",
|
||||||
|
"version": "v2.11.8",
|
||||||
|
"date": "2025-08-25T16:27:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rcourtman/Pulse",
|
||||||
|
"version": "v4.7.6",
|
||||||
|
"date": "2025-08-23T22:49:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Checkmk/checkmk",
|
||||||
|
"version": "v2.3.0p36",
|
||||||
|
"date": "2025-08-25T15:32:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wazuh/wazuh",
|
||||||
|
"version": "coverity-w35-4.13.0",
|
||||||
|
"date": "2025-08-25T15:17:33Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "n8n-io/n8n",
|
||||||
|
"version": "n8n@1.107.4",
|
||||||
|
"date": "2025-08-20T12:23:06Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "crowdsecurity/crowdsec",
|
||||||
|
"version": "v1.6.11",
|
||||||
|
"date": "2025-07-22T12:11:38Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sabnzbd/sabnzbd",
|
||||||
|
"version": "4.5.3",
|
||||||
|
"date": "2025-08-25T13:59:56Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zabbix/zabbix",
|
||||||
|
"version": "7.4.2",
|
||||||
|
"date": "2025-08-25T12:38:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gotson/komga",
|
||||||
|
"version": "1.23.2",
|
||||||
|
"date": "2025-08-25T09:39:42Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "emqx/emqx",
|
||||||
|
"version": "e5.10.1-beta.2",
|
||||||
|
"date": "2025-08-25T08:51:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "firefly-iii/firefly-iii",
|
||||||
|
"version": "v6.3.2",
|
||||||
|
"date": "2025-08-19T04:08:36Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "FlareSolverr/FlareSolverr",
|
||||||
|
"version": "v3.4.0",
|
||||||
|
"date": "2025-08-25T03:22:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "plexguide/Huntarr.io",
|
||||||
|
"version": "8.2.10",
|
||||||
|
"date": "2025-08-25T01:26:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gtsteffaniak/filebrowser",
|
||||||
|
"version": "v0.8.2-beta",
|
||||||
|
"date": "2025-08-25T00:26:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "crafty-controller/crafty-4",
|
||||||
|
"version": "v4.5.1",
|
||||||
|
"date": "2025-08-24T23:58:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ombi-app/Ombi",
|
||||||
|
"version": "v4.47.1",
|
||||||
|
"date": "2025-01-05T21:14:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pocket-id/pocket-id",
|
||||||
|
"version": "v1.9.1",
|
||||||
|
"date": "2025-08-24T21:27:58Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "moghtech/komodo",
|
||||||
|
"version": "v1.19.1",
|
||||||
|
"date": "2025-08-24T20:16:32Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "runtipi/runtipi",
|
||||||
|
"version": "nightly",
|
||||||
|
"date": "2025-08-24T18:27:58Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wavelog/wavelog",
|
||||||
|
"version": "2.1",
|
||||||
|
"date": "2025-08-24T15:42:19Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Radarr/Radarr",
|
||||||
|
"version": "v5.26.2.10099",
|
||||||
|
"date": "2025-06-11T20:10:39Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Prowlarr/Prowlarr",
|
||||||
|
"version": "v2.0.5.5160",
|
||||||
|
"date": "2025-08-23T21:23:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fuma-nama/fumadocs",
|
||||||
|
"version": "fumadocs-openapi@9.2.3",
|
||||||
|
"date": "2025-08-24T12:48:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Lidarr/Lidarr",
|
||||||
|
"version": "v2.12.4.4658",
|
||||||
|
"date": "2025-06-09T17:27:45Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "janeczku/calibre-web",
|
||||||
|
"version": "0.6.25",
|
||||||
|
"date": "2025-08-24T08:51:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "YunoHost/yunohost",
|
||||||
|
"version": "debian/12.1.15.1",
|
||||||
|
"date": "2025-08-23T20:07:50Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sysadminsmedia/homebox",
|
||||||
|
"version": "v0.21.0",
|
||||||
|
"date": "2025-08-23T18:33:53Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "prometheus/prometheus",
|
||||||
|
"version": "v0.306.0-rc.0",
|
||||||
|
"date": "2025-08-21T13:31:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TandoorRecipes/recipes",
|
||||||
|
"version": "2.0.3",
|
||||||
|
"date": "2025-08-23T07:08:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pocketbase/pocketbase",
|
||||||
|
"version": "v0.29.3",
|
||||||
|
"date": "2025-08-23T06:37:44Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "caddyserver/caddy",
|
||||||
|
"version": "v2.10.2",
|
||||||
|
"date": "2025-08-23T03:10:31Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "paperless-ngx/paperless-ngx",
|
"name": "paperless-ngx/paperless-ngx",
|
||||||
"version": "v2.18.2",
|
"version": "v2.18.2",
|
||||||
"date": "2025-08-22T23:56:41Z"
|
"date": "2025-08-22T23:56:41Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gtsteffaniak/filebrowser",
|
|
||||||
"version": "v0.8.1-beta",
|
|
||||||
"date": "2025-08-22T21:18:11Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "rcourtman/Pulse",
|
|
||||||
"version": "v4.7.0",
|
|
||||||
"date": "2025-08-22T19:58:51Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "homarr-labs/homarr",
|
"name": "homarr-labs/homarr",
|
||||||
"version": "v1.34.0",
|
"version": "v1.34.0",
|
||||||
"date": "2025-08-22T19:16:24Z"
|
"date": "2025-08-22T19:16:24Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "immich-app/immich",
|
|
||||||
"version": "v1.139.2",
|
|
||||||
"date": "2025-08-22T18:07:48Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "msgbyte/tianji",
|
|
||||||
"version": "v1.24.20",
|
|
||||||
"date": "2025-08-22T18:03:58Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "tailscale/tailscale",
|
"name": "tailscale/tailscale",
|
||||||
"version": "v1.86.5",
|
"version": "v1.86.5",
|
||||||
@@ -39,46 +304,21 @@
|
|||||||
"version": "v1.71.0",
|
"version": "v1.71.0",
|
||||||
"date": "2025-08-22T16:41:23Z"
|
"date": "2025-08-22T16:41:23Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "caddyserver/caddy",
|
|
||||||
"version": "v2.10.1",
|
|
||||||
"date": "2025-08-22T16:14:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "goauthentik/authentik",
|
"name": "goauthentik/authentik",
|
||||||
"version": "version/2025.8.1",
|
"version": "version/2025.8.1",
|
||||||
"date": "2025-08-22T14:55:30Z"
|
"date": "2025-08-22T14:55:30Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "MediaBrowser/Emby.Releases",
|
|
||||||
"version": "4.9.1.2",
|
|
||||||
"date": "2025-06-26T22:08:00Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "open-webui/open-webui",
|
"name": "open-webui/open-webui",
|
||||||
"version": "v0.6.25",
|
"version": "v0.6.25",
|
||||||
"date": "2025-08-22T13:22:43Z"
|
"date": "2025-08-22T13:22:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wazuh/wazuh",
|
|
||||||
"version": "v4.10.3",
|
|
||||||
"date": "2025-08-19T18:51:00Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "crowdsecurity/crowdsec",
|
|
||||||
"version": "v1.6.11",
|
|
||||||
"date": "2025-07-22T12:11:38Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "theonedev/onedev",
|
"name": "theonedev/onedev",
|
||||||
"version": "v12.0.7",
|
"version": "v12.0.7",
|
||||||
"date": "2025-08-22T10:00:28Z"
|
"date": "2025-08-22T10:00:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fuma-nama/fumadocs",
|
|
||||||
"version": "fumadocs-openapi@9.2.2",
|
|
||||||
"date": "2025-08-22T09:35:27Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "syncthing/syncthing",
|
"name": "syncthing/syncthing",
|
||||||
"version": "v2.0.3",
|
"version": "v2.0.3",
|
||||||
@@ -104,16 +344,6 @@
|
|||||||
"version": "v3.5.5",
|
"version": "v3.5.5",
|
||||||
"date": "2025-08-22T06:57:33Z"
|
"date": "2025-08-22T06:57:33Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.2321",
|
|
||||||
"date": "2025-08-22T05:54:29Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "firefly-iii/firefly-iii",
|
|
||||||
"version": "v6.3.2",
|
|
||||||
"date": "2025-08-19T04:08:36Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "traccar/traccar",
|
"name": "traccar/traccar",
|
||||||
"version": "v6.9.1",
|
"version": "v6.9.1",
|
||||||
@@ -124,16 +354,6 @@
|
|||||||
"version": "4.6.0",
|
"version": "4.6.0",
|
||||||
"date": "2025-08-22T02:21:40Z"
|
"date": "2025-08-22T02:21:40Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jeedom/core",
|
|
||||||
"version": "4.4.19",
|
|
||||||
"date": "2025-08-22T00:27:23Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v3.6.2",
|
|
||||||
"date": "2025-07-17T12:08:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "9001/copyparty",
|
"name": "9001/copyparty",
|
||||||
"version": "v1.19.5",
|
"version": "v1.19.5",
|
||||||
@@ -144,16 +364,6 @@
|
|||||||
"version": "v0.36.0",
|
"version": "v0.36.0",
|
||||||
"date": "2025-07-14T18:59:57Z"
|
"date": "2025-07-14T18:59:57Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "runtipi/runtipi",
|
|
||||||
"version": "nightly",
|
|
||||||
"date": "2025-08-21T19:17:27Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.3.3",
|
|
||||||
"date": "2025-08-20T10:12:51Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "HabitRPG/habitica",
|
"name": "HabitRPG/habitica",
|
||||||
"version": "v5.39.0",
|
"version": "v5.39.0",
|
||||||
@@ -169,11 +379,6 @@
|
|||||||
"version": "v1.5.0",
|
"version": "v1.5.0",
|
||||||
"date": "2025-08-21T17:33:22Z"
|
"date": "2025-08-21T17:33:22Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "evcc-io/evcc",
|
|
||||||
"version": "0.207.4",
|
|
||||||
"date": "2025-08-21T17:20:43Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "kyantech/Palmr",
|
"name": "kyantech/Palmr",
|
||||||
"version": "v3.2.0-beta",
|
"version": "v3.2.0-beta",
|
||||||
@@ -189,61 +394,21 @@
|
|||||||
"version": "v1.4.6",
|
"version": "v1.4.6",
|
||||||
"date": "2025-08-21T14:05:58Z"
|
"date": "2025-08-21T14:05:58Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "prometheus/prometheus",
|
|
||||||
"version": "v0.306.0-rc.0",
|
|
||||||
"date": "2025-08-21T13:31:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "glpi-project/glpi",
|
"name": "glpi-project/glpi",
|
||||||
"version": "10.0.19",
|
"version": "10.0.19",
|
||||||
"date": "2025-07-16T09:45:14Z"
|
"date": "2025-07-16T09:45:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "emqx/emqx",
|
|
||||||
"version": "e6.0.0-M2.202508-rc.1",
|
|
||||||
"date": "2025-08-20T18:02:55Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "semaphoreui/semaphore",
|
"name": "semaphoreui/semaphore",
|
||||||
"version": "v2.16.18",
|
"version": "v2.16.18",
|
||||||
"date": "2025-08-21T08:19:58Z"
|
"date": "2025-08-21T08:19:58Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "morpheus65535/bazarr",
|
|
||||||
"version": "v1.5.3-beta.10",
|
|
||||||
"date": "2025-07-15T06:07:03Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ollama/ollama",
|
|
||||||
"version": "v0.11.6",
|
|
||||||
"date": "2025-08-20T21:00:13Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "YunoHost/yunohost",
|
|
||||||
"version": "debian/12.1.14",
|
|
||||||
"date": "2025-08-20T20:52:44Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jenkinsci/jenkins",
|
|
||||||
"version": "jenkins-2.516.2",
|
|
||||||
"date": "2025-08-20T17:15:26Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Checkmk/checkmk",
|
|
||||||
"version": "v2.4.0p10",
|
|
||||||
"date": "2025-08-20T14:05:06Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "AdguardTeam/AdGuardHome",
|
"name": "AdguardTeam/AdGuardHome",
|
||||||
"version": "v0.107.65",
|
"version": "v0.107.65",
|
||||||
"date": "2025-08-20T14:02:28Z"
|
"date": "2025-08-20T14:02:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "n8n-io/n8n",
|
|
||||||
"version": "n8n@1.107.4",
|
|
||||||
"date": "2025-08-20T12:23:06Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cockpit-project/cockpit",
|
"name": "cockpit-project/cockpit",
|
||||||
"version": "345",
|
"version": "345",
|
||||||
@@ -264,11 +429,6 @@
|
|||||||
"version": "v2.1.2.0-2.1.2.0_beta_2025-08-20",
|
"version": "v2.1.2.0-2.1.2.0_beta_2025-08-20",
|
||||||
"date": "2025-08-20T08:15:46Z"
|
"date": "2025-08-20T08:15:46Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "esphome/esphome",
|
|
||||||
"version": "2025.8.0",
|
|
||||||
"date": "2025-08-20T07:58:12Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Luligu/matterbridge",
|
"name": "Luligu/matterbridge",
|
||||||
"version": "3.2.3",
|
"version": "3.2.3",
|
||||||
@@ -279,21 +439,11 @@
|
|||||||
"version": "v5.23.2",
|
"version": "v5.23.2",
|
||||||
"date": "2025-08-19T21:24:45Z"
|
"date": "2025-08-19T21:24:45Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mealie-recipes/mealie",
|
|
||||||
"version": "v3.1.1",
|
|
||||||
"date": "2025-08-19T20:23:43Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cross-seed/cross-seed",
|
"name": "cross-seed/cross-seed",
|
||||||
"version": "v6.13.2",
|
"version": "v6.13.2",
|
||||||
"date": "2025-08-19T18:18:40Z"
|
"date": "2025-08-19T18:18:40Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Threadfin/Threadfin",
|
|
||||||
"version": "1.3.0",
|
|
||||||
"date": "2025-08-19T17:37:44Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "dgtlmoon/changedetection.io",
|
"name": "dgtlmoon/changedetection.io",
|
||||||
"version": "0.50.10",
|
"version": "0.50.10",
|
||||||
@@ -304,26 +454,11 @@
|
|||||||
"version": "v5.8.0",
|
"version": "v5.8.0",
|
||||||
"date": "2025-08-19T16:46:00Z"
|
"date": "2025-08-19T16:46:00Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "sabnzbd/sabnzbd",
|
|
||||||
"version": "4.5.2",
|
|
||||||
"date": "2025-07-09T19:08:28Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "fallenbagel/jellyseerr",
|
"name": "fallenbagel/jellyseerr",
|
||||||
"version": "preview-dns-cache-manager",
|
"version": "preview-dns-cache-manager",
|
||||||
"date": "2025-08-19T11:57:00Z"
|
"date": "2025-08-19T11:57:00Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "element-hq/synapse",
|
|
||||||
"version": "v1.136.0",
|
|
||||||
"date": "2025-08-12T14:26:27Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "zabbix/zabbix",
|
|
||||||
"version": "7.2.12",
|
|
||||||
"date": "2025-08-19T11:16:17Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "chrisvel/tududi",
|
"name": "chrisvel/tududi",
|
||||||
"version": "v0.80",
|
"version": "v0.80",
|
||||||
@@ -334,11 +469,6 @@
|
|||||||
"version": "v7.12.0",
|
"version": "v7.12.0",
|
||||||
"date": "2025-08-19T06:57:20Z"
|
"date": "2025-08-19T06:57:20Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "plexguide/Huntarr.io",
|
|
||||||
"version": "8.2.6",
|
|
||||||
"date": "2025-08-18T23:31:31Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "bunkerity/bunkerweb",
|
"name": "bunkerity/bunkerweb",
|
||||||
"version": "v1.6.4",
|
"version": "v1.6.4",
|
||||||
@@ -364,11 +494,6 @@
|
|||||||
"version": "v25.2",
|
"version": "v25.2",
|
||||||
"date": "2025-07-04T08:21:42Z"
|
"date": "2025-07-04T08:21:42Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "meilisearch/meilisearch",
|
|
||||||
"version": "prototype-arroy-becomes-hannoy-with-sharding-0",
|
|
||||||
"date": "2025-08-18T14:48:37Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "VictoriaMetrics/VictoriaMetrics",
|
"name": "VictoriaMetrics/VictoriaMetrics",
|
||||||
"version": "pmm-6401-v1.124.0",
|
"version": "pmm-6401-v1.124.0",
|
||||||
@@ -379,11 +504,6 @@
|
|||||||
"version": "@jupyter-notebook/ui-components@7.5.0-alpha.2",
|
"version": "@jupyter-notebook/ui-components@7.5.0-alpha.2",
|
||||||
"date": "2025-08-18T07:39:41Z"
|
"date": "2025-08-18T07:39:41Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "moghtech/komodo",
|
|
||||||
"version": "v1.19.0",
|
|
||||||
"date": "2025-08-18T01:22:47Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "lldap/lldap",
|
"name": "lldap/lldap",
|
||||||
"version": "v0.6.2",
|
"version": "v0.6.2",
|
||||||
@@ -409,31 +529,6 @@
|
|||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
"date": "2025-08-17T19:57:11Z"
|
"date": "2025-08-17T19:57:11Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Radarr/Radarr",
|
|
||||||
"version": "v5.26.2.10099",
|
|
||||||
"date": "2025-06-11T20:10:39Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Prowlarr/Prowlarr",
|
|
||||||
"version": "v1.37.0.5076",
|
|
||||||
"date": "2025-06-04T11:04:53Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Lidarr/Lidarr",
|
|
||||||
"version": "v2.12.4.4658",
|
|
||||||
"date": "2025-06-09T17:27:45Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Ombi-app/Ombi",
|
|
||||||
"version": "v4.47.1",
|
|
||||||
"date": "2025-01-05T21:14:23Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "TandoorRecipes/recipes",
|
|
||||||
"version": "2.0.2",
|
|
||||||
"date": "2025-08-17T09:24:37Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "mylar3/mylar3",
|
"name": "mylar3/mylar3",
|
||||||
"version": "v0.8.3",
|
"version": "v0.8.3",
|
||||||
@@ -449,16 +544,6 @@
|
|||||||
"version": "v1.2.10",
|
"version": "v1.2.10",
|
||||||
"date": "2025-08-16T11:45:23Z"
|
"date": "2025-08-16T11:45:23Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "documenso/documenso",
|
|
||||||
"version": "v1.12.2-rc.4",
|
|
||||||
"date": "2025-08-16T09:16:29Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "coder/code-server",
|
|
||||||
"version": "v4.103.1",
|
|
||||||
"date": "2025-08-16T01:59:28Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "mongodb/mongo",
|
"name": "mongodb/mongo",
|
||||||
"version": "r8.2.0",
|
"version": "r8.2.0",
|
||||||
@@ -469,11 +554,6 @@
|
|||||||
"version": "v0.9.90",
|
"version": "v0.9.90",
|
||||||
"date": "2025-08-15T19:14:52Z"
|
"date": "2025-08-15T19:14:52Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "netbox-community/netbox",
|
|
||||||
"version": "v4.3.6",
|
|
||||||
"date": "2025-08-12T17:16:42Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "intri-in/manage-my-damn-life-nextjs",
|
"name": "intri-in/manage-my-damn-life-nextjs",
|
||||||
"version": "v0.8.0-release",
|
"version": "v0.8.0-release",
|
||||||
@@ -484,16 +564,6 @@
|
|||||||
"version": "v1.7.2",
|
"version": "v1.7.2",
|
||||||
"date": "2025-08-14T19:07:57Z"
|
"date": "2025-08-14T19:07:57Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "linkwarden/linkwarden",
|
|
||||||
"version": "v2.11.7",
|
|
||||||
"date": "2025-08-14T17:14:33Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "booklore-app/booklore",
|
|
||||||
"version": "v0.37.0",
|
|
||||||
"date": "2025-08-14T00:37:49Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jellyfin/jellyfin",
|
"name": "jellyfin/jellyfin",
|
||||||
"version": "v10.10.7",
|
"version": "v10.10.7",
|
||||||
@@ -539,11 +609,6 @@
|
|||||||
"version": "v2.5.308",
|
"version": "v2.5.308",
|
||||||
"date": "2025-08-13T07:09:29Z"
|
"date": "2025-08-13T07:09:29Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Brandawg93/PeaNUT",
|
|
||||||
"version": "v5.12.0",
|
|
||||||
"date": "2025-08-12T15:09:35Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "bluenviron/mediamtx",
|
"name": "bluenviron/mediamtx",
|
||||||
"version": "v1.14.0",
|
"version": "v1.14.0",
|
||||||
@@ -584,16 +649,6 @@
|
|||||||
"version": "0.23.2",
|
"version": "0.23.2",
|
||||||
"date": "2025-08-10T23:35:07Z"
|
"date": "2025-08-10T23:35:07Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "advplyr/audiobookshelf",
|
|
||||||
"version": "v2.28.0",
|
|
||||||
"date": "2025-08-10T23:09:55Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "pocket-id/pocket-id",
|
|
||||||
"version": "v1.7.0",
|
|
||||||
"date": "2025-08-10T18:10:25Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "ioBroker/ioBroker",
|
"name": "ioBroker/ioBroker",
|
||||||
"version": "1012-08-09",
|
"version": "1012-08-09",
|
||||||
@@ -624,11 +679,6 @@
|
|||||||
"version": "v4.39.6",
|
"version": "v4.39.6",
|
||||||
"date": "2025-08-09T08:11:44Z"
|
"date": "2025-08-09T08:11:44Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "pocketbase/pocketbase",
|
|
||||||
"version": "v0.29.2",
|
|
||||||
"date": "2025-08-09T07:28:08Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "kimai/kimai",
|
"name": "kimai/kimai",
|
||||||
"version": "2.38.0",
|
"version": "2.38.0",
|
||||||
@@ -659,11 +709,6 @@
|
|||||||
"version": "v11.1.0",
|
"version": "v11.1.0",
|
||||||
"date": "2025-08-07T14:57:29Z"
|
"date": "2025-08-07T14:57:29Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "influxdata/influxdb",
|
|
||||||
"version": "v1.12.2rc2",
|
|
||||||
"date": "2025-08-06T23:12:18Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Athou/commafeed",
|
"name": "Athou/commafeed",
|
||||||
"version": "5.11.0",
|
"version": "5.11.0",
|
||||||
@@ -729,11 +774,6 @@
|
|||||||
"version": "10.1.44",
|
"version": "10.1.44",
|
||||||
"date": "2025-08-04T13:17:59Z"
|
"date": "2025-08-04T13:17:59Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "henrygd/beszel",
|
|
||||||
"version": "v0.12.3",
|
|
||||||
"date": "2025-08-04T02:21:16Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "benjaminjonard/koillection",
|
"name": "benjaminjonard/koillection",
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
@@ -794,21 +834,11 @@
|
|||||||
"version": "2025.07.1",
|
"version": "2025.07.1",
|
||||||
"date": "2025-08-01T14:40:28Z"
|
"date": "2025-08-01T14:40:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gotson/komga",
|
|
||||||
"version": "1.23.1",
|
|
||||||
"date": "2025-08-01T04:30:24Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Suwayomi/Suwayomi-Server",
|
"name": "Suwayomi/Suwayomi-Server",
|
||||||
"version": "v2.1.1867",
|
"version": "v2.1.1867",
|
||||||
"date": "2025-07-31T18:08:43Z"
|
"date": "2025-07-31T18:08:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "hyperion-project/hyperion.ng",
|
|
||||||
"version": "2.1.1",
|
|
||||||
"date": "2025-06-14T17:45:06Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "leiweibau/Pi.Alert",
|
"name": "leiweibau/Pi.Alert",
|
||||||
"version": "v2025-07-30",
|
"version": "v2025-07-30",
|
||||||
@@ -879,11 +909,6 @@
|
|||||||
"version": "RELEASE.2025-07-23T15-54-02Z",
|
"version": "RELEASE.2025-07-23T15-54-02Z",
|
||||||
"date": "2025-07-23T20:35:39Z"
|
"date": "2025-07-23T20:35:39Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "traefik/traefik",
|
|
||||||
"version": "v3.5.0",
|
|
||||||
"date": "2025-07-23T14:06:54Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "TasmoAdmin/TasmoAdmin",
|
"name": "TasmoAdmin/TasmoAdmin",
|
||||||
"version": "v4.3.1",
|
"version": "v4.3.1",
|
||||||
@@ -899,11 +924,6 @@
|
|||||||
"version": "v3.2.5r2",
|
"version": "v3.2.5r2",
|
||||||
"date": "2025-07-21T12:52:26Z"
|
"date": "2025-07-21T12:52:26Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wavelog/wavelog",
|
|
||||||
"version": "2.0.7",
|
|
||||||
"date": "2025-07-17T15:33:14Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "icereed/paperless-gpt",
|
"name": "icereed/paperless-gpt",
|
||||||
"version": "v0.22.0",
|
"version": "v0.22.0",
|
||||||
@@ -984,11 +1004,6 @@
|
|||||||
"version": "release-5.1.2",
|
"version": "release-5.1.2",
|
||||||
"date": "2025-07-02T06:13:16Z"
|
"date": "2025-07-02T06:13:16Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "sysadminsmedia/homebox",
|
|
||||||
"version": "v0.20.2",
|
|
||||||
"date": "2025-07-02T00:37:07Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "hivemq/hivemq-community-edition",
|
"name": "hivemq/hivemq-community-edition",
|
||||||
"version": "2025.4",
|
"version": "2025.4",
|
||||||
@@ -1064,11 +1079,6 @@
|
|||||||
"version": "2.402",
|
"version": "2.402",
|
||||||
"date": "2025-06-17T05:20:42Z"
|
"date": "2025-06-17T05:20:42Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "crafty-controller/crafty-4",
|
|
||||||
"version": "v4.4.11",
|
|
||||||
"date": "2025-06-15T21:41:02Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "TriliumNext/Notes",
|
"name": "TriliumNext/Notes",
|
||||||
"version": "v0.95.0",
|
"version": "v0.95.0",
|
||||||
@@ -1079,11 +1089,6 @@
|
|||||||
"version": "v2.0.0.4645",
|
"version": "v2.0.0.4645",
|
||||||
"date": "2017-03-07T18:56:06Z"
|
"date": "2017-03-07T18:56:06Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "FlareSolverr/FlareSolverr",
|
|
||||||
"version": "v3.3.25",
|
|
||||||
"date": "2025-06-14T02:52:44Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "OctoPrint/OctoPrint",
|
"name": "OctoPrint/OctoPrint",
|
||||||
"version": "1.11.2",
|
"version": "1.11.2",
|
||||||
@@ -1374,11 +1379,6 @@
|
|||||||
"version": "v1.7.3",
|
"version": "v1.7.3",
|
||||||
"date": "2024-11-27T21:26:11Z"
|
"date": "2024-11-27T21:26:11Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "janeczku/calibre-web",
|
|
||||||
"version": "0.6.24",
|
|
||||||
"date": "2024-11-16T06:47:56Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "swizzin/swizzin",
|
"name": "swizzin/swizzin",
|
||||||
"version": "stable",
|
"version": "stable",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3456,
|
"interface_port": 3456,
|
||||||
"documentation": null,
|
"documentation": "https://vikunja.io/docs/",
|
||||||
"website": "https://vikunja.io/",
|
"website": "https://vikunja.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/vikunja.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/vikunja.webp",
|
||||||
"config_path": "/etc/vikunja/config.yml",
|
"config_path": "/etc/vikunja/config.yml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8088,
|
"interface_port": 8088,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/matze/wastebin/blob/a297749b932ed9ff32569f3af7ee8e4a5b499834/README.md",
|
||||||
"website": "https://github.com/matze/wastebin",
|
"website": "https://github.com/matze/wastebin",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wastebin.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wastebin.webp",
|
||||||
"config_path": "/opt/wastebin-data/.env",
|
"config_path": "/opt/wastebin-data/.env",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8840,
|
"interface_port": 8840,
|
||||||
"documentation": null,
|
"documentation": "https://github.com/aceberg/WatchYourLAN/blob/main/README.md",
|
||||||
"website": "https://github.com/aceberg/WatchYourLAN",
|
"website": "https://github.com/aceberg/WatchYourLAN",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/watchyourlan.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/watchyourlan.webp",
|
||||||
"config_path": "/data/config.yaml",
|
"config_path": "/data/config.yaml",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 10000,
|
"interface_port": 10000,
|
||||||
"documentation": null,
|
"documentation": "https://webmin.com/docs/",
|
||||||
"website": "https://webmin.com/",
|
"website": "https://webmin.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/webmin.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/webmin.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 6969,
|
"interface_port": 6969,
|
||||||
"documentation": null,
|
"documentation": "https://wiki.servarr.com/en/whisparr",
|
||||||
"website": "https://github.com/Whisparr/Whisparr",
|
"website": "https://github.com/Whisparr/Whisparr",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/whisparr.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/whisparr.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": "https://doc.yunohost.org/",
|
||||||
"website": "https://yunohost.org/",
|
"website": "https://yunohost.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/yunohost.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/yunohost.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
|
|||||||
98
install/alpine-redlib-install.sh
Normal file
98
install/alpine-redlib-install.sh
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: andrej-kocijan (Andrej Kocijan)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/redlib-org/redlib
|
||||||
|
|
||||||
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Configuring Redlib"
|
||||||
|
cat <<EOF >/opt/redlib/redlib.conf
|
||||||
|
############################################
|
||||||
|
# Redlib Instance Configuration File
|
||||||
|
# Uncomment and edit values as needed
|
||||||
|
############################################
|
||||||
|
|
||||||
|
## Instance settings
|
||||||
|
ADDRESS=0.0.0.0
|
||||||
|
PORT=5252 # Integer (0-65535) - Internal port
|
||||||
|
#REDLIB_SFW_ONLY=off # ["on", "off"] - Filter all NSFW content
|
||||||
|
#REDLIB_BANNER= # String - Displayed on instance info page
|
||||||
|
#REDLIB_ROBOTS_DISABLE_INDEXING=off # ["on", "off"] - Disable search engine indexing
|
||||||
|
#REDLIB_PUSHSHIFT_FRONTEND=undelete.pullpush.io # Pushshift frontend for removed links
|
||||||
|
#REDLIB_ENABLE_RSS=off # ["on", "off"] - Enable RSS feed generation
|
||||||
|
#REDLIB_FULL_URL= # String - Needed for proper RSS URLs
|
||||||
|
|
||||||
|
## Default user settings
|
||||||
|
#REDLIB_DEFAULT_THEME=system # Theme (system, light, dark, black, dracula, nord, laserwave, violet, gold, rosebox, gruvboxdark, gruvboxlight, tokyoNight, icebergDark, doomone, libredditBlack, libredditDark, libredditLight)
|
||||||
|
#REDLIB_DEFAULT_FRONT_PAGE=default # ["default", "popular", "all"]
|
||||||
|
#REDLIB_DEFAULT_LAYOUT=card # ["card", "clean", "compact"]
|
||||||
|
#REDLIB_DEFAULT_WIDE=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_POST_SORT=hot # ["hot", "new", "top", "rising", "controversial"]
|
||||||
|
#REDLIB_DEFAULT_COMMENT_SORT=confidence # ["confidence", "top", "new", "controversial", "old"]
|
||||||
|
#REDLIB_DEFAULT_BLUR_SPOILER=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_SHOW_NSFW=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_BLUR_NSFW=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_USE_HLS=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_AUTOPLAY_VIDEOS=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_SUBSCRIPTIONS= # Example: sub1+sub2+sub3
|
||||||
|
#REDLIB_DEFAULT_HIDE_AWARDS=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_HIDE_SCORE=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_HIDE_SIDEBAR_AND_SUMMARY=off # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_FIXED_NAVBAR=on # ["on", "off"]
|
||||||
|
#REDLIB_DEFAULT_REMOVE_DEFAULT_FEEDS=off # ["on", "off"]
|
||||||
|
EOF
|
||||||
|
msg_ok "Configured Redlib"
|
||||||
|
|
||||||
|
msg_info "Creating Redlib Service"
|
||||||
|
cat <<EOF >/etc/init.d/redlib
|
||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
name="Redlib"
|
||||||
|
description="Redlib Service"
|
||||||
|
command="/opt/redlib/redlib"
|
||||||
|
pidfile="/run/redlib.pid"
|
||||||
|
supervisor="supervise-daemon"
|
||||||
|
command_background="yes"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need net
|
||||||
|
}
|
||||||
|
|
||||||
|
start_pre() {
|
||||||
|
|
||||||
|
set -a
|
||||||
|
. /opt/redlib/redlib.conf
|
||||||
|
set +a
|
||||||
|
|
||||||
|
: ${ADDRESS:=0.0.0.0}
|
||||||
|
: ${PORT:=5252}
|
||||||
|
|
||||||
|
command_args="-a ${ADDRESS} -p ${PORT}"
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
$STD chmod +x /etc/init.d/redlib
|
||||||
|
$STD rc-update add redlib default
|
||||||
|
msg_ok "Created Redlib Service"
|
||||||
|
|
||||||
|
msg_info "Starting Redlib Service"
|
||||||
|
$STD rc-service redlib start
|
||||||
|
msg_ok "Started Redlib Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apk cache clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
122
install/alpine-rustdeskserver-install.sh
Normal file
122
install/alpine-rustdeskserver-install.sh
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/rustdesk/rustdesk-server
|
||||||
|
|
||||||
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
msg_info "Installing RustDesk Server v${RELEASE}"
|
||||||
|
temp_file1=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
|
||||||
|
$STD unzip "$temp_file1"
|
||||||
|
mv amd64 /opt/rustdesk-server
|
||||||
|
mkdir -p /root/.config/rustdesk
|
||||||
|
cd /opt/rustdesk-server
|
||||||
|
./rustdesk-utils genkeypair > /tmp/rustdesk_keys.txt
|
||||||
|
grep "Public Key" /tmp/rustdesk_keys.txt | awk '{print $3}' > /root/.config/rustdesk/id_ed25519.pub
|
||||||
|
grep "Secret Key" /tmp/rustdesk_keys.txt | awk '{print $3}' > /root/.config/rustdesk/id_ed25519
|
||||||
|
chmod 600 /root/.config/rustdesk/id_ed25519
|
||||||
|
chmod 644 /root/.config/rustdesk/id_ed25519.pub
|
||||||
|
rm /tmp/rustdesk_keys.txt
|
||||||
|
echo "${RELEASE}" >~/.rustdesk-server
|
||||||
|
msg_ok "Installed RustDesk Server v${RELEASE}"
|
||||||
|
|
||||||
|
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
msg_info "Installing RustDesk API v${APIRELEASE}"
|
||||||
|
temp_file2=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-amd64.tar.gz" -o "$temp_file2"
|
||||||
|
$STD tar zxvf "$temp_file2"
|
||||||
|
mv release /opt/rustdesk-api
|
||||||
|
cd /opt/rustdesk-api
|
||||||
|
ADMINPASS=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
||||||
|
$STD ./apimain reset-admin-pwd "$ADMINPASS"
|
||||||
|
{
|
||||||
|
echo "RustDesk WebUI"
|
||||||
|
echo ""
|
||||||
|
echo "Username: admin"
|
||||||
|
echo "Password: $ADMINPASS"
|
||||||
|
} >>~/rustdesk.creds
|
||||||
|
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||||
|
msg_ok "Installed RustDesk API v${APIRELEASE}"
|
||||||
|
|
||||||
|
msg_info "Enabling RustDesk Server Services"
|
||||||
|
cat <<EOF >/etc/init.d/rustdesk-server-hbbs
|
||||||
|
#!/sbin/openrc-run
|
||||||
|
description="RustDesk HBBS Service"
|
||||||
|
directory="/opt/rustdesk-server"
|
||||||
|
command="/opt/rustdesk-server/hbbs"
|
||||||
|
command_args=""
|
||||||
|
command_background="true"
|
||||||
|
command_user="root"
|
||||||
|
pidfile="/var/run/rustdesk-server-hbbs.pid"
|
||||||
|
output_log="/var/log/rustdesk-hbbs.log"
|
||||||
|
error_log="/var/log/rustdesk-hbbs.err"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
use net
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/init.d/rustdesk-server-hbbr
|
||||||
|
#!/sbin/openrc-run
|
||||||
|
description="RustDesk HBBR Service"
|
||||||
|
directory="/opt/rustdesk-server"
|
||||||
|
command="/opt/rustdesk-server/hbbr"
|
||||||
|
command_args=""
|
||||||
|
command_background="true"
|
||||||
|
command_user="root"
|
||||||
|
pidfile="/var/run/rustdesk-server-hbbr.pid"
|
||||||
|
output_log="/var/log/rustdesk-hbbr.log"
|
||||||
|
error_log="/var/log/rustdesk-hbbr.err"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
use net
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/init.d/rustdesk-api
|
||||||
|
#!/sbin/openrc-run
|
||||||
|
description="RustDesk API Service"
|
||||||
|
directory="/opt/rustdesk-api"
|
||||||
|
command="/opt/rustdesk-api/apimain"
|
||||||
|
command_args=""
|
||||||
|
command_background="true"
|
||||||
|
command_user="root"
|
||||||
|
pidfile="/var/run/rustdesk-api.pid"
|
||||||
|
output_log="/var/log/rustdesk-api.log"
|
||||||
|
error_log="/var/log/rustdesk-api.err"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
use net
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
chmod +x /etc/init.d/rustdesk-server-hbbs
|
||||||
|
chmod +x /etc/init.d/rustdesk-server-hbbr
|
||||||
|
chmod +x /etc/init.d/rustdesk-api
|
||||||
|
$STD rc-update add rustdesk-server-hbbs default
|
||||||
|
$STD rc-update add rustdesk-server-hbbr default
|
||||||
|
$STD rc-update add rustdesk-api default
|
||||||
|
msg_ok "Enabled RustDesk Server Services"
|
||||||
|
|
||||||
|
msg_info "Starting RustDesk Server"
|
||||||
|
$STD service rustdesk-server-hbbs start
|
||||||
|
$STD service rustdesk-server-hbbr start
|
||||||
|
$STD service rustdesk-api start
|
||||||
|
msg_ok "Started RustDesk Server"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f "$temp_file1" "$temp_file2"
|
||||||
|
$STD apk cache clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user