mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-21 13:05:16 +00:00
Compare commits
8 Commits
MickLesk-p
...
ipv6_impro
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
62c17c1410 | ||
|
|
636b0d3afd | ||
|
|
36acad3b25 | ||
|
|
00060740d9 | ||
|
|
4a5f7ab855 | ||
|
|
dd8bb6f42b | ||
|
|
9879cb4b69 | ||
|
|
264a29980c |
@@ -10,6 +10,8 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-11-21
|
||||
|
||||
## 2025-11-20
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
@@ -20,6 +22,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Immich v2.3.1: OpenVINO tuning, OCR fixes, Maintenance mode, workflows/plugin framework [@vhsdream](https://github.com/vhsdream) ([#9310](https://github.com/community-scripts/ProxmoxVE/pull/9310))
|
||||
- kasm: add: update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#9253](https://github.com/community-scripts/ProxmoxVE/pull/9253))
|
||||
- tools/pve: expand PVE support to 9.0–9.1 (post-install & netdata) [@MickLesk](https://github.com/MickLesk) ([#9298](https://github.com/community-scripts/ProxmoxVE/pull/9298))
|
||||
|
||||
|
||||
29
ct/immich.sh
29
ct/immich.sh
@@ -61,6 +61,15 @@ EOF
|
||||
msg_ok "Installed libmimalloc3"
|
||||
fi
|
||||
|
||||
if [[ ! -f /etc/apt/sources.list.d/mise.list ]]; then
|
||||
msg_info "Installing Mise"
|
||||
curl -fSs https://mise.jdx.dev/gpg-key.pub | tee /etc/apt/keyrings/mise-archive-keyring.pub 1>/dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.pub arch=amd64] https://mise.jdx.dev/deb stable main" | tee /etc/apt/sources.list.d/mise.list
|
||||
$STD apt update
|
||||
$STD apt install -y mise
|
||||
msg_ok "Installed Mise"
|
||||
fi
|
||||
|
||||
STAGING_DIR=/opt/staging
|
||||
BASE_DIR=${STAGING_DIR}/base-images
|
||||
SOURCE_DIR=${STAGING_DIR}/image-source
|
||||
@@ -93,7 +102,7 @@ EOF
|
||||
msg_ok "Image-processing libraries up to date"
|
||||
fi
|
||||
|
||||
RELEASE="2.2.3"
|
||||
RELEASE="2.3.1"
|
||||
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop immich-web
|
||||
@@ -121,6 +130,7 @@ EOF
|
||||
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
|
||||
SRC_DIR="${INSTALL_DIR}/source"
|
||||
APP_DIR="${INSTALL_DIR}/app"
|
||||
PLUGIN_DIR="${APP_DIR}/corePlugin"
|
||||
ML_DIR="${APP_DIR}/machine-learning"
|
||||
GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
|
||||
@@ -145,9 +155,7 @@ EOF
|
||||
rm -rf "${APP_DIR:?}"/*
|
||||
)
|
||||
|
||||
rm -rf "$SRC_DIR"
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
|
||||
|
||||
msg_info "Updating ${APP} web and microservices"
|
||||
cd "$SRC_DIR"/server
|
||||
@@ -180,7 +188,18 @@ EOF
|
||||
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
|
||||
cd "$APP_DIR"
|
||||
mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
|
||||
msg_ok "Updated ${APP} web and microservices"
|
||||
|
||||
# plugins
|
||||
cd "$SRC_DIR"
|
||||
$STD mise trust --ignore ./mise.toml
|
||||
$STD mise trust ./plugins/mise.toml
|
||||
cd plugins
|
||||
$STD mise install
|
||||
$STD mise run build
|
||||
mkdir -p "$PLUGIN_DIR"
|
||||
cp -r ./dist "$PLUGIN_DIR"/dist
|
||||
cp ./manifest.json "$PLUGIN_DIR"
|
||||
msg_ok "Updated ${APP} server, web, cli and plugins"
|
||||
|
||||
cd "$SRC_DIR"/machine-learning
|
||||
mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"privileged": false,
|
||||
"interface_port": 8080,
|
||||
"documentation": null,
|
||||
"website": "https://filebrowser.org/features",
|
||||
"website": "https://filebrowser.org/index.html#features",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/file-browser.webp",
|
||||
"config_path": "",
|
||||
"description": "File Browser offers a user-friendly web interface for managing files within a designated directory. It allows you to perform various actions such as uploading, deleting, previewing, renaming, and editing files.",
|
||||
|
||||
@@ -1,4 +1,59 @@
|
||||
[
|
||||
{
|
||||
"name": "TasmoAdmin/TasmoAdmin",
|
||||
"version": "v4.3.2",
|
||||
"date": "2025-10-18T12:11:00Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v4.32.2",
|
||||
"date": "2025-11-20T22:25:40Z"
|
||||
},
|
||||
{
|
||||
"name": "project-zot/zot",
|
||||
"version": "v2.1.11",
|
||||
"date": "2025-11-20T20:14:44Z"
|
||||
},
|
||||
{
|
||||
"name": "readeck/readeck",
|
||||
"version": "0.21.0",
|
||||
"date": "2025-11-20T18:35:59Z"
|
||||
},
|
||||
{
|
||||
"name": "saltstack/salt",
|
||||
"version": "v3007.9",
|
||||
"date": "2025-11-20T17:58:32Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.30.12",
|
||||
"date": "2025-11-20T16:13:19Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-v1.26.0.arm-native-docker-build-1",
|
||||
"date": "2025-11-20T15:38:39Z"
|
||||
},
|
||||
{
|
||||
"name": "duplicati/duplicati",
|
||||
"version": "v2.2.0.101-2.2.0.101_canary_2025-11-20",
|
||||
"date": "2025-11-20T14:50:45Z"
|
||||
},
|
||||
{
|
||||
"name": "NodeBB/NodeBB",
|
||||
"version": "v4.6.3",
|
||||
"date": "2025-11-20T14:13:22Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.120.4",
|
||||
"date": "2025-11-19T12:57:55Z"
|
||||
},
|
||||
{
|
||||
"name": "SigNoz/signoz",
|
||||
"version": "v0.102.1",
|
||||
"date": "2025-11-20T12:20:18Z"
|
||||
},
|
||||
{
|
||||
"name": "kimai/kimai",
|
||||
"version": "2.44.0",
|
||||
@@ -104,11 +159,6 @@
|
||||
"version": "0.51.3",
|
||||
"date": "2025-11-19T15:45:28Z"
|
||||
},
|
||||
{
|
||||
"name": "NodeBB/NodeBB",
|
||||
"version": "v4.6.2",
|
||||
"date": "2025-11-19T15:31:59Z"
|
||||
},
|
||||
{
|
||||
"name": "BookStackApp/BookStack",
|
||||
"version": "v25.11.2",
|
||||
@@ -139,11 +189,6 @@
|
||||
"version": "v0.13.0",
|
||||
"date": "2025-11-19T14:16:07Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.120.4",
|
||||
"date": "2025-11-19T12:57:55Z"
|
||||
},
|
||||
{
|
||||
"name": "AdguardTeam/AdGuardHome",
|
||||
"version": "v0.107.69",
|
||||
@@ -159,11 +204,6 @@
|
||||
"version": "v7.5.0",
|
||||
"date": "2025-11-19T08:36:29Z"
|
||||
},
|
||||
{
|
||||
"name": "SigNoz/signoz",
|
||||
"version": "v0.102.0",
|
||||
"date": "2025-11-19T06:53:59Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3",
|
||||
@@ -274,11 +314,6 @@
|
||||
"version": "v1.4.5",
|
||||
"date": "2025-11-17T15:20:35Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "latest",
|
||||
"date": "2025-11-17T09:29:20Z"
|
||||
},
|
||||
{
|
||||
"name": "rabbitmq/rabbitmq-server",
|
||||
"version": "v4.2.1",
|
||||
@@ -324,11 +359,6 @@
|
||||
"version": "3.3.8",
|
||||
"date": "2025-11-16T17:04:37Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.30.11",
|
||||
"date": "2025-11-16T16:21:04Z"
|
||||
},
|
||||
{
|
||||
"name": "AlexxIT/go2rtc",
|
||||
"version": "v1.9.12",
|
||||
@@ -434,11 +464,6 @@
|
||||
"version": "v0.86.1",
|
||||
"date": "2025-11-14T05:05:44Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v4.31.0",
|
||||
"date": "2025-11-14T00:18:50Z"
|
||||
},
|
||||
{
|
||||
"name": "gristlabs/grist-core",
|
||||
"version": "v1.7.7",
|
||||
@@ -564,11 +589,6 @@
|
||||
"version": "v1.0.0-beta19",
|
||||
"date": "2025-11-09T17:26:30Z"
|
||||
},
|
||||
{
|
||||
"name": "duplicati/duplicati",
|
||||
"version": "v2.2.0.1_stable_2025-11-09",
|
||||
"date": "2025-11-09T17:21:54Z"
|
||||
},
|
||||
{
|
||||
"name": "Cleanuparr/Cleanuparr",
|
||||
"version": "v2.4.5",
|
||||
@@ -939,21 +959,6 @@
|
||||
"version": "v4.5.0",
|
||||
"date": "2025-10-18T22:00:50Z"
|
||||
},
|
||||
{
|
||||
"name": "project-zot/zot",
|
||||
"version": "v2.1.10",
|
||||
"date": "2025-10-18T18:46:36Z"
|
||||
},
|
||||
{
|
||||
"name": "TasmoAdmin/TasmoAdmin",
|
||||
"version": "v4.3.2",
|
||||
"date": "2025-10-18T12:11:00Z"
|
||||
},
|
||||
{
|
||||
"name": "readeck/readeck",
|
||||
"version": "0.20.4",
|
||||
"date": "2025-10-18T10:00:42Z"
|
||||
},
|
||||
{
|
||||
"name": "diced/zipline",
|
||||
"version": "v4.3.2",
|
||||
@@ -1104,11 +1109,6 @@
|
||||
"version": "v0.17.0",
|
||||
"date": "2025-09-19T22:23:28Z"
|
||||
},
|
||||
{
|
||||
"name": "saltstack/salt",
|
||||
"version": "v3007.8",
|
||||
"date": "2025-09-18T18:19:04Z"
|
||||
},
|
||||
{
|
||||
"name": "docmost/docmost",
|
||||
"version": "v0.23.2",
|
||||
|
||||
@@ -71,7 +71,11 @@ export TURBO_CACHE=1
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
export CYPRESS_INSTALL_BINARY=0
|
||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||
$STD turbo prune --scope=@documenso/remix --docker
|
||||
cd out
|
||||
cp -r json/* .
|
||||
$STD npm ci
|
||||
cp -r full/* .
|
||||
$STD turbo run build --filter=@documenso/remix
|
||||
$STD npm run prisma:migrate-deploy
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
|
||||
@@ -84,6 +84,13 @@ if [[ "$CTTYPE" == "0" && -d /dev/dri ]]; then
|
||||
fi
|
||||
msg_ok "Dependencies Installed"
|
||||
|
||||
msg_info "Installing Mise"
|
||||
curl -fSs https://mise.jdx.dev/gpg-key.pub | tee /etc/apt/keyrings/mise-archive-keyring.pub 1>/dev/null
|
||||
echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.pub arch=amd64] https://mise.jdx.dev/deb stable main" | tee /etc/apt/sources.list.d/mise.list
|
||||
$STD apt update
|
||||
$STD apt install -y mise
|
||||
msg_ok "Installed Mise"
|
||||
|
||||
read -r -p "${TAB3}Install OpenVINO dependencies for Intel HW-accelerated machine-learning? y/N " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing OpenVINO dependencies"
|
||||
@@ -277,6 +284,7 @@ INSTALL_DIR="/opt/${APPLICATION}"
|
||||
UPLOAD_DIR="${INSTALL_DIR}/upload"
|
||||
SRC_DIR="${INSTALL_DIR}/source"
|
||||
APP_DIR="${INSTALL_DIR}/app"
|
||||
PLUGIN_DIR="${APP_DIR}/corePlugin"
|
||||
ML_DIR="${APP_DIR}/machine-learning"
|
||||
GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
@@ -314,7 +322,18 @@ cp LICENSE "$APP_DIR"
|
||||
$STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
|
||||
$STD pnpm --filter @immich/sdk --filter @immich/cli build
|
||||
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
|
||||
msg_ok "Installed Immich Server and Web Components"
|
||||
|
||||
# plugins
|
||||
cd "$SRC_DIR"
|
||||
$STD mise trust --ignore ./mise.toml
|
||||
$STD mise trust ./plugins/mise.toml
|
||||
cd plugins
|
||||
$STD mise install
|
||||
$STD mise run build
|
||||
mkdir -p "$PLUGIN_DIR"
|
||||
cp -r ./dist "$PLUGIN_DIR"/dist
|
||||
cp ./manifest.json "$PLUGIN_DIR"
|
||||
msg_ok "Installed Immich Server, Web and Plugin Components"
|
||||
|
||||
cd "$SRC_DIR"/machine-learning
|
||||
$STD useradd -U -s /usr/sbin/nologin -r -M -d "$INSTALL_DIR" immich
|
||||
@@ -378,6 +397,10 @@ DB_VECTOR_EXTENSION=vectorchord
|
||||
REDIS_HOSTNAME=127.0.0.1
|
||||
IMMICH_MACHINE_LEARNING_URL=http://127.0.0.1:3003
|
||||
MACHINE_LEARNING_CACHE_FOLDER=${INSTALL_DIR}/cache
|
||||
## - For OpenVINO only - uncomment below to increase
|
||||
## - inference speed while reducing accuracy
|
||||
## - Default is FP32
|
||||
# MACHINE_LEARNING_OPENVINO_PRECISION=FP16
|
||||
|
||||
IMMICH_MEDIA_LOCATION=${UPLOAD_DIR}
|
||||
EOF
|
||||
|
||||
@@ -13,14 +13,17 @@ load_functions
|
||||
verb_ip6() {
|
||||
set_std_mode # Set STD mode based on VERBOSE
|
||||
|
||||
if [ "$IPV6_METHOD" == "none" ] || [ "$DISABLEIPV6" == "yes" ]; then
|
||||
msg_info "Disabling IPv6"
|
||||
if [ "$IPV6_METHOD" == "disable" ]; then
|
||||
msg_info "Disabling IPv6 (this may affect some services)"
|
||||
$STD sysctl -w net.ipv6.conf.all.disable_ipv6=1
|
||||
$STD sysctl -w net.ipv6.conf.default.disable_ipv6=1
|
||||
$STD sysctl -w net.ipv6.conf.lo.disable_ipv6=1
|
||||
echo "net.ipv6.conf.all.disable_ipv6 = 1" >>/etc/sysctl.conf
|
||||
echo "net.ipv6.conf.default.disable_ipv6 = 1" >>/etc/sysctl.conf
|
||||
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >>/etc/sysctl.conf
|
||||
mkdir -p /etc/sysctl.d
|
||||
$STD tee /etc/sysctl.d/99-disable-ipv6.conf >/dev/null <<EOF
|
||||
net.ipv6.conf.all.disable_ipv6 = 1
|
||||
net.ipv6.conf.default.disable_ipv6 = 1
|
||||
net.ipv6.conf.lo.disable_ipv6 = 1
|
||||
EOF
|
||||
$STD rc-update add sysctl default
|
||||
msg_ok "Disabled IPv6"
|
||||
fi
|
||||
|
||||
@@ -627,11 +627,12 @@ advanced_settings() {
|
||||
# IPv6 Address Management selection
|
||||
while true; do
|
||||
IPV6_METHOD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --menu \
|
||||
"Select IPv6 Address Management Type:" 15 58 4 \
|
||||
"auto" "SLAAC/AUTO (recommended, default)" \
|
||||
"dhcp" "DHCPv6" \
|
||||
"static" "Static (manual entry)" \
|
||||
"none" "Disabled" \
|
||||
"Select IPv6 Address Management Type:" 16 70 5 \
|
||||
"auto" "SLAAC/AUTO (recommended) - Dynamic IPv6 from network" \
|
||||
"dhcp" "DHCPv6 - DHCP-assigned IPv6 address" \
|
||||
"static" "Static - Manual IPv6 address configuration" \
|
||||
"none" "None - No IPv6 assignment (most containers)" \
|
||||
"disable" "Fully Disabled - (breaks some services)" \
|
||||
--default-item "auto" 3>&1 1>&2 2>&3)
|
||||
[ $? -ne 0 ] && exit_script
|
||||
|
||||
@@ -680,7 +681,15 @@ advanced_settings() {
|
||||
break
|
||||
;;
|
||||
none)
|
||||
echo -e "${NETWORK}${BOLD}${DGN}IPv6: ${BGN}Disabled${CL}"
|
||||
echo -e "${NETWORK}${BOLD}${DGN}IPv6: ${BGN}None${CL}"
|
||||
IPV6_ADDR="none"
|
||||
IPV6_GATE=""
|
||||
break
|
||||
;;
|
||||
disable)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox \
|
||||
"⚠️ WARNING - FULLY DISABLE IPv6:\n\nThis will completely disable IPv6 inside the container via sysctl.\n\nSide Effects:\n • Services requiring IPv6 will fail\n • Localhost IPv6 (::1) will not work\n • Some applications may not start\n\nOnly use if you have a specific reason to completely disable IPv6.\n\nFor most use cases, select 'None' instead." 14 70
|
||||
echo -e "${NETWORK}${BOLD}${DGN}IPv6: ${BGN}Fully Disabled (IPv6 disabled via sysctl)${CL}"
|
||||
IPV6_ADDR="none"
|
||||
IPV6_GATE=""
|
||||
break
|
||||
|
||||
@@ -15,12 +15,16 @@ load_functions
|
||||
verb_ip6() {
|
||||
set_std_mode # Set STD mode based on VERBOSE
|
||||
|
||||
if [ "$IPV6_METHOD" == "none" ] || [ "$DISABLEIPV6" == "yes" ]; then
|
||||
msg_info "Disabling IPv6"
|
||||
$STD echo "net.ipv6.conf.all.disable_ipv6 = 1" >>/etc/sysctl.conf
|
||||
$STD echo "net.ipv6.conf.default.disable_ipv6 = 1" >>/etc/sysctl.conf
|
||||
$STD echo "net.ipv6.conf.lo.disable_ipv6 = 1" >>/etc/sysctl.conf
|
||||
$STD sysctl -p
|
||||
if [ "$IPV6_METHOD" == "disable" ]; then
|
||||
msg_info "Disabling IPv6 (this may affect some services)"
|
||||
mkdir -p /etc/sysctl.d
|
||||
$STD tee /etc/sysctl.d/99-disable-ipv6.conf >/dev/null <<EOF
|
||||
# Disable IPv6 (set by community-scripts)
|
||||
net.ipv6.conf.all.disable_ipv6 = 1
|
||||
net.ipv6.conf.default.disable_ipv6 = 1
|
||||
net.ipv6.conf.lo.disable_ipv6 = 1
|
||||
EOF
|
||||
$STD sysctl -p /etc/sysctl.d/99-disable-ipv6.conf
|
||||
msg_ok "Disabled IPv6"
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user