mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-09-13 07:10:51 +02:00
Compare commits
25 Commits
2025-07-29
...
2025-07-30
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d71c3efecd | ||
|
|
d366abe8e2 | ||
|
|
f76bb98d3d | ||
|
|
4bd360d31b | ||
|
|
27e095e1dd | ||
|
|
e98f6051e2 | ||
|
|
e4d0ac301d | ||
|
|
907be41752 | ||
|
|
af88ff3dd4 | ||
|
|
2c618f53ca | ||
|
|
16dbcac3a1 | ||
|
|
0ba9c9dff3 | ||
|
|
23573bfce9 | ||
|
|
9f1431b263 | ||
|
|
53beca39e8 | ||
|
|
2701308b45 | ||
|
|
f33c292c3e | ||
|
|
234b4e334e | ||
|
|
eada9f3ae8 | ||
|
|
fb8c44b753 | ||
|
|
4679d321a7 | ||
|
|
50345c631a | ||
|
|
2f61a2ffe2 | ||
|
|
e9240fb9b8 | ||
|
|
f77e7b626d |
22
CHANGELOG.md
22
CHANGELOG.md
@@ -10,8 +10,30 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-07-31
|
||||
|
||||
## 2025-07-30
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Strip SD and NS prefixes before writing to config file [@mattv8](https://github.com/mattv8) ([#6356](https://github.com/community-scripts/ProxmoxVE/pull/6356))
|
||||
- [core] fix: expand $CACHER_IP in apt-proxy-detect.sh (revert quoted heredoc) [@MickLesk](https://github.com/MickLesk) ([#6385](https://github.com/community-scripts/ProxmoxVE/pull/6385))
|
||||
- PiAlert: bugfix dependencies [@leiweibau](https://github.com/leiweibau) ([#6396](https://github.com/community-scripts/ProxmoxVE/pull/6396))
|
||||
- Librespeed-Rust: Fix service name and RELEASE var fetching [@tremor021](https://github.com/tremor021) ([#6378](https://github.com/community-scripts/ProxmoxVE/pull/6378))
|
||||
- n8n: add build-essential as dependency [@MickLesk](https://github.com/MickLesk) ([#6392](https://github.com/community-scripts/ProxmoxVE/pull/6392))
|
||||
- Habitica: Fix trusted domains [@tremor021](https://github.com/tremor021) ([#6380](https://github.com/community-scripts/ProxmoxVE/pull/6380))
|
||||
- Mafl: Fix undeclared var [@tremor021](https://github.com/tremor021) ([#6371](https://github.com/community-scripts/ProxmoxVE/pull/6371))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Lidarr [@tremor021](https://github.com/tremor021) ([#6379](https://github.com/community-scripts/ProxmoxVE/pull/6379))
|
||||
- Refactor: Kubo [@tremor021](https://github.com/tremor021) ([#6376](https://github.com/community-scripts/ProxmoxVE/pull/6376))
|
||||
- Refactor: Komga [@tremor021](https://github.com/tremor021) ([#6374](https://github.com/community-scripts/ProxmoxVE/pull/6374))
|
||||
- Refactor: Koillection [@tremor021](https://github.com/tremor021) ([#6373](https://github.com/community-scripts/ProxmoxVE/pull/6373))
|
||||
- Refactor: Karakeep [@tremor021](https://github.com/tremor021) ([#6372](https://github.com/community-scripts/ProxmoxVE/pull/6372))
|
||||
|
||||
## 2025-07-29
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
@@ -28,17 +28,18 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if [[ ! -f ~/.koillection ]] || [[ "${RELEASE}" != "$(cat ~/.koillection)" ]]; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop apache2
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt
|
||||
msg_info "Creating a backup"
|
||||
mv /opt/koillection/ /opt/koillection-backup
|
||||
curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip")
|
||||
$STD unzip "${RELEASE}.zip"
|
||||
mv "/opt/koillection-${RELEASE}" /opt/koillection
|
||||
msg_ok "Backup created"
|
||||
|
||||
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt/koillection
|
||||
cp -r /opt/koillection-backup/.env.local /opt/koillection
|
||||
cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
|
||||
@@ -50,7 +51,6 @@ function update_script() {
|
||||
$STD yarn install
|
||||
$STD yarn build
|
||||
chown -R www-data:www-data /opt/koillection/public/uploads
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
|
||||
msg_info "Starting Service"
|
||||
@@ -58,9 +58,9 @@ function update_script() {
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -r "/opt/${RELEASE}.zip"
|
||||
rm -r /opt/koillection-backup
|
||||
msg_ok "Cleaned"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
|
||||
14
ct/komga.sh
14
ct/komga.sh
@@ -27,23 +27,21 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating ${APP}"
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if [[ ! -f ~/.komga ]] || [[ "${RELEASE}" != "$(cat ~/.komga)" ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop komga
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
curl -fsSL "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar" -o $(basename "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar")
|
||||
rm -rf /opt/komga/komga.jar
|
||||
mv -f komga-${RELEASE}.jar /opt/komga/komga.jar
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
rm -f /opt/komga/komga.jar
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
|
||||
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start komga
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||
|
||||
27
ct/kubo.sh
27
ct/kubo.sh
@@ -23,21 +23,24 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /usr/local/kubo ]]; then
|
||||
if [[ ! -f /usr/local/kubo/ipfs ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://github.com/ipfs/kubo/releases/latest | grep "title>Release" | cut -d " " -f 4)
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
msg_info "Updating $APP LXC"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
curl -fsSL "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz" -o $(basename "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz")
|
||||
tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
|
||||
systemctl restart ipfs.service
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
rm "kubo_${RELEASE}_linux-amd64.tar.gz"
|
||||
msg_ok "Updated $APP LXC"
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/ipfs/kubo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.kubo)" ]] || [[ ! -f ~/.kubo ]]; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop ipfs
|
||||
msg_ok "Stopped service"
|
||||
|
||||
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-amd64.tar.gz"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start ipfs
|
||||
msg_ok "Service started"
|
||||
|
||||
msg_ok "Updated successfuly"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
|
||||
@@ -27,16 +27,17 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/')
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.librespeed 2>/dev/null)" ]] || [[ ! -f ~/.librespeed ]]; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop librespeed-rs
|
||||
systemctl stop librespeed_rs
|
||||
msg_ok "Services Stopped"
|
||||
|
||||
fetch_and_deploy_gh_release "librespeed-rust" "librespeed/speedtest-rust" "binary" "latest" "/opt/librespeed-rust" "librespeed-rs-x86_64-unknown-linux-gnu.deb"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start librespeed-rs
|
||||
systemctl start librespeed_rs
|
||||
msg_ok "Started Service"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
|
||||
29
ct/lidarr.sh
29
ct/lidarr.sh
@@ -29,19 +29,24 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating $APP LXC"
|
||||
temp_file="$(mktemp)"
|
||||
rm -rf /opt/Lidarr
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/Lidarr/Lidarr/releases/download/v${RELEASE}/Lidarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||
$STD tar -xvzf "$temp_file"
|
||||
mv Lidarr /opt
|
||||
chmod 775 /opt/Lidarr
|
||||
msg_ok "Updated $APP LXC"
|
||||
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
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "$temp_file"
|
||||
msg_ok "Cleaned up"
|
||||
msg_info "Stopping service"
|
||||
systemctl stop lidarr
|
||||
msg_ok "Service stopped"
|
||||
|
||||
fetch_and_deploy_gh_release "lidarr" "Lidarr/Lidarr" "prebuild" "latest" "/opt/Lidarr" "Lidarr.master*linux-core-x64.tar.gz"
|
||||
chmod 775 /opt/Lidarr
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start lidarr
|
||||
msg_ok "Service started"
|
||||
|
||||
msg_ok "Updated successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8686,
|
||||
"documentation": null,
|
||||
"documentation": "https://wiki.servarr.com/en/lidarr",
|
||||
"website": "https://lidarr.audio/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/lidarr.webp",
|
||||
"config_path": "",
|
||||
"config_path": "/var/lib/lidarr/config.xml",
|
||||
"description": "Lidarr is a music management tool designed for Usenet and BitTorrent users. It allows users to manage and organize their music collection with ease. Lidarr integrates with popular Usenet and BitTorrent clients, such as Sonarr and Radarr, to automate the downloading and organizing of music files. The software provides a web-based interface for managing and organizing music, making it easy to search and find songs, albums, and artists. Lidarr also supports metadata management, including album art, artist information, and lyrics, making it easy for users to keep their music collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing music collections, making it a valuable tool for music lovers who want to keep their collection organized and up-to-date. With Lidarr, users can enjoy their music collection from anywhere, making it a powerful tool for managing and sharing music files.",
|
||||
"install_methods": [
|
||||
{
|
||||
|
||||
@@ -1,18 +1,158 @@
|
||||
[
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "2025.7.29",
|
||||
"date": "2025-07-29T22:20:13Z"
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v0.7.18-beta",
|
||||
"date": "2025-07-30T21:26:00Z"
|
||||
},
|
||||
{
|
||||
"name": "benjaminjonard/koillection",
|
||||
"version": "1.6.17",
|
||||
"date": "2025-07-30T20:24:17Z"
|
||||
},
|
||||
{
|
||||
"name": "mongodb/mongo",
|
||||
"version": "r8.2.0-rc1",
|
||||
"date": "2025-07-29T20:59:27Z"
|
||||
"version": "r8.3.0-alpha0",
|
||||
"date": "2025-07-30T20:23:07Z"
|
||||
},
|
||||
{
|
||||
"name": "gristlabs/grist-core",
|
||||
"version": "v1.7.0",
|
||||
"date": "2025-07-30T20:19:50Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.16.0-beta6",
|
||||
"date": "2025-07-23T19:18:14Z"
|
||||
},
|
||||
{
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "2025.7.8",
|
||||
"date": "2025-07-30T18:17:51Z"
|
||||
},
|
||||
{
|
||||
"name": "oauth2-proxy/oauth2-proxy",
|
||||
"version": "v7.11.0",
|
||||
"date": "2025-07-30T18:16:38Z"
|
||||
},
|
||||
{
|
||||
"name": "leiweibau/Pi.Alert",
|
||||
"version": "v2025-07-30",
|
||||
"date": "2025-07-30T17:13:40Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.10.0-rc4",
|
||||
"date": "2025-07-29T23:41:25Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-arroy-becomes-hannoy-6",
|
||||
"date": "2025-07-30T15:24:55Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/core",
|
||||
"version": "2025.7.4",
|
||||
"date": "2025-07-28T08:15:50Z"
|
||||
},
|
||||
{
|
||||
"name": "zwave-js/zwave-js-ui",
|
||||
"version": "v11.0.0",
|
||||
"date": "2025-07-30T13:50:13Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/influxdb",
|
||||
"version": "v3.3.0",
|
||||
"date": "2025-07-29T20:49:38Z"
|
||||
"date": "2025-07-30T13:27:54Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.134.0",
|
||||
"date": "2025-07-15T13:43:39Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.2.21",
|
||||
"date": "2025-07-17T04:46:25Z"
|
||||
},
|
||||
{
|
||||
"name": "bunkerity/bunkerweb",
|
||||
"version": "v1.6.2",
|
||||
"date": "2025-07-08T13:52:33Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.6.11",
|
||||
"date": "2025-07-22T12:11:38Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.50.8",
|
||||
"date": "2025-07-30T11:33:00Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "create-fumadocs-app@15.6.7",
|
||||
"date": "2025-07-30T11:07:48Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "server/public/v0.1.16",
|
||||
"date": "2025-07-28T22:46:46Z"
|
||||
},
|
||||
{
|
||||
"name": "evcc-io/evcc",
|
||||
"version": "0.206.0",
|
||||
"date": "2025-07-30T09:39:42Z"
|
||||
},
|
||||
{
|
||||
"name": "dani-garcia/vaultwarden",
|
||||
"version": "1.34.3",
|
||||
"date": "2025-07-30T09:10:59Z"
|
||||
},
|
||||
{
|
||||
"name": "BookStackApp/BookStack",
|
||||
"version": "v25.07",
|
||||
"date": "2025-07-30T08:52:20Z"
|
||||
},
|
||||
{
|
||||
"name": "zabbix/zabbix",
|
||||
"version": "7.4.1",
|
||||
"date": "2025-07-30T08:43:04Z"
|
||||
},
|
||||
{
|
||||
"name": "wazuh/wazuh",
|
||||
"version": "coverity-w30-4.13.0",
|
||||
"date": "2025-07-18T12:05:26Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3-beta.10",
|
||||
"date": "2025-07-15T06:07:03Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.22.2208",
|
||||
"date": "2025-07-30T05:56:51Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.521",
|
||||
"date": "2025-07-30T03:38:59Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "docmost/docmost",
|
||||
"version": "v0.22.0",
|
||||
"date": "2025-07-30T00:09:03Z"
|
||||
},
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "2025.7.29",
|
||||
"date": "2025-07-29T22:20:13Z"
|
||||
},
|
||||
{
|
||||
"name": "netbox-community/netbox",
|
||||
@@ -29,11 +169,6 @@
|
||||
"version": "4.9.1.2",
|
||||
"date": "2025-06-26T22:08:00Z"
|
||||
},
|
||||
{
|
||||
"name": "bunkerity/bunkerweb",
|
||||
"version": "v1.6.2",
|
||||
"date": "2025-07-08T13:52:33Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.24.8",
|
||||
@@ -60,50 +195,20 @@
|
||||
"date": "2025-07-29T15:15:26Z"
|
||||
},
|
||||
{
|
||||
"name": "zwave-js/zwave-js-ui",
|
||||
"version": "v10.11.0",
|
||||
"date": "2025-07-29T14:06:44Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.521",
|
||||
"date": "2025-07-29T13:10:02Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-arroy-becomes-hannoy-4",
|
||||
"date": "2025-07-29T11:53:01Z"
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.3.2",
|
||||
"date": "2025-07-24T10:14:27Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/cassandra",
|
||||
"version": "5.0.5-tentative",
|
||||
"date": "2025-07-29T10:00:00Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3-beta.10",
|
||||
"date": "2025-07-15T06:07:03Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.22.2207",
|
||||
"date": "2025-07-29T05:57:09Z"
|
||||
},
|
||||
{
|
||||
"name": "rogerfar/rdt-client",
|
||||
"version": "v2.0.115",
|
||||
"date": "2025-07-29T04:38:35Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "server/public/v0.1.16",
|
||||
"date": "2025-07-28T22:46:46Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.1.8",
|
||||
@@ -124,16 +229,6 @@
|
||||
"version": "v0.58.0",
|
||||
"date": "2025-07-28T18:59:50Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.10.0-rc2",
|
||||
"date": "2025-07-25T21:24:06Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.3.2",
|
||||
"date": "2025-07-24T10:14:27Z"
|
||||
},
|
||||
{
|
||||
"name": "AdguardTeam/AdGuardHome",
|
||||
"version": "v0.107.64",
|
||||
@@ -174,11 +269,6 @@
|
||||
"version": "v2.3.0p35",
|
||||
"date": "2025-07-28T08:32:54Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/core",
|
||||
"version": "2025.7.4",
|
||||
"date": "2025-07-28T08:15:50Z"
|
||||
},
|
||||
{
|
||||
"name": "PrivateBin/PrivateBin",
|
||||
"version": "2.0.0",
|
||||
@@ -189,11 +279,6 @@
|
||||
"version": "2025.7.4",
|
||||
"date": "2025-07-28T07:33:36Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.2.21",
|
||||
"date": "2025-07-17T04:46:25Z"
|
||||
},
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v12.0.2",
|
||||
@@ -214,16 +299,6 @@
|
||||
"version": "v1.18.4",
|
||||
"date": "2025-06-25T00:06:56Z"
|
||||
},
|
||||
{
|
||||
"name": "dani-garcia/vaultwarden",
|
||||
"version": "1.34.2",
|
||||
"date": "2025-07-27T18:49:05Z"
|
||||
},
|
||||
{
|
||||
"name": "benjaminjonard/koillection",
|
||||
"version": "1.6.16",
|
||||
"date": "2025-07-27T14:48:37Z"
|
||||
},
|
||||
{
|
||||
"name": "project-zot/zot",
|
||||
"version": "v2.1.6",
|
||||
@@ -244,11 +319,6 @@
|
||||
"version": "v0.12.1",
|
||||
"date": "2025-07-25T23:53:12Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v0.7.17-beta",
|
||||
"date": "2025-07-25T22:03:43Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.30.1",
|
||||
@@ -259,11 +329,6 @@
|
||||
"version": "v0.15.0-rc4",
|
||||
"date": "2025-07-25T16:50:34Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-openapi@9.1.5",
|
||||
"date": "2025-07-25T16:20:20Z"
|
||||
},
|
||||
{
|
||||
"name": "emqx/emqx",
|
||||
"version": "e6.0.0-M2.202508-alpha.1",
|
||||
@@ -304,11 +369,6 @@
|
||||
"version": "v2.39.1",
|
||||
"date": "2025-07-24T17:02:01Z"
|
||||
},
|
||||
{
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "2025.7.7",
|
||||
"date": "2025-07-24T16:44:19Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v1.136.0",
|
||||
@@ -344,11 +404,6 @@
|
||||
"version": "v12.1.0",
|
||||
"date": "2025-07-23T19:35:52Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.16.0-beta6",
|
||||
"date": "2025-07-23T19:18:14Z"
|
||||
},
|
||||
{
|
||||
"name": "fallenbagel/jellyseerr",
|
||||
"version": "preview-plex-home-profile",
|
||||
@@ -369,16 +424,16 @@
|
||||
"version": "v1.37.0.5076",
|
||||
"date": "2025-06-04T11:04:53Z"
|
||||
},
|
||||
{
|
||||
"name": "zabbix/zabbix",
|
||||
"version": "7.4.1rc1",
|
||||
"date": "2025-07-23T11:54:39Z"
|
||||
},
|
||||
{
|
||||
"name": "cockpit-project/cockpit",
|
||||
"version": "343",
|
||||
"date": "2025-07-23T11:21:34Z"
|
||||
},
|
||||
{
|
||||
"name": "neo4j/neo4j",
|
||||
"version": "2025.07.0",
|
||||
"date": "2025-07-23T10:13:43Z"
|
||||
},
|
||||
{
|
||||
"name": "jhuckaby/Cronicle",
|
||||
"version": "v0.9.85",
|
||||
@@ -409,21 +464,11 @@
|
||||
"version": "v0.7.3",
|
||||
"date": "2025-07-22T14:39:54Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.134.0",
|
||||
"date": "2025-07-15T13:43:39Z"
|
||||
},
|
||||
{
|
||||
"name": "goauthentik/authentik",
|
||||
"version": "version/2025.4.4",
|
||||
"date": "2025-07-22T13:08:15Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.6.11",
|
||||
"date": "2025-07-22T12:11:38Z"
|
||||
},
|
||||
{
|
||||
"name": "lazy-media/Reactive-Resume",
|
||||
"version": "v1.2.2",
|
||||
@@ -514,11 +559,6 @@
|
||||
"version": "v0.29.0",
|
||||
"date": "2025-07-19T08:54:54Z"
|
||||
},
|
||||
{
|
||||
"name": "wazuh/wazuh",
|
||||
"version": "coverity-w30-4.13.0",
|
||||
"date": "2025-07-18T12:05:26Z"
|
||||
},
|
||||
{
|
||||
"name": "cross-seed/cross-seed",
|
||||
"version": "v6.13.1",
|
||||
@@ -534,11 +574,6 @@
|
||||
"version": "2.0.7",
|
||||
"date": "2025-07-17T15:33:14Z"
|
||||
},
|
||||
{
|
||||
"name": "oauth2-proxy/oauth2-proxy",
|
||||
"version": "v7.10.0",
|
||||
"date": "2025-07-17T12:08:40Z"
|
||||
},
|
||||
{
|
||||
"name": "icereed/paperless-gpt",
|
||||
"version": "v0.22.0",
|
||||
@@ -574,11 +609,6 @@
|
||||
"version": "6.8.2",
|
||||
"date": "2025-07-15T15:14:16Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.50.7",
|
||||
"date": "2025-07-15T11:29:29Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudreve/cloudreve",
|
||||
"version": "4.3.0",
|
||||
@@ -619,11 +649,6 @@
|
||||
"version": "1.3.11",
|
||||
"date": "2025-07-13T13:33:48Z"
|
||||
},
|
||||
{
|
||||
"name": "evcc-io/evcc",
|
||||
"version": "0.205.0",
|
||||
"date": "2025-07-13T12:27:31Z"
|
||||
},
|
||||
{
|
||||
"name": "authelia/authelia",
|
||||
"version": "v4.39.5",
|
||||
@@ -639,21 +664,11 @@
|
||||
"version": "v10.10.7",
|
||||
"date": "2025-04-05T19:14:59Z"
|
||||
},
|
||||
{
|
||||
"name": "leiweibau/Pi.Alert",
|
||||
"version": "v2025-07-12",
|
||||
"date": "2025-07-12T07:53:52Z"
|
||||
},
|
||||
{
|
||||
"name": "eclipse-mosquitto/mosquitto",
|
||||
"version": "v2.0.22",
|
||||
"date": "2025-07-11T21:34:20Z"
|
||||
},
|
||||
{
|
||||
"name": "neo4j/neo4j",
|
||||
"version": "2025.06.2",
|
||||
"date": "2025-07-11T18:03:51Z"
|
||||
},
|
||||
{
|
||||
"name": "FlowiseAI/Flowise",
|
||||
"version": "flowise@3.0.4",
|
||||
@@ -729,11 +744,6 @@
|
||||
"version": "v6.8.1",
|
||||
"date": "2025-07-07T14:40:11Z"
|
||||
},
|
||||
{
|
||||
"name": "BookStackApp/BookStack",
|
||||
"version": "v25.05.2",
|
||||
"date": "2025-07-07T14:08:25Z"
|
||||
},
|
||||
{
|
||||
"name": "slskd/slskd",
|
||||
"version": "0.23.1",
|
||||
@@ -839,11 +849,6 @@
|
||||
"version": "v1.3.8",
|
||||
"date": "2025-06-29T07:41:53Z"
|
||||
},
|
||||
{
|
||||
"name": "gristlabs/grist-core",
|
||||
"version": "v1.6.1",
|
||||
"date": "2025-06-25T21:19:25Z"
|
||||
},
|
||||
{
|
||||
"name": "arunavo4/gitea-mirror",
|
||||
"version": "v2.18.0",
|
||||
@@ -884,11 +889,6 @@
|
||||
"version": "v3.5.5",
|
||||
"date": "2025-06-19T05:43:47Z"
|
||||
},
|
||||
{
|
||||
"name": "docmost/docmost",
|
||||
"version": "v0.21.0",
|
||||
"date": "2025-06-18T21:43:27Z"
|
||||
},
|
||||
{
|
||||
"name": "pterodactyl/panel",
|
||||
"version": "v1.11.11",
|
||||
|
||||
@@ -26,10 +26,12 @@ NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha,npm@10" setup_nodejs
|
||||
fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
|
||||
|
||||
msg_info "Setup ${APPLICATION}"
|
||||
IPADDRESS=$(hostname -I | awk '{print $1}')
|
||||
cd /opt/habitica
|
||||
$STD npm i
|
||||
$STD npm run postinstall
|
||||
cp config.json.example config.json
|
||||
sed -i "s/\"TRUSTED_DOMAINS\": \"/&http:\/\/$IPADDRESS:3000,/" config.json
|
||||
$STD npm run client:build
|
||||
$STD gulp build:prod
|
||||
|
||||
|
||||
@@ -15,28 +15,20 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
g++ \
|
||||
build-essential \
|
||||
git \
|
||||
ca-certificates \
|
||||
chromium/stable \
|
||||
chromium-common/stable \
|
||||
graphicsmagick \
|
||||
ghostscript \
|
||||
jq
|
||||
ghostscript
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Additional Tools"
|
||||
curl -fsSL "https://github.com/Y2Z/monolith/releases/latest/download/monolith-gnu-linux-x86_64" -o "/usr/bin/monolith"
|
||||
chmod +x /usr/bin/monolith
|
||||
curl -fsSL "https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest/download/yt-dlp_linux" -o "/usr/bin/yt-dlp"
|
||||
chmod +x /usr/bin/yt-dlp
|
||||
msg_ok "Installed Additional Tools"
|
||||
fetch_and_deploy_gh_release "monolith" "Y2Z/monolith" "singlefile" "latest" "/usr/bin" "monolith-gnu-linux-x86_64"
|
||||
fetch_and_deploy_gh_release "yt-dlp" "yt-dlp/yt-dlp-nightly-builds" "singlefile" "latest" "/usr/bin" "yt-dlp_linux"
|
||||
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
|
||||
|
||||
msg_info "Installing Meilisearch"
|
||||
cd /tmp
|
||||
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
|
||||
$STD dpkg -i meilisearch.deb
|
||||
msg_info "Configuring Meilisearch"
|
||||
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
|
||||
MASTER_KEY=$(openssl rand -base64 12)
|
||||
sed -i \
|
||||
@@ -47,7 +39,7 @@ sed -i \
|
||||
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
|
||||
-e 's|^# no_analytics = true|no_analytics = true|' \
|
||||
/etc/meilisearch.toml
|
||||
msg_ok "Installed Meilisearch"
|
||||
msg_ok "Configured Meilisearch"
|
||||
|
||||
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
|
||||
cd /opt/karakeep
|
||||
@@ -185,7 +177,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /tmp/meilisearch.deb
|
||||
$STD apt-get autoremove -y
|
||||
$STD apt-get autoclean -y
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,29 +13,10 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
apache2 \
|
||||
lsb-release
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setup PHP8.4 Repository"
|
||||
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||
$STD apt-get update
|
||||
msg_ok "Setup PHP8.4 Repository"
|
||||
|
||||
msg_info "Setup PHP"
|
||||
$STD apt-get install -y \
|
||||
php8.4 \
|
||||
php8.4-{apcu,ctype,curl,dom,fileinfo,gd,iconv,intl,mbstring,pgsql} \
|
||||
libapache2-mod-php8.4 \
|
||||
composer
|
||||
msg_info "Setup PHP"
|
||||
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="apcu,ctype,dom,fileinfo,iconv,pgsql" setup_php
|
||||
setup_composer
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME=koillection
|
||||
@@ -51,12 +32,9 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
|
||||
} >>~/koillection.creds
|
||||
msg_ok "Set up PostgreSQL"
|
||||
|
||||
msg_info "Installing Koillection"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o "/opt/${RELEASE}.zip"
|
||||
$STD unzip "${RELEASE}.zip"
|
||||
mv "/opt/koillection-${RELEASE}" /opt/koillection
|
||||
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
|
||||
|
||||
msg_info "Configuring Koillection"
|
||||
cd /opt/koillection
|
||||
cp /opt/koillection/.env /opt/koillection/.env.local
|
||||
APP_SECRET=$(openssl rand -base64 32)
|
||||
@@ -76,7 +54,7 @@ $STD yarn install
|
||||
$STD yarn build
|
||||
chown -R www-data:www-data /opt/koillection/public/uploads
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed Koillection"
|
||||
msg_ok "Configured Koillection"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/apache2/sites-available/koillection.conf
|
||||
@@ -107,7 +85,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "/opt/${RELEASE}.zip"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,17 +13,9 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y openjdk-17-jre
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Komga"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar" -o "komga-${RELEASE}.jar"
|
||||
mkdir -p /opt/komga
|
||||
mv -f komga-${RELEASE}.jar /opt/komga/komga.jar
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Installed Komga"
|
||||
JAVA_VERSION="21" setup_java
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
|
||||
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/komga.service
|
||||
@@ -42,7 +34,7 @@ Restart=on-failure
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable --now -q komga
|
||||
systemctl enable -q --now komga
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -14,10 +14,9 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing IPFS"
|
||||
RELEASE=$(curl -fsSL https://github.com/ipfs/kubo/releases/latest | grep "title>Release" | cut -d " " -f 4)
|
||||
$STD curl -fsSL "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz" -o "kubo_${RELEASE}_linux-amd64.tar.gz"
|
||||
tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
|
||||
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-amd64.tar.gz"
|
||||
|
||||
msg_info "Configuring IPFS"
|
||||
$STD ln -s /usr/local/kubo/ipfs /usr/local/bin/ipfs
|
||||
$STD ipfs init
|
||||
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
|
||||
@@ -25,9 +24,7 @@ ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
|
||||
LXCIP=$(hostname -I | awk '{print $1}')
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"http://${LXCIP}:5001\", \"http://localhost:3000\", \"http://127.0.0.1:5001\", \"https://webui.ipfs.io\", \"http://0.0.0.0:5001\"]"
|
||||
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
$STD rm "kubo_${RELEASE}_linux-amd64.tar.gz"
|
||||
msg_ok "Installed IPFS"
|
||||
msg_ok "Configured IPFS"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/ipfs.service
|
||||
@@ -43,7 +40,7 @@ Environment=HOME=/root
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable --now -q ipfs.service
|
||||
systemctl enable -q --now ipfs
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -16,7 +16,7 @@ update_os
|
||||
fetch_and_deploy_gh_release "librespeed-rust" "librespeed/speedtest-rust" "binary" "latest" "/opt/librespeed-rust" "librespeed-rs-x86_64-unknown-linux-gnu.deb"
|
||||
|
||||
msg_info "Enabling Service"
|
||||
systemctl enable -q --now speedtest_rs.service
|
||||
systemctl enable -q --now speedtest_rs
|
||||
msg_ok "Enabled Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -20,22 +20,20 @@ $STD apt-get install -y \
|
||||
mediainfo
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Lidarr"
|
||||
temp_file="$(mktemp)"
|
||||
fetch_and_deploy_gh_release "lidarr" "Lidarr/Lidarr" "prebuild" "latest" "/opt/Lidarr" "Lidarr.master*linux-core-x64.tar.gz"
|
||||
|
||||
msg_info "Configuring Lidarr"
|
||||
mkdir -p /var/lib/lidarr/
|
||||
chmod 775 /var/lib/lidarr/
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/Lidarr/Lidarr/releases/download/v${RELEASE}/Lidarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||
$STD tar -xvzf "$temp_file"
|
||||
mv Lidarr /opt
|
||||
chmod 775 /opt/Lidarr
|
||||
msg_ok "Installed Lidarr"
|
||||
msg_ok "Configured Lidarr"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/lidarr.service
|
||||
[Unit]
|
||||
Description=Lidarr Daemon
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
UMask=0002
|
||||
Type=simple
|
||||
@@ -43,6 +41,7 @@ ExecStart=/opt/Lidarr/Lidarr -nobrowser -data=/var/lib/lidarr/
|
||||
TimeoutStopSec=20
|
||||
KillMode=process
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
@@ -53,7 +52,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "$temp_file"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -22,14 +22,14 @@ msg_ok "Installed Dependencies"
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
fetch_and_deploy_gh_release "mafl" "hywax/mafl"
|
||||
|
||||
msg_info "Installing Mafl v${RELEASE}"
|
||||
msg_info "Installing Mafl"
|
||||
mkdir -p /opt/mafl/data
|
||||
curl -fsSL "https://raw.githubusercontent.com/hywax/mafl/main/.example/config.yml" -o "/opt/mafl/data/config.yml"
|
||||
cd /opt/mafl
|
||||
export NUXT_TELEMETRY_DISABLED=true
|
||||
$STD yarn install
|
||||
$STD yarn build
|
||||
msg_ok "Installed Mafl v${RELEASE}"
|
||||
msg_ok "Installed Mafl"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/mafl.service
|
||||
|
||||
@@ -14,7 +14,9 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y ca-certificates
|
||||
$STD apt-get install -y \
|
||||
ca-certificates \
|
||||
build-essential
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
@@ -52,7 +52,6 @@ $STD apt-get -y install \
|
||||
python3-tz \
|
||||
python3-tzlocal \
|
||||
python3-aiohttp \
|
||||
python3-paho-mqtt \
|
||||
python3-cryptography
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
$STD pip3 install mac-vendor-lookup
|
||||
@@ -61,6 +60,7 @@ $STD pip3 install cryptography
|
||||
$STD pip3 install pyunifi
|
||||
$STD pip3 install openwrt-luci-rpc
|
||||
$STD pip3 install asusrouter
|
||||
$STD pip3 install paho-mqtt
|
||||
msg_ok "Installed Python Dependencies"
|
||||
|
||||
msg_info "Installing Pi.Alert"
|
||||
|
||||
@@ -250,6 +250,17 @@ write_config() {
|
||||
if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "Write configfile" --yesno "Do you want to write the selections to a config file?" 10 60; then
|
||||
FILEPATH="/opt/community-scripts/${NSAPP}.conf"
|
||||
[[ "$GATE" =~ ",gw=" ]] && local GATE="${GATE##,gw=}"
|
||||
|
||||
# Strip prefixes from parameters for config file storage
|
||||
local SD_VALUE="${SD}"
|
||||
local NS_VALUE="${NS}"
|
||||
local MAC_VALUE="${MAC}"
|
||||
local VLAN_VALUE="${VLAN}"
|
||||
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
|
||||
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
|
||||
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
|
||||
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
|
||||
|
||||
if [[ ! -f $FILEPATH ]]; then
|
||||
cat <<EOF >"$FILEPATH"
|
||||
# ${NSAPP} Configuration File
|
||||
@@ -272,10 +283,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
|
||||
GATE="${GATE:-none}"
|
||||
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
||||
MTU="${MTU:-1500}"
|
||||
SD="${SD:-none}"
|
||||
NS="${NS:-none}"
|
||||
MAC="${MAC:-none}"
|
||||
VLAN="${VLAN:-none}"
|
||||
SD="${SD_VALUE:-none}"
|
||||
NS="${NS_VALUE:-none}"
|
||||
MAC="${MAC_VALUE:-none}"
|
||||
VLAN="${VLAN_VALUE:-none}"
|
||||
SSH="${SSH}"
|
||||
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
||||
TAGS="${TAGS:-none}"
|
||||
@@ -310,10 +321,10 @@ IPV6_METHOD="${IPV6_METHOD:-none}"
|
||||
GATE="${GATE:-none}"
|
||||
APT_CACHER_IP="${APT_CACHER_IP:-none}"
|
||||
MTU="${MTU:-1500}"
|
||||
SD="${SD:-none}"
|
||||
NS="${NS:-none}"
|
||||
MAC="${MAC:-none}"
|
||||
VLAN="${VLAN:-none}"
|
||||
SD="${SD_VALUE:-none}"
|
||||
NS="${NS_VALUE:-none}"
|
||||
MAC="${MAC_VALUE:-none}"
|
||||
VLAN="${VLAN_VALUE:-none}"
|
||||
SSH="${SSH}"
|
||||
SSH_AUTHORIZED_KEY="${SSH_AUTHORIZED_KEY}"
|
||||
TAGS="${TAGS:-none}"
|
||||
@@ -807,7 +818,36 @@ advanced_settings() {
|
||||
|
||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create ${APP} LXC?" 10 58); then
|
||||
echo -e "${CREATING}${BOLD}${RD}Creating a ${APP} LXC using the above advanced settings${CL}"
|
||||
|
||||
# Strip prefixes from DNS parameters for config file storage
|
||||
local SD_VALUE="$SD"
|
||||
local NS_VALUE="$NS"
|
||||
local MAC_VALUE="$MAC"
|
||||
local VLAN_VALUE="$VLAN"
|
||||
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
|
||||
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
|
||||
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
|
||||
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
|
||||
|
||||
# Temporarily store original values
|
||||
local SD_ORIG="$SD"
|
||||
local NS_ORIG="$NS"
|
||||
local MAC_ORIG="$MAC"
|
||||
local VLAN_ORIG="$VLAN"
|
||||
|
||||
# Set clean values for config file writing
|
||||
SD="$SD_VALUE"
|
||||
NS="$NS_VALUE"
|
||||
MAC="$MAC_VALUE"
|
||||
VLAN="$VLAN_VALUE"
|
||||
|
||||
write_config
|
||||
|
||||
# Restore original formatted values for container creation
|
||||
SD="$SD_ORIG"
|
||||
NS="$NS_ORIG"
|
||||
MAC="$MAC_ORIG"
|
||||
VLAN="$VLAN_ORIG"
|
||||
else
|
||||
clear
|
||||
header_info
|
||||
|
||||
@@ -469,8 +469,11 @@ config_file() {
|
||||
SD=""
|
||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}Host${CL}"
|
||||
else
|
||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD${CL}"
|
||||
SD="-searchdomain=$SD"
|
||||
# Strip prefix if present for config file storage
|
||||
local SD_VALUE="$SD"
|
||||
[[ "$SD" =~ ^-searchdomain= ]] && SD_VALUE="${SD#-searchdomain=}"
|
||||
echo -e "${SEARCH}${BOLD}${DGN}DNS Search Domain: ${BGN}$SD_VALUE${CL}"
|
||||
SD="-searchdomain=$SD_VALUE"
|
||||
fi
|
||||
else
|
||||
if SD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a DNS Search Domain (leave blank for HOST)" 8 58 --title "DNS Search Domain" 3>&1 1>&2 2>&3); then
|
||||
@@ -492,11 +495,14 @@ config_file() {
|
||||
NS=""
|
||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}Host${CL}"
|
||||
else
|
||||
if [[ "$NS" =~ $ip_regex ]]; then
|
||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS${CL}"
|
||||
NS="-nameserver=$NS"
|
||||
# Strip prefix if present for config file storage
|
||||
local NS_VALUE="$NS"
|
||||
[[ "$NS" =~ ^-nameserver= ]] && NS_VALUE="${NS#-nameserver=}"
|
||||
if [[ "$NS_VALUE" =~ $ip_regex ]]; then
|
||||
echo -e "${NETWORK}${BOLD}${DGN}DNS Server IP Address: ${BGN}$NS_VALUE${CL}"
|
||||
NS="-nameserver=$NS_VALUE"
|
||||
else
|
||||
msg_error "Invalid IP Address format for DNS Server. Needs to be 0.0.0.0, was ${NS}"
|
||||
msg_error "Invalid IP Address format for DNS Server. Needs to be 0.0.0.0, was ${NS_VALUE}"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
@@ -519,11 +525,14 @@ config_file() {
|
||||
MAC=""
|
||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}Host${CL}"
|
||||
else
|
||||
if [[ "$MAC" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
|
||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}"
|
||||
MAC=",hwaddr=$MAC"
|
||||
# Strip prefix if present for config file storage
|
||||
local MAC_VALUE="$MAC"
|
||||
[[ "$MAC" =~ ^,hwaddr= ]] && MAC_VALUE="${MAC#,hwaddr=}"
|
||||
if [[ "$MAC_VALUE" =~ ^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$ ]]; then
|
||||
echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC_VALUE${CL}"
|
||||
MAC=",hwaddr=$MAC_VALUE"
|
||||
else
|
||||
msg_error "MAC Address must be in the format xx:xx:xx:xx:xx:xx, was ${MAC}"
|
||||
msg_error "MAC Address must be in the format xx:xx:xx:xx:xx:xx, was ${MAC_VALUE}"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
@@ -546,11 +555,14 @@ config_file() {
|
||||
VLAN=""
|
||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}Host${CL}"
|
||||
else
|
||||
if [[ "$VLAN" =~ ^-?[0-9]+$ ]]; then
|
||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN${CL}"
|
||||
VLAN=",tag=$VLAN"
|
||||
# Strip prefix if present for config file storage
|
||||
local VLAN_VALUE="$VLAN"
|
||||
[[ "$VLAN" =~ ^,tag= ]] && VLAN_VALUE="${VLAN#,tag=}"
|
||||
if [[ "$VLAN_VALUE" =~ ^-?[0-9]+$ ]]; then
|
||||
echo -e "${VLANTAG}${BOLD}${DGN}Vlan: ${BGN}$VLAN_VALUE${CL}"
|
||||
VLAN=",tag=$VLAN_VALUE"
|
||||
else
|
||||
msg_error "VLAN must be an integer, was ${VLAN}"
|
||||
msg_error "VLAN must be an integer, was ${VLAN_VALUE}"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -131,8 +131,8 @@ network_check() {
|
||||
update_os() {
|
||||
msg_info "Updating Container OS"
|
||||
if [[ "$CACHER" == "yes" ]]; then
|
||||
echo "Acquire::http::Proxy-Auto-Detect \"/usr/local/bin/apt-proxy-detect.sh\";" >/etc/apt/apt.conf.d/00aptproxy
|
||||
cat <<'EOF' >/usr/local/bin/apt-proxy-detect.sh
|
||||
echo 'Acquire::http::Proxy-Auto-Detect "/usr/local/bin/apt-proxy-detect.sh";' >/etc/apt/apt.conf.d/00aptproxy
|
||||
cat <<EOF >/usr/local/bin/apt-proxy-detect.sh
|
||||
#!/bin/bash
|
||||
if nc -w1 -z "${CACHER_IP}" 3142; then
|
||||
echo -n "http://${CACHER_IP}:3142"
|
||||
|
||||
Reference in New Issue
Block a user