Compare commits

..

16 Commits

Author SHA1 Message Date
Tobias
253ceb7954 Revert "Purge openresty (#14353)"
This reverts commit 7b7aecef02.
2026-05-11 15:40:42 +02:00
community-scripts-pr-app[bot]
bd6117eb6a Update CHANGELOG.md (#14400)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-11 08:18:12 +00:00
push-app-to-main[bot]
26c94d8613 solidtime (#14392)
* Add solidtime (ct)

* Fix Caddy configuration message placement

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-05-11 10:17:50 +02:00
push-app-to-main[bot]
9dddf45a89 shlink (#14393)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-05-11 10:17:34 +02:00
community-scripts-pr-app[bot]
e3b7f01056 Update CHANGELOG.md (#14395)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 21:28:51 +00:00
Tobias
8b387313cf refactor: webcheck (#14391)
* refactor: webcheck

* Update GitHub repository reference in web-check.sh
2026-05-10 23:28:27 +02:00
community-scripts-pr-app[bot]
806c68df91 Update CHANGELOG.md (#14390)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 19:34:42 +00:00
Luca Comellini
3352c8a63e Save Beszel version (#14389) 2026-05-10 21:34:19 +02:00
community-scripts-pr-app[bot]
5c9facd1f1 Update CHANGELOG.md (#14388)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 18:05:27 +00:00
Slaviša Arežina
5be86d4fdf pin pnpm version (#14386) 2026-05-10 20:05:03 +02:00
community-scripts-pr-app[bot]
719cbca50f Update CHANGELOG.md (#14383)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 14:25:10 +00:00
CanbiZ (MickLesk)
d7b0c2f4c6 karakeep: Fix SERVER_VERSION update (#14378) 2026-05-10 16:24:40 +02:00
community-scripts-pr-app[bot]
86280881b4 Update CHANGELOG.md (#14379)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 07:43:56 +00:00
Slaviša Arežina
a2c2c0ff09 inspIRCd: Fix service not autostarting (#14368)
* fix not autostarting

* fix
2026-05-10 09:43:33 +02:00
community-scripts-pr-app[bot]
2b11d05e7d Update CHANGELOG.md (#14375)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 00:17:39 +00:00
community-scripts-pr-app[bot]
28311987ae Archive old changelog entries (#14374)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 00:17:15 +00:00
14 changed files with 440 additions and 20 deletions

View File

@@ -461,6 +461,33 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-05-11
### 🆕 New Scripts
- solidtime ([#14392](https://github.com/community-scripts/ProxmoxVE/pull/14392))
- shlink ([#14393](https://github.com/community-scripts/ProxmoxVE/pull/14393))
## 2026-05-10
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Save Beszel version [@lucacome](https://github.com/lucacome) ([#14389](https://github.com/community-scripts/ProxmoxVE/pull/14389))
- karakeep: Fix SERVER_VERSION update [@MickLesk](https://github.com/MickLesk) ([#14378](https://github.com/community-scripts/ProxmoxVE/pull/14378))
- inspIRCd: Fix service not autostarting [@tremor021](https://github.com/tremor021) ([#14368](https://github.com/community-scripts/ProxmoxVE/pull/14368))
- #### 🔧 Refactor
- refactor: webcheck [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14391](https://github.com/community-scripts/ProxmoxVE/pull/14391))
### 💾 Core
- #### 🐞 Bug Fixes
- [tools.func]: Pin `pnpm` version [@tremor021](https://github.com/tremor021) ([#14386](https://github.com/community-scripts/ProxmoxVE/pull/14386))
## 2026-05-09
### 🚀 Updated Scripts

View File

@@ -36,7 +36,9 @@ function update_script() {
msg_info "Updating Beszel"
$STD /opt/beszel/beszel update
sleep 2 && chmod +x /opt/beszel/beszel
msg_ok "Updated Beszel"
VERSION=$(/opt/beszel/beszel -v | awk '{print $3}')
echo "${VERSION}" >$HOME/.beszel
msg_ok "Updated Beszel to ${VERSION}"
msg_info "Starting Service"
systemctl start beszel-hub

6
ct/headers/shlink Normal file
View File

@@ -0,0 +1,6 @@
_____ __ ___ __
/ ___// /_ / (_)___ / /__
\__ \/ __ \/ / / __ \/ //_/
___/ / / / / / / / / / ,<
/____/_/ /_/_/_/_/ /_/_/|_|

6
ct/headers/solidtime Normal file
View File

@@ -0,0 +1,6 @@
_____ ___ _________
/ ___/____ / (_)___/ /_ __(_)___ ___ ___
\__ \/ __ \/ / / __ / / / / / __ `__ \/ _ \
___/ / /_/ / / / /_/ / / / / / / / / / / __/
/____/\____/_/_/\__,_/ /_/ /_/_/ /_/ /_/\___/

View File

@@ -59,6 +59,7 @@ function update_script() {
if command -v corepack >/dev/null; then
$STD corepack disable
fi
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE#v}/" /etc/karakeep/karakeep.env
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
NODE_VERSION="24" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
setup_meilisearch
@@ -83,7 +84,6 @@ function update_script() {
cd /opt/karakeep/packages/db
$STD pnpm migrate
$STD pnpm store prune
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE#v}/" /etc/karakeep/karakeep.env
msg_ok "Updated Karakeep"
msg_info "Starting Services"

View File

@@ -28,6 +28,7 @@ function update_script() {
exit
fi
if command -v node &>/dev/null; then
CURRENT_NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
if [[ "$CURRENT_NODE_VERSION" != "22" ]]; then
@@ -47,7 +48,7 @@ function update_script() {
msg_info "Migrating from packaged OpenResty to source"
rm -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg /etc/apt/trusted.gpg.d/openresty.gpg
rm -f /etc/apt/sources.list.d/openresty.list /etc/apt/sources.list.d/openresty.sources
$STD apt purge -y openresty
$STD apt remove -y openresty
$STD apt autoremove -y
rm -f ~/.openresty
msg_ok "Migrated from packaged OpenResty to source"

85
ct/shlink.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://shlink.io/
APP="Shlink"
var_tags="${var_tags:-url-shortener;analytics;php}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/shlink ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "shlink" "shlinkio/shlink"; then
msg_info "Stopping Service"
systemctl stop shlink
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp /opt/shlink/.env /opt/shlink.env.bak
cp -r /opt/shlink/data /opt/shlink_data_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "shlink" "shlinkio/shlink" "prebuild" "latest" "/opt/shlink" "shlink*_php8.5_dist.zip"
msg_info "Restoring Data"
cp /opt/shlink.env.bak /opt/shlink/.env
rm -f /opt/shlink.env.bak
cp -r /opt/shlink_data_backup/. /opt/shlink/data
rm -rf /opt/shlink_data_backup
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/shlink
$STD php ./vendor/bin/rr get --no-interaction --location bin/
chmod +x bin/rr
set -a
source /opt/shlink/.env
set +a
$STD php vendor/bin/shlink-installer init --no-interaction --clear-db-cache --skip-download-geolite
msg_ok "Updated Application"
msg_info "Starting Service"
systemctl start shlink
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
if [[ -d /opt/shlink-web-client ]]; then
if check_for_gh_release "shlink-web-client" "shlinkio/shlink-web-client"; then
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "shlink-web-client" "shlinkio/shlink-web-client" "prebuild" "latest" "/opt/shlink-web-client" "shlink-web-client_*_dist.zip"
msg_ok "Updated Web Client"
fi
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access Shlink Web Client using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${INFO}${YW} Shlink HTTP API:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

77
ct/solidtime.sh Normal file
View File

@@ -0,0 +1,77 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.solidtime.io/
APP="SolidTime"
var_tags="${var_tags:-time-tracking;productivity;business}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/solidtime ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "solidtime" "solidtime-io/solidtime"; then
msg_info "Stopping Services"
systemctl stop caddy
msg_ok "Stopped Services"
msg_info "Backing up Data"
cp /opt/solidtime/.env /opt/solidtime.env.bak
cp -r /opt/solidtime/storage /opt/solidtime_storage_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "solidtime" "solidtime-io/solidtime" "tarball"
msg_info "Restoring Data"
cp /opt/solidtime.env.bak /opt/solidtime/.env
rm -f /opt/solidtime.env.bak
cp -r /opt/solidtime_storage_backup/. /opt/solidtime/storage
rm -rf /opt/solidtime_storage_backup
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/solidtime
$STD composer install --no-dev --optimize-autoloader
$STD npm install
$STD npm run build
$STD php artisan migrate --force
$STD php artisan optimize:clear
chown -R www-data:www-data /opt/solidtime
msg_ok "Updated Application"
msg_info "Starting Services"
systemctl start caddy
msg_ok "Started Services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${INFO}${YW}HTTPS is not enabled by default (use domain + reverse proxy/TLS if needed).${CL}"

View File

@@ -28,7 +28,7 @@ function update_script() {
exit
fi
if check_for_gh_release "web-check" "CrazyWolf13/web-check"; then
if check_for_gh_release "web-check" "Lissy93/web-check"; then
msg_info "Stopping Service"
systemctl stop web-check
msg_ok "Stopped Service"
@@ -38,7 +38,7 @@ function update_script() {
msg_ok "Created backup"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "web-check" "CrazyWolf13/web-check" "tarball"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "web-check" "Lissy93/web-check" "tarball"
msg_info "Restoring backup"
mv /opt/.env /opt/web-check

View File

@@ -30,6 +30,7 @@ cat <<EOF >/etc/inspircd/inspircd.conf
email="irc@&networkDomain;">
<bind address="" port="6667" type="clients">
EOF
systemctl enable -q --now inspircd
msg_ok "Installed InspIRCd"
motd_ssh

126
install/shlink-install.sh Normal file
View File

@@ -0,0 +1,126 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://shlink.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
PHP_VERSION="8.5" setup_php
setup_mariadb
MARIADB_DB_NAME="shlink" MARIADB_DB_USER="shlink" setup_mariadb_db
fetch_and_deploy_gh_release "shlink" "shlinkio/shlink" "prebuild" "latest" "/opt/shlink" "shlink*_php8.5_dist.zip"
msg_info "Setting up Application"
cd /opt/shlink
$STD php ./vendor/bin/rr get --no-interaction --location bin/
chmod +x bin/rr
mkdir -p data/cache data/locks data/log data/proxies data/temp-geolite
chmod -R 775 data
cat <<EOF >/opt/shlink/.env
DEFAULT_DOMAIN=${LOCAL_IP}:8080
IS_HTTPS_ENABLED=false
DB_DRIVER=maria
DB_NAME=${MARIADB_DB_NAME}
DB_USER=${MARIADB_DB_USER}
DB_PASSWORD=${MARIADB_DB_PASS}
DB_HOST=127.0.0.1
DB_PORT=3306
EOF
set -a
source /opt/shlink/.env
set +a
$STD php vendor/bin/shlink-installer init --no-interaction --clear-db-cache --skip-download-geolite
API_OUTPUT=$(php bin/cli api-key:generate --name=default 2>&1)
INITIAL_API_KEY=$(echo "$API_OUTPUT" | sed -n 's/.*Generated API key: "\([^"]*\)".*/\1/p')
if [[ -n "$INITIAL_API_KEY" ]]; then
echo "INITIAL_API_KEY=${INITIAL_API_KEY}" >>/opt/shlink/.env
fi
msg_ok "Set up Application"
if prompt_confirm "Install Shlink Web Client?" "y" 60; then
msg_info "Installing Dependencies"
$STD apt install -y nginx
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "shlink-web-client" "shlinkio/shlink-web-client" "prebuild" "latest" "/opt/shlink-web-client" "shlink-web-client_*_dist.zip"
msg_info "Setting up Web Client"
cat <<EOF >/opt/shlink-web-client/servers.json
[
{
"name": "Shlink",
"url": "http://${LOCAL_IP}:8080",
"apiKey": "${INITIAL_API_KEY}"
}
]
EOF
cat <<'EOF' >/etc/nginx/sites-available/shlink-web-client
server {
listen 3000 default_server;
charset utf-8;
root /opt/shlink-web-client;
index index.html;
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
}
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
add_header Cache-Control "public";
}
location ~* \.(?:css|js)$ {
expires 1y;
add_header Cache-Control "public";
}
location = /servers.json {
try_files /servers.json /conf.d/servers.json;
}
location / {
try_files $uri $uri/ /index.html$is_args$args;
}
}
EOF
ln -sf /etc/nginx/sites-available/shlink-web-client /etc/nginx/sites-enabled/shlink-web-client
rm -f /etc/nginx/sites-enabled/default
systemctl enable -q nginx
$STD systemctl restart nginx
msg_ok "Set up Web Client"
fi
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/shlink.service
[Unit]
Description=Shlink URL Shortener
After=network.target mariadb.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/shlink
EnvironmentFile=/opt/shlink/.env
ExecStart=/opt/shlink/bin/rr serve -c config/roadrunner/.rr.yml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now shlink
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,86 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.solidtime.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y caddy
msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_pgsql,redis,mbstring,curl" setup_php
setup_composer
NODE_VERSION="22" setup_nodejs
PG_VERSION="16" setup_postgresql
PG_DB_NAME="solidtime" PG_DB_USER="solidtime" setup_postgresql_db
fetch_and_deploy_gh_release "solidtime" "solidtime-io/solidtime" "tarball"
msg_info "Setting up SolidTime"
cd /opt/solidtime
cp .env.example .env
sed -i "s|^APP_ENV=.*|APP_ENV=production|" .env
sed -i "s|^APP_DEBUG=.*|APP_DEBUG=false|" .env
sed -i "s|^APP_URL=.*|APP_URL=http://${LOCAL_IP}|" .env
sed -i "s|^APP_ENABLE_REGISTRATION=.*|APP_ENABLE_REGISTRATION=true|" .env
sed -i "s|^DB_CONNECTION=.*|DB_CONNECTION=pgsql|" .env
sed -i "s|^DB_HOST=.*|DB_HOST=127.0.0.1|" .env
sed -i "s|^DB_PORT=.*|DB_PORT=5432|" .env
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=${PG_DB_NAME}|" .env
sed -i "s|^DB_USERNAME=.*|DB_USERNAME=${PG_DB_USER}|" .env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=${PG_DB_PASS}|" .env
sed -i "s|^FILESYSTEM_DISK=.*|FILESYSTEM_DISK=local|" .env
sed -i "s|^PUBLIC_FILESYSTEM_DISK=.*|PUBLIC_FILESYSTEM_DISK=public|" .env
sed -i "s|^MAIL_MAILER=.*|MAIL_MAILER=log|" .env
sed -i "s|^SESSION_SECURE_COOKIE=.*|SESSION_SECURE_COOKIE=false|" .env
grep -q "^SESSION_SECURE_COOKIE=" .env || echo "SESSION_SECURE_COOKIE=false" >>.env
sed -i "s|^APP_FORCE_HTTPS=.*|APP_FORCE_HTTPS=false|" .env
grep -q "^APP_FORCE_HTTPS=" .env || echo "APP_FORCE_HTTPS=false" >>.env
$STD composer install --no-dev --optimize-autoloader
php artisan self-host:generate-keys >/tmp/solidtime.keys 2>/dev/null
while IFS= read -r line; do
KEY="${line%%=*}"
[[ -z "$KEY" || "${KEY:0:1}" == "#" ]] && continue
sed -i "/^${KEY}=/d" .env
echo "$line" >>.env
done </tmp/solidtime.keys
rm -f /tmp/solidtime.keys
$STD npm install
$STD npm run build
rm -rf node_modules
mkdir -p storage/framework/{cache,sessions,views} storage/logs bootstrap/cache
chown -R www-data:www-data /opt/solidtime
chmod -R 775 storage bootstrap/cache
$STD php artisan storage:link
$STD php artisan migrate --force
$STD php artisan passport:client --personal --name="API" -n
$STD php artisan optimize:clear
msg_ok "Set up SolidTime"
msg_info "Configuring Caddy"
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/solidtime/public
php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock
file_server
encode gzip
}
EOF
usermod -aG www-data caddy
systemctl enable -q --now php${PHP_VER}-fpm
systemctl restart caddy
msg_ok "Configured Caddy"
motd_ssh
customize
cleanup_lxc

View File

@@ -18,13 +18,10 @@ export DEBIAN_FRONTEND=noninteractive
$STD apt -y install --no-install-recommends \
git \
traceroute \
make \
g++ \
traceroute \
build-essential \
xvfb \
dbus \
xorg \
xvfb \
gtk2-engines-pixbuf \
dbus-x11 \
xfonts-base \
@@ -43,16 +40,13 @@ rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Installing Chromium"
curl -fsSL https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome-keyring.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/google-chrome.sources >/dev/null
Types: deb
URIs: http://dl.google.com/linux/chrome/deb/
Suites: stable
Components: main
Architectures: amd64
Signed-By: /usr/share/keyrings/google-chrome-keyring.gpg
EOF
$STD apt update
setup_deb822_repo \
"google-chrome" \
"https://dl-ssl.google.com/linux/linux_signing_key.pub" \
"http://dl.google.com/linux/chrome/deb/" \
"stable" \
"main" \
"amd64"
$STD apt -y install \
chromium \
libxss1 \
@@ -64,13 +58,14 @@ msg_info "Setting up Chromium"
chmod 755 /usr/bin/chromium
msg_ok "Setup Chromium"
fetch_and_deploy_gh_release "web-check" "CrazyWolf13/web-check" "tarball"
fetch_and_deploy_gh_release "web-check" "Lissy93/web-check" "tarball"
msg_info "Installing Web-Check (Patience)"
cd /opt/web-check
cat <<'EOF' >/opt/web-check/.env
CHROME_PATH=/usr/bin/chromium
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
PUPPETEER_SKIP_DOWNLOAD='true'
HEADLESS=true
GOOGLE_CLOUD_API_KEY=''
REACT_APP_SHODAN_API_KEY=''

View File

@@ -6493,6 +6493,14 @@ function setup_nodejs() {
# Install global Node modules
if [[ -n "$NODE_MODULE" ]]; then
IFS=',' read -ra MODULES <<<"$NODE_MODULE"
# Pin pnpm to v10 to avoid breaking changes from newer major versions
for i in "${!MODULES[@]}"; do
if [[ "${MODULES[$i]}" =~ ^pnpm(@.*)?$ ]]; then
MODULES[$i]="pnpm@^10"
fi
done
local failed_modules=0
for mod in "${MODULES[@]}"; do
local MODULE_NAME MODULE_REQ_VERSION MODULE_INSTALLED_VERSION