Compare commits

...

18 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
3233b71a67 Update nginx-ui.sh 2026-02-09 10:13:26 +01:00
CanbiZ (MickLesk)
1094c0c57d fix(nginx-ui): remove admin user hack, use setup wizard instead
The previous install script started nginx-ui for 3 seconds, stopped it,
and ran reset-password to create an admin user. This caused:
- Race condition: the internal setup wizard could trigger during the brief
  start window, conflicting with the reset-password approach
- Admin users unable to login after the setup wizard fired
- Settings lockup due to overloaded app.ini with hardcoded nginx paths
  that conflict with UI-managed settings

Changes:
- Remove start/stop/reset-password hack from install script
- Simplify app.ini to match upstream defaults (minimal config)
- Let users complete the natural setup wizard on first visit
- Update JSON: remove default credentials, add setup wizard note
- Add setup wizard hint to CT script output

The setup wizard properly handles admin account creation and ACME email
configuration, which are both needed for full functionality.

Ref: ProxmoxVED#1408
2026-02-09 10:04:21 +01:00
community-scripts-pr-app[bot]
c0e212d89c Update CHANGELOG.md (#11710)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 08:00:17 +00:00
durzo
aae3b8eefe tracearr: prepare for next stable release (#11673) 2026-02-09 08:59:52 +01:00
community-scripts-pr-app[bot]
aba32f42ee Update CHANGELOG.md (#11709)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 07:44:21 +00:00
Chris
83a453a952 [Fix] PeaNUT: symlink server.js after update (#11696) 2026-02-09 08:43:54 +01:00
community-scripts-pr-app[bot]
c1a2c54c59 chore: update github-versions.json (#11705)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 06:27:19 +00:00
community-scripts-pr-app[bot]
0928c52147 Update CHANGELOG.md (#11704)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 00:23:36 +00:00
community-scripts-pr-app[bot]
f49629b740 chore: update github-versions.json (#11703)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 00:23:13 +00:00
community-scripts-pr-app[bot]
b02c9fafb9 chore: update github-versions.json (#11698)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-08 18:08:58 +00:00
community-scripts-pr-app[bot]
0cfca00013 Update CHANGELOG.md (#11697)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-08 17:58:31 +00:00
Mikael Peigney
8702f81515 feat(healthchecks): add sendalerts service (#11694) 2026-02-08 18:58:05 +01:00
community-scripts-pr-app[bot]
38f2ffed23 chore: update github-versions.json (#11691)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-08 12:08:35 +00:00
community-scripts-pr-app[bot]
fcdb0b2f6e Update CHANGELOG.md (#11690)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-08 10:36:22 +00:00
CanbiZ (MickLesk)
88e84f71a6 ComfyUI: Dynamic Fetch PyTorch Versions (#11657) 2026-02-08 11:36:04 +01:00
community-scripts-pr-app[bot]
7578c0d5a3 Update CHANGELOG.md (#11689)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-08 10:35:58 +00:00
CanbiZ (MickLesk)
68711bf392 Semaphore: switch from Debian to Ubuntu 24.04 (#11670) 2026-02-08 11:35:33 +01:00
community-scripts-pr-app[bot]
b1481b7259 chore: update github-versions.json (#11687)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-08 06:18:49 +00:00
12 changed files with 110 additions and 82 deletions

View File

@@ -401,8 +401,28 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-02-09
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- tracearr: prepare for next stable release [@durzo](https://github.com/durzo) ([#11673](https://github.com/community-scripts/ProxmoxVE/pull/11673))
- PeaNUT: symlink server.js after update [@vhsdream](https://github.com/vhsdream) ([#11696](https://github.com/community-scripts/ProxmoxVE/pull/11696))
## 2026-02-08
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- feat(healthchecks): add sendalerts service [@Mika56](https://github.com/Mika56) ([#11694](https://github.com/community-scripts/ProxmoxVE/pull/11694))
- ComfyUI: Dynamic Fetch PyTorch Versions [@MickLesk](https://github.com/MickLesk) ([#11657](https://github.com/community-scripts/ProxmoxVE/pull/11657))
- #### 💥 Breaking Changes
- Semaphore: switch from Debian to Ubuntu 24.04 [@MickLesk](https://github.com/MickLesk) ([#11670](https://github.com/community-scripts/ProxmoxVE/pull/11670))
## 2026-02-07
### 🆕 New Scripts

View File

@@ -30,30 +30,30 @@ function update_script() {
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
if check_for_gh_release "peanut" "Brandawg93/PeaNUT"; then
if check_for_gh_release "PeaNUT" "Brandawg93/PeaNUT"; then
msg_info "Stopping Service"
systemctl stop peanut
msg_info "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "peanut" "Brandawg93/PeaNUT" "tarball" "latest" "/opt/peanut"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PeaNUT" "Brandawg93/PeaNUT" "tarball" "latest" "/opt/peanut"
if ! grep -q '/opt/peanut/entrypoint.mjs' /etc/systemd/system/peanut.service; then
msg_info "Fixing entrypoint"
cd /opt/peanut
ln -sf .next/standalone/server.js server.js
sed -i 's|/opt/peanut/.next/standalone/server.js|/opt/peanut/entrypoint.mjs|' /etc/systemd/system/peanut.service
systemctl daemon-reload
msg_ok "Fixed entrypoint"
fi
msg_info "Updating Peanut"
msg_info "Updating PeaNUT"
cd /opt/peanut
$STD pnpm i
$STD pnpm run build:local
cp -r .next/static .next/standalone/.next/
mkdir -p /opt/peanut/.next/standalone/config
ln -sf /etc/peanut/settings.yml /opt/peanut/.next/standalone/config/settings.yml
msg_ok "Updated Peanut"
ln -sf .next/standalone/server.js server.js
msg_ok "Updated PeaNUT"
msg_info "Starting Service"
systemctl start peanut

View File

@@ -10,8 +10,8 @@ var_tags="${var_tags:-dev_ops}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"

View File

@@ -105,6 +105,7 @@ EOF
cp -rf pnpm-lock.yaml /opt/tracearr/
cp -rf apps/server/package.json /opt/tracearr/apps/server/
cp -rf apps/server/dist /opt/tracearr/apps/server/dist
cp -rf apps/server/scripts /opt/tracearr/apps/server/scripts
cp -rf apps/web/dist /opt/tracearr/apps/web/dist
cp -rf packages/shared/package.json /opt/tracearr/packages/shared/
cp -rf packages/shared/dist /opt/tracearr/packages/shared/dist

View File

@@ -1,5 +1,5 @@
{
"generated": "2026-02-08T00:26:48Z",
"generated": "2026-02-09T06:27:10Z",
"versions": [
{
"slug": "2fauth",
@@ -158,9 +158,9 @@
{
"slug": "byparr",
"repo": "ThePhaseless/Byparr",
"version": "v2.0.1",
"version": "v2.1.0",
"pinned": false,
"date": "2025-09-11T20:29:38Z"
"date": "2026-02-08T12:59:20Z"
},
{
"slug": "bytestash",
@@ -249,9 +249,9 @@
{
"slug": "dawarich",
"repo": "Freika/dawarich",
"version": "1.0.4",
"version": "1.1.0",
"pinned": false,
"date": "2026-02-01T11:37:27Z"
"date": "2026-02-08T14:42:45Z"
},
{
"slug": "discopanel",
@@ -340,9 +340,9 @@
{
"slug": "firefly",
"repo": "firefly-iii/firefly-iii",
"version": "v6.4.17",
"version": "v6.4.18",
"pinned": false,
"date": "2026-02-07T06:56:00Z"
"date": "2026-02-08T07:28:00Z"
},
{
"slug": "fladder",
@@ -389,9 +389,9 @@
{
"slug": "ghostfolio",
"repo": "ghostfolio/ghostfolio",
"version": "2.236.0",
"version": "2.237.0",
"pinned": false,
"date": "2026-02-05T19:30:11Z"
"date": "2026-02-08T13:59:53Z"
},
{
"slug": "gitea",
@@ -557,9 +557,9 @@
{
"slug": "jackett",
"repo": "Jackett/Jackett",
"version": "v0.24.1060",
"version": "v0.24.1074",
"pinned": false,
"date": "2026-02-07T05:55:27Z"
"date": "2026-02-09T06:01:19Z"
},
{
"slug": "joplin-server",
@@ -767,9 +767,9 @@
{
"slug": "mediamanager",
"repo": "maxdorninger/MediaManager",
"version": "v1.12.1",
"version": "v1.12.2",
"pinned": false,
"date": "2026-01-05T09:06:22Z"
"date": "2026-02-08T19:18:29Z"
},
{
"slug": "mediamtx",
@@ -795,9 +795,9 @@
{
"slug": "metube",
"repo": "alexta69/metube",
"version": "2026.02.07",
"version": "2026.02.08",
"pinned": false,
"date": "2026-02-07T16:24:37Z"
"date": "2026-02-08T17:01:37Z"
},
{
"slug": "miniflux",
@@ -1005,9 +1005,9 @@
{
"slug": "peanut",
"repo": "Brandawg93/PeaNUT",
"version": "v5.21.2",
"version": "v5.22.0",
"pinned": false,
"date": "2026-01-18T17:32:08Z"
"date": "2026-02-08T00:32:25Z"
},
{
"slug": "pelican-panel",
@@ -1131,9 +1131,9 @@
{
"slug": "pulse",
"repo": "rcourtman/Pulse",
"version": "v5.1.4",
"version": "v5.1.5",
"pinned": false,
"date": "2026-02-07T22:47:44Z"
"date": "2026-02-08T12:19:53Z"
},
{
"slug": "pve-scripts-local",
@@ -1306,9 +1306,9 @@
{
"slug": "speedtest-tracker",
"repo": "alexjustesen/speedtest-tracker",
"version": "v1.13.8",
"version": "v1.13.9",
"pinned": false,
"date": "2026-02-04T19:24:23Z"
"date": "2026-02-08T21:48:49Z"
},
{
"slug": "spoolman",
@@ -1348,9 +1348,9 @@
{
"slug": "tandoor",
"repo": "TandoorRecipes/recipes",
"version": "2.4.2",
"version": "2.5.0",
"pinned": false,
"date": "2026-02-01T12:52:37Z"
"date": "2026-02-08T13:23:02Z"
},
{
"slug": "tasmoadmin",
@@ -1628,9 +1628,9 @@
{
"slug": "yubal",
"repo": "guillevc/yubal",
"version": "v0.4.0",
"version": "v0.4.2",
"pinned": false,
"date": "2026-02-06T21:25:24Z"
"date": "2026-02-08T21:35:13Z"
},
{
"slug": "zigbee2mqtt",

View File

@@ -28,10 +28,14 @@
}
],
"default_credentials": {
"username": "admin",
"username": null,
"password": null
},
"notes": [
{
"text": "On first visit, the setup wizard will guide you to create an admin account and configure ACME email.",
"type": "warning"
},
{
"text": "Nginx runs on ports 80/443, Nginx UI management interface on port 9000.",
"type": "info"
@@ -39,10 +43,6 @@
{
"text": "SSL certificates can be managed automatically with Let's Encrypt integration.",
"type": "info"
},
{
"text": "Initial Login data: `cat ~/nginx-ui.creds`",
"type": "info"
}
]
}

View File

@@ -22,8 +22,8 @@
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "12"
"os": "ubuntu",
"version": "24.04"
}
}
],

View File

@@ -37,26 +37,42 @@ fetch_and_deploy_gh_release "ComfyUI" "comfyanonymous/ComfyUI" "tarball" "latest
msg_info "Python dependencies"
$STD uv venv "/opt/ComfyUI/venv"
if [[ "${comfyui_gpu_type,,}" == "nvidia" ]]; then
pytorch_url="https://download.pytorch.org/whl/cu130"
if [[ -f "/opt/ComfyUI/README.md" ]]; then
extracted=$(grep -oP 'pip install.*?--extra-index-url\s+\Khttps://download\.pytorch\.org/whl/cu\d+' /opt/ComfyUI/README.md | head -1 || true)
[[ -n "$extracted" ]] && pytorch_url="$extracted"
fi
$STD uv pip install \
torch \
torchvision \
torchaudio \
--extra-index-url "https://download.pytorch.org/whl/cu128" \
--extra-index-url "$pytorch_url" \
--python="/opt/ComfyUI/venv/bin/python"
elif [[ "${comfyui_gpu_type,,}" == "amd" ]]; then
pytorch_url="https://download.pytorch.org/whl/rocm6.4"
if [[ -f "/opt/ComfyUI/README.md" ]]; then
extracted=$(grep -oP 'pip install.*?--index-url\s+\Khttps://download\.pytorch\.org/whl/rocm[\d.]+' /opt/ComfyUI/README.md | grep -v 'nightly' | head -1 || true)
[[ -n "$extracted" ]] && pytorch_url="$extracted"
fi
$STD uv pip install \
torch \
torchvision \
torchaudio \
--index-url "https://download.pytorch.org/whl/rocm6.3" \
--index-url "$pytorch_url" \
--python="/opt/ComfyUI/venv/bin/python"
elif [[ "${comfyui_gpu_type,,}" == "intel" ]]; then
pytorch_url="https://download.pytorch.org/whl/xpu"
if [[ -f "/opt/ComfyUI/README.md" ]]; then
extracted=$(grep -oP 'pip install.*?--index-url\s+\Khttps://download\.pytorch\.org/whl/xpu' /opt/ComfyUI/README.md | head -1 || true)
[[ -n "$extracted" ]] && pytorch_url="$extracted"
fi
$STD uv pip install \
torch \
torchvision \
torchaudio \
--index-url "https://download.pytorch.org/whl/xpu" \
--index-url "$pytorch_url" \
--python="/opt/ComfyUI/venv/bin/python"
fi
$STD uv pip install -r "/opt/ComfyUI/requirements.txt" --python="/opt/ComfyUI/venv/bin/python"

View File

@@ -108,7 +108,7 @@ ${LOCAL_IP} {
EOF
msg_ok "Configured Caddy"
msg_info "Creating systemd service"
msg_info "Creating systemd services"
cat <<EOF >/etc/systemd/system/healthchecks.service
[Unit]
Description=Healthchecks Service
@@ -123,9 +123,23 @@ Restart=always
WantedBy=multi-user.target
EOF
systemctl enable -q --now healthchecks caddy
cat <<EOF >/etc/systemd/system/healthchecks-sendalerts.service
[Unit]
Description=Healthchecks Sendalerts Service
After=network.target postgresql.service healthchecks.service
[Service]
WorkingDirectory=/opt/healthchecks/
ExecStart=/opt/healthchecks/venv/bin/python manage.py sendalerts
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now healthchecks healthchecks-sendalerts caddy
systemctl reload caddy
msg_ok "Created Service"
msg_ok "Created Services"
motd_ssh
customize

View File

@@ -30,29 +30,20 @@ msg_ok "Installed Nginx UI"
msg_info "Configuring Nginx UI"
mkdir -p /usr/local/etc/nginx-ui
cat <<EOF >/usr/local/etc/nginx-ui/app.ini
[server]
HttpHost = 0.0.0.0
HttpPort = 9000
RunMode = release
JwtSecret = $(openssl rand -hex 32)
[nginx]
AccessLogPath = /var/log/nginx/access.log
ErrorLogPath = /var/log/nginx/error.log
ConfigDir = /etc/nginx
PIDPath = /run/nginx.pid
TestConfigCmd = nginx -t
ReloadCmd = nginx -s reload
RestartCmd = systemctl restart nginx
[app]
PageSize = 10
[server]
Host = 0.0.0.0
Port = 9000
RunMode = release
JwtSecret = $(openssl rand -hex 32)
[cert]
Email =
CADir =
RenewalInterval = 7
RecursiveNameservers =
HTTPChallengePort = 9180
[terminal]
StartCmd = login
EOF
msg_ok "Configured Nginx UI"
@@ -78,17 +69,6 @@ EOF
systemctl daemon-reload
msg_ok "Created Service"
msg_info "Creating Initial Admin User"
systemctl start nginx-ui
sleep 3
systemctl stop nginx-ui
sleep 1
/usr/local/bin/nginx-ui reset-password --config /usr/local/etc/nginx-ui/app.ini &>/tmp/nginx-ui-reset.log || true
ADMIN_PASS=$(grep -oP 'Password: \K\S+' /tmp/nginx-ui-reset.log || echo "admin")
echo -e "Nginx-UI Credentials\nUsername: admin\nPassword: $ADMIN_PASS" >~/nginx-ui.creds
rm -f /tmp/nginx-ui-reset.log
msg_ok "Created Initial Admin User"
msg_info "Starting Service"
systemctl enable -q --now nginx-ui
rm -rf /etc/nginx/sites-enabled/default

View File

@@ -14,13 +14,9 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y git
setup_deb822_repo \
"ansible" \
"https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367" \
"http://ppa.launchpad.net/ansible/ansible/ubuntu" \
"noble"
$STD apt install -y ansible
$STD apt install -y \
git \
ansible
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary" "latest" "/opt/semaphore" "semaphore_*_linux_amd64.deb"

View File

@@ -59,6 +59,7 @@ cp -rf pnpm-workspace.yaml /opt/tracearr/
cp -rf pnpm-lock.yaml /opt/tracearr/
cp -rf apps/server/package.json /opt/tracearr/apps/server/
cp -rf apps/server/dist /opt/tracearr/apps/server/dist
cp -rf apps/server/scripts /opt/tracearr/apps/server/scripts
cp -rf apps/web/dist /opt/tracearr/apps/web/dist
cp -rf packages/shared/package.json /opt/tracearr/packages/shared/
cp -rf packages/shared/dist /opt/tracearr/packages/shared/dist