mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-05-19 23:14:57 +02:00
Compare commits
16 Commits
fix/rbenv-
...
node_js_ve
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
424f7ba07b | ||
|
|
fb2cbe18c5 | ||
|
|
0a7707d9d8 | ||
|
|
0374da39f7 | ||
|
|
ade578edad | ||
|
|
c33dd2ae39 | ||
|
|
3a5f4454e6 | ||
|
|
c9d0196fee | ||
|
|
404463be21 | ||
|
|
5dc2b090d9 | ||
|
|
1c216fc582 | ||
|
|
1e795835fc | ||
|
|
e234f411c7 | ||
|
|
89025c9f28 | ||
|
|
3b308af40a | ||
|
|
1a93de8674 |
22
CHANGELOG.md
22
CHANGELOG.md
@@ -464,10 +464,32 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 2026-05-18
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- ESPconnect ([#14444](https://github.com/community-scripts/ProxmoxVE/pull/14444))
|
||||||
|
- degoog ([#14533](https://github.com/community-scripts/ProxmoxVE/pull/14533))
|
||||||
|
- Webtrees ([#14532](https://github.com/community-scripts/ProxmoxVE/pull/14532))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Bichon: Support v1 migration [@tomfrenzel](https://github.com/tomfrenzel) ([#14524](https://github.com/community-scripts/ProxmoxVE/pull/14524))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Pangolin: bump to 1.18.4, fix missing statusHistory migration [@MickLesk](https://github.com/MickLesk) ([#14566](https://github.com/community-scripts/ProxmoxVE/pull/14566))
|
||||||
|
|
||||||
## 2026-05-17
|
## 2026-05-17
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- dashy: fix yarn-missing on update and back up full user-data [@lissy93](https://github.com/lissy93) ([#14548](https://github.com/community-scripts/ProxmoxVE/pull/14548))
|
||||||
|
|
||||||
- #### ✨ New Features
|
- #### ✨ New Features
|
||||||
|
|
||||||
- tools.func: replace max-time with speed-limit stall detection in curl_download [@MickLesk](https://github.com/MickLesk) ([#14545](https://github.com/community-scripts/ProxmoxVE/pull/14545))
|
- tools.func: replace max-time with speed-limit stall detection in curl_download [@MickLesk](https://github.com/MickLesk) ([#14545](https://github.com/community-scripts/ProxmoxVE/pull/14545))
|
||||||
|
|||||||
80
ct/bichon.sh
80
ct/bichon.sh
@@ -28,15 +28,95 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CURRENT_VERSION="unknown"
|
||||||
|
if [[ -f /root/.bichon ]]; then
|
||||||
|
CURRENT_VERSION=$(cat /root/.bichon)
|
||||||
|
fi
|
||||||
|
|
||||||
|
MIGRATE_V1=0
|
||||||
|
if [[ "$CURRENT_VERSION" == 0.* ]]; then
|
||||||
|
MIGRATE_V1=1
|
||||||
|
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
|
||||||
|
if [ "$DISK_USAGE" -gt 50 ]; then
|
||||||
|
echo -e "\n${RD}Warning: Less than 50% free storage remaining on the root disk.${CL}"
|
||||||
|
echo -e "${RD}Bichon v1 data migration temporarily duplicates data and requires free space for it.${CL}"
|
||||||
|
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed
|
||||||
|
if [[ ! "$proceed" =~ ^[Yy]$ ]]; then
|
||||||
|
msg_error "Update cancelled by user."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
RAM_TOTAL=$(free -m | awk '/^Mem:/{print $2}')
|
||||||
|
if [ "$RAM_TOTAL" -lt 2000 ]; then
|
||||||
|
echo -e "\n${RD}Warning: LXC has less than 2GB of RAM allocated (${RAM_TOTAL}MB).${CL}"
|
||||||
|
echo -e "${RD}Bichon v1 data migration consumes significant memory and may crash if insufficient.${CL}"
|
||||||
|
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed_ram
|
||||||
|
if [[ ! "$proceed_ram" =~ ^[Yy]$ ]]; then
|
||||||
|
msg_error "Update cancelled by user."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "bichon" "rustmailer/bichon"; then
|
if check_for_gh_release "bichon" "rustmailer/bichon"; then
|
||||||
msg_info "Stopping service"
|
msg_info "Stopping service"
|
||||||
systemctl stop bichon
|
systemctl stop bichon
|
||||||
msg_ok "Stopped service"
|
msg_ok "Stopped service"
|
||||||
|
|
||||||
cp /opt/bichon/bichon.env /tmp/bichon.env.backup
|
cp /opt/bichon/bichon.env /tmp/bichon.env.backup
|
||||||
|
|
||||||
|
if [ "$MIGRATE_V1" -eq 1 ] && [ "$CURRENT_VERSION" != "0.3.7" ]; then
|
||||||
|
msg_info "Updating to intermediate version v0.3.7"
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "v0.3.7" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||||
|
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
||||||
|
systemctl start bichon
|
||||||
|
sleep 30
|
||||||
|
systemctl stop bichon
|
||||||
|
msg_ok "Intermediate update completed"
|
||||||
|
fi
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||||
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
||||||
|
|
||||||
|
if [ "$MIGRATE_V1" -eq 1 ]; then
|
||||||
|
msg_info "Running Bichon v1 Data Migration (patience)"
|
||||||
|
$STD apt install -y expect
|
||||||
|
$STD expect <<'EOF'
|
||||||
|
set timeout -1
|
||||||
|
spawn /opt/bichon/bichon-admin
|
||||||
|
expect "*Select an operation*"
|
||||||
|
send "\033\[B\r"
|
||||||
|
expect "*--bichon-root-dir*"
|
||||||
|
send "/opt/bichon-data\r"
|
||||||
|
expect "*--bichon-index-dir*"
|
||||||
|
send "\r"
|
||||||
|
expect "*--bichon-data-dir*"
|
||||||
|
send "\r"
|
||||||
|
expect "*Ready to migrate?*"
|
||||||
|
send "y"
|
||||||
|
expect "*Enter batch size*"
|
||||||
|
send "1000\r"
|
||||||
|
expect eof
|
||||||
|
catch wait
|
||||||
|
EOF
|
||||||
|
$STD apt remove --purge expect -y
|
||||||
|
$STD apt autoremove -y
|
||||||
|
msg_ok "Migration completed"
|
||||||
|
|
||||||
|
msg_info "Cleaning up legacy Bichon v0.x storage files"
|
||||||
|
rm -rf /opt/bichon-data/envelope
|
||||||
|
rm -rf /opt/bichon-data/eml
|
||||||
|
rm -f /opt/bichon-data/mailbox.db
|
||||||
|
rm -f /opt/bichon-data/meta.db
|
||||||
|
msg_ok "Cleanup completed"
|
||||||
|
|
||||||
|
msg_info "Updating Bichon service for v1"
|
||||||
|
sed -i 's|ExecStart=/opt/bichon/bichon|ExecStart=/opt/bichon/bichon-server|g; s|RestartSec=5|RestartSec=5\n\nLimitNOFILE=65536|g' /etc/systemd/system/bichon.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
msg_ok "Service updated"
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Starting service"
|
msg_info "Starting service"
|
||||||
systemctl start bichon
|
systemctl start bichon
|
||||||
msg_ok "Service started"
|
msg_ok "Service started"
|
||||||
|
|||||||
29
ct/dashy.sh
29
ct/dashy.sh
@@ -23,37 +23,34 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/dashy/public/ ]]; then
|
if [[ ! -d /opt/dashy ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||||
|
|
||||||
if check_for_gh_release "dashy" "Lissy93/dashy"; then
|
if check_for_gh_release "dashy" "Lissy93/dashy"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop dashy
|
systemctl stop dashy
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up conf.yml"
|
msg_info "Backing up user-data"
|
||||||
if [[ -f /opt/dashy/public/conf.yml ]]; then
|
rm -rf /opt/dashy_user_data_backup
|
||||||
cp -R /opt/dashy/public/conf.yml /opt/dashy_conf_backup.yml
|
cp -r /opt/dashy/user-data /opt/dashy_user_data_backup
|
||||||
else
|
msg_ok "Backed up user-data"
|
||||||
cp -R /opt/dashy/user-data/conf.yml /opt/dashy_conf_backup.yml
|
|
||||||
fi
|
|
||||||
msg_ok "Backed up conf.yml"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "Lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
|
||||||
|
|
||||||
msg_info "Updating Dashy"
|
msg_info "Updating Dashy"
|
||||||
cd /opt/dashy
|
cd /opt/dashy
|
||||||
$STD yarn install --ignore-engines --network-timeout 300000
|
$STD yarn install --ignore-engines --network-timeout 300000
|
||||||
msg_ok "Updated Dashy"
|
msg_ok "Updated Dashy"
|
||||||
|
|
||||||
msg_info "Restoring conf.yml"
|
msg_info "Restoring user-data"
|
||||||
cp /opt/dashy_conf_backup.yml /opt/dashy/user-data/conf.yml
|
cp -r /opt/dashy_user_data_backup/. /opt/dashy/user-data/
|
||||||
msg_ok "Restored conf.yml"
|
rm -rf /opt/dashy_user_data_backup
|
||||||
|
msg_ok "Restored user-data"
|
||||||
msg_info "Cleaning"
|
|
||||||
rm -rf /opt/dashy_conf_backup.yml /opt/dashy/public/conf.yml
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
|
|
||||||
msg_info "Starting Dashy"
|
msg_info "Starting Dashy"
|
||||||
systemctl start dashy
|
systemctl start dashy
|
||||||
|
|||||||
73
ct/degoog.sh
Normal file
73
ct/degoog.sh
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
#!/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://github.com/fccview/degoog
|
||||||
|
|
||||||
|
APP="degoog"
|
||||||
|
var_tags="${var_tags:-search;privacy}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-6}"
|
||||||
|
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/degoog ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "degoog" "fccview/degoog"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop degoog
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backing up Configuration & Data"
|
||||||
|
[[ -f /opt/degoog/.env ]] && cp /opt/degoog/.env /opt/degoog.env.bak
|
||||||
|
[[ -d /opt/degoog/data ]] && mv /opt/degoog/data /opt/degoog_data_backup
|
||||||
|
msg_ok "Backed up Configuration & Data"
|
||||||
|
|
||||||
|
if ! command -v bun >/dev/null 2>&1; then
|
||||||
|
msg_info "Installing Bun"
|
||||||
|
export BUN_INSTALL="/root/.bun"
|
||||||
|
curl -fsSL https://bun.sh/install | $STD bash
|
||||||
|
ln -sf /root/.bun/bin/bun /usr/local/bin/bun
|
||||||
|
ln -sf /root/.bun/bin/bunx /usr/local/bin/bunx
|
||||||
|
msg_ok "Installed Bun"
|
||||||
|
fi
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "degoog" "fccview/degoog" "prebuild" "latest" "/opt/degoog" "degoog_*_prebuild.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Restoring Configuration & Data"
|
||||||
|
[[ -f /opt/degoog.env.bak ]] && mv /opt/degoog.env.bak /opt/degoog/.env
|
||||||
|
[[ -d /opt/degoog_data_backup ]] && mv /opt/degoog_data_backup /opt/degoog/data
|
||||||
|
msg_ok "Restored Configuration & Data"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start degoog
|
||||||
|
msg_ok "Started Service"
|
||||||
|
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}:4444${CL}"
|
||||||
54
ct/espconnect.sh
Normal file
54
ct/espconnect.sh
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/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: John Lombardo (programbo)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/thelastoutpostworkshop/ESPConnect
|
||||||
|
|
||||||
|
APP="ESPConnect"
|
||||||
|
var_tags="${var_tags:-iot;esp32;flash}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
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/espconnect ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "espconnect" "thelastoutpostworkshop/ESPConnect"; then
|
||||||
|
msg_info "Stopping Nginx"
|
||||||
|
systemctl stop nginx
|
||||||
|
msg_ok "Stopped Nginx"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "espconnect" "thelastoutpostworkshop/ESPConnect" "prebuild" "latest" "/opt/espconnect" "dist.zip"
|
||||||
|
|
||||||
|
msg_info "Starting Nginx"
|
||||||
|
systemctl start nginx
|
||||||
|
msg_ok "Started Nginx"
|
||||||
|
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}https://${IP}${CL}"
|
||||||
@@ -34,7 +34,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||||
PROJECT_NAME=$(</opt/fumadocs/.projectname)
|
PROJECT_NAME=$(</opt/fumadocs/.projectname)
|
||||||
PROJECT_DIR="/opt/fumadocs/${PROJECT_NAME}"
|
PROJECT_DIR="/opt/fumadocs/${PROJECT_NAME}"
|
||||||
SERVICE_NAME="fumadocs_${PROJECT_NAME}.service"
|
SERVICE_NAME="fumadocs_${PROJECT_NAME}.service"
|
||||||
|
|||||||
6
ct/headers/degoog
Normal file
6
ct/headers/degoog
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__
|
||||||
|
____/ /__ ____ _____ ____ ____ _
|
||||||
|
/ __ / _ \/ __ `/ __ \/ __ \/ __ `/
|
||||||
|
/ /_/ / __/ /_/ / /_/ / /_/ / /_/ /
|
||||||
|
\__,_/\___/\__, /\____/\____/\__, /
|
||||||
|
/____/ /____/
|
||||||
6
ct/headers/espconnect
Normal file
6
ct/headers/espconnect
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___________ ____ ______ __
|
||||||
|
/ ____/ ___// __ \/ ____/___ ____ ____ ___ _____/ /_
|
||||||
|
/ __/ \__ \/ /_/ / / / __ \/ __ \/ __ \/ _ \/ ___/ __/
|
||||||
|
/ /___ ___/ / ____/ /___/ /_/ / / / / / / / __/ /__/ /_
|
||||||
|
/_____//____/_/ \____/\____/_/ /_/_/ /_/\___/\___/\__/
|
||||||
|
|
||||||
6
ct/headers/webtrees
Normal file
6
ct/headers/webtrees
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_ __ __ __
|
||||||
|
| | / /__ / /_ / /_________ ___ _____
|
||||||
|
| | /| / / _ \/ __ \/ __/ ___/ _ \/ _ \/ ___/
|
||||||
|
| |/ |/ / __/ /_/ / /_/ / / __/ __(__ )
|
||||||
|
|__/|__/\___/_.___/\__/_/ \___/\___/____/
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Source: https://pangolin.net/ | Github: https://github.com/fosrl/pangolin
|
# Source: https://pangolin.net/ | Github: https://github.com/fosrl/pangolin
|
||||||
|
|
||||||
APP="Pangolin"
|
APP="Pangolin"
|
||||||
PANGOLIN_VERSION="${PANGOLIN_VERSION:-1.18.3}"
|
PANGOLIN_VERSION="${PANGOLIN_VERSION:-1.18.4}"
|
||||||
var_tags="${var_tags:-proxy}"
|
var_tags="${var_tags:-proxy}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-4096}"
|
var_ram="${var_ram:-4096}"
|
||||||
@@ -81,6 +81,12 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Running database migrations"
|
msg_info "Running database migrations"
|
||||||
cd /opt/pangolin
|
cd /opt/pangolin
|
||||||
|
SQLITE_DB="/opt/pangolin/config/db/db.sqlite"
|
||||||
|
if [[ -f "$SQLITE_DB" ]]; then
|
||||||
|
if ! sqlite3 "$SQLITE_DB" ".tables" 2>/dev/null | tr ' ' '\n' | grep -qx "statusHistory"; then
|
||||||
|
sqlite3 "$SQLITE_DB" "DELETE FROM versionMigrations;" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
ENVIRONMENT=prod $STD node dist/migrations.mjs
|
ENVIRONMENT=prod $STD node dist/migrations.mjs
|
||||||
msg_ok "Ran database migrations"
|
msg_ok "Ran database migrations"
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ function update_script() {
|
|||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball"
|
||||||
|
|
||||||
|
pnpm_version=$(grep -oP '"packageManager":\s*"pnpm@\K[^"]+' /opt/papra/package.json)
|
||||||
|
NODE_VERSION="26" NODE_MODULE="pnpm@$pnpm_version" setup_nodejs
|
||||||
|
|
||||||
msg_info "Building Application"
|
msg_info "Building Application"
|
||||||
cd /opt/papra
|
cd /opt/papra
|
||||||
if [[ -f /opt/papra_env.bak ]]; then
|
if [[ -f /opt/papra_env.bak ]]; then
|
||||||
|
|||||||
65
ct/webtrees.sh
Normal file
65
ct/webtrees.sh
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
#!/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: sudofly
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://webtrees.net/
|
||||||
|
|
||||||
|
APP="Webtrees"
|
||||||
|
var_tags="${var_tags:-genealogy;cms}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
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/webtrees ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "webtrees" "fisharebest/webtrees"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
|
||||||
|
systemctl stop caddy php${PHP_VER}-fpm
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backing up Data"
|
||||||
|
cp -r /opt/webtrees/data /opt/webtrees_data_backup
|
||||||
|
msg_ok "Backed up Data"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "webtrees" "fisharebest/webtrees" "prebuild" "latest" "/opt/webtrees" "webtrees-*.zip"
|
||||||
|
|
||||||
|
msg_info "Restoring Data"
|
||||||
|
cp -r /opt/webtrees_data_backup/. /opt/webtrees/data
|
||||||
|
rm -rf /opt/webtrees_data_backup
|
||||||
|
chown -R www-data:www-data /opt/webtrees
|
||||||
|
msg_ok "Restored Data"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start caddy php${PHP_VER}-fpm
|
||||||
|
msg_ok "Started Service"
|
||||||
|
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}"
|
||||||
@@ -27,7 +27,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
|
||||||
|
|
||||||
if check_for_gh_release "zipline" "diced/zipline"; then
|
if check_for_gh_release "zipline" "diced/zipline"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
|
|||||||
@@ -50,10 +50,12 @@ Type=simple
|
|||||||
User=root
|
User=root
|
||||||
EnvironmentFile=/opt/bichon/bichon.env
|
EnvironmentFile=/opt/bichon/bichon.env
|
||||||
WorkingDirectory=/opt/bichon
|
WorkingDirectory=/opt/bichon
|
||||||
ExecStart=/opt/bichon/bichon
|
ExecStart=/opt/bichon/bichon-server
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
|
|
||||||
|
LimitNOFILE=65536
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ Description=dashy
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=/opt/dashy
|
WorkingDirectory=/opt/dashy
|
||||||
Environment=NODE_OPTIONS=--openssl-legacy-provider
|
|
||||||
ExecStart=/usr/bin/node server.js
|
ExecStart=/usr/bin/node server.js
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|||||||
88
install/degoog-install.sh
Normal file
88
install/degoog-install.sh
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
#!/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://github.com/fccview/degoog
|
||||||
|
|
||||||
|
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 \
|
||||||
|
git \
|
||||||
|
unzip
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Installing Bun"
|
||||||
|
export BUN_INSTALL="/root/.bun"
|
||||||
|
curl -fsSL https://bun.sh/install | $STD bash
|
||||||
|
ln -sf /root/.bun/bin/bun /usr/local/bin/bun
|
||||||
|
ln -sf /root/.bun/bin/bunx /usr/local/bin/bunx
|
||||||
|
msg_ok "Installed Bun"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "degoog" "fccview/degoog" "prebuild" "latest" "/opt/degoog" "degoog_*_prebuild.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Setting up degoog"
|
||||||
|
mkdir -p /opt/degoog/data/{engines,plugins,themes,store}
|
||||||
|
|
||||||
|
cat <<EOF >/opt/degoog/.env
|
||||||
|
DEGOOG_PORT=4444
|
||||||
|
DEGOOG_ENGINES_DIR=/opt/degoog/data/engines
|
||||||
|
DEGOOG_PLUGINS_DIR=/opt/degoog/data/plugins
|
||||||
|
DEGOOG_THEMES_DIR=/opt/degoog/data/themes
|
||||||
|
DEGOOG_ALIASES_FILE=/opt/degoog/data/aliases.json
|
||||||
|
DEGOOG_PLUGIN_SETTINGS_FILE=/opt/degoog/data/plugin-settings.json
|
||||||
|
# DEGOOG_SETTINGS_PASSWORDS=changeme
|
||||||
|
# DEGOOG_PUBLIC_INSTANCE=false
|
||||||
|
# LOGGER=debug
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [[ ! -f /opt/degoog/data/aliases.json ]]; then
|
||||||
|
cat <<EOF >/opt/degoog/data/aliases.json
|
||||||
|
{}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f /opt/degoog/data/plugin-settings.json ]]; then
|
||||||
|
cat <<EOF >/opt/degoog/data/plugin-settings.json
|
||||||
|
{}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f /opt/degoog/data/repos.json ]]; then
|
||||||
|
cat <<EOF >/opt/degoog/data/repos.json
|
||||||
|
[]
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
msg_ok "Set up degoog"
|
||||||
|
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<EOF >/etc/systemd/system/degoog.service
|
||||||
|
[Unit]
|
||||||
|
Description=degoog
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=root
|
||||||
|
WorkingDirectory=/opt/degoog
|
||||||
|
EnvironmentFile=/opt/degoog/.env
|
||||||
|
ExecStart=/usr/local/bin/bun run src/server/index.ts
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now degoog
|
||||||
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
cleanup_lxc
|
||||||
58
install/espconnect-install.sh
Normal file
58
install/espconnect-install.sh
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: John Lombardo (programbo)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/thelastoutpostworkshop/ESPConnect
|
||||||
|
|
||||||
|
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 nginx
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "espconnect" "thelastoutpostworkshop/ESPConnect" "prebuild" "latest" "/opt/espconnect" "dist.zip"
|
||||||
|
create_self_signed_cert
|
||||||
|
|
||||||
|
msg_info "Configuring Nginx"
|
||||||
|
mkdir -p /etc/ssl/private
|
||||||
|
cat <<'EOF' >/etc/nginx/sites-available/espconnect
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
listen [::]:80 default_server;
|
||||||
|
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl default_server;
|
||||||
|
listen [::]:443 ssl default_server;
|
||||||
|
|
||||||
|
ssl_certificate /etc/ssl/certs/espconnect-selfsigned.crt;
|
||||||
|
ssl_certificate_key /etc/ssl/private/espconnect-selfsigned.key;
|
||||||
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
|
||||||
|
root /opt/espconnect;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
ln -sf /etc/nginx/sites-available/espconnect /etc/nginx/sites-enabled/espconnect
|
||||||
|
rm -f /etc/nginx/sites-enabled/default
|
||||||
|
$STD nginx -t
|
||||||
|
systemctl enable -q nginx
|
||||||
|
systemctl restart nginx
|
||||||
|
msg_ok "Configured Nginx"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
cleanup_lxc
|
||||||
@@ -19,7 +19,7 @@ $STD apt install -y \
|
|||||||
git
|
git
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
|
||||||
|
|
||||||
msg_info "Preparing Fumadocs - "
|
msg_info "Preparing Fumadocs - "
|
||||||
mkdir -p /opt/fumadocs
|
mkdir -p /opt/fumadocs
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ $STD apt install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
PANGOLIN_VERSION="${PANGOLIN_VERSION:-1.18.3}"
|
PANGOLIN_VERSION="${PANGOLIN_VERSION:-1.18.4}"
|
||||||
fetch_and_deploy_gh_release "pangolin" "fosrl/pangolin" "tarball" "$PANGOLIN_VERSION"
|
fetch_and_deploy_gh_release "pangolin" "fosrl/pangolin" "tarball" "$PANGOLIN_VERSION"
|
||||||
fetch_and_deploy_gh_release "gerbil" "fosrl/gerbil" "singlefile" "latest" "/usr/bin" "gerbil_linux_amd64"
|
fetch_and_deploy_gh_release "gerbil" "fosrl/gerbil" "singlefile" "latest" "/usr/bin" "gerbil_linux_amd64"
|
||||||
fetch_and_deploy_gh_release "traefik" "traefik/traefik" "prebuild" "latest" "/usr/bin" "traefik_v*_linux_amd64.tar.gz"
|
fetch_and_deploy_gh_release "traefik" "traefik/traefik" "prebuild" "latest" "/usr/bin" "traefik_v*_linux_amd64.tar.gz"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ RELEASE=$(curl -fsSL https://api.github.com/repos/papra-hq/papra/releases | grep
|
|||||||
fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball" "${RELEASE}" "/opt/papra"
|
fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball" "${RELEASE}" "/opt/papra"
|
||||||
|
|
||||||
pnpm_version=$(grep -oP '"packageManager":\s*"pnpm@\K[^"]+' /opt/papra/package.json)
|
pnpm_version=$(grep -oP '"packageManager":\s*"pnpm@\K[^"]+' /opt/papra/package.json)
|
||||||
NODE_VERSION="24" NODE_MODULE="pnpm@$pnpm_version" setup_nodejs
|
NODE_VERSION="26" NODE_MODULE="pnpm@$pnpm_version" setup_nodejs
|
||||||
|
|
||||||
msg_info "Installing Papra (Patience)"
|
msg_info "Installing Papra (Patience)"
|
||||||
cd /opt/papra
|
cd /opt/papra
|
||||||
|
|||||||
77
install/webtrees-install.sh
Normal file
77
install/webtrees-install.sh
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: sudofly
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://webtrees.net/
|
||||||
|
|
||||||
|
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 \
|
||||||
|
unzip
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_mysql,mbstring,curl" setup_php
|
||||||
|
setup_mariadb
|
||||||
|
MARIADB_DB_NAME="webtrees" MARIADB_DB_USER="webtrees" setup_mariadb_db
|
||||||
|
$STD mariadb -u root -e "GRANT ALL ON \`webtrees\`.* TO 'webtrees'@'127.0.0.1' IDENTIFIED BY '${MARIADB_DB_PASS}'; FLUSH PRIVILEGES;"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "webtrees" "fisharebest/webtrees" "prebuild" "latest" "/opt/webtrees" "webtrees-*.zip"
|
||||||
|
|
||||||
|
msg_info "Setting up Webtrees"
|
||||||
|
chown -R www-data:www-data /opt/webtrees
|
||||||
|
msg_ok "Set up Webtrees"
|
||||||
|
|
||||||
|
msg_info "Configuring Caddy"
|
||||||
|
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
|
||||||
|
cat <<EOF >/etc/caddy/Caddyfile
|
||||||
|
:80 {
|
||||||
|
root * /opt/webtrees
|
||||||
|
php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock
|
||||||
|
file_server
|
||||||
|
encode gzip
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
usermod -aG www-data caddy
|
||||||
|
msg_ok "Configured Caddy"
|
||||||
|
|
||||||
|
systemctl enable -q --now php${PHP_VER}-fpm
|
||||||
|
systemctl restart caddy
|
||||||
|
|
||||||
|
msg_info "Automating Webtrees Setup"
|
||||||
|
sleep 5
|
||||||
|
WT_ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c15)
|
||||||
|
curl -sS -X POST "http://127.0.0.1/" \
|
||||||
|
-d "step=6" \
|
||||||
|
--data-urlencode "baseurl=http://${LOCAL_IP}" \
|
||||||
|
-d "lang=en-US" \
|
||||||
|
-d "dbtype=mysql" \
|
||||||
|
-d "dbhost=127.0.0.1" \
|
||||||
|
-d "dbport=3306" \
|
||||||
|
-d "dbuser=webtrees" \
|
||||||
|
--data-urlencode "dbpass=${MARIADB_DB_PASS}" \
|
||||||
|
-d "dbname=webtrees" \
|
||||||
|
-d "tblpfx=wt_" \
|
||||||
|
-d "wtname=Administrator" \
|
||||||
|
-d "wtuser=Admin" \
|
||||||
|
--data-urlencode "wtpass=${WT_ADMIN_PASS}" \
|
||||||
|
-d "wtemail=admin@example.com" >/dev/null
|
||||||
|
|
||||||
|
cat <<EOF >>~/webtrees.creds
|
||||||
|
|
||||||
|
Webtrees Admin User: Admin
|
||||||
|
Webtrees Admin Password: ${WT_ADMIN_PASS}
|
||||||
|
EOF
|
||||||
|
msg_ok "Webtrees Setup Automated"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
cleanup_lxc
|
||||||
@@ -14,7 +14,7 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
|
||||||
PG_VERSION="17" setup_postgresql
|
PG_VERSION="17" setup_postgresql
|
||||||
PG_DB_NAME="ziplinedb" PG_DB_USER="zipline" setup_postgresql_db
|
PG_DB_NAME="ziplinedb" PG_DB_USER="zipline" setup_postgresql_db
|
||||||
fetch_and_deploy_gh_release "zipline" "diced/zipline" "tarball"
|
fetch_and_deploy_gh_release "zipline" "diced/zipline" "tarball"
|
||||||
|
|||||||
Reference in New Issue
Block a user