mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-08-17 18:16:12 +02:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 98c9972bc0 | |||
| e683dd92e7 | |||
| 8490cd606d | |||
| 9e6d1c1c71 | |||
| ee06ad86f1 | |||
| 7d7db6dd33 | |||
| b3531bb0a8 | |||
| bdbe5d4043 | |||
| b559bcef39 | |||
| 4ec4bb26ed | |||
| bb7721b199 | |||
| 22e2a6d73e | |||
| b19dad1809 | |||
| 4f04894a19 | |||
| 05fdd15406 | |||
| 92ec089410 | |||
| abc9e569ad |
@@ -524,12 +524,30 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 2026-08-17
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- keycloak: remove invalid ExecStop, kc.sh has no stop subcommand [@MickLesk](https://github.com/MickLesk) ([#16563](https://github.com/community-scripts/ProxmoxVE/pull/16563))
|
||||||
|
- Pin ownfoil release to version 2.3.0 [@MickLesk](https://github.com/MickLesk) ([#16574](https://github.com/community-scripts/ProxmoxVE/pull/16574))
|
||||||
|
- kometa: add git, needed by requirements.txt's git dependency [@MickLesk](https://github.com/MickLesk) ([#16562](https://github.com/community-scripts/ProxmoxVE/pull/16562))
|
||||||
|
- fix romm: deploy EmulatorJS and Ruffle after the frontend build [@angusmaul](https://github.com/angusmaul) ([#16571](https://github.com/community-scripts/ProxmoxVE/pull/16571))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- patchmon: fetch only SCAP datastream XMLs [@MickLesk](https://github.com/MickLesk) ([#16565](https://github.com/community-scripts/ProxmoxVE/pull/16565))
|
||||||
|
- teslamate: use precompiled Elixir [@MickLesk](https://github.com/MickLesk) ([#16561](https://github.com/community-scripts/ProxmoxVE/pull/16561))
|
||||||
|
|
||||||
## 2026-08-16
|
## 2026-08-16
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- [FIX] Shelfmark: internal bypasser never starts under the gevent worker [@robbiet480](https://github.com/robbiet480) ([#16495](https://github.com/community-scripts/ProxmoxVE/pull/16495))
|
||||||
|
- tubearchivist: fix: enhance update script [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16521](https://github.com/community-scripts/ProxmoxVE/pull/16521))
|
||||||
- tracktor: build with pnpm using upstream's frozen lockfile [@MickLesk](https://github.com/MickLesk) ([#16530](https://github.com/community-scripts/ProxmoxVE/pull/16530))
|
- tracktor: build with pnpm using upstream's frozen lockfile [@MickLesk](https://github.com/MickLesk) ([#16530](https://github.com/community-scripts/ProxmoxVE/pull/16530))
|
||||||
- wallos: run db migration after apache reload on update [@MickLesk](https://github.com/MickLesk) ([#16528](https://github.com/community-scripts/ProxmoxVE/pull/16528))
|
- wallos: run db migration after apache reload on update [@MickLesk](https://github.com/MickLesk) ([#16528](https://github.com/community-scripts/ProxmoxVE/pull/16528))
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,14 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if grep -q '^ExecStop=/opt/keycloak/bin/kc.sh stop$' /etc/systemd/system/keycloak.service 2>/dev/null; then
|
||||||
|
msg_info "Correcting Service"
|
||||||
|
sed -i '/^ExecStop=\/opt\/keycloak\/bin\/kc.sh stop$/d' /etc/systemd/system/keycloak.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
msg_ok "Corrected Service"
|
||||||
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "keycloak_app" "keycloak/keycloak"; then
|
if check_for_gh_release "keycloak_app" "keycloak/keycloak"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop keycloak
|
systemctl stop keycloak
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ function update_script() {
|
|||||||
cp /opt/kometa/config/config.yml /opt
|
cp /opt/kometa/config/config.yml /opt
|
||||||
msg_ok "Backup completed"
|
msg_ok "Backup completed"
|
||||||
|
|
||||||
|
ensure_dependencies git
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa" "tarball"
|
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa" "tarball"
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -29,15 +29,15 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
RELEASE="2.3.0"
|
||||||
if check_for_gh_release "ownfoil" "a1ex4/ownfoil"; then
|
if check_for_gh_release "ownfoil" "a1ex4/ownfoil" "${RELEASE}" "pinned until 2.4.0 (coming soon) is tested, possible Breaking Changes."; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop ownfoil
|
systemctl stop ownfoil
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/ownfoil/app/config
|
create_backup /opt/ownfoil/app/config
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball" "${RELEASE}"
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
+9
-1
@@ -76,7 +76,15 @@ EOF
|
|||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "singlefile" "latest" "/opt/patchmon" "patchmon-server-linux-$(arch_resolve)"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "singlefile" "latest" "/opt/patchmon" "patchmon-server-linux-$(arch_resolve)"
|
||||||
mv /opt/patchmon/PatchMon /opt/patchmon/patchmon-server
|
mv /opt/patchmon/PatchMon /opt/patchmon/patchmon-server
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ssg-content" "ComplianceAsCode/content" "prebuild" "latest" "/opt/patchmon/ssg-content" "scap-security-guide-*.tar.gz"
|
|
||||||
|
msg_info "Updating SCAP Content"
|
||||||
|
RELEASE=$(get_latest_github_release "ComplianceAsCode/content")
|
||||||
|
curl_with_retry "https://github.com/ComplianceAsCode/content/releases/download/v${RELEASE}/scap-security-guide-${RELEASE}.tar.gz" "/tmp/ssg.tar.gz"
|
||||||
|
mkdir -p /opt/patchmon/ssg-content
|
||||||
|
find /opt/patchmon/ssg-content -mindepth 1 -delete
|
||||||
|
tar -xzf /tmp/ssg.tar.gz -C /opt/patchmon/ssg-content --strip-components=1 --wildcards '*/ssg-*-ds.xml'
|
||||||
|
rm -f /tmp/ssg.tar.gz
|
||||||
|
msg_ok "Updated SCAP Content"
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -36,9 +36,18 @@ function update_script() {
|
|||||||
if check_for_gh_release "shelfmark" "calibrain/shelfmark"; then
|
if check_for_gh_release "shelfmark" "calibrain/shelfmark"; then
|
||||||
msg_info "Stopping Service(s)"
|
msg_info "Stopping Service(s)"
|
||||||
systemctl stop shelfmark
|
systemctl stop shelfmark
|
||||||
[[ -f /etc/systemd/system/chromium.service ]] && systemctl stop chromium
|
|
||||||
msg_ok "Stopped Service(s)"
|
msg_ok "Stopped Service(s)"
|
||||||
|
|
||||||
|
if [[ $(sed -n '/_BYPASS=/s/[^=]*=//p' /etc/shelfmark/.env) == "true" ]] &&
|
||||||
|
[[ $(sed -n '/BYPASSER=/s/[^=]*=//p' /etc/shelfmark/.env) == "false" ]]; then
|
||||||
|
msg_info "Updating internal bypasser configuration"
|
||||||
|
systemctl disable -q --now chromium 2>/dev/null || true
|
||||||
|
rm -f /etc/systemd/system/chromium.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
sed -i '/DOCKERMODE=/s/false/true/' /etc/shelfmark/.env
|
||||||
|
msg_ok "Updated internal bypasser configuration"
|
||||||
|
fi
|
||||||
|
|
||||||
[[ -f /etc/systemd/system/flaresolverr.service ]] && if check_for_gh_release "flaresolverr" "Flaresolverr/Flaresolverr"; then
|
[[ -f /etc/systemd/system/flaresolverr.service ]] && if check_for_gh_release "flaresolverr" "Flaresolverr/Flaresolverr"; then
|
||||||
msg_info "Stopping FlareSolverr service"
|
msg_info "Stopping FlareSolverr service"
|
||||||
systemctl stop flaresolverr
|
systemctl stop flaresolverr
|
||||||
@@ -79,7 +88,6 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Starting Service(s)"
|
msg_info "Starting Service(s)"
|
||||||
systemctl start shelfmark
|
systemctl start shelfmark
|
||||||
[[ -f /etc/systemd/system/chromium.service ]] && systemctl start chromium
|
|
||||||
msg_ok "Started Service(s)"
|
msg_ok "Started Service(s)"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -35,6 +35,16 @@ function update_script() {
|
|||||||
systemctl stop teslamate
|
systemctl stop teslamate
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
if [[ ! -d /opt/elixir ]]; then
|
||||||
|
msg_info "Migrating to newer Elixir (required by TeslaMate)"
|
||||||
|
$STD apt remove -y elixir
|
||||||
|
fetch_and_deploy_gh_release "elixir" "elixir-lang/elixir" "prebuild" "latest" "/opt/elixir" "elixir-otp-27.zip"
|
||||||
|
for bin in elixir elixirc iex mix; do
|
||||||
|
ln -sf "/opt/elixir/bin/$bin" "/usr/local/bin/$bin"
|
||||||
|
done
|
||||||
|
msg_ok "Migrated to newer Elixir"
|
||||||
|
fi
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "teslamate" "teslamate-org/teslamate" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "teslamate" "teslamate-org/teslamate" "tarball"
|
||||||
|
|
||||||
msg_info "Building TeslaMate (Patience)"
|
msg_info "Building TeslaMate (Patience)"
|
||||||
|
|||||||
+14
-3
@@ -35,7 +35,10 @@ function update_script() {
|
|||||||
systemctl stop tubearchivist tubearchivist-celery tubearchivist-beat
|
systemctl stop tubearchivist tubearchivist-celery tubearchivist-beat
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
create_backup /opt/tubearchivist/.env
|
create_backup \
|
||||||
|
/opt/tubearchivist/.env \
|
||||||
|
/opt/tubearchivist/cache \
|
||||||
|
/opt/tubearchivist/backend/run.sh
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tubearchivist" "tubearchivist/tubearchivist" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tubearchivist" "tubearchivist/tubearchivist" "tarball"
|
||||||
|
|
||||||
@@ -48,6 +51,8 @@ function update_script() {
|
|||||||
mkdir -p /opt/tubearchivist/backend/static
|
mkdir -p /opt/tubearchivist/backend/static
|
||||||
cp -r /opt/tubearchivist/frontend/dist/* /opt/tubearchivist/backend/static/
|
cp -r /opt/tubearchivist/frontend/dist/* /opt/tubearchivist/backend/static/
|
||||||
cp /opt/tubearchivist/docker_assets/backend_start.py /opt/tubearchivist/backend/
|
cp /opt/tubearchivist/docker_assets/backend_start.py /opt/tubearchivist/backend/
|
||||||
|
rm -rf /opt/tubearchivist/.venv
|
||||||
|
$STD uv venv /opt/tubearchivist/.venv --python 3.13
|
||||||
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python -r /opt/tubearchivist/backend/requirements.txt
|
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python -r /opt/tubearchivist/backend/requirements.txt
|
||||||
if [[ -f /opt/tubearchivist/backend/requirements.plugins.txt ]]; then
|
if [[ -f /opt/tubearchivist/backend/requirements.plugins.txt ]]; then
|
||||||
mkdir -p /opt/yt_plugins/bgutil
|
mkdir -p /opt/yt_plugins/bgutil
|
||||||
@@ -59,8 +64,14 @@ function update_script() {
|
|||||||
sed -i 's|^TA_APP_DIR=/opt/tubearchivist$|TA_APP_DIR=/opt/tubearchivist/backend|' /opt/tubearchivist/.env
|
sed -i 's|^TA_APP_DIR=/opt/tubearchivist$|TA_APP_DIR=/opt/tubearchivist/backend|' /opt/tubearchivist/.env
|
||||||
sed -i 's|^TA_CACHE_DIR=/opt/tubearchivist/cache$|TA_CACHE_DIR=/cache|' /opt/tubearchivist/.env
|
sed -i 's|^TA_CACHE_DIR=/opt/tubearchivist/cache$|TA_CACHE_DIR=/cache|' /opt/tubearchivist/.env
|
||||||
sed -i 's|^TA_MEDIA_DIR=/opt/tubearchivist/media$|TA_MEDIA_DIR=/youtube|' /opt/tubearchivist/.env
|
sed -i 's|^TA_MEDIA_DIR=/opt/tubearchivist/media$|TA_MEDIA_DIR=/youtube|' /opt/tubearchivist/.env
|
||||||
ln -sf /opt/tubearchivist/cache /cache
|
ln -sfn /opt/tubearchivist/cache /cache
|
||||||
ln -sf /opt/tubearchivist/media /youtube
|
# /youtube may already be a user-managed Proxmox bind mount. Only create the symlink if nothing is there
|
||||||
|
if [[ ! -e /youtube ]]; then
|
||||||
|
mkdir -p /opt/tubearchivist/media
|
||||||
|
ln -sfn /opt/tubearchivist/media /youtube
|
||||||
|
elif ! mountpoint -q /youtube && [[ ! -L /youtube ]]; then
|
||||||
|
msg_error "/youtube exists but is neither a mount nor a symlink - check manually"
|
||||||
|
fi
|
||||||
ln -sf /opt/tubearchivist/.env /opt/tubearchivist/backend/.env
|
ln -sf /opt/tubearchivist/.env /opt/tubearchivist/backend/.env
|
||||||
msg_ok "Restored Configuration"
|
msg_ok "Restored Configuration"
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ Type=idle
|
|||||||
User=root
|
User=root
|
||||||
WorkingDirectory=/opt/keycloak
|
WorkingDirectory=/opt/keycloak
|
||||||
ExecStart=/opt/keycloak/bin/kc.sh start
|
ExecStart=/opt/keycloak/bin/kc.sh start
|
||||||
ExecStop=/opt/keycloak/bin/kc.sh stop
|
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=3
|
RestartSec=3
|
||||||
Environment="JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-$(arch_resolve)"
|
Environment="JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-$(arch_resolve)"
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt install -y git
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa" "tarball"
|
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa" "tarball"
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ $STD apt install -y git
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
setup_uv
|
setup_uv
|
||||||
fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball"
|
fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball" "2.3.0"
|
||||||
|
|
||||||
msg_info "Setting up Ownfoil"
|
msg_info "Setting up Ownfoil"
|
||||||
cd /opt/ownfoil
|
cd /opt/ownfoil
|
||||||
|
|||||||
@@ -86,7 +86,13 @@ for arch in "${AGENT_NAME[@]}"; do
|
|||||||
done
|
done
|
||||||
msg_ok "Fetched PatchMon agent binaries"
|
msg_ok "Fetched PatchMon agent binaries"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "ssg-content" "ComplianceAsCode/content" "prebuild" "latest" "/opt/patchmon/ssg-content" "scap-security-guide-*.tar.gz"
|
msg_info "Fetching SCAP Content"
|
||||||
|
RELEASE=$(get_latest_github_release "ComplianceAsCode/content")
|
||||||
|
curl_with_retry "https://github.com/ComplianceAsCode/content/releases/download/v${RELEASE}/scap-security-guide-${RELEASE}.tar.gz" "/tmp/ssg.tar.gz"
|
||||||
|
mkdir -p /opt/patchmon/ssg-content
|
||||||
|
tar -xzf /tmp/ssg.tar.gz -C /opt/patchmon/ssg-content --strip-components=1 --wildcards '*/ssg-*-ds.xml'
|
||||||
|
rm -f /tmp/ssg.tar.gz
|
||||||
|
msg_ok "Fetched SCAP Content"
|
||||||
|
|
||||||
msg_info "Creating service"
|
msg_info "Creating service"
|
||||||
cat <<EOF >/etc/systemd/system/patchmon-server.service
|
cat <<EOF >/etc/systemd/system/patchmon-server.service
|
||||||
|
|||||||
@@ -136,8 +136,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball"
|
fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball"
|
||||||
fetch_and_deploy_gh_release "ruffle" "ruffle-rs/ruffle" "prebuild" "latest" "/opt/romm/frontend/dist/assets/ruffle" "ruffle-*-web-selfhosted.zip"
|
|
||||||
fetch_and_deploy_gh_release "EmulatorJS" "EmulatorJS/EmulatorJS" "prebuild" "v4.2.3" "/opt/romm/frontend/dist/assets/emulatorjs" "4.2.3.7z"
|
|
||||||
|
|
||||||
msg_info "Creating environment file"
|
msg_info "Creating environment file"
|
||||||
sed -i 's/^supervised no/supervised systemd/' /etc/redis/redis.conf
|
sed -i 's/^supervised no/supervised systemd/' /etc/redis/redis.conf
|
||||||
@@ -214,6 +212,9 @@ ln -sfn "$ROMM_BASE"/resources /opt/romm/frontend/dist/assets/romm/resources
|
|||||||
ln -sfn "$ROMM_BASE"/assets /opt/romm/frontend/dist/assets/romm/assets
|
ln -sfn "$ROMM_BASE"/assets /opt/romm/frontend/dist/assets/romm/assets
|
||||||
msg_ok "Set up RomM Frontend"
|
msg_ok "Set up RomM Frontend"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "ruffle" "ruffle-rs/ruffle" "prebuild" "latest" "/opt/romm/frontend/dist/assets/ruffle" "ruffle-*-web-selfhosted.zip"
|
||||||
|
fetch_and_deploy_gh_release "EmulatorJS" "EmulatorJS/EmulatorJS" "prebuild" "v4.2.3" "/opt/romm/frontend/dist/assets/emulatorjs" "4.2.3.7z"
|
||||||
|
|
||||||
msg_info "Configuring Angie"
|
msg_info "Configuring Angie"
|
||||||
cat <<'EOF' >/etc/angie/http.d/romm.conf
|
cat <<'EOF' >/etc/angie/http.d/romm.conf
|
||||||
upstream romm_backend {
|
upstream romm_backend {
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ else
|
|||||||
chromium-common \
|
chromium-common \
|
||||||
chromium \
|
chromium \
|
||||||
python3-tk
|
python3-tk
|
||||||
|
sed -i '/DOCKERMODE=/s/false/true/' /etc/shelfmark/.env
|
||||||
msg_ok "Installed internal bypasser dependencies"
|
msg_ok "Installed internal bypasser dependencies"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -165,22 +166,6 @@ KillMode=mixed
|
|||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if [[ "$DEPLOYMENT_TYPE" == "1" ]]; then
|
|
||||||
cat <<EOF >/etc/systemd/system/chromium.service
|
|
||||||
[Unit]
|
|
||||||
Description=Chromium Headless Browser
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=root
|
|
||||||
ExecStart=/usr/bin/chromium --headless --no-sandbox --disable-gpu --disable-dev-shm-usage --remote-debugging-address=127.0.0.1 --remote-debugging-port=9222 --hide-scrollbars
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now chromium
|
|
||||||
fi
|
|
||||||
if [[ "$DEPLOYMENT_TYPE" == "2" ]]; then
|
if [[ "$DEPLOYMENT_TYPE" == "2" ]]; then
|
||||||
cat <<EOF >/etc/systemd/system/flaresolverr.service
|
cat <<EOF >/etc/systemd/system/flaresolverr.service
|
||||||
[Unit]
|
[Unit]
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ $STD apt install -y \
|
|||||||
erlang \
|
erlang \
|
||||||
erlang-dev \
|
erlang-dev \
|
||||||
erlang-syntax-tools \
|
erlang-syntax-tools \
|
||||||
elixir \
|
|
||||||
mosquitto \
|
mosquitto \
|
||||||
locales
|
locales
|
||||||
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen
|
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen
|
||||||
@@ -27,6 +26,11 @@ $STD locale-gen
|
|||||||
systemctl enable -q --now mosquitto
|
systemctl enable -q --now mosquitto
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "elixir" "elixir-lang/elixir" "prebuild" "latest" "/opt/elixir" "elixir-otp-27.zip"
|
||||||
|
for bin in elixir elixirc iex mix; do
|
||||||
|
ln -sf "/opt/elixir/bin/$bin" "/usr/local/bin/$bin"
|
||||||
|
done
|
||||||
|
|
||||||
PG_VERSION="17" setup_postgresql
|
PG_VERSION="17" setup_postgresql
|
||||||
PG_DB_NAME="teslamate" PG_DB_USER="teslamate" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
PG_DB_NAME="teslamate" PG_DB_USER="teslamate" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|||||||
+3
-3
@@ -2542,7 +2542,7 @@ _deploy_source_tarball() {
|
|||||||
|
|
||||||
mkdir -p "$target"
|
mkdir -p "$target"
|
||||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||||
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -print0 | xargs -0 rm -rf --
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tar --no-same-owner -xzf "$tarball" -C "$workdir" || {
|
tar --no-same-owner -xzf "$tarball" -C "$workdir" || {
|
||||||
@@ -2631,7 +2631,7 @@ _deploy_unpacked_archive() {
|
|||||||
# was truncated, the archive was unreadable, or it unpacked to nothing.
|
# was truncated, the archive was unreadable, or it unpacked to nothing.
|
||||||
mkdir -p "$target"
|
mkdir -p "$target"
|
||||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||||
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -print0 | xargs -0 rm -rf --
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! cp -r "$source_dir"/* "$target/"; then
|
if ! cp -r "$source_dir"/* "$target/"; then
|
||||||
@@ -9372,7 +9372,7 @@ fetch_and_deploy_from_url() {
|
|||||||
mkdir -p "$directory"
|
mkdir -p "$directory"
|
||||||
|
|
||||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||||
find "${directory:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
find "${directory:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -print0 | xargs -0 rm -rf --
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local unpack_tmp
|
local unpack_tmp
|
||||||
|
|||||||
Reference in New Issue
Block a user