mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-04 18:32:51 +00:00
Compare commits
20 Commits
2025-09-14
...
2025-09-15
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
020c8a76c1 | ||
|
|
8f738e2d26 | ||
|
|
e5e7547eca | ||
|
|
a383aa5679 | ||
|
|
ce68253564 | ||
|
|
65e561dcbe | ||
|
|
dffb291a4f | ||
|
|
f3bcb3211c | ||
|
|
7c22fe5f46 | ||
|
|
600e739005 | ||
|
|
31be78878f | ||
|
|
e47d62d575 | ||
|
|
ec58d6c622 | ||
|
|
bac2b6eade | ||
|
|
bb289203c6 | ||
|
|
fe97056d19 | ||
|
|
65ba9192d9 | ||
|
|
8a096b9e6e | ||
|
|
1c6efa528b | ||
|
|
89c3410f6f |
15
CHANGELOG.md
15
CHANGELOG.md
@@ -10,8 +10,23 @@
|
|||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||||
|
|
||||||
|
## 2025-09-16
|
||||||
|
|
||||||
## 2025-09-15
|
## 2025-09-15
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- SigNoz ([#7648](https://github.com/community-scripts/ProxmoxVE/pull/7648))
|
||||||
|
- Scraparr ([#7644](https://github.com/community-scripts/ProxmoxVE/pull/7644))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- vm: move pv installation into ensure_pv function [@MickLesk](https://github.com/MickLesk) ([#7642](https://github.com/community-scripts/ProxmoxVE/pull/7642))
|
||||||
|
- Cloudflare-DDNS: Fix the IP6_PROVIDER variable [@hugodantas](https://github.com/hugodantas) ([#7660](https://github.com/community-scripts/ProxmoxVE/pull/7660))
|
||||||
|
- Wikijs: Bump Node.js version to 22 [@MickLesk](https://github.com/MickLesk) ([#7643](https://github.com/community-scripts/ProxmoxVE/pull/7643))
|
||||||
|
|
||||||
## 2025-09-14
|
## 2025-09-14
|
||||||
|
|
||||||
## 2025-09-13
|
## 2025-09-13
|
||||||
|
|||||||
6
ct/headers/scraparr
Normal file
6
ct/headers/scraparr
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____
|
||||||
|
/ ___/______________ _____ ____ ___________
|
||||||
|
\__ \/ ___/ ___/ __ `/ __ \/ __ `/ ___/ ___/
|
||||||
|
___/ / /__/ / / /_/ / /_/ / /_/ / / / /
|
||||||
|
/____/\___/_/ \__,_/ .___/\__,_/_/ /_/
|
||||||
|
/_/
|
||||||
6
ct/headers/signoz
Normal file
6
ct/headers/signoz
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____ _ _ __
|
||||||
|
/ ___/(_)___ _/ | / /___ ____
|
||||||
|
\__ \/ / __ `/ |/ / __ \/_ /
|
||||||
|
___/ / / /_/ / /| / /_/ / / /_
|
||||||
|
/____/_/\__, /_/ |_/\____/ /___/
|
||||||
|
/____/
|
||||||
63
ct/scraparr.sh
Normal file
63
ct/scraparr.sh
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/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: JasonGreenC
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/thecfu/scraparr
|
||||||
|
|
||||||
|
APP="Scraparr"
|
||||||
|
var_tags="${var_tags:-arr;monitoring}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-1024}"
|
||||||
|
var_disk="${var_disk:-4}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/scraparr/ ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "scraparr" "thecfu/scraparr"; then
|
||||||
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop scraparr
|
||||||
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
fetch_and_deploy_gh_release "scrappar" "thecfu/scraparr" "tarball" "latest" "/opt/scraparr"
|
||||||
|
|
||||||
|
msg_info "Updating Scraparr"
|
||||||
|
cd /opt/scraparr
|
||||||
|
$STD uv venv /opt/scraparr/.venv
|
||||||
|
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
||||||
|
$STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip
|
||||||
|
$STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt
|
||||||
|
chmod -R 755 /opt/scraparr
|
||||||
|
msg_ok "Updated Scraparr"
|
||||||
|
|
||||||
|
msg_info "Starting Services"
|
||||||
|
systemctl start scraparr
|
||||||
|
msg_ok "Services Started"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7100${CL}"
|
||||||
63
ct/signoz.sh
Normal file
63
ct/signoz.sh
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/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://signoz.io/
|
||||||
|
|
||||||
|
APP="SigNoz"
|
||||||
|
var_tags="${var_tags:-notes}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-4096}"
|
||||||
|
var_disk="${var_disk:-20}"
|
||||||
|
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/signoz ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "signoz" "SigNoz/signoz"; then
|
||||||
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop signoz
|
||||||
|
systemctl stop signoz-otel-collector
|
||||||
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "signoz" "SigNoz/signoz" "prebuild" "latest" "/opt/signoz" "signoz-community_linux_amd64.tar.gz"
|
||||||
|
fetch_and_deploy_gh_release "signoz-otel-collector" "SigNoz/signoz-otel-collector" "prebuild" "latest" "/opt/signoz-otel-collector" "signoz-otel-collector_linux_amd64.tar.gz"
|
||||||
|
fetch_and_deploy_gh_release "signoz-schema-migrator" "SigNoz/signoz-otel-collector" "prebuild" "latest" "/opt/signoz-schema-migrator" "signoz-schema-migrator_linux_amd64.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
cd /opt/signoz-schema-migrator/bin
|
||||||
|
$STD ./signoz-schema-migrator sync --dsn="tcp://localhost:9000?password=" --replication=true --up=
|
||||||
|
$STD ./signoz-schema-migrator async --dsn="tcp://localhost:9000?password=" --replication=true --up=
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
|
msg_info "Starting Services"
|
||||||
|
systemctl start signoz-otel-collector
|
||||||
|
systemctl start signoz
|
||||||
|
msg_ok "Started Services"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
|
||||||
@@ -27,7 +27,7 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
NODE_VERSION="22" NODE_MODULE="yarn@latest,node-gyp" setup_nodejs
|
||||||
if check_for_gh_release "wikijs" "requarks/wiki"; then
|
if check_for_gh_release "wikijs" "requarks/wiki"; then
|
||||||
msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite."
|
msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite."
|
||||||
SQLITE_INSTALL=$([ -f /opt/wikijs/db.sqlite ] && echo "true" || echo "false")
|
SQLITE_INSTALL=$([ -f /opt/wikijs/db.sqlite ] && echo "true" || echo "false")
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "OpenWrt",
|
"name": "OpenWrt",
|
||||||
"slug": "openwrt",
|
"slug": "openwrt-vm",
|
||||||
"categories": [
|
"categories": [
|
||||||
4,
|
4,
|
||||||
2
|
2
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "vm/openwrt.sh",
|
"script": "vm/openwrt-vm.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 256,
|
"ram": 256,
|
||||||
40
frontend/public/json/scraparr.json
Normal file
40
frontend/public/json/scraparr.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"name": "Scraparr",
|
||||||
|
"slug": "scraparr",
|
||||||
|
"categories": [
|
||||||
|
14
|
||||||
|
],
|
||||||
|
"date_created": "2025-09-15",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 7100,
|
||||||
|
"documentation": "https://github.com/thecfu/scraparr/blob/main/README.md",
|
||||||
|
"website": "https://github.com/thecfu/scraparr",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/scraparr-dark.svg",
|
||||||
|
"config_path": "/scraparr/config/config.yaml",
|
||||||
|
"description": "Scraparr is a Prometheus exporter for the *arr suite (Sonarr, Radarr, Lidarr, etc.). It provides metrics that can be scraped by Prometheus to monitor and visualize the health and performance of your *arr applications.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/scraparr.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 1024,
|
||||||
|
"hdd": 4,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Edit config file then restart the scraparr service: `systemctl restart scraparr`",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
40
frontend/public/json/signoz.json
Normal file
40
frontend/public/json/signoz.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"name": "SigNoz",
|
||||||
|
"slug": "signoz",
|
||||||
|
"categories": [
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"date_created": "2025-09-15",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 8080,
|
||||||
|
"documentation": "https://signoz.io/docs/introduction/",
|
||||||
|
"config_path": "/opt/signoz/conf/systemd.env",
|
||||||
|
"website": "https://signoz.io/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/signoz.webp",
|
||||||
|
"description": "SigNoz is an open-source Datadog or New Relic alternative. Get APM, logs, traces, metrics, exceptions, & alerts in a single tool.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/signoz.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 4096,
|
||||||
|
"hdd": 20,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "The first user you register will be the admin user.",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,14 +1,214 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "coder/code-server",
|
||||||
|
"version": "v4.104.0",
|
||||||
|
"date": "2025-09-15T22:24:49Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fallenbagel/jellyseerr",
|
||||||
|
"version": "preview-debug-plex-watchlist",
|
||||||
|
"date": "2025-09-15T21:39:34Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Paymenter/Paymenter",
|
||||||
|
"version": "v1.3.4",
|
||||||
|
"date": "2025-09-15T20:48:02Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rabbitmq/rabbitmq-server",
|
||||||
|
"version": "v4.1.4",
|
||||||
|
"date": "2025-09-02T14:26:24Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Cleanuparr/Cleanuparr",
|
||||||
|
"version": "v2.3.0",
|
||||||
|
"date": "2025-09-15T19:21:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Kozea/Radicale",
|
||||||
|
"version": "v3.5.6",
|
||||||
|
"date": "2025-09-15T18:43:31Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "apache/tika",
|
||||||
|
"version": "3.2.0",
|
||||||
|
"date": "2025-09-15T18:03:08Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "FlareSolverr/FlareSolverr",
|
||||||
|
"version": "v3.4.1",
|
||||||
|
"date": "2025-09-15T18:01:24Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "booklore-app/booklore",
|
||||||
|
"version": "v1.3.1",
|
||||||
|
"date": "2025-09-15T17:51:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ellite/Wallos",
|
||||||
|
"version": "v4.3.0",
|
||||||
|
"date": "2025-09-15T17:34:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "firefly-iii/firefly-iii",
|
||||||
|
"version": "v6.4.0",
|
||||||
|
"date": "2025-09-13T16:38:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Brandawg93/PeaNUT",
|
||||||
|
"version": "v5.15.0",
|
||||||
|
"date": "2025-09-15T17:25:58Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "msgbyte/tianji",
|
||||||
|
"version": "v1.25.9",
|
||||||
|
"date": "2025-09-15T17:23:29Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "immich-app/immich",
|
||||||
|
"version": "v1.142.1",
|
||||||
|
"date": "2025-09-15T17:08:25Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jhuckaby/Cronicle",
|
||||||
|
"version": "v0.9.92",
|
||||||
|
"date": "2025-09-15T16:32:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "FlowiseAI/Flowise",
|
||||||
|
"version": "flowise@3.0.7",
|
||||||
|
"date": "2025-09-15T16:08:09Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Dolibarr/dolibarr",
|
||||||
|
"version": "22.0.1",
|
||||||
|
"date": "2025-09-15T16:01:02Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "linuxserver/Heimdall",
|
||||||
|
"version": "v2.7.6",
|
||||||
|
"date": "2025-09-15T15:50:44Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "goauthentik/authentik",
|
||||||
|
"version": "version/2025.8.2",
|
||||||
|
"date": "2025-09-15T15:48:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mongodb/mongo",
|
||||||
|
"version": "r8.0.14",
|
||||||
|
"date": "2025-09-15T15:39:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "usememos/memos",
|
||||||
|
"version": "v0.25.1",
|
||||||
|
"date": "2025-09-15T14:57:30Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "nzbgetcom/nzbget",
|
||||||
|
"version": "v25.3",
|
||||||
|
"date": "2025-09-01T09:47:06Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "AdguardTeam/AdGuardHome",
|
||||||
|
"version": "v0.107.66",
|
||||||
|
"date": "2025-09-15T13:39:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "n8n-io/n8n",
|
||||||
|
"version": "n8n@1.109.2",
|
||||||
|
"date": "2025-09-03T07:50:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fuma-nama/fumadocs",
|
||||||
|
"version": "fumadocs-core@15.7.12",
|
||||||
|
"date": "2025-09-15T12:37:01Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dgtlmoon/changedetection.io",
|
||||||
|
"version": "0.50.13",
|
||||||
|
"date": "2025-09-15T11:52:07Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "VictoriaMetrics/VictoriaMetrics",
|
||||||
|
"version": "pmm-6401-v1.126.0",
|
||||||
|
"date": "2025-09-15T11:32:31Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "meilisearch/meilisearch",
|
||||||
|
"version": "latest",
|
||||||
|
"date": "2025-09-15T11:12:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zitadel/zitadel",
|
||||||
|
"version": "v4.2.0",
|
||||||
|
"date": "2025-09-15T09:29:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "authelia/authelia",
|
||||||
|
"version": "v4.39.10",
|
||||||
|
"date": "2025-09-15T09:11:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "emqx/emqx",
|
||||||
|
"version": "e5.8.6-hotfix2",
|
||||||
|
"date": "2025-09-15T08:31:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Checkmk/checkmk",
|
||||||
|
"version": "v2.4.0p12-rc1",
|
||||||
|
"date": "2025-09-15T07:21:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "esphome/esphome",
|
||||||
|
"version": "2025.8.4",
|
||||||
|
"date": "2025-09-10T05:03:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.23.23",
|
||||||
|
"date": "2025-09-15T05:57:33Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mealie-recipes/mealie",
|
||||||
|
"version": "v3.2.1",
|
||||||
|
"date": "2025-09-15T03:45:31Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Prowlarr/Prowlarr",
|
||||||
|
"version": "v2.0.5.5160",
|
||||||
|
"date": "2025-08-23T21:23:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cross-seed/cross-seed",
|
||||||
|
"version": "v6.13.3",
|
||||||
|
"date": "2025-09-08T21:45:15Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "9001/copyparty",
|
||||||
|
"version": "v1.19.9",
|
||||||
|
"date": "2025-09-15T00:54:27Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "crafty-controller/crafty-4",
|
||||||
|
"version": "v4.5.4",
|
||||||
|
"date": "2025-09-15T00:49:53Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jeedom/core",
|
||||||
|
"version": "4.4.20",
|
||||||
|
"date": "2025-09-15T00:27:09Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "steveiliop56/tinyauth",
|
||||||
|
"version": "v3.6.2",
|
||||||
|
"date": "2025-07-17T12:08:03Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "inventree/InvenTree",
|
"name": "inventree/InvenTree",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"date": "2025-09-14T23:37:56Z"
|
"date": "2025-09-14T23:37:56Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fallenbagel/jellyseerr",
|
|
||||||
"version": "preview-test-arm-builds",
|
|
||||||
"date": "2025-09-14T20:12:37Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "moghtech/komodo",
|
"name": "moghtech/komodo",
|
||||||
"version": "v1.19.4",
|
"version": "v1.19.4",
|
||||||
@@ -19,21 +219,11 @@
|
|||||||
"version": "v25.6.0",
|
"version": "v25.6.0",
|
||||||
"date": "2025-09-14T17:55:21Z"
|
"date": "2025-09-14T17:55:21Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "msgbyte/tianji",
|
|
||||||
"version": "v1.25.8",
|
|
||||||
"date": "2025-09-14T16:50:23Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Lidarr/Lidarr",
|
"name": "Lidarr/Lidarr",
|
||||||
"version": "v2.13.3.4711",
|
"version": "v2.13.3.4711",
|
||||||
"date": "2025-08-28T20:06:24Z"
|
"date": "2025-08-28T20:06:24Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ellite/Wallos",
|
|
||||||
"version": "v4.2.0",
|
|
||||||
"date": "2025-09-14T14:49:18Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "karakeep-app/karakeep",
|
"name": "karakeep-app/karakeep",
|
||||||
"version": "cli/v0.27.1",
|
"version": "cli/v0.27.1",
|
||||||
@@ -59,41 +249,16 @@
|
|||||||
"version": "3.2.7",
|
"version": "3.2.7",
|
||||||
"date": "2025-09-14T06:35:13Z"
|
"date": "2025-09-14T06:35:13Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.23.20",
|
|
||||||
"date": "2025-09-14T05:53:28Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jeedom/core",
|
|
||||||
"version": "4.4.20",
|
|
||||||
"date": "2025-09-14T00:27:06Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v3.6.2",
|
|
||||||
"date": "2025-07-17T12:08:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "gtsteffaniak/filebrowser",
|
"name": "gtsteffaniak/filebrowser",
|
||||||
"version": "v0.8.5-beta",
|
"version": "v0.8.5-beta",
|
||||||
"date": "2025-09-13T22:53:30Z"
|
"date": "2025-09-13T22:53:30Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mealie-recipes/mealie",
|
|
||||||
"version": "v3.2.0",
|
|
||||||
"date": "2025-09-13T21:27:07Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Ombi-app/Ombi",
|
"name": "Ombi-app/Ombi",
|
||||||
"version": "v4.47.1",
|
"version": "v4.47.1",
|
||||||
"date": "2025-01-05T21:14:23Z"
|
"date": "2025-01-05T21:14:23Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "firefly-iii/firefly-iii",
|
|
||||||
"version": "v6.4.0",
|
|
||||||
"date": "2025-09-13T16:38:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "home-assistant/core",
|
"name": "home-assistant/core",
|
||||||
"version": "2025.9.3",
|
"version": "2025.9.3",
|
||||||
@@ -124,11 +289,6 @@
|
|||||||
"version": "v0.11.11-rc3",
|
"version": "v0.11.11-rc3",
|
||||||
"date": "2025-09-12T23:40:14Z"
|
"date": "2025-09-12T23:40:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "coder/code-server",
|
|
||||||
"version": "v4.103.2",
|
|
||||||
"date": "2025-08-25T23:30:54Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "YunoHost/yunohost",
|
"name": "YunoHost/yunohost",
|
||||||
"version": "debian/12.1.23",
|
"version": "debian/12.1.23",
|
||||||
@@ -144,36 +304,11 @@
|
|||||||
"version": "v1.37.0",
|
"version": "v1.37.0",
|
||||||
"date": "2025-09-12T19:19:14Z"
|
"date": "2025-09-12T19:19:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "booklore-app/booklore",
|
|
||||||
"version": "v1.3.0",
|
|
||||||
"date": "2025-09-12T19:06:32Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "immich-app/immich",
|
|
||||||
"version": "v1.142.0",
|
|
||||||
"date": "2025-09-12T18:52:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "keycloak/keycloak",
|
"name": "keycloak/keycloak",
|
||||||
"version": "26.3.4",
|
"version": "26.3.4",
|
||||||
"date": "2025-09-12T13:28:51Z"
|
"date": "2025-09-12T13:28:51Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "VictoriaMetrics/VictoriaMetrics",
|
|
||||||
"version": "pmm-6401-v1.125.1",
|
|
||||||
"date": "2025-09-03T20:17:18Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "nzbgetcom/nzbget",
|
|
||||||
"version": "v25.3",
|
|
||||||
"date": "2025-09-01T09:47:06Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "emqx/emqx",
|
|
||||||
"version": "e5.8.6-hotfix1",
|
|
||||||
"date": "2025-09-12T13:23:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cloudreve/cloudreve",
|
"name": "cloudreve/cloudreve",
|
||||||
"version": "4.8.0",
|
"version": "4.8.0",
|
||||||
@@ -204,11 +339,6 @@
|
|||||||
"version": "v1.88.1",
|
"version": "v1.88.1",
|
||||||
"date": "2025-09-11T22:19:51Z"
|
"date": "2025-09-11T22:19:51Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "cross-seed/cross-seed",
|
|
||||||
"version": "v6.13.3",
|
|
||||||
"date": "2025-09-08T21:45:15Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "influxdata/influxdb",
|
"name": "influxdata/influxdb",
|
||||||
"version": "v3.4.2",
|
"version": "v3.4.2",
|
||||||
@@ -224,11 +354,6 @@
|
|||||||
"version": "1.16.0",
|
"version": "1.16.0",
|
||||||
"date": "2025-09-11T18:01:57Z"
|
"date": "2025-09-11T18:01:57Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Dolibarr/dolibarr",
|
|
||||||
"version": "18.0.8",
|
|
||||||
"date": "2025-09-11T16:27:45Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Threadfin/Threadfin",
|
"name": "Threadfin/Threadfin",
|
||||||
"version": "1.2.37",
|
"version": "1.2.37",
|
||||||
@@ -239,11 +364,6 @@
|
|||||||
"version": "v0.306.0-rc.1",
|
"version": "v0.306.0-rc.1",
|
||||||
"date": "2025-09-11T13:37:41Z"
|
"date": "2025-09-11T13:37:41Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "apache/tika",
|
|
||||||
"version": "3.2.3-rc1",
|
|
||||||
"date": "2025-09-11T14:37:50Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "rcourtman/Pulse",
|
"name": "rcourtman/Pulse",
|
||||||
"version": "v4.14.0",
|
"version": "v4.14.0",
|
||||||
@@ -254,11 +374,6 @@
|
|||||||
"version": "v1.6.4",
|
"version": "v1.6.4",
|
||||||
"date": "2025-08-18T20:22:07Z"
|
"date": "2025-08-18T20:22:07Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Paymenter/Paymenter",
|
|
||||||
"version": "v1.3.2",
|
|
||||||
"date": "2025-09-11T09:54:47Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cockpit-project/cockpit",
|
"name": "cockpit-project/cockpit",
|
||||||
"version": "345.2",
|
"version": "345.2",
|
||||||
@@ -269,41 +384,16 @@
|
|||||||
"version": "release-1.24.0rc1",
|
"version": "release-1.24.0rc1",
|
||||||
"date": "2025-09-11T07:05:16Z"
|
"date": "2025-09-11T07:05:16Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zitadel/zitadel",
|
|
||||||
"version": "v4.1.4",
|
|
||||||
"date": "2025-09-11T05:20:51Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "go-gitea/gitea",
|
"name": "go-gitea/gitea",
|
||||||
"version": "v1.24.6",
|
"version": "v1.24.6",
|
||||||
"date": "2025-09-11T04:20:27Z"
|
"date": "2025-09-11T04:20:27Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "esphome/esphome",
|
|
||||||
"version": "2025.8.4",
|
|
||||||
"date": "2025-09-10T05:03:47Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "TandoorRecipes/recipes",
|
"name": "TandoorRecipes/recipes",
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"date": "2025-09-10T18:36:56Z"
|
"date": "2025-09-10T18:36:56Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fuma-nama/fumadocs",
|
|
||||||
"version": "fumadocs-mdx@11.9.1",
|
|
||||||
"date": "2025-09-10T15:26:47Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "linuxserver/Heimdall",
|
|
||||||
"version": "v2.7.5",
|
|
||||||
"date": "2025-09-10T15:16:49Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mongodb/mongo",
|
|
||||||
"version": "r7.0.25-alpha0",
|
|
||||||
"date": "2025-09-10T12:13:38Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "aceberg/WatchYourLAN",
|
"name": "aceberg/WatchYourLAN",
|
||||||
"version": "2.1.4",
|
"version": "2.1.4",
|
||||||
@@ -319,11 +409,6 @@
|
|||||||
"version": "v0.6.28",
|
"version": "v0.6.28",
|
||||||
"date": "2025-09-10T10:53:42Z"
|
"date": "2025-09-10T10:53:42Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "authelia/authelia",
|
|
||||||
"version": "v4.39.9",
|
|
||||||
"date": "2025-09-09T22:48:24Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jenkinsci/jenkins",
|
"name": "jenkinsci/jenkins",
|
||||||
"version": "jenkins-2.527",
|
"version": "jenkins-2.527",
|
||||||
@@ -384,11 +469,6 @@
|
|||||||
"version": "v4.3.1",
|
"version": "v4.3.1",
|
||||||
"date": "2025-09-08T22:26:23Z"
|
"date": "2025-09-08T22:26:23Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "n8n-io/n8n",
|
|
||||||
"version": "n8n@1.109.2",
|
|
||||||
"date": "2025-09-03T07:50:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "apache/tomcat",
|
"name": "apache/tomcat",
|
||||||
"version": "10.1.46",
|
"version": "10.1.46",
|
||||||
@@ -414,11 +494,6 @@
|
|||||||
"version": "v1.66.1",
|
"version": "v1.66.1",
|
||||||
"date": "2025-09-08T10:49:03Z"
|
"date": "2025-09-08T10:49:03Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "meilisearch/meilisearch",
|
|
||||||
"version": "latest",
|
|
||||||
"date": "2025-09-08T10:03:11Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "webmin/webmin",
|
"name": "webmin/webmin",
|
||||||
"version": "2.501",
|
"version": "2.501",
|
||||||
@@ -429,36 +504,21 @@
|
|||||||
"version": "v2.18.4",
|
"version": "v2.18.4",
|
||||||
"date": "2025-09-07T23:57:32Z"
|
"date": "2025-09-07T23:57:32Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "9001/copyparty",
|
|
||||||
"version": "v1.19.8",
|
|
||||||
"date": "2025-09-07T23:36:42Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "minio/minio",
|
"name": "minio/minio",
|
||||||
"version": "RELEASE.2025-09-07T16-13-09Z",
|
"version": "RELEASE.2025-09-07T16-13-09Z",
|
||||||
"date": "2025-09-07T18:53:04Z"
|
"date": "2025-09-07T18:53:04Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "dgtlmoon/changedetection.io",
|
|
||||||
"version": "0.50.12",
|
|
||||||
"date": "2025-09-07T14:16:07Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "runtipi/runtipi",
|
"name": "runtipi/runtipi",
|
||||||
"version": "v4.4.0",
|
"version": "nightly",
|
||||||
"date": "2025-09-02T19:26:18Z"
|
"date": "2025-09-07T12:25:06Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Radarr/Radarr",
|
"name": "Radarr/Radarr",
|
||||||
"version": "v5.27.5.10198",
|
"version": "v5.27.5.10198",
|
||||||
"date": "2025-09-03T12:08:43Z"
|
"date": "2025-09-03T12:08:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Prowlarr/Prowlarr",
|
|
||||||
"version": "v2.0.5.5160",
|
|
||||||
"date": "2025-08-23T21:23:11Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "pocketbase/pocketbase",
|
"name": "pocketbase/pocketbase",
|
||||||
"version": "v0.30.0",
|
"version": "v0.30.0",
|
||||||
@@ -479,11 +539,6 @@
|
|||||||
"version": "v0.12.7",
|
"version": "v0.12.7",
|
||||||
"date": "2025-09-05T18:11:36Z"
|
"date": "2025-09-05T18:11:36Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Brandawg93/PeaNUT",
|
|
||||||
"version": "v5.14.2",
|
|
||||||
"date": "2025-09-05T17:24:12Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "CrazyWolf13/streamlink-webui",
|
"name": "CrazyWolf13/streamlink-webui",
|
||||||
"version": "0.6",
|
"version": "0.6",
|
||||||
@@ -504,16 +559,6 @@
|
|||||||
"version": "v1.0.0-beta17",
|
"version": "v1.0.0-beta17",
|
||||||
"date": "2025-09-04T21:30:14Z"
|
"date": "2025-09-04T21:30:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Cleanuparr/Cleanuparr",
|
|
||||||
"version": "v2.2.3",
|
|
||||||
"date": "2025-09-04T19:24:39Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "AdguardTeam/AdGuardHome",
|
|
||||||
"version": "v0.107.65",
|
|
||||||
"date": "2025-08-20T14:02:28Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "NodeBB/NodeBB",
|
"name": "NodeBB/NodeBB",
|
||||||
"version": "v4.5.1",
|
"version": "v4.5.1",
|
||||||
@@ -564,31 +609,16 @@
|
|||||||
"version": "5.26.12",
|
"version": "5.26.12",
|
||||||
"date": "2025-09-03T12:03:22Z"
|
"date": "2025-09-03T12:03:22Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Checkmk/checkmk",
|
|
||||||
"version": "v2.4.0p11",
|
|
||||||
"date": "2025-09-03T09:58:14Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "apache/cassandra",
|
"name": "apache/cassandra",
|
||||||
"version": "cassandra-4.1.10",
|
"version": "cassandra-4.1.10",
|
||||||
"date": "2025-09-03T08:46:02Z"
|
"date": "2025-09-03T08:46:02Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "crafty-controller/crafty-4",
|
|
||||||
"version": "v4.5.3",
|
|
||||||
"date": "2025-09-02T23:52:26Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "netbox-community/netbox",
|
"name": "netbox-community/netbox",
|
||||||
"version": "v4.4.0",
|
"version": "v4.4.0",
|
||||||
"date": "2025-09-02T17:04:25Z"
|
"date": "2025-09-02T17:04:25Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "rabbitmq/rabbitmq-server",
|
|
||||||
"version": "v4.1.4",
|
|
||||||
"date": "2025-09-02T14:26:24Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "postgres/postgres",
|
"name": "postgres/postgres",
|
||||||
"version": "REL_18_RC1",
|
"version": "REL_18_RC1",
|
||||||
@@ -634,11 +664,6 @@
|
|||||||
"version": "v1.7.3",
|
"version": "v1.7.3",
|
||||||
"date": "2025-08-31T15:59:43Z"
|
"date": "2025-08-31T15:59:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jhuckaby/Cronicle",
|
|
||||||
"version": "v0.9.91",
|
|
||||||
"date": "2025-08-30T21:49:57Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "silverbulletmd/silverbullet",
|
"name": "silverbulletmd/silverbullet",
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@@ -709,11 +734,6 @@
|
|||||||
"version": "7.4.2",
|
"version": "7.4.2",
|
||||||
"date": "2025-08-25T12:38:14Z"
|
"date": "2025-08-25T12:38:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "FlareSolverr/FlareSolverr",
|
|
||||||
"version": "v3.4.0",
|
|
||||||
"date": "2025-08-25T03:22:00Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "plexguide/Huntarr.io",
|
"name": "plexguide/Huntarr.io",
|
||||||
"version": "8.2.10",
|
"version": "8.2.10",
|
||||||
@@ -744,21 +764,11 @@
|
|||||||
"version": "v1.71.0",
|
"version": "v1.71.0",
|
||||||
"date": "2025-08-22T16:41:23Z"
|
"date": "2025-08-22T16:41:23Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "goauthentik/authentik",
|
|
||||||
"version": "version/2025.8.1",
|
|
||||||
"date": "2025-08-22T14:55:30Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "lazy-media/Reactive-Resume",
|
"name": "lazy-media/Reactive-Resume",
|
||||||
"version": "v1.2.4",
|
"version": "v1.2.4",
|
||||||
"date": "2025-08-22T07:40:01Z"
|
"date": "2025-08-22T07:40:01Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Kozea/Radicale",
|
|
||||||
"version": "v3.5.5",
|
|
||||||
"date": "2025-08-22T06:57:33Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "traccar/traccar",
|
"name": "traccar/traccar",
|
||||||
"version": "v6.9.1",
|
"version": "v6.9.1",
|
||||||
@@ -859,11 +869,6 @@
|
|||||||
"version": "v1.14.0",
|
"version": "v1.14.0",
|
||||||
"date": "2025-08-12T13:58:46Z"
|
"date": "2025-08-12T13:58:46Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "FlowiseAI/Flowise",
|
|
||||||
"version": "flowise@3.0.5",
|
|
||||||
"date": "2025-08-11T13:01:45Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "slskd/slskd",
|
"name": "slskd/slskd",
|
||||||
"version": "0.23.2",
|
"version": "0.23.2",
|
||||||
@@ -1004,11 +1009,6 @@
|
|||||||
"version": "v0.22.0",
|
"version": "v0.22.0",
|
||||||
"date": "2025-07-17T06:35:43Z"
|
"date": "2025-07-17T06:35:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "usememos/memos",
|
|
||||||
"version": "v0.25.0",
|
|
||||||
"date": "2025-07-16T14:57:02Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "sbondCo/Watcharr",
|
"name": "sbondCo/Watcharr",
|
||||||
"version": "v2.1.1",
|
"version": "v2.1.1",
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ while true; do
|
|||||||
read -rp "${TAB3}Enable IPv6 support? (y/n): " answer
|
read -rp "${TAB3}Enable IPv6 support? (y/n): " answer
|
||||||
case "$answer" in
|
case "$answer" in
|
||||||
[Yy]*)
|
[Yy]*)
|
||||||
var_cf_ip6_provider="auto"
|
var_cf_ip6_provider="cloudflare.trace"
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
[Nn]*)
|
[Nn]*)
|
||||||
|
|||||||
56
install/scraparr-install.sh
Normal file
56
install/scraparr-install.sh
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: JasonGreenC
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/thecfu/scraparr
|
||||||
|
|
||||||
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
|
fetch_and_deploy_gh_release "scrappar" "thecfu/scraparr" "tarball" "latest" "/opt/scraparr"
|
||||||
|
|
||||||
|
msg_info "Installing Scraparr"
|
||||||
|
cd /opt/scraparr
|
||||||
|
$STD uv venv /opt/scraparr/.venv
|
||||||
|
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
||||||
|
$STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip
|
||||||
|
$STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt
|
||||||
|
chmod -R 755 /opt/scraparr
|
||||||
|
mkdir -p /scraparr/config
|
||||||
|
mv /opt/scraparr/config.yaml /scraparr/config/config.yaml
|
||||||
|
chmod -R 755 /scraparr
|
||||||
|
msg_ok "Installed Scraparr"
|
||||||
|
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<EOF >/etc/systemd/system/scraparr.service
|
||||||
|
[Unit]
|
||||||
|
Description=Scraparr
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/opt/scraparr/src
|
||||||
|
ExecStart=/opt/scraparr/.venv/bin/python -m scraparr.scraparr
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now scraparr
|
||||||
|
msg_ok "Configured Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
262
install/signoz-install.sh
Normal file
262
install/signoz-install.sh
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
#!/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://signoz.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 \
|
||||||
|
apt-transport-https \
|
||||||
|
ca-certificates
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
JAVA_VERSION="21" setup_java
|
||||||
|
|
||||||
|
msg_info "Setting up ClickHouse"
|
||||||
|
curl -fsSL "https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key" | gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg arch=amd64] https://packages.clickhouse.com/deb stable main" >/etc/apt/sources.list.d/clickhouse.list
|
||||||
|
$STD apt-get update
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
$STD apt-get install -y clickhouse-server clickhouse-client
|
||||||
|
msg_ok "Setup ClickHouse"
|
||||||
|
|
||||||
|
msg_info "Setting up Zookeeper"
|
||||||
|
curl -fsSL "https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz" -o "$HOME/zookeeper.tar.gz"
|
||||||
|
tar -xzf "$HOME/zookeeper.tar.gz" -C "$HOME"
|
||||||
|
mkdir -p /opt/zookeeper
|
||||||
|
mkdir -p /var/lib/zookeeper
|
||||||
|
mkdir -p /var/log/zookeeper
|
||||||
|
cp -r ~/apache-zookeeper-3.8.4-bin/* /opt/zookeeper
|
||||||
|
|
||||||
|
cat <<EOF >/opt/zookeeper/conf/zoo.cfg
|
||||||
|
tickTime=2000
|
||||||
|
dataDir=/var/lib/zookeeper
|
||||||
|
clientPort=2181
|
||||||
|
admin.serverPort=3181
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/opt/zookeeper/conf/zoo.env
|
||||||
|
ZOO_LOG_DIR=/var/log/zookeeper
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/zookeeper.service
|
||||||
|
[Unit]
|
||||||
|
Description=Zookeeper
|
||||||
|
Documentation=http://zookeeper.apache.org
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=/opt/zookeeper/conf/zoo.env
|
||||||
|
Type=forking
|
||||||
|
WorkingDirectory=/opt/zookeeper
|
||||||
|
ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
|
||||||
|
ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg
|
||||||
|
ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg
|
||||||
|
TimeoutSec=30
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now zookeeper
|
||||||
|
msg_ok "Setup Zookeeper"
|
||||||
|
|
||||||
|
msg_info "Configuring ClickHouse"
|
||||||
|
cat <<EOF >/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
<clickhouse replace="true">
|
||||||
|
<distributed_ddl>
|
||||||
|
<path>/clickhouse/task_queue/ddl</path>
|
||||||
|
</distributed_ddl>
|
||||||
|
<remote_servers>
|
||||||
|
<cluster>
|
||||||
|
<shard>
|
||||||
|
<replica>
|
||||||
|
<host>127.0.0.1</host>
|
||||||
|
<port>9000</port>
|
||||||
|
</replica>
|
||||||
|
</shard>
|
||||||
|
</cluster>
|
||||||
|
</remote_servers>
|
||||||
|
<zookeeper>
|
||||||
|
<node>
|
||||||
|
<host>127.0.0.1</host>
|
||||||
|
<port>2181</port>
|
||||||
|
</node>
|
||||||
|
</zookeeper>
|
||||||
|
<macros>
|
||||||
|
<shard>01</shard>
|
||||||
|
<replica>01</replica>
|
||||||
|
</macros>
|
||||||
|
</clickhouse>
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now clickhouse-server
|
||||||
|
msg_ok "Configured ClickHouse"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "signoz-schema-migrator" "SigNoz/signoz-otel-collector" "prebuild" "latest" "/opt/signoz-schema-migrator" "signoz-schema-migrator_linux_amd64.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Running ClickHouse migrations"
|
||||||
|
cd /opt/signoz-schema-migrator/bin
|
||||||
|
$STD ./signoz-schema-migrator sync --dsn="tcp://localhost:9000?password=" --replication=true --up=
|
||||||
|
$STD ./signoz-schema-migrator async --dsn="tcp://localhost:9000?password=" --replication=true --up=
|
||||||
|
msg_ok "ClickHouse Migrations Completed"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "signoz" "SigNoz/signoz" "prebuild" "latest" "/opt/signoz" "signoz-community_linux_amd64.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Setting up SigNoz"
|
||||||
|
mkdir -p /var/lib/signoz
|
||||||
|
cat <<EOF >/opt/signoz/conf/systemd.env
|
||||||
|
SIGNOZ_INSTRUMENTATION_LOGS_LEVEL=info
|
||||||
|
INVITE_EMAIL_TEMPLATE=/opt/signoz/templates/invitation_email_template.html
|
||||||
|
SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
SIGNOZ_WEB_ENABLED=true
|
||||||
|
SIGNOZ_WEB_DIRECTORY=/opt/signoz/web
|
||||||
|
SIGNOZ_JWT_SECRET=secret
|
||||||
|
SIGNOZ_ALERTMANAGER_PROVIDER=signoz
|
||||||
|
SIGNOZ_TELEMETRYSTORE_PROVIDER=clickhouse
|
||||||
|
SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://localhost:9000?password=
|
||||||
|
DOT_METRICS_ENABLED=true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/signoz.service
|
||||||
|
[Unit]
|
||||||
|
Description=SigNoz
|
||||||
|
Documentation=https://signoz.io/docs
|
||||||
|
After=clickhouse-server.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
KillMode=mixed
|
||||||
|
Restart=on-failure
|
||||||
|
WorkingDirectory=/opt/signoz
|
||||||
|
EnvironmentFile=/opt/signoz/conf/systemd.env
|
||||||
|
ExecStart=/opt/signoz/bin/signoz server
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now signoz
|
||||||
|
msg_ok "Setup Signoz"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "signoz-otel-collector" "SigNoz/signoz-otel-collector" "prebuild" "latest" "/opt/signoz-otel-collector" "signoz-otel-collector_linux_amd64.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Setting up SigNoz OTel Collector"
|
||||||
|
mkdir -p /var/lib/signoz-otel-collector
|
||||||
|
cat <<EOF >/opt/signoz-otel-collector/conf/config.yaml
|
||||||
|
receivers:
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:4317
|
||||||
|
max_recv_msg_size_mib: 16
|
||||||
|
http:
|
||||||
|
endpoint: 0.0.0.0:4318
|
||||||
|
jaeger:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:14250
|
||||||
|
thrift_http:
|
||||||
|
endpoint: 0.0.0.0:14268
|
||||||
|
httplogreceiver/heroku:
|
||||||
|
endpoint: 0.0.0.0:8081
|
||||||
|
source: heroku
|
||||||
|
httplogreceiver/json:
|
||||||
|
endpoint: 0.0.0.0:8082
|
||||||
|
source: json
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 50000
|
||||||
|
timeout: 1s
|
||||||
|
signozspanmetrics/delta:
|
||||||
|
metrics_exporter: signozclickhousemetrics
|
||||||
|
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s]
|
||||||
|
dimensions_cache_size: 100000
|
||||||
|
dimensions:
|
||||||
|
- name: service.namespace
|
||||||
|
default: default
|
||||||
|
- name: deployment.environment
|
||||||
|
default: default
|
||||||
|
- name: signoz.collector.id
|
||||||
|
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
zpages:
|
||||||
|
endpoint: localhost:55679
|
||||||
|
pprof:
|
||||||
|
endpoint: localhost:1777
|
||||||
|
exporters:
|
||||||
|
clickhousetraces:
|
||||||
|
datasource: tcp://localhost:9000/signoz_traces?password=
|
||||||
|
use_new_schema: true
|
||||||
|
signozclickhousemetrics:
|
||||||
|
dsn: tcp://localhost:9000/signoz_metrics?password=
|
||||||
|
timeout: 45s
|
||||||
|
clickhouselogsexporter:
|
||||||
|
dsn: tcp://localhost:9000/signoz_logs?password=
|
||||||
|
timeout: 10s
|
||||||
|
use_new_schema: true
|
||||||
|
metadataexporter:
|
||||||
|
dsn: tcp://localhost:9000/signoz_metadata?password=
|
||||||
|
timeout: 10s
|
||||||
|
tenant_id: default
|
||||||
|
cache:
|
||||||
|
provider: in_memory
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
extensions: [health_check, zpages, pprof]
|
||||||
|
pipelines:
|
||||||
|
traces:
|
||||||
|
receivers: [otlp, jaeger]
|
||||||
|
processors: [signozspanmetrics/delta, batch]
|
||||||
|
exporters: [clickhousetraces, metadataexporter]
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [metadataexporter, signozclickhousemetrics]
|
||||||
|
logs:
|
||||||
|
receivers: [otlp, httplogreceiver/heroku, httplogreceiver/json]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhouselogsexporter, metadataexporter]
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/opt/signoz-otel-collector/conf/opamp.yaml
|
||||||
|
server_endpoint: ws://127.0.0.1:4320/v1/opamp
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/signoz-otel-collector.service
|
||||||
|
[Unit]
|
||||||
|
Description=SigNoz OTel Collector
|
||||||
|
Documentation=https://signoz.io/docs
|
||||||
|
After=clickhouse-server.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
KillMode=mixed
|
||||||
|
Restart=on-failure
|
||||||
|
WorkingDirectory=/opt/signoz-otel-collector
|
||||||
|
ExecStart=/opt/signoz-otel-collector/bin/signoz-otel-collector --config=/opt/signoz-otel-collector/conf/config.yaml --manager-config=/opt/signoz-otel-collector/conf/opamp.yaml --copy-path=/var/lib/signoz-otel-collector/config.yaml
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now signoz-otel-collector
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf ~/zookeeper.tar.gz
|
||||||
|
rm -rf ~/apache-zookeeper-3.8.4-bin
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
@@ -18,7 +18,7 @@ $STD apt-get install -y \
|
|||||||
git
|
git
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="20" NODE_MODULE="yarn@latest,node-gyp" setup_nodejs
|
NODE_VERSION="22" NODE_MODULE="yarn@latest,node-gyp" setup_nodejs
|
||||||
PG_VERSION="17" setup_postgresql
|
PG_VERSION="17" setup_postgresql
|
||||||
fetch_and_deploy_gh_release "wikijs" "requarks/wiki" "prebuild" "latest" "/opt/wikijs" "wiki-js.tar.gz"
|
fetch_and_deploy_gh_release "wikijs" "requarks/wiki" "prebuild" "latest" "/opt/wikijs" "wiki-js.tar.gz"
|
||||||
|
|
||||||
|
|||||||
@@ -205,6 +205,15 @@ function exit-script() {
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ensure_pv() {
|
||||||
|
if ! command -v pv &>/dev/null; then
|
||||||
|
msg_info "Installing required package: pv"
|
||||||
|
apt-get update -qq &>/dev/null
|
||||||
|
apt-get install -y pv &>/dev/null
|
||||||
|
msg_ok "Installed pv"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function default_settings() {
|
function default_settings() {
|
||||||
BRANCH="$stable"
|
BRANCH="$stable"
|
||||||
VMID=$(get_valid_nextid)
|
VMID=$(get_valid_nextid)
|
||||||
@@ -448,8 +457,8 @@ check_root
|
|||||||
arch_check
|
arch_check
|
||||||
pve_check
|
pve_check
|
||||||
ssh_check
|
ssh_check
|
||||||
|
ensure_pv
|
||||||
start_script
|
start_script
|
||||||
|
|
||||||
post_to_api_vm
|
post_to_api_vm
|
||||||
|
|
||||||
msg_info "Validating Storage"
|
msg_info "Validating Storage"
|
||||||
@@ -505,10 +514,6 @@ else
|
|||||||
msg_ok "Using cached image ${CL}${BL}$(basename "$CACHE_FILE")${CL}"
|
msg_ok "Using cached image ${CL}${BL}$(basename "$CACHE_FILE")${CL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v pv &>/dev/null; then
|
|
||||||
apt-get update -qq &>/dev/null && apt-get install -y pv &>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
msg_info "Creating Home Assistant OS VM shell"
|
msg_info "Creating Home Assistant OS VM shell"
|
||||||
qm create "$VMID" -machine q35 -bios ovmf -agent 1 -tablet 0 -localtime 1 ${CPU_TYPE} \
|
qm create "$VMID" -machine q35 -bios ovmf -agent 1 -tablet 0 -localtime 1 ${CPU_TYPE} \
|
||||||
|
|||||||
@@ -22,13 +22,13 @@ function header_info {
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
header_info
|
header_info
|
||||||
echo -e "Loading..."
|
echo -e "\n Loading..."
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="openwrt-vm"
|
NSAPP="openwrt-vm"
|
||||||
var_os="openwrt"
|
var_os="openwrt"
|
||||||
var_version=" "
|
var_version=" "
|
||||||
DISK_SIZE="0.5G"
|
DISK_SIZE="1G"
|
||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
GEN_MAC_LAN=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC_LAN=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
|
|
||||||
@@ -40,10 +40,31 @@ BGN=$(echo "\033[4;92m")
|
|||||||
GN=$(echo "\033[1;92m")
|
GN=$(echo "\033[1;92m")
|
||||||
DGN=$(echo "\033[32m")
|
DGN=$(echo "\033[32m")
|
||||||
CL=$(echo "\033[m")
|
CL=$(echo "\033[m")
|
||||||
|
|
||||||
|
BOLD=$(echo "\033[1m")
|
||||||
BFR="\\r\\033[K"
|
BFR="\\r\\033[K"
|
||||||
HOLD="-"
|
HOLD=" "
|
||||||
CM="${GN}✓${CL}"
|
TAB=" "
|
||||||
CROSS="${RD}✗${CL}"
|
|
||||||
|
CM="${TAB}✔️${TAB}${CL}"
|
||||||
|
CROSS="${TAB}✖️${TAB}${CL}"
|
||||||
|
INFO="${TAB}💡${TAB}${CL}"
|
||||||
|
OS="${TAB}🖥️${TAB}${CL}"
|
||||||
|
CONTAINERTYPE="${TAB}📦${TAB}${CL}"
|
||||||
|
DISKSIZE="${TAB}💾${TAB}${CL}"
|
||||||
|
CPUCORE="${TAB}🧠${TAB}${CL}"
|
||||||
|
RAMSIZE="${TAB}🛠️${TAB}${CL}"
|
||||||
|
CONTAINERID="${TAB}🆔${TAB}${CL}"
|
||||||
|
HOSTNAME="${TAB}🏠${TAB}${CL}"
|
||||||
|
BRIDGE="${TAB}🌉${TAB}${CL}"
|
||||||
|
GATEWAY="${TAB}🌐${TAB}${CL}"
|
||||||
|
DEFAULT="${TAB}⚙️${TAB}${CL}"
|
||||||
|
MACADDRESS="${TAB}🔗${TAB}${CL}"
|
||||||
|
VLANTAG="${TAB}🏷️${TAB}${CL}"
|
||||||
|
CREATING="${TAB}🚀${TAB}${CL}"
|
||||||
|
ADVANCED="${TAB}🧩${TAB}${CL}"
|
||||||
|
CLOUD="${TAB}☁️${TAB}${CL}"
|
||||||
|
|
||||||
set -Eeo pipefail
|
set -Eeo pipefail
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
@@ -248,35 +269,30 @@ function exit-script() {
|
|||||||
|
|
||||||
function default_settings() {
|
function default_settings() {
|
||||||
VMID=$(get_valid_nextid)
|
VMID=$(get_valid_nextid)
|
||||||
HN=openwrt
|
HN="openwrt"
|
||||||
CORE_COUNT="1"
|
CORE_COUNT="1"
|
||||||
RAM_SIZE="256"
|
RAM_SIZE="256"
|
||||||
BRG="vmbr0"
|
BRG="vmbr0"
|
||||||
VLAN=""
|
LAN_BRG="vmbr0"
|
||||||
MAC=$GEN_MAC
|
MAC=$GEN_MAC
|
||||||
LAN_MAC=$GEN_MAC_LAN
|
LAN_MAC=$GEN_MAC_LAN
|
||||||
LAN_BRG="vmbr0"
|
VLAN=""
|
||||||
|
LAN_VLAN=",tag=999"
|
||||||
LAN_IP_ADDR="192.168.1.1"
|
LAN_IP_ADDR="192.168.1.1"
|
||||||
LAN_NETMASK="255.255.255.0"
|
LAN_NETMASK="255.255.255.0"
|
||||||
LAN_VLAN=",tag=999"
|
|
||||||
MTU=""
|
MTU=""
|
||||||
START_VM="yes"
|
START_VM="yes"
|
||||||
METHOD="default"
|
METHOD="default"
|
||||||
echo -e "${DGN}Using Virtual Machine ID: ${BGN}${VMID}${CL}"
|
DISK_SIZE="1G"
|
||||||
echo -e "${DGN}Using Hostname: ${BGN}${HN}${CL}"
|
echo -e "${CONTAINERID}${BOLD}${DGN}VMID: ${BGN}${VMID}${CL}"
|
||||||
echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}"
|
echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}${HN}${CL}"
|
||||||
echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}"
|
echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}"
|
||||||
echo -e "${DGN}Using WAN Bridge: ${BGN}${BRG}${CL}"
|
echo -e "${RAMSIZE}${BOLD}${DGN}RAM: ${BGN}${RAM_SIZE}${CL}"
|
||||||
echo -e "${DGN}Using WAN VLAN: ${BGN}Default${CL}"
|
echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE}${CL}"
|
||||||
echo -e "${DGN}Using WAN MAC Address: ${BGN}${MAC}${CL}"
|
echo -e "${BRIDGE}${BOLD}${DGN}WAN Bridge: ${BGN}${BRG}${CL}"
|
||||||
echo -e "${DGN}Using LAN MAC Address: ${BGN}${LAN_MAC}${CL}"
|
echo -e "${BRIDGE}${BOLD}${DGN}LAN Bridge: ${BGN}${LAN_BRG}${CL}"
|
||||||
echo -e "${DGN}Using LAN Bridge: ${BGN}${LAN_BRG}${CL}"
|
echo -e "${MACADDRESS}${BOLD}${DGN}WAN MAC: ${BGN}${MAC}${CL}"
|
||||||
echo -e "${DGN}Using LAN VLAN: ${BGN}999${CL}"
|
echo -e "${MACADDRESS}${BOLD}${DGN}LAN MAC: ${BGN}${LAN_MAC}${CL}"
|
||||||
echo -e "${DGN}Using LAN IP Address: ${BGN}${LAN_IP_ADDR}${CL}"
|
|
||||||
echo -e "${DGN}Using LAN NETMASK: ${BGN}${LAN_NETMASK}${CL}"
|
|
||||||
echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}"
|
|
||||||
echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}"
|
|
||||||
echo -e "${BL}Creating a OpenWrt VM using the above default settings${CL}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function advanced_settings() {
|
function advanced_settings() {
|
||||||
@@ -328,6 +344,17 @@ function advanced_settings() {
|
|||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" \
|
||||||
|
--inputbox "Set Disk Size in GiB (e.g., 1, 2, 4)" 8 58 "1" \
|
||||||
|
--title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
||||||
|
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
||||||
|
DISK_SIZE="${DISK_SIZE}G"
|
||||||
|
fi
|
||||||
|
echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE}${CL}"
|
||||||
|
else
|
||||||
|
exit-script
|
||||||
|
fi
|
||||||
|
|
||||||
if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a WAN Bridge" 8 58 vmbr0 --title "WAN BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a WAN Bridge" 8 58 vmbr0 --title "WAN BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
||||||
if [ -z $BRG ]; then
|
if [ -z $BRG ]; then
|
||||||
BRG="vmbr0"
|
BRG="vmbr0"
|
||||||
@@ -491,47 +518,39 @@ response=$(curl -fsSL https://openwrt.org)
|
|||||||
stableversion=$(echo "$response" | sed -n 's/.*Current stable release - OpenWrt \([0-9.]\+\).*/\1/p' | head -n 1)
|
stableversion=$(echo "$response" | sed -n 's/.*Current stable release - OpenWrt \([0-9.]\+\).*/\1/p' | head -n 1)
|
||||||
URL="https://downloads.openwrt.org/releases/$stableversion/targets/x86/64/openwrt-$stableversion-x86-64-generic-ext4-combined.img.gz"
|
URL="https://downloads.openwrt.org/releases/$stableversion/targets/x86/64/openwrt-$stableversion-x86-64-generic-ext4-combined.img.gz"
|
||||||
|
|
||||||
sleep 2
|
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -f#SL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
FILE=$(basename "$URL")
|
||||||
FILE=$(basename $URL)
|
|
||||||
msg_ok "Downloaded ${CL}${BL}$FILE${CL}"
|
msg_ok "Downloaded ${CL}${BL}$FILE${CL}"
|
||||||
gunzip -f $FILE >/dev/null 2>/dev/null || true
|
|
||||||
NEWFILE="${FILE%.*}"
|
gunzip -f "$FILE" >/dev/null 2>&1 || true
|
||||||
FILE="$NEWFILE"
|
FILE="${FILE%.*}"
|
||||||
mv $FILE ${FILE%.*}
|
msg_ok "Extracted OpenWrt Disk Image ${CL}${BL}$FILE${CL}"
|
||||||
qemu-img resize -f raw ${FILE%.*} 512M >/dev/null 2>/dev/null
|
|
||||||
msg_ok "Extracted & Resized OpenWrt Disk Image ${CL}${BL}$FILE${CL}"
|
|
||||||
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
|
|
||||||
case $STORAGE_TYPE in
|
|
||||||
nfs | dir)
|
|
||||||
DISK_EXT=".qcow2"
|
|
||||||
DISK_REF="$VMID/"
|
|
||||||
DISK_IMPORT="-format qcow2"
|
|
||||||
;;
|
|
||||||
btrfs)
|
|
||||||
DISK_EXT=".raw"
|
|
||||||
DISK_REF="$VMID/"
|
|
||||||
DISK_IMPORT="-format raw"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
for i in {0,1}; do
|
|
||||||
disk="DISK$i"
|
|
||||||
eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-}
|
|
||||||
eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk}
|
|
||||||
done
|
|
||||||
|
|
||||||
msg_info "Creating OpenWrt VM"
|
msg_info "Creating OpenWrt VM"
|
||||||
qm create $VMID -cores $CORE_COUNT -memory $RAM_SIZE -name $HN \
|
qm create "$VMID" -cores "$CORE_COUNT" -memory "$RAM_SIZE" -name "$HN" \
|
||||||
-onboot 1 -ostype l26 -scsihw virtio-scsi-pci --tablet 0
|
-onboot 1 -ostype l26 -scsihw virtio-scsi-pci --tablet 0
|
||||||
pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null
|
pvesm alloc "$STORAGE" "$VMID" "vm-$VMID-disk-0" 4M >/dev/null
|
||||||
qm importdisk $VMID ${FILE%.*} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null
|
|
||||||
qm set $VMID \
|
IMPORT_OUT="$(qm importdisk "$VMID" "$FILE" "$STORAGE" --format raw 2>&1 || true)"
|
||||||
-efidisk0 ${DISK0_REF},efitype=4m,size=4M \
|
DISK_REF="$(printf '%s\n' "$IMPORT_OUT" | sed -n "s/.*successfully imported disk '\([^']\+\)'.*/\1/p")"
|
||||||
-scsi0 ${DISK1_REF},size=512M \
|
|
||||||
|
if [[ -z "$DISK_REF" ]]; then
|
||||||
|
DISK_REF="$(pvesm list "$STORAGE" | awk -v id="$VMID" '$1 ~ ("vm-"id"-disk-") {print $1}' | sort | tail -n1)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$DISK_REF" ]]; then
|
||||||
|
msg_error "Unable to determine imported disk reference."
|
||||||
|
echo "$IMPORT_OUT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
qm set "$VMID" \
|
||||||
|
-efidisk0 "${STORAGE}:0,efitype=4m,size=4M" \
|
||||||
|
-scsi0 "${DISK_REF},size=${DISK_SIZE}" \
|
||||||
-boot order=scsi0 \
|
-boot order=scsi0 \
|
||||||
-tags community-script >/dev/null
|
-tags community-script >/dev/null
|
||||||
|
msg_ok "Attached disk (${DISK_SIZE})"
|
||||||
|
|
||||||
DESCRIPTION=$(
|
DESCRIPTION=$(
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
@@ -570,36 +589,45 @@ msg_info "OpenWrt is being started in order to configure the network interfaces.
|
|||||||
qm start $VMID
|
qm start $VMID
|
||||||
sleep 15
|
sleep 15
|
||||||
msg_ok "Network interfaces are being configured as OpenWrt initiates."
|
msg_ok "Network interfaces are being configured as OpenWrt initiates."
|
||||||
send_line_to_vm ""
|
for _ in {1..30}; do
|
||||||
send_line_to_vm "uci delete network.@device[0]"
|
if qm status "$VMID" | grep -q "stopped"; then break; fi
|
||||||
send_line_to_vm "uci set network.wan=interface"
|
send_line_to_vm ""
|
||||||
send_line_to_vm "uci set network.wan.device=eth1"
|
send_line_to_vm "uci delete network.@device[0]"
|
||||||
send_line_to_vm "uci set network.wan.proto=dhcp"
|
send_line_to_vm "uci set network.wan=interface"
|
||||||
send_line_to_vm "uci delete network.lan"
|
send_line_to_vm "uci set network.wan.device=eth1"
|
||||||
send_line_to_vm "uci set network.lan=interface"
|
send_line_to_vm "uci set network.wan.proto=dhcp"
|
||||||
send_line_to_vm "uci set network.lan.device=eth0"
|
send_line_to_vm "uci delete network.lan"
|
||||||
send_line_to_vm "uci set network.lan.proto=static"
|
send_line_to_vm "uci set network.lan=interface"
|
||||||
send_line_to_vm "uci set network.lan.ipaddr=${LAN_IP_ADDR}"
|
send_line_to_vm "uci set network.lan.device=eth0"
|
||||||
send_line_to_vm "uci set network.lan.netmask=${LAN_NETMASK}"
|
send_line_to_vm "uci set network.lan.proto=static"
|
||||||
send_line_to_vm "uci commit"
|
send_line_to_vm "uci set network.lan.ipaddr=${LAN_IP_ADDR}"
|
||||||
send_line_to_vm "halt"
|
send_line_to_vm "uci set network.lan.netmask=${LAN_NETMASK}"
|
||||||
msg_ok "Network interfaces have been successfully configured."
|
send_line_to_vm "uci commit"
|
||||||
until qm status $VMID | grep -q "stopped"; do
|
send_line_to_vm "halt"
|
||||||
|
done
|
||||||
|
msg_ok "Network interfaces configured in OpenWrt"
|
||||||
|
|
||||||
|
msg_info "Waiting for OpenWrt to shut down..."
|
||||||
|
until qm status "$VMID" | grep -q "stopped"; do
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
msg_info "Bridge interfaces are being added."
|
msg_ok "OpenWrt has shut down"
|
||||||
qm set $VMID \
|
|
||||||
-net0 virtio,bridge=${LAN_BRG},macaddr=${LAN_MAC}${LAN_VLAN}${MTU} \
|
msg_info "Adding bridge interfaces on Proxmox side"
|
||||||
-net1 virtio,bridge=${BRG},macaddr=${MAC}${VLAN}${MTU} >/dev/null 2>/dev/null
|
qm set "$VMID" \
|
||||||
msg_ok "Bridge interfaces have been successfully added."
|
-net0 virtio,bridge="${LAN_BRG}",macaddr="${LAN_MAC}${LAN_VLAN}${MTU}" \
|
||||||
if [ "$START_VM" == "yes" ]; then
|
-net1 virtio,bridge="${BRG}",macaddr="${MAC}${VLAN}${MTU}" >/dev/null
|
||||||
|
msg_ok "Bridge interfaces added"
|
||||||
|
|
||||||
|
if [ "$START_VM" = "yes" ]; then
|
||||||
msg_info "Starting OpenWrt VM"
|
msg_info "Starting OpenWrt VM"
|
||||||
qm start $VMID
|
qm start "$VMID"
|
||||||
msg_ok "Started OpenWrt VM"
|
msg_ok "Started OpenWrt VM"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VLAN_FINISH=""
|
VLAN_FINISH=""
|
||||||
if [ "$VLAN" == "" ] && [ "$VLAN2" != "999" ]; then
|
if [ -z "$VLAN" ] && [ "$VLAN2" != "999" ]; then
|
||||||
VLAN_FINISH=" Please remember to adjust the VLAN tags to suit your network."
|
VLAN_FINISH=" Please remember to adjust the VLAN tags to suit your network."
|
||||||
fi
|
fi
|
||||||
post_update_to_api "done" "none"
|
post_update_to_api "done" "none"
|
||||||
msg_ok "Completed Successfully!\n${VLAN_FINISH}"
|
msg_ok "Completed Successfully!${VLAN_FINISH:+\n$VLAN_FINISH}"
|
||||||
@@ -201,6 +201,15 @@ function exit-script() {
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ensure_pv() {
|
||||||
|
if ! command -v pv &>/dev/null; then
|
||||||
|
msg_info "Installing required package: pv"
|
||||||
|
apt-get update -qq &>/dev/null
|
||||||
|
apt-get install -y pv &>/dev/null
|
||||||
|
msg_ok "Installed pv"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function default_settings() {
|
function default_settings() {
|
||||||
VMID=$(get_valid_nextid)
|
VMID=$(get_valid_nextid)
|
||||||
MACHINE="q35"
|
MACHINE="q35"
|
||||||
@@ -432,6 +441,7 @@ check_root
|
|||||||
arch_check
|
arch_check
|
||||||
pve_check
|
pve_check
|
||||||
ssh_check
|
ssh_check
|
||||||
|
ensure_pv
|
||||||
start_script
|
start_script
|
||||||
|
|
||||||
msg_info "Validating Storage"
|
msg_info "Validating Storage"
|
||||||
@@ -472,10 +482,6 @@ else
|
|||||||
msg_ok "Using cached Umbrel OS image"
|
msg_ok "Using cached Umbrel OS image"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v pv &>/dev/null; then
|
|
||||||
apt-get update -qq &>/dev/null && apt-get install -y pv &>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
qm create "$VMID" -machine q35 -bios ovmf -agent 1 -tablet 0 -localtime 1 ${CPU_TYPE} \
|
qm create "$VMID" -machine q35 -bios ovmf -agent 1 -tablet 0 -localtime 1 ${CPU_TYPE} \
|
||||||
-cores "$CORE_COUNT" -memory "$RAM_SIZE" -name "$HN" -tags community-script \
|
-cores "$CORE_COUNT" -memory "$RAM_SIZE" -name "$HN" -tags community-script \
|
||||||
|
|||||||
Reference in New Issue
Block a user