mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-04 18:32:51 +00:00
Compare commits
65 Commits
2025-08-23
...
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 |
66
CHANGELOG.md
66
CHANGELOG.md
@@ -10,8 +10,74 @@
|
||||
> [!CAUTION]
|
||||
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
|
||||
|
||||
### 🚀 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}"
|
||||
@@ -61,7 +61,7 @@ function update_script() {
|
||||
done
|
||||
msg_ok "Image-processing libraries up to date"
|
||||
fi
|
||||
RELEASE="1.139.2"
|
||||
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) }')
|
||||
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
@@ -138,14 +138,16 @@ EOF
|
||||
corepack enable
|
||||
|
||||
# server build
|
||||
export SHARP_IGNORE_GLOBAL_LIBVIPS=true
|
||||
$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
|
||||
|
||||
# openapi & web build
|
||||
cd "$SRC_DIR"
|
||||
export SHARP_FORCE_GLOBAL_LIBVIPS=true
|
||||
$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
|
||||
|
||||
@@ -56,6 +56,9 @@ function update_script() {
|
||||
mv "$BACKUP_FILE" "$COMPOSE_FILE"
|
||||
exit 1
|
||||
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
|
||||
msg_ok "Updated ${APP}"
|
||||
exit
|
||||
|
||||
@@ -28,6 +28,10 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
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//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.lidarr)" ]] || [[ ! -f ~/.lidarr ]]; then
|
||||
|
||||
@@ -27,13 +27,6 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
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
|
||||
sed -i 's|^Environment="N8N_SECURE_COOKIE=false"$|EnvironmentFile=/opt/n8n.env|' /etc/systemd/system/n8n.service
|
||||
HOST_IP=$(hostname -I | awk '{print $1}')
|
||||
@@ -45,6 +38,7 @@ N8N_PROTOCOL=http
|
||||
N8N_HOST=$HOST_IP
|
||||
EOF
|
||||
fi
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Updating ${APP} LXC"
|
||||
$STD npm update -g n8n
|
||||
|
||||
@@ -40,6 +40,7 @@ function update_script() {
|
||||
|
||||
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}"
|
||||
|
||||
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,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"website": "https://docs.2fauth.app/",
|
||||
"documentation": "https://docs.2fauth.app/",
|
||||
"website": "https://2fauth.app/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/2fauth.webp",
|
||||
"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.",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 8080,
|
||||
"documentation": null,
|
||||
"documentation": "https://guacamole.apache.org/doc/gug/",
|
||||
"website": "https://guacamole.apache.org/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/apache-guacamole.webp",
|
||||
"config_path": "/etc/guacamole/guacd.conf",
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"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/",
|
||||
"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.",
|
||||
"install_methods": [
|
||||
{
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"website": null,
|
||||
"documentation": "https://wiki.archlinux.org/title/Main_page",
|
||||
"website": "https://archlinux.org/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/arch-linux.webp",
|
||||
"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.",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://sabre.io/dav/",
|
||||
"website": "https://sabre.io/baikal/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/baikal.webp",
|
||||
"config_path": "/opt/baikal/config/baikal.yaml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 4000,
|
||||
"documentation": null,
|
||||
"documentation": "https://0xerr0r.github.io/blocky/latest/configuration/",
|
||||
"website": "https://0xerr0r.github.io/blocky/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/blocky.webp",
|
||||
"config_path": "/opt/blocky/config.yml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://www.bookstackapp.com/docs/",
|
||||
"website": "https://www.bookstackapp.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/bookstack.webp",
|
||||
"config_path": "/opt/bookstack/.env",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://wiki.casaos.io/en/home",
|
||||
"website": "https://www.casaos.io/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/casaos.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8082,
|
||||
"documentation": null,
|
||||
"documentation": "https://athou.github.io/commafeed/documentation/",
|
||||
"website": "https://www.commafeed.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/commafeed.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"documentation": "https://doc.crowdsec.net/",
|
||||
"website": "https://crowdsec.net/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/crowdsec.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
|
||||
"name": "Dashy",
|
||||
"slug": "dashy",
|
||||
"categories": [
|
||||
@@ -10,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 4000,
|
||||
"documentation": null,
|
||||
"documentation": "https://dashy.to/docs",
|
||||
"website": "https://dashy.to/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/dashy.webp",
|
||||
"config_path": "/opt/dashy/user-data/conf.yml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": null,
|
||||
"documentation": "https://forgejo.org/docs/latest/",
|
||||
"website": "https://forgejo.org/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/forgejo.webp",
|
||||
"config_path": "/etc/forgejo/app.ini",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": true,
|
||||
"interface_port": 5000,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.frigate.video/",
|
||||
"website": "https://frigate.video/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/frigate.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.gitea.com/",
|
||||
"website": "https://gitea.com",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/gitea.webp",
|
||||
"config_path": "/etc/gitea/app.ini",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8484,
|
||||
"documentation": null,
|
||||
"documentation": "https://support.getgrist.com/self-managed/#the-essentials",
|
||||
"website": "https://www.getgrist.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/grist.webp",
|
||||
"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,
|
||||
"privileged": false,
|
||||
"interface_port": 7990,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/linuxserver/Heimdall/blob/2.x/readme.md",
|
||||
"website": "https://heimdall.site/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/heimdall.webp",
|
||||
"config_path": "/opt/Heimdall/.env",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"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",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/hev.webp",
|
||||
"config_path": "/opt/hivemq/conf/config.xml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 7575,
|
||||
"documentation": null,
|
||||
"documentation": "https://homarr.dev/docs/getting-started/",
|
||||
"website": "https://homarr.dev/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/homarr.webp",
|
||||
"config_path": "/opt/homarr/.env",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8010,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/bastienwirtz/homer/blob/main/README.md#table-of-contents",
|
||||
"website": "https://github.com/bastienwirtz/homer",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/homer.webp",
|
||||
"config_path": "/opt/homer/assets/config.yml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 8086,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.influxdata.com/",
|
||||
"website": "https://www.influxdata.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/influxdb.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 26000,
|
||||
"documentation": null,
|
||||
"documentation": "https://www.iventoy.com/en/doc_news.html",
|
||||
"website": "https://www.iventoy.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/iventoy.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 5055,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.jellyseerr.dev/",
|
||||
"website": "https://github.com/Fallenbagel/jellyseerr",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jellyseerr.webp",
|
||||
"config_path": "/etc/jellyseerr/jellyseerr.conf",
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"type": "warning"
|
||||
},
|
||||
{
|
||||
"text": "Show password: `cat ~/kasm.creds`",
|
||||
"text": "Show credentials: `cat ~/kasm.creds`",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
},
|
||||
"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"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": null,
|
||||
"documentation": "https://mafl.hywax.space/reference/configuration.html",
|
||||
"website": "https://mafl.hywax.space/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mafl.webp",
|
||||
"config_path": "/opt/mafl/data/config.yml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8283,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/Luligu/matterbridge/blob/main/README.md",
|
||||
"website": "https://github.com/Luligu/matterbridge",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/matterbridge.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 8065,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.mattermost.com/",
|
||||
"website": "https://mattermost.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mattermost.webp",
|
||||
"config_path": "/opt/mattermost/config/config.json",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8081,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/pymedusa/Medusa/wiki",
|
||||
"website": "https://pymedusa.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/py-medusa.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8081,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/alexta69/metube/blob/master/README.md",
|
||||
"website": "https://github.com/alexta69/metube",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
|
||||
"config_path": "/opt/metube/.env",
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"website": "https://help.mikrotik.com/docs/display/ROS/Cloud+Hosted+Router%2C+CHR",
|
||||
"documentation": "https://help.mikrotik.com/docs/spaces/ROS/pages/18350234/Cloud+Hosted+Router+CHR",
|
||||
"website": "https://mikrotik.com",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mikrotik.webp",
|
||||
"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.",
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
"type": "ct",
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"interface_port": 27017,
|
||||
"documentation": "https://www.mongodb.com/docs/manual/",
|
||||
"website": "https://www.mongodb.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mongodb.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.nextcloud.com/server/21/admin_manual/contents.html",
|
||||
"website": "https://www.turnkeylinux.org/nextcloud",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/nextcloud.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 81,
|
||||
"documentation": null,
|
||||
"documentation": "https://nginxproxymanager.com/guide/",
|
||||
"website": "https://nginxproxymanager.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/nginx-proxy-manager.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 5454,
|
||||
"documentation": null,
|
||||
"documentation": "https://notifiarr.wiki/",
|
||||
"website": "https://notifiarr.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/notifiarr.webp",
|
||||
"config_path": "/etc/notifiarr/notifiarr.conf",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.ntfy.sh/",
|
||||
"website": "https://ntfy.sh/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/ntfy.webp",
|
||||
"config_path": "/etc/ntfy/server.yml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 1337,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.olivetin.app/",
|
||||
"website": "https://www.olivetin.app/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/olivetin.webp",
|
||||
"config_path": "/etc/OliveTin/config.yaml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.openmediavault.org/en/stable/",
|
||||
"website": "https://www.openmediavault.org/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/openmediavault.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"documentation": "https://openwrt.org/docs/start",
|
||||
"website": "https://openwrt.org/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/openwrt.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://doc.owncloud.com/",
|
||||
"website": "https://www.turnkeylinux.org/owncloud",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/owncloud.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/clusterzx/paperless-ai/wiki/1.-Home",
|
||||
"website": "https://github.com/clusterzx/paperless-ai",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/paperless-ai.webp",
|
||||
"config_path": "/opt/paperless-ai/data/.env",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8080,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/icereed/paperless-gpt/blob/main/README.md",
|
||||
"website": "https://github.com/icereed/paperless-gpt",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/paperless-ngx-light.webp",
|
||||
"config_path": "/opt/paperless-gpt-data/.env",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"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"
|
||||
},
|
||||
{
|
||||
|
||||
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,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/Brandawg93/PeaNUT/blob/main/README.md",
|
||||
"website": "https://github.com/Brandawg93/PeaNUT/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/peanut.webp",
|
||||
"config_path": "/etc/peanut/settings.yml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 2342,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.photoprism.app/",
|
||||
"website": "https://photoprism.app/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/photoprism.webp",
|
||||
"config_path": "/opt/photoprism/config/.env",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/leiweibau/Pi.Alert/blob/main/README.md",
|
||||
"website": "https://github.com/leiweibau/Pi.Alert/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/pi-alert.webp",
|
||||
"config_path": "/opt/pialert/config/pialert.conf",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"documentation": "https://podman.io/docs",
|
||||
"website": "https://podman.io/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/podman.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 5432,
|
||||
"documentation": null,
|
||||
"documentation": "https://www.postgresql.org/docs/",
|
||||
"website": "https://www.postgresql.org/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/postgresql.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 9696,
|
||||
"documentation": null,
|
||||
"documentation": "https://wiki.servarr.com/prowlarr",
|
||||
"website": "https://github.com/Prowlarr/Prowlarr",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/prowlarr.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 7878,
|
||||
"documentation": null,
|
||||
"documentation": "https://wiki.servarr.com/radarr",
|
||||
"website": "https://radarr.video/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/radarr.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 6500,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/rogerfar/rdt-client/blob/main/README.md",
|
||||
"website": "https://github.com/rogerfar/rdt-client",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/real-debrid.webp",
|
||||
"config_path": "/opt/rdtc/appsettings.json",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"documentation": "https://recyclarr.dev/wiki/",
|
||||
"website": "https://recyclarr.dev/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/recyclarr.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"documentation": "https://redis.io/docs/latest/",
|
||||
"website": "https://redis.io/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/redis.webp",
|
||||
"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,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://runtipi.io/docs/introduction",
|
||||
"website": "https://runtipi.io/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/runtipi.webp",
|
||||
"config_path": "opt/runtipi/state/settings.json",
|
||||
|
||||
@@ -25,6 +25,17 @@
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "alpine",
|
||||
"script": "ct/alpine-rustdeskserver.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 512,
|
||||
"hdd": 2,
|
||||
"os": "alpine",
|
||||
"version": "3.22"
|
||||
}
|
||||
}
|
||||
],
|
||||
"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,
|
||||
"privileged": false,
|
||||
"interface_port": 8080,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.shinobi.video/",
|
||||
"website": "https://shinobi.video/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/shinobi.webp",
|
||||
"config_path": "/opt/Shinobi/conf.json",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"documentation": "https://oss.oetiker.ch/smokeping/doc/index.en.html",
|
||||
"website": "https://oss.oetiker.ch/smokeping/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/smokeping.webp",
|
||||
"config_path": "/etc/smokeping/config.d/Targets",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8989,
|
||||
"documentation": null,
|
||||
"documentation": "https://wiki.servarr.com/sonarr",
|
||||
"website": "https://sonarr.tv/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/sonarr.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"privileged": false,
|
||||
"interface_port": 8080,
|
||||
"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",
|
||||
"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.",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 8384,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.syncthing.net/",
|
||||
"website": "https://syncthing.net/",
|
||||
"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",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8002,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.tandoor.dev/",
|
||||
"website": "https://tandoor.dev/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tandoor-recipes.webp",
|
||||
"config_path": "/opt/tandoor/.env",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 8181,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/Tautulli/Tautulli/wiki",
|
||||
"website": "https://tautulli.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tautulli.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8265,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.tdarr.io/docs/welcome/what",
|
||||
"website": "https://tdarr.io/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tdarr.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 34400,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md",
|
||||
"website": "https://github.com/Threadfin/Threadfin",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/threadfin.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 12345,
|
||||
"documentation": null,
|
||||
"documentation": "https://tianji.dev/docs/intro",
|
||||
"website": "https://tianji.msgbyte.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tianji.webp",
|
||||
"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,
|
||||
"privileged": false,
|
||||
"interface_port": 3002,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/chrisvel/tududi#-getting-started",
|
||||
"config_path": "/opt/tududi/backend/.env",
|
||||
"website": "https://tududi.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tududi.webp",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 5335,
|
||||
"documentation": null,
|
||||
"documentation": "https://unbound.docs.nlnetlabs.nl/en/latest/",
|
||||
"website": "https://www.nlnetlabs.nl/projects/unbound/about/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/unbound.webp",
|
||||
"config_path": "/etc/unbound/unbound.conf.d/unbound.conf",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": true,
|
||||
"interface_port": 8888,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.unmanic.app/docs/",
|
||||
"website": "https://docs.unmanic.app/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/unmanic.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -1,18 +1,258 @@
|
||||
[
|
||||
{
|
||||
"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": "Ombi-app/Ombi",
|
||||
"version": "v4.47.1",
|
||||
"date": "2025-01-05T21:14:23Z"
|
||||
"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",
|
||||
@@ -24,31 +264,6 @@
|
||||
"version": "v0.21.0",
|
||||
"date": "2025-08-23T18:33:53Z"
|
||||
},
|
||||
{
|
||||
"name": "pocket-id/pocket-id",
|
||||
"version": "v1.8.0",
|
||||
"date": "2025-08-23T17:08:01Z"
|
||||
},
|
||||
{
|
||||
"name": "plexguide/Huntarr.io",
|
||||
"version": "8.2.7",
|
||||
"date": "2025-08-23T16:55:46Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v1.139.3",
|
||||
"date": "2025-08-23T16:37:46Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v0.38.0",
|
||||
"date": "2025-08-23T14:36:32Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.3.2",
|
||||
"date": "2025-08-19T04:08:36Z"
|
||||
},
|
||||
{
|
||||
"name": "prometheus/prometheus",
|
||||
"version": "v0.306.0-rc.0",
|
||||
@@ -64,51 +279,21 @@
|
||||
"version": "v0.29.3",
|
||||
"date": "2025-08-23T06:37:44Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.22.2325",
|
||||
"date": "2025-08-23T05:51:50Z"
|
||||
},
|
||||
{
|
||||
"name": "caddyserver/caddy",
|
||||
"version": "v2.10.2",
|
||||
"date": "2025-08-23T03:10:31Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.4.19",
|
||||
"date": "2025-08-23T00:27:09Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "paperless-ngx/paperless-ngx",
|
||||
"version": "v2.18.2",
|
||||
"date": "2025-08-22T23:56:41Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v0.8.1-beta",
|
||||
"date": "2025-08-22T21:18:11Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.34.0",
|
||||
"date": "2025-08-22T19:16:24Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.3.3",
|
||||
"date": "2025-08-20T10:12:51Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.24.20",
|
||||
"date": "2025-08-22T18:03:58Z"
|
||||
},
|
||||
{
|
||||
"name": "tailscale/tailscale",
|
||||
"version": "v1.86.5",
|
||||
@@ -124,36 +309,16 @@
|
||||
"version": "version/2025.8.1",
|
||||
"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",
|
||||
"version": "v0.6.25",
|
||||
"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",
|
||||
"version": "v12.0.7",
|
||||
"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",
|
||||
"version": "v2.0.3",
|
||||
@@ -199,11 +364,6 @@
|
||||
"version": "v0.36.0",
|
||||
"date": "2025-07-14T18:59:57Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "nightly",
|
||||
"date": "2025-08-21T19:17:27Z"
|
||||
},
|
||||
{
|
||||
"name": "HabitRPG/habitica",
|
||||
"version": "v5.39.0",
|
||||
@@ -219,11 +379,6 @@
|
||||
"version": "v1.5.0",
|
||||
"date": "2025-08-21T17:33:22Z"
|
||||
},
|
||||
{
|
||||
"name": "evcc-io/evcc",
|
||||
"version": "0.207.4",
|
||||
"date": "2025-08-21T17:20:43Z"
|
||||
},
|
||||
{
|
||||
"name": "kyantech/Palmr",
|
||||
"version": "v3.2.0-beta",
|
||||
@@ -244,46 +399,16 @@
|
||||
"version": "10.0.19",
|
||||
"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",
|
||||
"version": "v2.16.18",
|
||||
"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": "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",
|
||||
"version": "v0.107.65",
|
||||
"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",
|
||||
"version": "345",
|
||||
@@ -304,11 +429,6 @@
|
||||
"version": "v2.1.2.0-2.1.2.0_beta_2025-08-20",
|
||||
"date": "2025-08-20T08:15:46Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.8.0",
|
||||
"date": "2025-08-20T07:58:12Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.2.3",
|
||||
@@ -319,21 +439,11 @@
|
||||
"version": "v5.23.2",
|
||||
"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",
|
||||
"version": "v6.13.2",
|
||||
"date": "2025-08-19T18:18:40Z"
|
||||
},
|
||||
{
|
||||
"name": "Threadfin/Threadfin",
|
||||
"version": "1.3.0",
|
||||
"date": "2025-08-19T17:37:44Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.50.10",
|
||||
@@ -344,26 +454,11 @@
|
||||
"version": "v5.8.0",
|
||||
"date": "2025-08-19T16:46:00Z"
|
||||
},
|
||||
{
|
||||
"name": "sabnzbd/sabnzbd",
|
||||
"version": "4.5.2",
|
||||
"date": "2025-07-09T19:08:28Z"
|
||||
},
|
||||
{
|
||||
"name": "fallenbagel/jellyseerr",
|
||||
"version": "preview-dns-cache-manager",
|
||||
"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",
|
||||
"version": "v0.80",
|
||||
@@ -399,11 +494,6 @@
|
||||
"version": "v25.2",
|
||||
"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",
|
||||
"version": "pmm-6401-v1.124.0",
|
||||
@@ -414,11 +504,6 @@
|
||||
"version": "@jupyter-notebook/ui-components@7.5.0-alpha.2",
|
||||
"date": "2025-08-18T07:39:41Z"
|
||||
},
|
||||
{
|
||||
"name": "moghtech/komodo",
|
||||
"version": "v1.19.0",
|
||||
"date": "2025-08-18T01:22:47Z"
|
||||
},
|
||||
{
|
||||
"name": "lldap/lldap",
|
||||
"version": "v0.6.2",
|
||||
@@ -444,16 +529,6 @@
|
||||
"version": "3.3.0",
|
||||
"date": "2025-08-17T19:57:11Z"
|
||||
},
|
||||
{
|
||||
"name": "Radarr/Radarr",
|
||||
"version": "v5.26.2.10099",
|
||||
"date": "2025-06-11T20:10:39Z"
|
||||
},
|
||||
{
|
||||
"name": "Lidarr/Lidarr",
|
||||
"version": "v2.12.4.4658",
|
||||
"date": "2025-06-09T17:27:45Z"
|
||||
},
|
||||
{
|
||||
"name": "mylar3/mylar3",
|
||||
"version": "v0.8.3",
|
||||
@@ -469,16 +544,6 @@
|
||||
"version": "v1.2.10",
|
||||
"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",
|
||||
"version": "r8.2.0",
|
||||
@@ -489,11 +554,6 @@
|
||||
"version": "v0.9.90",
|
||||
"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",
|
||||
"version": "v0.8.0-release",
|
||||
@@ -504,11 +564,6 @@
|
||||
"version": "v1.7.2",
|
||||
"date": "2025-08-14T19:07:57Z"
|
||||
},
|
||||
{
|
||||
"name": "linkwarden/linkwarden",
|
||||
"version": "v2.11.7",
|
||||
"date": "2025-08-14T17:14:33Z"
|
||||
},
|
||||
{
|
||||
"name": "jellyfin/jellyfin",
|
||||
"version": "v10.10.7",
|
||||
@@ -554,11 +609,6 @@
|
||||
"version": "v2.5.308",
|
||||
"date": "2025-08-13T07:09:29Z"
|
||||
},
|
||||
{
|
||||
"name": "Brandawg93/PeaNUT",
|
||||
"version": "v5.12.0",
|
||||
"date": "2025-08-12T15:09:35Z"
|
||||
},
|
||||
{
|
||||
"name": "bluenviron/mediamtx",
|
||||
"version": "v1.14.0",
|
||||
@@ -599,11 +649,6 @@
|
||||
"version": "0.23.2",
|
||||
"date": "2025-08-10T23:35:07Z"
|
||||
},
|
||||
{
|
||||
"name": "advplyr/audiobookshelf",
|
||||
"version": "v2.28.0",
|
||||
"date": "2025-08-10T23:09:55Z"
|
||||
},
|
||||
{
|
||||
"name": "ioBroker/ioBroker",
|
||||
"version": "1012-08-09",
|
||||
@@ -664,11 +709,6 @@
|
||||
"version": "v11.1.0",
|
||||
"date": "2025-08-07T14:57:29Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/influxdb",
|
||||
"version": "v1.12.2rc2",
|
||||
"date": "2025-08-06T23:12:18Z"
|
||||
},
|
||||
{
|
||||
"name": "Athou/commafeed",
|
||||
"version": "5.11.0",
|
||||
@@ -734,11 +774,6 @@
|
||||
"version": "10.1.44",
|
||||
"date": "2025-08-04T13:17:59Z"
|
||||
},
|
||||
{
|
||||
"name": "henrygd/beszel",
|
||||
"version": "v0.12.3",
|
||||
"date": "2025-08-04T02:21:16Z"
|
||||
},
|
||||
{
|
||||
"name": "benjaminjonard/koillection",
|
||||
"version": "1.6.18",
|
||||
@@ -799,21 +834,11 @@
|
||||
"version": "2025.07.1",
|
||||
"date": "2025-08-01T14:40:28Z"
|
||||
},
|
||||
{
|
||||
"name": "gotson/komga",
|
||||
"version": "1.23.1",
|
||||
"date": "2025-08-01T04:30:24Z"
|
||||
},
|
||||
{
|
||||
"name": "Suwayomi/Suwayomi-Server",
|
||||
"version": "v2.1.1867",
|
||||
"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",
|
||||
"version": "v2025-07-30",
|
||||
@@ -884,11 +909,6 @@
|
||||
"version": "RELEASE.2025-07-23T15-54-02Z",
|
||||
"date": "2025-07-23T20:35:39Z"
|
||||
},
|
||||
{
|
||||
"name": "traefik/traefik",
|
||||
"version": "v3.5.0",
|
||||
"date": "2025-07-23T14:06:54Z"
|
||||
},
|
||||
{
|
||||
"name": "TasmoAdmin/TasmoAdmin",
|
||||
"version": "v4.3.1",
|
||||
@@ -904,11 +924,6 @@
|
||||
"version": "v3.2.5r2",
|
||||
"date": "2025-07-21T12:52:26Z"
|
||||
},
|
||||
{
|
||||
"name": "wavelog/wavelog",
|
||||
"version": "2.0.7",
|
||||
"date": "2025-07-17T15:33:14Z"
|
||||
},
|
||||
{
|
||||
"name": "icereed/paperless-gpt",
|
||||
"version": "v0.22.0",
|
||||
@@ -1064,11 +1079,6 @@
|
||||
"version": "2.402",
|
||||
"date": "2025-06-17T05:20:42Z"
|
||||
},
|
||||
{
|
||||
"name": "crafty-controller/crafty-4",
|
||||
"version": "v4.4.11",
|
||||
"date": "2025-06-15T21:41:02Z"
|
||||
},
|
||||
{
|
||||
"name": "TriliumNext/Notes",
|
||||
"version": "v0.95.0",
|
||||
@@ -1079,11 +1089,6 @@
|
||||
"version": "v2.0.0.4645",
|
||||
"date": "2017-03-07T18:56:06Z"
|
||||
},
|
||||
{
|
||||
"name": "FlareSolverr/FlareSolverr",
|
||||
"version": "v3.3.25",
|
||||
"date": "2025-06-14T02:52:44Z"
|
||||
},
|
||||
{
|
||||
"name": "OctoPrint/OctoPrint",
|
||||
"version": "1.11.2",
|
||||
@@ -1374,11 +1379,6 @@
|
||||
"version": "v1.7.3",
|
||||
"date": "2024-11-27T21:26:11Z"
|
||||
},
|
||||
{
|
||||
"name": "janeczku/calibre-web",
|
||||
"version": "0.6.24",
|
||||
"date": "2024-11-16T06:47:56Z"
|
||||
},
|
||||
{
|
||||
"name": "swizzin/swizzin",
|
||||
"version": "stable",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3456,
|
||||
"documentation": null,
|
||||
"documentation": "https://vikunja.io/docs/",
|
||||
"website": "https://vikunja.io/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/vikunja.webp",
|
||||
"config_path": "/etc/vikunja/config.yml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8088,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/matze/wastebin/blob/a297749b932ed9ff32569f3af7ee8e4a5b499834/README.md",
|
||||
"website": "https://github.com/matze/wastebin",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wastebin.webp",
|
||||
"config_path": "/opt/wastebin-data/.env",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8840,
|
||||
"documentation": null,
|
||||
"documentation": "https://github.com/aceberg/WatchYourLAN/blob/main/README.md",
|
||||
"website": "https://github.com/aceberg/WatchYourLAN",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/watchyourlan.webp",
|
||||
"config_path": "/data/config.yaml",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 10000,
|
||||
"documentation": null,
|
||||
"documentation": "https://webmin.com/docs/",
|
||||
"website": "https://webmin.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/webmin.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 6969,
|
||||
"documentation": null,
|
||||
"documentation": "https://wiki.servarr.com/en/whisparr",
|
||||
"website": "https://github.com/Whisparr/Whisparr",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/whisparr.webp",
|
||||
"config_path": "",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": null,
|
||||
"documentation": "https://doc.yunohost.org/",
|
||||
"website": "https://yunohost.org/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/yunohost.webp",
|
||||
"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"
|
||||
@@ -51,6 +51,7 @@ cat <<EOF >/opt/booklore_storage/.env
|
||||
DATABASE_URL=jdbc:mariadb://localhost:3306/$DB_NAME
|
||||
DATABASE_USERNAME=$DB_USER
|
||||
DATABASE_PASSWORD=$DB_PASS
|
||||
BOOKLORE_PORT=6060
|
||||
|
||||
BOOKLORE_DATA_PATH=/opt/booklore_storage/data
|
||||
BOOKLORE_BOOKS_PATH=/opt/booklore_storage/books
|
||||
@@ -75,6 +76,7 @@ msg_info "Configure Nginx"
|
||||
rm -rf /usr/share/nginx/html
|
||||
ln -s /opt/booklore/booklore-ui/dist/booklore/browser /usr/share/nginx/html
|
||||
cp /opt/booklore/nginx.conf /etc/nginx/nginx.conf
|
||||
sed -i "s/listen \${BOOKLORE_PORT};/listen 6060;/" /etc/nginx/nginx.conf
|
||||
systemctl restart nginx
|
||||
msg_ok "Configured Nginx"
|
||||
|
||||
|
||||
136
install/healthchecks-install.sh
Normal file
136
install/healthchecks-install.sh
Normal file
@@ -0,0 +1,136 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# 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/
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
gcc \
|
||||
libpq-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
caddy
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
setup_uv
|
||||
PG_VERSION=16 setup_postgresql
|
||||
|
||||
msg_info "Setup Database"
|
||||
DB_NAME=healthchecks_db
|
||||
DB_USER=hc_user
|
||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
||||
SECRET_KEY="$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)"
|
||||
ADMIN_EMAIL="admin@helper-scripts.local"
|
||||
ADMIN_PASSWORD="$DB_PASS"
|
||||
|
||||
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
|
||||
{
|
||||
echo "healthchecks-Credentials"
|
||||
echo "healthchecks Database User: $DB_USER"
|
||||
echo "healthchecks Database Password: $DB_PASS"
|
||||
echo "healthchecks Database Name: $DB_NAME"
|
||||
echo "healthchecks Admin Email: $ADMIN_EMAIL"
|
||||
echo "healthchecks Admin Password: $ADMIN_PASSWORD"
|
||||
} >>~/healthchecks.creds
|
||||
msg_ok "Set up Database"
|
||||
|
||||
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
|
||||
|
||||
msg_info "Setup healthchecks"
|
||||
cd /opt/healthchecks
|
||||
mkdir -p /opt/healthchecks/static-collected/
|
||||
$STD uv pip install wheel gunicorn -r requirements.txt --system
|
||||
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
cat <<EOF >/opt/healthchecks/hc/local_settings.py
|
||||
DEBUG = False
|
||||
|
||||
ALLOWED_HOSTS = ["${LOCAL_IP}", "127.0.0.1", "localhost"]
|
||||
CSRF_TRUSTED_ORIGINS = ["http://${LOCAL_IP}", "https://${LOCAL_IP}"]
|
||||
|
||||
SECRET_KEY = "${SECRET_KEY}"
|
||||
|
||||
SITE_ROOT = "http://${LOCAL_IP}:8000"
|
||||
SITE_NAME = "MyChecks"
|
||||
DEFAULT_FROM_EMAIL = "healthchecks@${LOCAL_IP}"
|
||||
|
||||
STATIC_ROOT = "/opt/healthchecks/static-collected"
|
||||
COMPRESS_OFFLINE = True
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql',
|
||||
'NAME': '${DB_NAME}',
|
||||
'USER': '${DB_USER}',
|
||||
'PASSWORD': '${DB_PASS}',
|
||||
'HOST': '127.0.0.1',
|
||||
'PORT': '5432',
|
||||
'TEST': {'CHARSET': 'UTF8'}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
$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
|
||||
|
||||
cat <<EOF | $STD uv run -- python manage.py shell
|
||||
from django.contrib.auth import get_user_model
|
||||
User = get_user_model()
|
||||
if not User.objects.filter(email="${ADMIN_EMAIL}").exists():
|
||||
User.objects.create_superuser("${ADMIN_EMAIL}", "${ADMIN_EMAIL}", "${ADMIN_PASSWORD}")
|
||||
EOF
|
||||
msg_ok "Installed healthchecks"
|
||||
|
||||
msg_info "Configuring Caddy"
|
||||
cat <<EOF >/etc/caddy/Caddyfile
|
||||
{
|
||||
email admin@example.com
|
||||
}
|
||||
|
||||
${LOCAL_IP} {
|
||||
reverse_proxy 127.0.0.1:8000
|
||||
}
|
||||
EOF
|
||||
msg_ok "Configured Caddy"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/healthchecks.service
|
||||
[Unit]
|
||||
Description=Healthchecks Service
|
||||
After=network.target postgresql.service
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/healthchecks/
|
||||
ExecStart=/usr/local/bin/uv run -- gunicorn hc.wsgi:application --bind 127.0.0.1:8000
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now healthchecks caddy
|
||||
systemctl reload caddy
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
@@ -280,7 +280,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.139.2" "$SRC_DIR"
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.139.4" "$SRC_DIR"
|
||||
|
||||
msg_info "Installing ${APPLICATION} (more patience please)"
|
||||
|
||||
@@ -290,14 +290,16 @@ export CI=1
|
||||
corepack enable
|
||||
|
||||
# server build
|
||||
export SHARP_IGNORE_GLOBAL_LIBVIPS=true
|
||||
$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
|
||||
|
||||
# openapi & web build
|
||||
cd "$SRC_DIR"
|
||||
export SHARP_FORCE_GLOBAL_LIBVIPS=true
|
||||
$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
|
||||
|
||||
@@ -16,22 +16,22 @@ update_os
|
||||
msg_info "Installing Kasm Workspaces"
|
||||
KASM_VERSION=$(curl -fsSL 'https://www.kasmweb.com/downloads' | grep -o 'https://kasm-static-content.s3.amazonaws.com/kasm_release_[^"]*\.tar\.gz' | head -n 1 | sed -E 's/.*release_(.*)\.tar\.gz/\1/')
|
||||
curl -fsSL -o "/opt/kasm_release_${KASM_VERSION}.tar.gz" "https://kasm-static-content.s3.amazonaws.com/kasm_release_${KASM_VERSION}.tar.gz"
|
||||
|
||||
cd /opt
|
||||
tar -xf "kasm_release_${KASM_VERSION}.tar.gz"
|
||||
chmod +x /opt/kasm_release/install.sh
|
||||
printf 'y\ny\ny\n4\n' | bash /opt/kasm_release/install.sh > ~/kasm-install.output 2>&1
|
||||
cat ~/kasm-install.output | grep -A 20 -i "credentials\|login\|password\|admin" | sed '1i Kasm-Workspaces-Credentials' >~/kasm.creds
|
||||
|
||||
awk '
|
||||
/^Kasm UI Login Credentials$/ {capture=1}
|
||||
capture {print}
|
||||
/^Service Registration Token$/ {in_token=1}
|
||||
in_token && /^-+$/ {dash_count++}
|
||||
in_token && dash_count==2 {exit}
|
||||
' ~/kasm-install.output > ~/kasm.creds
|
||||
msg_ok "Installed Kasm Workspaces"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Displaying Kasm Credentials"
|
||||
cat ~/kasm.creds
|
||||
msg_ok "Kasm Credentials displayed"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f /opt/kasm_release_${KASM_VERSION}.tar.gz
|
||||
rm -f ~/kasm-install.output
|
||||
|
||||
@@ -62,15 +62,23 @@ curl -fsSL "https://raw.githubusercontent.com/moghtech/komodo/main/compose/$DB_C
|
||||
msg_info "Setup Komodo Environment"
|
||||
curl -fsSL "https://raw.githubusercontent.com/moghtech/komodo/main/compose/compose.env" -o "/opt/komodo/compose.env"
|
||||
DB_PASSWORD=$(openssl rand -base64 16 | tr -d '/+=')
|
||||
ADMIN_PASSWORD=$(openssl rand -base64 8 | tr -d '/+=')
|
||||
PASSKEY=$(openssl rand -base64 24 | tr -d '/+=')
|
||||
WEBHOOK_SECRET=$(openssl rand -base64 24 | tr -d '/+=')
|
||||
JWT_SECRET=$(openssl rand -base64 24 | tr -d '/+=')
|
||||
|
||||
sed -i "s/^KOMODO_DB_USERNAME=.*/KOMODO_DB_USERNAME=komodo_admin/" /opt/komodo/compose.env
|
||||
sed -i "s/^KOMODO_DB_PASSWORD=.*/KOMODO_DB_PASSWORD=${DB_PASSWORD}/" /opt/komodo/compose.env
|
||||
sed -i "s/^KOMODO_INIT_ADMIN_PASSWORD=changeme/KOMODO_INIT_ADMIN_PASSWORD=${ADMIN_PASSWORD}/" /opt/komodo/compose.env
|
||||
sed -i "s/^KOMODO_PASSKEY=.*/KOMODO_PASSKEY=${PASSKEY}/" /opt/komodo/compose.env
|
||||
sed -i "s/^KOMODO_WEBHOOK_SECRET=.*/KOMODO_WEBHOOK_SECRET=${WEBHOOK_SECRET}/" /opt/komodo/compose.env
|
||||
sed -i "s/^KOMODO_JWT_SECRET=.*/KOMODO_JWT_SECRET=${JWT_SECRET}/" /opt/komodo/compose.env
|
||||
{
|
||||
echo "Komodo Credentials"
|
||||
echo ""
|
||||
echo "Admin User : admin"
|
||||
echo "Admin Password: $ADMIN_PASSWORD"
|
||||
} >>~/komodo.creds
|
||||
msg_ok "Setup Komodo Environment"
|
||||
|
||||
msg_info "Initialize Komodo"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user