mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-23 10:23:00 +01:00
Compare commits
14 Commits
fix/build-
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e97053152a | ||
|
|
3b8550e314 | ||
|
|
9c3b6a1a94 | ||
|
|
7a2c754cea | ||
|
|
00faa7a937 | ||
|
|
d26095dff3 | ||
|
|
b0fa21efdf | ||
|
|
f26adc2208 | ||
|
|
624607ca48 | ||
|
|
4a8aed39da | ||
|
|
2922ecdcbb | ||
|
|
e7dcd37cf7 | ||
|
|
586d8dd8a7 | ||
|
|
8a17729812 |
30
CHANGELOG.md
30
CHANGELOG.md
@@ -426,12 +426,42 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 2026-03-23
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- NginxProxyManager: build OpenResty from source via GitHub releases [@MickLesk](https://github.com/MickLesk) ([#13134](https://github.com/community-scripts/ProxmoxVE/pull/13134))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Kometa: optimize config.yml sed patterns, add Quickstart integration [@MickLesk](https://github.com/MickLesk) ([#13198](https://github.com/community-scripts/ProxmoxVE/pull/13198))
|
||||||
|
|
||||||
## 2026-03-22
|
## 2026-03-22
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|
||||||
- versitygw ([#13180](https://github.com/community-scripts/ProxmoxVE/pull/13180))
|
- versitygw ([#13180](https://github.com/community-scripts/ProxmoxVE/pull/13180))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Adventurelog: pin DRF <3.15 to fix coreapi module removal [@MickLesk](https://github.com/MickLesk) ([#13194](https://github.com/community-scripts/ProxmoxVE/pull/13194))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- ConvertX: add libreoffice-writer for ODT/document conversions [@MickLesk](https://github.com/MickLesk) ([#13196](https://github.com/community-scripts/ProxmoxVE/pull/13196))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- iSponsorblockTV: add AVX CPU check before installation [@MickLesk](https://github.com/MickLesk) ([#13197](https://github.com/community-scripts/ProxmoxVE/pull/13197))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- core: guard against empty IPv6 address in static mode [@MickLesk](https://github.com/MickLesk) ([#13195](https://github.com/community-scripts/ProxmoxVE/pull/13195))
|
||||||
|
|
||||||
## 2026-03-21
|
## 2026-03-21
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
$STD .venv/bin/python -m pip install --upgrade pip
|
$STD .venv/bin/python -m pip install --upgrade pip
|
||||||
$STD .venv/bin/python -m pip install -r requirements.txt
|
$STD .venv/bin/python -m pip install -r requirements.txt
|
||||||
|
$STD .venv/bin/python -m pip install 'djangorestframework<3.15'
|
||||||
$STD .venv/bin/python -m manage collectstatic --noinput
|
$STD .venv/bin/python -m manage collectstatic --noinput
|
||||||
$STD .venv/bin/python -m manage migrate
|
$STD .venv/bin/python -m manage migrate
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then
|
if [[ ! -d /opt/convertx ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -33,6 +33,8 @@ function update_script() {
|
|||||||
systemctl stop convertx
|
systemctl stop convertx
|
||||||
msg_info "Stopped Service"
|
msg_info "Stopped Service"
|
||||||
|
|
||||||
|
ensure_dependencies libreoffice-writer
|
||||||
|
|
||||||
msg_info "Move data-Folder"
|
msg_info "Move data-Folder"
|
||||||
if [[ -d /opt/convertx/data ]]; then
|
if [[ -d /opt/convertx/data ]]; then
|
||||||
mv /opt/convertx/data /opt/data
|
mv /opt/convertx/data /opt/data
|
||||||
|
|||||||
@@ -61,5 +61,5 @@ description
|
|||||||
|
|
||||||
msg_ok "Completed successfully!\n"
|
msg_ok "Completed successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access the LXC at following IP address:${CL}"
|
echo -e "${INFO}${YW} Access Kometa Quickstart:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7171${CL}"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: tteck (tteckster) | Co-Author: CrazyWolf13
|
# Author: tteck (tteckster) | Co-Author: CrazyWolf13, MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://nginxproxymanager.com/ | Github: https://github.com/NginxProxyManager/nginx-proxy-manager
|
# Source: https://nginxproxymanager.com/ | Github: https://github.com/NginxProxyManager/nginx-proxy-manager
|
||||||
|
|
||||||
@@ -38,8 +38,8 @@ function update_script() {
|
|||||||
CURRENT_NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
|
CURRENT_NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
|
||||||
if [[ "$CURRENT_NODE_VERSION" != "22" ]]; then
|
if [[ "$CURRENT_NODE_VERSION" != "22" ]]; then
|
||||||
systemctl stop openresty
|
systemctl stop openresty
|
||||||
apt-get purge -y nodejs npm
|
$STD apt purge -y nodejs npm
|
||||||
apt-get autoremove -y
|
$STD apt autoremove -y
|
||||||
rm -rf /usr/local/bin/node /usr/local/bin/npm
|
rm -rf /usr/local/bin/node /usr/local/bin/npm
|
||||||
rm -rf /usr/local/lib/node_modules
|
rm -rf /usr/local/lib/node_modules
|
||||||
rm -rf ~/.npm
|
rm -rf ~/.npm
|
||||||
@@ -49,12 +49,10 @@ function update_script() {
|
|||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
|
RELEASE=$(get_latest_github_release "NginxProxyManager/nginx-proxy-manager")
|
||||||
grep "tag_name" |
|
|
||||||
awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v${RELEASE}" "/opt/nginxproxymanager"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v${RELEASE}" "/opt/nginxproxymanager"
|
||||||
|
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop openresty
|
systemctl stop openresty
|
||||||
systemctl stop npm
|
systemctl stop npm
|
||||||
@@ -69,12 +67,56 @@ function update_script() {
|
|||||||
/var/cache/nginx
|
/var/cache/nginx
|
||||||
msg_ok "Cleaned old files"
|
msg_ok "Cleaned old files"
|
||||||
|
|
||||||
|
msg_info "Migrating to OpenResty from 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
|
||||||
|
if dpkg -l openresty &>/dev/null; then
|
||||||
|
$STD apt remove -y openresty
|
||||||
|
$STD apt autoremove -y
|
||||||
|
fi
|
||||||
|
$STD apt install -y build-essential libpcre3-dev libssl-dev zlib1g-dev
|
||||||
|
msg_ok "Migrated to OpenResty from source"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "openresty" "openresty/openresty" "prebuild" "latest" "/opt/openresty" "openresty-*.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Building OpenResty"
|
||||||
|
cd /opt/openresty
|
||||||
|
$STD ./configure \
|
||||||
|
--with-http_v2_module \
|
||||||
|
--with-http_realip_module \
|
||||||
|
--with-http_stub_status_module \
|
||||||
|
--with-http_ssl_module \
|
||||||
|
--with-http_sub_module \
|
||||||
|
--with-http_auth_request_module \
|
||||||
|
--with-pcre-jit \
|
||||||
|
--with-stream \
|
||||||
|
--with-stream_ssl_module
|
||||||
|
$STD make -j"$(nproc)"
|
||||||
|
$STD make install
|
||||||
|
rm -rf /opt/openresty
|
||||||
|
cat <<'EOF' >/lib/systemd/system/openresty.service
|
||||||
|
[Unit]
|
||||||
|
Description=The OpenResty Application Platform
|
||||||
|
After=syslog.target network-online.target remote-fs.target nss-lookup.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t
|
||||||
|
ExecStart=/usr/local/openresty/nginx/sbin/nginx -g 'daemon off;'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl daemon-reload
|
||||||
|
msg_ok "Built OpenResty"
|
||||||
|
|
||||||
msg_info "Setting up Environment"
|
msg_info "Setting up Environment"
|
||||||
ln -sf /usr/bin/python3 /usr/bin/python
|
ln -sf /usr/bin/python3 /usr/bin/python
|
||||||
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
|
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
|
||||||
ln -sf /usr/local/openresty/nginx/ /etc/nginx
|
ln -sf /usr/local/openresty/nginx/ /etc/nginx
|
||||||
sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json
|
sed -i "0,/\"version\": \"[^\"]*\"/s|\"version\": \"[^\"]*\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json
|
||||||
sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/frontend/package.json
|
sed -i "0,/\"version\": \"[^\"]*\"/s|\"version\": \"[^\"]*\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/frontend/package.json
|
||||||
sed -i 's+^daemon+#daemon+g' /opt/nginxproxymanager/docker/rootfs/etc/nginx/nginx.conf
|
sed -i 's+^daemon+#daemon+g' /opt/nginxproxymanager/docker/rootfs/etc/nginx/nginx.conf
|
||||||
NGINX_CONFS=$(find /opt/nginxproxymanager -type f -name "*.conf")
|
NGINX_CONFS=$(find /opt/nginxproxymanager -type f -name "*.conf")
|
||||||
for NGINX_CONF in $NGINX_CONFS; do
|
for NGINX_CONF in $NGINX_CONFS; do
|
||||||
@@ -150,23 +192,11 @@ function update_script() {
|
|||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
sed -i 's/"client": "sqlite3"/"client": "better-sqlite3"/' /app/config/production.json
|
sed -i 's/"client": "sqlite3"/"client": "better-sqlite3"/' /app/config/production.json
|
||||||
cd /app
|
cd /app
|
||||||
$STD yarn install --network-timeout 600000
|
$STD yarn install --network-timeout 600000
|
||||||
msg_ok "Initialized Backend"
|
msg_ok "Initialized Backend"
|
||||||
|
|
||||||
msg_info "Updating Certbot"
|
msg_info "Updating Certbot"
|
||||||
[ -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg ] && rm -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg
|
|
||||||
[ -f /etc/apt/sources.list.d/openresty.list ] && rm -f /etc/apt/sources.list.d/openresty.list
|
|
||||||
[ ! -f /etc/apt/trusted.gpg.d/openresty.gpg ] && curl -fsSL https://openresty.org/package/pubkey.gpg | gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/openresty.gpg
|
|
||||||
[ ! -f /etc/apt/sources.list.d/openresty.sources ] && cat <<'EOF' >/etc/apt/sources.list.d/openresty.sources
|
|
||||||
Types: deb
|
|
||||||
URIs: http://openresty.org/package/debian/
|
|
||||||
Suites: bookworm
|
|
||||||
Components: openresty
|
|
||||||
Signed-By: /etc/apt/trusted.gpg.d/openresty.gpg
|
|
||||||
EOF
|
|
||||||
$STD apt update
|
|
||||||
$STD apt -y install openresty
|
|
||||||
if [ -d /opt/certbot ]; then
|
if [ -d /opt/certbot ]; then
|
||||||
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
|
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
|
||||||
$STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare
|
$STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare
|
||||||
@@ -176,9 +206,9 @@ EOF
|
|||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
|
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
|
||||||
sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
|
sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
|
||||||
|
systemctl daemon-reload
|
||||||
systemctl enable -q --now openresty
|
systemctl enable -q --now openresty
|
||||||
systemctl enable -q --now npm
|
systemctl enable -q --now npm
|
||||||
systemctl restart openresty
|
|
||||||
msg_ok "Started Services"
|
msg_ok "Started Services"
|
||||||
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ $STD uv venv --clear /opt/adventurelog/backend/server/.venv
|
|||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install --upgrade pip
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install --upgrade pip
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install -r requirements.txt
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install -r requirements.txt
|
||||||
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install 'djangorestframework<3.15'
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ $STD apt install -y \
|
|||||||
dvisvgm \
|
dvisvgm \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
inkscape \
|
inkscape \
|
||||||
|
libreoffice-writer \
|
||||||
libva2 \
|
libva2 \
|
||||||
libvips-tools \
|
libvips-tools \
|
||||||
lmodern \
|
lmodern \
|
||||||
|
|||||||
@@ -13,6 +13,11 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
if ! grep -q ' avx ' /proc/cpuinfo 2>/dev/null; then
|
||||||
|
msg_error "CPU does not support AVX instructions (required by iSponsorBlockTV/PyApp)"
|
||||||
|
exit 106
|
||||||
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "isponsorblocktv" "dmunozv04/iSponsorBlockTV" "singlefile" "latest" "/opt/isponsorblocktv" "iSponsorBlockTV-x86_64-linux"
|
fetch_and_deploy_gh_release "isponsorblocktv" "dmunozv04/iSponsorBlockTV" "singlefile" "latest" "/opt/isponsorblocktv" "iSponsorBlockTV-x86_64-linux"
|
||||||
|
|
||||||
msg_info "Setting up iSponsorBlockTV"
|
msg_info "Setting up iSponsorBlockTV"
|
||||||
|
|||||||
@@ -23,12 +23,20 @@ mkdir -p config/assets
|
|||||||
cp config/config.yml.template config/config.yml
|
cp config/config.yml.template config/config.yml
|
||||||
msg_ok "Setup Kometa"
|
msg_ok "Setup Kometa"
|
||||||
|
|
||||||
read -p "${TAB3}Enter your TMDb API key: " TMDBKEY
|
read -r -p "${TAB3}Enter your TMDb API key: " TMDBKEY
|
||||||
read -p "${TAB3}Enter your Plex URL: " PLEXURL
|
read -r -p "${TAB3}Enter your Plex URL: " PLEXURL
|
||||||
read -p "${TAB3}Enter your Plex token: " PLEXTOKEN
|
read -r -p "${TAB3}Enter your Plex token: " PLEXTOKEN
|
||||||
sed -i -e "s#url: http://192.168.1.12:32400#url: $PLEXURL #g" /opt/kometa/config/config.yml
|
sed -i '/^plex:/,/^[^ ]/{s| url:.*| url: '"$PLEXURL"'|}' /opt/kometa/config/config.yml
|
||||||
sed -i -e "s/token: ####################/token: $PLEXTOKEN/g" /opt/kometa/config/config.yml
|
sed -i '/^plex:/,/^[^ ]/{s| token:.*| token: '"$PLEXTOKEN"'|}' /opt/kometa/config/config.yml
|
||||||
sed -i -e "s/apikey: ################################/apikey: $TMDBKEY/g" /opt/kometa/config/config.yml
|
sed -i '/^tmdb:/,/^[^ ]/{s| apikey:.*| apikey: '"$TMDBKEY"'|}' /opt/kometa/config/config.yml
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "kometa-quickstart" "Kometa-Team/Quickstart" "tarball"
|
||||||
|
|
||||||
|
msg_info "Installing Kometa Quickstart"
|
||||||
|
cd /opt/kometa-quickstart
|
||||||
|
$STD uv venv /opt/kometa-quickstart/.venv
|
||||||
|
$STD /opt/kometa-quickstart/.venv/bin/python -m pip install -r requirements.txt
|
||||||
|
msg_ok "Installed Kometa Quickstart"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/kometa.service
|
cat <<EOF >/etc/systemd/system/kometa.service
|
||||||
@@ -46,7 +54,22 @@ RestartSec=30
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl enable -q --now kometa
|
cat <<EOF >/etc/systemd/system/kometa-quickstart.service
|
||||||
|
[Unit]
|
||||||
|
Description=Kometa Quickstart
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/opt/kometa-quickstart
|
||||||
|
ExecStart=/opt/kometa-quickstart/.venv/bin/python quickstart.py
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now kometa kometa-quickstart
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -14,23 +14,20 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt update
|
$STD apt install -y \
|
||||||
$STD apt -y install \
|
|
||||||
ca-certificates \
|
|
||||||
apache2-utils \
|
apache2-utils \
|
||||||
logrotate \
|
logrotate \
|
||||||
build-essential \
|
build-essential \
|
||||||
git
|
libpcre3-dev \
|
||||||
msg_ok "Installed Dependencies"
|
libssl-dev \
|
||||||
|
zlib1g-dev \
|
||||||
msg_info "Installing Python Dependencies"
|
git \
|
||||||
$STD apt install -y \
|
|
||||||
python3 \
|
python3 \
|
||||||
python3-dev \
|
python3-dev \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
python3-venv \
|
python3-venv \
|
||||||
python3-cffi
|
python3-cffi
|
||||||
msg_ok "Installed Python Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setting up Certbot"
|
msg_info "Setting up Certbot"
|
||||||
$STD python3 -m venv /opt/certbot
|
$STD python3 -m venv /opt/certbot
|
||||||
@@ -39,33 +36,50 @@ $STD /opt/certbot/bin/pip install certbot certbot-dns-cloudflare
|
|||||||
ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot
|
ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot
|
||||||
msg_ok "Set up Certbot"
|
msg_ok "Set up Certbot"
|
||||||
|
|
||||||
msg_info "Installing Openresty"
|
fetch_and_deploy_gh_release "openresty" "openresty/openresty" "prebuild" "latest" "/opt/openresty" "openresty-*.tar.gz"
|
||||||
curl -fsSL "https://openresty.org/package/pubkey.gpg" | gpg --dearmor -o /etc/apt/trusted.gpg.d/openresty.gpg
|
|
||||||
cat <<'EOF' >/etc/apt/sources.list.d/openresty.sources
|
msg_info "Building OpenResty"
|
||||||
Types: deb
|
cd /opt/openresty
|
||||||
URIs: http://openresty.org/package/debian/
|
$STD ./configure \
|
||||||
Suites: bookworm
|
--with-http_v2_module \
|
||||||
Components: openresty
|
--with-http_realip_module \
|
||||||
Signed-By: /etc/apt/trusted.gpg.d/openresty.gpg
|
--with-http_stub_status_module \
|
||||||
|
--with-http_ssl_module \
|
||||||
|
--with-http_sub_module \
|
||||||
|
--with-http_auth_request_module \
|
||||||
|
--with-pcre-jit \
|
||||||
|
--with-stream \
|
||||||
|
--with-stream_ssl_module
|
||||||
|
$STD make -j"$(nproc)"
|
||||||
|
$STD make install
|
||||||
|
rm -rf /opt/openresty
|
||||||
|
|
||||||
|
cat <<'EOF' >/lib/systemd/system/openresty.service
|
||||||
|
[Unit]
|
||||||
|
Description=The OpenResty Application Platform
|
||||||
|
After=syslog.target network-online.target remote-fs.target nss-lookup.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t
|
||||||
|
ExecStart=/usr/local/openresty/nginx/sbin/nginx -g 'daemon off;'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
$STD apt update
|
msg_ok "Built OpenResty"
|
||||||
$STD apt -y install openresty
|
|
||||||
msg_ok "Installed Openresty"
|
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
|
||||||
|
RELEASE=$(get_latest_github_release "NginxProxyManager/nginx-proxy-manager")
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
|
|
||||||
grep "tag_name" |
|
|
||||||
awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v${RELEASE}"
|
fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Setting up Environment"
|
msg_info "Setting up Environment"
|
||||||
ln -sf /usr/bin/python3 /usr/bin/python
|
ln -sf /usr/bin/python3 /usr/bin/python
|
||||||
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
|
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
|
||||||
ln -sf /usr/local/openresty/nginx/ /etc/nginx
|
ln -sf /usr/local/openresty/nginx/ /etc/nginx
|
||||||
sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json
|
sed -i "0,/\"version\": \"[^\"]*\"/s|\"version\": \"[^\"]*\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json
|
||||||
sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/frontend/package.json
|
sed -i "0,/\"version\": \"[^\"]*\"/s|\"version\": \"[^\"]*\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/frontend/package.json
|
||||||
sed -i 's+^daemon+#daemon+g' /opt/nginxproxymanager/docker/rootfs/etc/nginx/nginx.conf
|
sed -i 's+^daemon+#daemon+g' /opt/nginxproxymanager/docker/rootfs/etc/nginx/nginx.conf
|
||||||
NGINX_CONFS=$(find /opt/nginxproxymanager -type f -name "*.conf")
|
NGINX_CONFS=$(find /opt/nginxproxymanager -type f -name "*.conf")
|
||||||
for NGINX_CONF in $NGINX_CONFS; do
|
for NGINX_CONF in $NGINX_CONFS; do
|
||||||
@@ -169,7 +183,6 @@ sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/n
|
|||||||
sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
|
sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
|
||||||
systemctl enable -q --now openresty
|
systemctl enable -q --now openresty
|
||||||
systemctl enable -q --now npm
|
systemctl enable -q --now npm
|
||||||
systemctl restart openresty
|
|
||||||
msg_ok "Started Services"
|
msg_ok "Started Services"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -3544,8 +3544,10 @@ build_container() {
|
|||||||
auto) NET_STRING="$NET_STRING,ip6=auto" ;;
|
auto) NET_STRING="$NET_STRING,ip6=auto" ;;
|
||||||
dhcp) NET_STRING="$NET_STRING,ip6=dhcp" ;;
|
dhcp) NET_STRING="$NET_STRING,ip6=dhcp" ;;
|
||||||
static)
|
static)
|
||||||
NET_STRING="$NET_STRING,ip6=$IPV6_ADDR"
|
if [[ -n "$IPV6_ADDR" ]]; then
|
||||||
[ -n "$IPV6_GATE" ] && NET_STRING="$NET_STRING,gw6=$IPV6_GATE"
|
NET_STRING="$NET_STRING,ip6=$IPV6_ADDR"
|
||||||
|
[ -n "$IPV6_GATE" ] && NET_STRING="$NET_STRING,gw6=$IPV6_GATE"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
none) ;;
|
none) ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user