Compare commits

...

10 Commits

Author SHA1 Message Date
github-actions[bot]
bd7d806bae Update CHANGELOG.md 2026-06-02 18:15:39 +00:00
Tom Frenzel
131d521052 fix(openthread-br): preserve config during update (#14893) 2026-06-02 20:15:16 +02:00
CanbiZ (MickLesk)
f679553c0f Update systemd service to use network-online.target 2026-06-02 15:02:50 +02:00
community-scripts-pr-app[bot]
6131060b19 Update CHANGELOG.md (#14891)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-02 12:36:55 +00:00
community-scripts-pr-app[bot]
b978bd3499 Update CHANGELOG.md (#14890)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-02 12:36:40 +00:00
push-app-to-main[bot]
23f6b8a158 Add ddns-updater (ct) (#14883)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-06-02 14:36:21 +02:00
community-scripts-pr-app[bot]
e77461942d Update CHANGELOG.md (#14889)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-02 12:36:13 +00:00
community-scripts-pr-app[bot]
ef65fb396a Update CHANGELOG.md (#14888)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-02 12:35:48 +00:00
push-app-to-main[bot]
6410586e2e Add invoiceshelf (ct) (#14882)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-06-02 14:35:38 +02:00
push-app-to-main[bot]
0c4e5b5a63 Add certimate (ct) (#14881)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-06-02 14:35:16 +02:00
11 changed files with 404 additions and 0 deletions

View File

@@ -472,10 +472,17 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
## 2026-06-02
### 🆕 New Scripts
- DDNS-Updater ([#14883](https://github.com/community-scripts/ProxmoxVE/pull/14883))
- InvoiceShelf ([#14882](https://github.com/community-scripts/ProxmoxVE/pull/14882))
- Certimate ([#14881](https://github.com/community-scripts/ProxmoxVE/pull/14881))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- OpenThread-BR: preserve config during update [@tomfrenzel](https://github.com/tomfrenzel) ([#14893](https://github.com/community-scripts/ProxmoxVE/pull/14893))
- infisical: fix update abort due to creds field mismatch (#14868) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14870](https://github.com/community-scripts/ProxmoxVE/pull/14870))
- #### ✨ New Features

64
ct/certimate.sh Normal file
View File

@@ -0,0 +1,64 @@
#!/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://certimate.me/
APP="Certimate"
var_tags="${var_tags:-ssl;certificates;acme;automation}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/certimate/certimate ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "certimate" "certimate-go/certimate"; then
msg_info "Stopping Service"
systemctl stop certimate
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/certimate/pb_data /opt/certimate_pb_data_backup
msg_ok "Backed up Data"
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
msg_info "Restoring Data"
cp -r /opt/certimate_pb_data_backup/. /opt/certimate/pb_data
rm -rf /opt/certimate_pb_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start certimate
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}:8090${CL}"

62
ct/ddns-updater.sh Normal file
View File

@@ -0,0 +1,62 @@
#!/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: reptil1990
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/qdm12/ddns-updater
APP="DDNS-Updater"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
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/ddns-updater ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "ddns-updater" "qdm12/ddns-updater"; then
msg_info "Stopping Service"
systemctl stop ddns-updater
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/ddns-updater/data /opt/ddns-updater_data_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"
msg_info "Restoring Data"
cp -r /opt/ddns-updater_data_backup/. /opt/ddns-updater/data/
rm -rf /opt/ddns-updater_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start ddns-updater
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}:8000${CL}"

6
ct/headers/certimate Normal file
View File

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

6
ct/headers/ddns-updater Normal file
View File

@@ -0,0 +1,6 @@
____ ____ _ _______ __ __ __ __
/ __ \/ __ \/ | / / ___/ / / / /___ ____/ /___ _/ /____ _____
/ / / / / / / |/ /\__ \______/ / / / __ \/ __ / __ `/ __/ _ \/ ___/
/ /_/ / /_/ / /| /___/ /_____/ /_/ / /_/ / /_/ / /_/ / /_/ __/ /
/_____/_____/_/ |_//____/ \____/ .___/\__,_/\__,_/\__/\___/_/
/_/

6
ct/headers/invoiceshelf Normal file
View File

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

77
ct/invoiceshelf.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://invoiceshelf.com/
APP="InvoiceShelf"
var_tags="${var_tags:-invoicing;finance;business}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
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/invoiceshelf ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf"; then
msg_info "Stopping Services"
systemctl stop caddy
msg_ok "Stopped Services"
msg_info "Backing up Data"
cp /opt/invoiceshelf/.env /opt/invoiceshelf.env.bak
cp -r /opt/invoiceshelf/storage /opt/invoiceshelf_storage_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf" "tarball"
msg_info "Restoring Data"
cp /opt/invoiceshelf.env.bak /opt/invoiceshelf/.env
rm -f /opt/invoiceshelf.env.bak
cp -r /opt/invoiceshelf_storage_backup/. /opt/invoiceshelf/storage
rm -rf /opt/invoiceshelf_storage_backup
msg_ok "Restored Data"
msg_info "Updating Application"
cd /opt/invoiceshelf
$STD composer install --no-dev --optimize-autoloader
$STD yarn install
$STD yarn build
$STD php artisan migrate --force
$STD php artisan optimize:clear
chown -R www-data:www-data /opt/invoiceshelf
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}"

View File

@@ -47,6 +47,10 @@ function update_script() {
systemctl stop otbr-agent
msg_ok "Stopped Services"
msg_info "Backing up Configuration"
cp /etc/default/otbr-agent /etc/default/otbr-agent.bak
msg_ok "Backed up Configuration"
msg_info "Updating Source"
$STD git reset --hard origin/main
$STD git submodule update --depth 1 --init --recursive
@@ -91,6 +95,10 @@ EOF
msg_ok "Configured Network"
fi
msg_info "Restoring Configuration"
mv /etc/default/otbr-agent.bak /etc/default/otbr-agent
msg_ok "Restored Configuration"
msg_info "Starting Services"
systemctl start otbr-agent
systemctl start otbr-web

View File

@@ -0,0 +1,40 @@
#!/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://certimate.me/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
msg_info "Creating Service"
cat <<'EOF' >/etc/systemd/system/certimate.service
[Unit]
Description=Certimate SSL Certificate Manager
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/certimate
ExecStart=/opt/certimate/certimate serve --http "0.0.0.0:8090"
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now certimate
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: reptil1990
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/qdm12/ddns-updater
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"
msg_info "Configuring DDNS-Updater"
mkdir -p /opt/ddns-updater/data
cat <<EOF >/opt/ddns-updater/data/config.json
{
"settings": [
{
"provider": "namecheap",
"domain": "example.com",
"password": "e5322165c1d74692bfa6d807100c0310"
}
]
}
EOF
msg_ok "Configured DDNS-Updater"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/ddns-updater.service
[Unit]
Description=DDNS-Updater
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStartPre=/bin/bash -c 'for i in \$(seq 1 30); do curl -sf --max-time 5 https://1.1.1.1 >/dev/null 2>&1 && break || sleep 2; done'
ExecStart=/opt/ddns-updater/ddns-updater
Environment=DATADIR=/opt/ddns-updater/data
Environment=LISTENING_ADDRESS=:8000
Environment=LOG_LEVEL=info
Environment=PERIOD=5m
WorkingDirectory=/opt/ddns-updater
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now ddns-updater
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,69 @@
#!/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://invoiceshelf.com/
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.4" PHP_FPM="YES" PHP_MODULES="bcmath,gd,intl,xml,zip,pdo_pgsql,mbstring,curl,exif" setup_php
setup_composer
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
PG_VERSION="16" setup_postgresql
PG_DB_NAME="invoiceshelf" PG_DB_USER="invoiceshelf" setup_postgresql_db
fetch_and_deploy_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf" "tarball"
msg_info "Setting up InvoiceShelf"
cd /opt/invoiceshelf
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|^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
COMPOSER_ALLOW_SUPERUSER=1 $STD composer install --no-dev --optimize-autoloader --no-interaction
$STD php artisan key:generate
$STD yarn install
$STD yarn build
mkdir -p storage/framework/{cache,sessions,views} storage/logs bootstrap/cache
chown -R www-data:www-data /opt/invoiceshelf
chmod -R 775 storage bootstrap/cache
$STD php artisan migrate --force
$STD php artisan storage:link
msg_ok "Set up InvoiceShelf"
msg_info "Configuring Caddy"
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/invoiceshelf/public
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
motd_ssh
customize
cleanup_lxc