Compare commits

..

10 Commits

Author SHA1 Message Date
MickLesk 1bf0d43122 Arcane: write both env names, stop shipping the unused .env
The compose file from main now uses ARCANE_ENCRYPTION_KEY and
ARCANE_PROJECTS_DIRECTORY, which the latest image (2.17.3) does not read,
so it panicked on a missing ENCRYPTION_KEY. Arcane 3 in turn refuses to
start when only the old names are set. Install and update now keep both
names in compose.yaml, which also carries existing installs over to 3.

The .env was never referenced by the compose file, but compose parses it,
and the unanchored ENCRYPTION_KEY sed turned the renamed line into
ARCANE_#ENCRYPTION_KEY and broke every install. New installs no longer
download it; update repairs the broken line.
2026-11-05 09:21:48 +01:00
community-scripts-pr-app[bot] 3e54356653 Update CHANGELOG.md (#18462)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-04 22:59:18 +00:00
Chris Thach 1f03150b77 fix: Poll Teleport readyz instead of fixed 10 second sleep. (#18461)
Signed-off-by: Chris Thach <git.identify957@passfwd.com>
2026-11-04 23:58:49 +01:00
community-scripts-pr-app[bot] cfa250a795 Update CHANGELOG.md (#18459)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-04 16:07:16 +00:00
community-scripts-pr-app[bot] bb4c1f2fbf Update CHANGELOG.md (#18458)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-04 16:00:26 +00:00
community-scripts-pr-app[bot] 793fba1a53 Update CHANGELOG.md (#18457)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-04 15:54:56 +00:00
community-scripts-pr-app[bot] 06b788ee81 Update CHANGELOG.md (#18454)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-04 09:23:17 +00:00
CanbiZ (MickLesk) 667da6a8fb Install n8n past its unsatisfiable canvas dependencies (#18439)
n8n-nodes-base 2.46.0 moved @napi-rs/canvas-linux-arm64-musl and
-linux-x64-musl from optional into hard dependencies. npm enforces
os/cpu/libc on those, and no combination satisfies both arm64 and x64,
so every install fails with EBADPLATFORM. n8n 2.46.4 reached the latest
tag on 2026-11-03 and the failures started four minutes later.

--force skips the platform check. The matching gnu binary is still
installed through @napi-rs/canvas's own optional dependencies, so canvas
keeps working.
2026-11-04 10:22:46 +01:00
community-scripts-pr-app[bot] e40a258a27 Update CHANGELOG.md (#18452)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-04 07:04:53 +00:00
CanbiZ (MickLesk) ff5aac3889 Teable: add Redis cache (fixes #18449) (#18450) 2026-11-04 08:04:23 +01:00
7 changed files with 62 additions and 20 deletions
+16
View File
@@ -571,6 +571,22 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-11-04
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Teleport: Poll readyz instead of fixed 10 second sleep. [@cthach](https://github.com/cthach) ([#18461](https://github.com/community-scripts/ProxmoxVE/pull/18461))
- n8n: install past its unsatisfiable canvas dependencies [@MickLesk](https://github.com/MickLesk) ([#18439](https://github.com/community-scripts/ProxmoxVE/pull/18439))
- Teable: add Redis cache [@MickLesk](https://github.com/MickLesk) ([#18450](https://github.com/community-scripts/ProxmoxVE/pull/18450))
### 💾 Core
- feat: say why download_gpg_key failed [@MickLesk](https://github.com/MickLesk) ([core#208](https://github.com/community-scripts/core/pull/208))
- feat: read the MOTD's OS version at login [@MickLesk](https://github.com/MickLesk) ([core#207](https://github.com/community-scripts/core/pull/207))
- feat: skip screen clear when there is no terminal | pin only the scripts own app with var_appversion [@MickLesk](https://github.com/MickLesk) ([core#203](https://github.com/community-scripts/core/pull/203))
## 2026-11-03
### 🚀 Updated Scripts
+4 -1
View File
@@ -46,7 +46,10 @@ EOF
systemctl daemon-reload
fi
$STD npm install -g n8n@latest
# n8n-nodes-base 2.46.0 pins both @napi-rs/canvas musl binaries as hard
# dependencies, which no os/cpu/libc combination can satisfy. Drop --force
# once upstream makes them optional again.
$STD npm install -g n8n@latest --force
systemctl restart n8n
msg_ok "Updated n8n"
msg_ok "Updated successfully!"
+10
View File
@@ -32,6 +32,16 @@ function update_script() {
exit
fi
ensure_dependencies redis-server
systemctl enable -q --now redis-server
if ! grep -q "BACKEND_CACHE_REDIS_URI" /opt/teable/.env; then
sed -i '/^BACKEND_CACHE_SQLITE_URI=/d' /opt/teable/.env
sed -i 's|^BACKEND_CACHE_PROVIDER=.*|BACKEND_CACHE_PROVIDER=redis\nBACKEND_CACHE_REDIS_URI=redis://127.0.0.1:6379/0|' /opt/teable/.env
sed -i 's|^After=network.target postgresql.service$|After=network.target postgresql.service redis-server.service|' /etc/systemd/system/teable.service
systemctl daemon-reload
systemctl restart teable
fi
if check_for_gh_release "teable" "teableio/teable"; then
msg_info "Stopping Service"
systemctl stop teable
+4 -1
View File
@@ -23,7 +23,10 @@ msg_ok "Installed Dependencies"
NODE_VERSION="24" setup_nodejs
msg_info "Installing n8n (Patience)"
$STD npm install -g n8n@latest
# n8n-nodes-base 2.46.0 pins both @napi-rs/canvas musl binaries as hard
# dependencies, which no os/cpu/libc combination can satisfy. Drop --force
# once upstream makes them optional again.
$STD npm install -g n8n@latest --force
msg_ok "Installed n8n"
msg_info "Creating Service"
+6 -4
View File
@@ -17,7 +17,8 @@ msg_info "Installing Dependencies"
$STD apt install -y \
build-essential \
python3 \
git
git \
redis-server
msg_ok "Installed Dependencies"
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
@@ -56,8 +57,8 @@ SECRET_KEY=${SECRET_KEY}
PORT=3000
NODE_ENV=production
NEXT_TELEMETRY_DISABLED=1
BACKEND_CACHE_PROVIDER=sqlite
BACKEND_CACHE_SQLITE_URI=sqlite:///opt/teable/.assets/.cache.db
BACKEND_CACHE_PROVIDER=redis
BACKEND_CACHE_REDIS_URI=redis://127.0.0.1:6379/0
NEXTJS_DIR=apps/nextjs-app
EOF
ln -sf /opt/teable /app
@@ -70,10 +71,11 @@ fi
msg_ok "Configured Teable"
msg_info "Creating Service"
systemctl enable -q --now redis-server
cat <<EOF >/etc/systemd/system/teable.service
[Unit]
Description=Teable
After=network.target postgresql.service
After=network.target postgresql.service redis-server.service
[Service]
Type=simple
+5 -1
View File
@@ -24,7 +24,11 @@ msg_info "Configuring Teleport"
$STD apt install -y teleport
$STD teleport configure -o /etc/teleport.yaml
systemctl enable -q --now teleport
sleep 10
SECONDS=0
until teleport debug readyz &>/dev/null; do
sleep 2
((SECONDS >= 120)) && { msg_error "Teleport did not become ready in time"; exit 1; }
done
tctl users add teleport-admin --roles=editor,access --logins=root >~/teleportadmin.txt
sed -i "s|https://[^:]*:3080|https://${LOCAL_IP}:3080|g" ~/teleportadmin.txt
msg_ok "Configured Teleport"
+17 -13
View File
@@ -58,8 +58,21 @@ function uninstall() {
# ==============================================================================
# UPDATE
# ==============================================================================
# Arcane 3 needs the ARCANE_* names, the current latest image reads only the old ones.
function sync_env_names() {
local key
for key in ENCRYPTION_KEY PROJECTS_DIRECTORY; do
grep -q "^[[:space:]]*- ARCANE_${key}=" "$COMPOSE_FILE" || sed -i "/^[[:space:]]*- ${key}=/{p;s/- ${key}=/- ARCANE_${key}=/;}" "$COMPOSE_FILE"
grep -q "^[[:space:]]*- ${key}=" "$COMPOSE_FILE" || sed -i "/^[[:space:]]*- ARCANE_${key}=/{p;s/- ARCANE_${key}=/- ${key}=/;}" "$COMPOSE_FILE"
done
if [[ -f "$ENV_FILE" ]]; then
sed -i 's/^ARCANE_#/#ARCANE_/' "$ENV_FILE"
fi
}
function update() {
chown -R 65532:65532 /etc/arcane/projects /etc/arcane/builds 2>/dev/null || true
sync_env_names
msg_info "Pulling latest ${APP} image"
cd "$INSTALL_PATH"
@@ -85,9 +98,8 @@ function install() {
msg_ok "Created ${INSTALL_PATH}"
# Generate secrets and config values
local ENCRYPTION_KEY JWT_SECRET PROJ_DIR BUILDS_DIR
local ENCRYPTION_KEY PROJ_DIR BUILDS_DIR
ENCRYPTION_KEY=$(random_password 32)
JWT_SECRET=$(random_password 32)
PROJ_DIR="/etc/arcane/projects"
BUILDS_DIR="/etc/arcane/builds"
@@ -108,20 +120,12 @@ function install() {
curl -fsSL "https://raw.githubusercontent.com/getarcaneapp/arcane/refs/heads/main/docker/examples/compose.basic.yaml" -o "$COMPOSE_FILE"
msg_ok "Downloaded Docker Compose file"
msg_info "Downloading .env file"
curl -fsSL "https://raw.githubusercontent.com/getarcaneapp/arcane/refs/heads/main/.env.example" -o "$ENV_FILE"
chmod 600 "$ENV_FILE"
msg_ok "Downloaded .env file"
msg_info "Configuring compose and env files"
msg_info "Configuring compose file"
sed -i '/^[[:space:]]*#/!s|/host/path/to/projects|'"$PROJ_DIR"'|g' "$COMPOSE_FILE"
sed -i '/^[[:space:]]*#/!s|/host/path/to/builds|'"$BUILDS_DIR"'|g' "$COMPOSE_FILE"
sed -i '/^[[:space:]]*#/!s|ENCRYPTION_KEY=.*|ENCRYPTION_KEY='"$ENCRYPTION_KEY"'|g' "$COMPOSE_FILE"
sed -i '/^[[:space:]]*#/!s|JWT_SECRET=.*|JWT_SECRET='"$JWT_SECRET"'|g' "$COMPOSE_FILE"
sed -i '/^[[:space:]]*#/!s|APP_URL=.*|APP_URL=http://localhost:'"$DEFAULT_PORT"'|g' "$ENV_FILE"
sed -i '/^[[:space:]]*#/!s|ENCRYPTION_KEY=.*|#&|g' "$ENV_FILE"
sed -i '/^[[:space:]]*#/!s|JWT_SECRET=.*|#&|g' "$ENV_FILE"
msg_ok "Configured compose and env files"
sync_env_names
msg_ok "Configured compose file"
msg_info "Starting ${APP}"
cd "$INSTALL_PATH"