From 2d01a49c01ff751f72edf5745355d616fdeebf76 Mon Sep 17 00:00:00 2001 From: "GitHub Actions[bot]" Date: Wed, 4 Feb 2026 19:01:08 +0000 Subject: [PATCH 01/23] chore: update github-versions.json Total versions: 19 Pinned versions: 1 Generated: 2026-02-04T19:01:08Z --- frontend/public/json/github-versions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/public/json/github-versions.json b/frontend/public/json/github-versions.json index 5a425b011..6d7741096 100644 --- a/frontend/public/json/github-versions.json +++ b/frontend/public/json/github-versions.json @@ -1,5 +1,5 @@ { - "generated": "2026-02-04T13:17:54Z", + "generated": "2026-02-04T19:01:08Z", "versions": [ { "slug": "affine", From f9d36f85bc4c2f652b2b7524bb126586f5f5aabc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 5 Feb 2026 13:00:13 +0000 Subject: [PATCH 02/23] Delete nginx-ui (ct) after migration to ProxmoxVE --- ct/nginx-ui.sh | 68 -------------------- frontend/public/json/nginx-ui.json | 44 ------------- install/nginx-ui-install.sh | 99 ------------------------------ 3 files changed, 211 deletions(-) delete mode 100644 ct/nginx-ui.sh delete mode 100644 frontend/public/json/nginx-ui.json delete mode 100644 install/nginx-ui-install.sh diff --git a/ct/nginx-ui.sh b/ct/nginx-ui.sh deleted file mode 100644 index 81cb0018e..000000000 --- a/ct/nginx-ui.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://nginxui.com - -APP="Nginx-UI" -var_tags="${var_tags:-webserver;nginx;proxy}" -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 [[ ! -f /usr/local/bin/nginx-ui ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "nginx-ui" "0xJacky/nginx-ui"; then - msg_info "Stopping Service" - systemctl stop nginx-ui - msg_ok "Stopped Service" - - msg_info "Backing up Configuration" - cp /usr/local/etc/nginx-ui/app.ini /tmp/nginx-ui-app.ini.bak - msg_ok "Backed up Configuration" - - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nginx-ui" "0xJacky/nginx-ui" "prebuild" "latest" "/opt/nginx-ui" "nginx-ui-linux-64.tar.gz" - - msg_info "Updating Binary" - cp /opt/nginx-ui/nginx-ui /usr/local/bin/nginx-ui - chmod +x /usr/local/bin/nginx-ui - rm -rf /opt/nginx-ui - msg_ok "Updated Binary" - - msg_info "Restoring Configuration" - mv /tmp/nginx-ui-app.ini.bak /usr/local/etc/nginx-ui/app.ini - msg_ok "Restored Configuration" - - msg_info "Starting Service" - systemctl start nginx-ui - 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}:9000${CL}" diff --git a/frontend/public/json/nginx-ui.json b/frontend/public/json/nginx-ui.json deleted file mode 100644 index 176f4cc12..000000000 --- a/frontend/public/json/nginx-ui.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Nginx UI", - "slug": "nginx-ui", - "categories": [ - 21 - ], - "date_created": "2026-02-03", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9000, - "documentation": "https://nginxui.com/guide/", - "website": "https://nginxui.com", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/nginx-ui.webp", - "config_path": "/usr/local/etc/nginx-ui/app.ini", - "description": "Nginx UI is a comprehensive web-based interface designed to simplify the management and configuration of Nginx servers. It provides features like online statistics, ChatGPT-powered config assistant, automatic Let's Encrypt certificates, and config file editing with syntax highlighting.", - "install_methods": [ - { - "type": "default", - "script": "ct/nginx-ui.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Nginx runs on ports 80/443, Nginx UI management interface on port 9000.", - "type": "info" - }, - { - "text": "SSL certificates can be managed automatically with Let's Encrypt integration.", - "type": "info" - } - ] -} \ No newline at end of file diff --git a/install/nginx-ui-install.sh b/install/nginx-ui-install.sh deleted file mode 100644 index 768f75952..000000000 --- a/install/nginx-ui-install.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://nginxui.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 \ - nginx \ - logrotate -msg_ok "Installed Dependencies" - -fetch_and_deploy_gh_release "nginx-ui" "0xJacky/nginx-ui" "prebuild" "latest" "/opt/nginx-ui" "nginx-ui-linux-64.tar.gz" - -msg_info "Installing Nginx UI" -cp /opt/nginx-ui/nginx-ui /usr/local/bin/nginx-ui -chmod +x /usr/local/bin/nginx-ui -rm -rf /opt/nginx-ui -msg_ok "Installed Nginx UI" - -msg_info "Configuring Nginx UI" -mkdir -p /usr/local/etc/nginx-ui -cat </usr/local/etc/nginx-ui/app.ini -[server] -HttpHost = 0.0.0.0 -HttpPort = 9000 -RunMode = release -JwtSecret = $(openssl rand -hex 32) - -[nginx] -AccessLogPath = /var/log/nginx/access.log -ErrorLogPath = /var/log/nginx/error.log -ConfigDir = /etc/nginx -PIDPath = /run/nginx.pid -TestConfigCmd = nginx -t -ReloadCmd = nginx -s reload -RestartCmd = systemctl restart nginx - -[app] -PageSize = 10 - -[cert] -Email = -CADir = -RenewalInterval = 7 -RecursiveNameservers = -EOF -msg_ok "Configured Nginx UI" - -msg_info "Creating Service" -cat </etc/systemd/system/nginx-ui.service -[Unit] -Description=Another WebUI for Nginx -Documentation=https://nginxui.com -After=network.target nginx.service - -[Service] -Type=simple -ExecStart=/usr/local/bin/nginx-ui --config /usr/local/etc/nginx-ui/app.ini -RuntimeDirectory=nginx-ui -WorkingDirectory=/var/run/nginx-ui -Restart=on-failure -TimeoutStopSec=5 -KillMode=mixed - -[Install] -WantedBy=multi-user.target -EOF -systemctl daemon-reload -msg_ok "Created Service" - -msg_info "Creating Initial Admin User" -systemctl start nginx-ui -sleep 3 -systemctl stop nginx-ui -sleep 1 -/usr/local/bin/nginx-ui reset-password --config /usr/local/etc/nginx-ui/app.ini &>/tmp/nginx-ui-reset.log || true -ADMIN_PASS=$(grep -oP 'Password: \K\S+' /tmp/nginx-ui-reset.log || echo "admin") -echo -e "Nginx-UI Credentials\nUsername: admin\nPassword: $ADMIN_PASS" >~/nginx-ui.creds -rm -f /tmp/nginx-ui-reset.log -msg_ok "Created Initial Admin User" - -msg_info "Starting Service" -systemctl enable -q --now nginx-ui -rm -rf /etc/nginx/sites-enabled/default -msg_ok "Started Service" - -motd_ssh -customize -cleanup_lxc From fca044ff3e3ec961c1013c234c98a08b0b686bad Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Feb 2026 13:17:02 +0000 Subject: [PATCH 03/23] Delete opencloud (ct) after migration to ProxmoxVE (#1420) Co-authored-by: github-actions[bot] --- ct/headers/opencloud | 6 - ct/opencloud.sh | 60 -------- frontend/public/json/opencloud.json | 64 --------- install/opencloud-install.sh | 210 ---------------------------- 4 files changed, 340 deletions(-) delete mode 100644 ct/headers/opencloud delete mode 100644 ct/opencloud.sh delete mode 100644 frontend/public/json/opencloud.json delete mode 100644 install/opencloud-install.sh diff --git a/ct/headers/opencloud b/ct/headers/opencloud deleted file mode 100644 index c8dff8968..000000000 --- a/ct/headers/opencloud +++ /dev/null @@ -1,6 +0,0 @@ - ____ ________ __ - / __ \____ ___ ____ / ____/ /___ __ ______/ / - / / / / __ \/ _ \/ __ \/ / / / __ \/ / / / __ / -/ /_/ / /_/ / __/ / / / /___/ / /_/ / /_/ / /_/ / -\____/ .___/\___/_/ /_/\____/_/\____/\__,_/\__,_/ - /_/ diff --git a/ct/opencloud.sh b/ct/opencloud.sh deleted file mode 100644 index 639ee67db..000000000 --- a/ct/opencloud.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: vhsdream -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://opencloud.eu - -APP="OpenCloud" -var_tags="${var_tags:-files;cloud}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-20}" -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 /etc/opencloud ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - RELEASE="v5.0.1" - if check_for_gh_release "opencloud" "opencloud-eu/opencloud" "${RELEASE}"; then - msg_info "Stopping services" - systemctl stop opencloud opencloud-wopi - msg_ok "Stopped services" - - msg_info "Updating packages" - $STD apt-get update - $STD apt-get dist-upgrade -y - msg_ok "Updated packages" - - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "opencloud" "opencloud-eu/opencloud" "singlefile" "${RELEASE}" "/usr/bin" "opencloud-*-linux-amd64" - - msg_info "Starting services" - systemctl start opencloud opencloud-wopi - 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}https://${CL}" diff --git a/frontend/public/json/opencloud.json b/frontend/public/json/opencloud.json deleted file mode 100644 index 29fe38a5c..000000000 --- a/frontend/public/json/opencloud.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "OpenCloud", - "slug": "opencloud", - "categories": [ - 11 - ], - "date_created": "2025-12-12", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 443, - "documentation": "https://docs.opencloud.eu", - "config_path": "/etc/opencloud/opencloud.env, /etc/opencloud/opencloud.yaml, /etc/opencloud/csp.yaml", - "website": "https://opencloud.eu", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/opencloud.webp", - "description": "OpenCloud is the file sharing and collaboration solution of the Heinlein Group. Through intelligent file management and a strong open source community, files become valuable resources, effectively structured and usable in the long term. With flexible data rooms and intelligent access rights, teams can access and work together on data anytime, anywhere without barriers, but with a lot of productivity.", - "install_methods": [ - { - "type": "default", - "script": "ct/opencloud.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "randomly generated during the installation process" - }, - "notes": [ - { - "text": "Valid TLS certificates and fully-qualified domain names behind a reverse proxy (Caddy) for 3 services - OpenCloud, Collabora, and WOPI are **REQUIRED**", - "type": "warning" - }, - { - "text": "Forgot your admin password? Check `admin_password` in the 'idm' section in `/etc/opencloud/opencloud.yaml`", - "type": "info" - }, - { - "text": "**Optional External Apps**: extract zip archives from App Store to `/etc/opencloud/assets/apps`", - "type": "info" - }, - { - "text": "**Optional CalDAV and CardDAV**: requires separate Radicale install. Edit and rename `/opt/opencloud/proxy.yaml.bak` and change your Radicale config to use `http_x_remote_user` as the auth method", - "type": "info" - }, - { - "text": "**Optional OpenID**: Authelia and PocketID supported. Uncomment relevant lines in `/opt/opencloud/opencloud.env` and consult OpenCloud GitHub discussions for configuration tips", - "type": "info" - }, - { - "text": "**Optional Full-text Search with Apache Tika**: requires your own Tika LXC. See `https://community-scripts.github.io/ProxmoxVE/scripts?id=apache-tika`", - "type": "info" - }, - { - "text": "**Relevant services**: `opencloud.service`, `opencloud-wopi.service`, `coolwsd.service`", - "type": "info" - } - ] -} diff --git a/install/opencloud-install.sh b/install/opencloud-install.sh deleted file mode 100644 index 7d4c9a060..000000000 --- a/install/opencloud-install.sh +++ /dev/null @@ -1,210 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: vhsdream -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://opencloud.eu - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -read -r -p "${TAB3}Enter the hostname of your OpenCloud server (eg cloud.domain.tld): " oc_host -if [[ "$oc_host" ]]; then - OC_HOST="$oc_host" -fi -read -r -p "${TAB3}Enter the hostname of your Collabora server (eg collabora.domain.tld): " collabora_host -if [[ "$collabora_host" ]]; then - COLLABORA_HOST="$collabora_host" -fi -read -r -p "${TAB3}Enter the hostname of your WOPI server (eg wopiserver.domain.tld): " wopi_host -if [[ "$wopi_host" ]]; then - WOPI_HOST="$wopi_host" -fi - -# Collabora online - this is broken because it adds the Component and apt doesn't like that -# setup_deb822_repo \ -# "collaboraonline" \ -# "https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg" \ -# "https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb/Release" \ -# "./" \ -# "main" - -msg_info "Installing Collabora Online" -curl -fsSL https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg -o /etc/apt/keyrings/collaboraonline-release-keyring.gpg -cat </etc/apt/sources.list.d/colloboraonline.sources -Types: deb -URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb -Suites: ./ -Signed-By: /etc/apt/keyrings/collaboraonline-release-keyring.gpg -EOF -$STD apt-get update -$STD apt-get install -y coolwsd code-brand -systemctl stop coolwsd -mkdir -p /etc/systemd/system/coolwsd.service.d -cat </etc/systemd/system/coolwsd.service.d/override.conf -[Unit] -Before=opencloud-wopi.service -EOF -systemctl daemon-reload -COOLPASS="$(openssl rand -base64 36)" -$STD sudo -u cool coolconfig set-admin-password --user=admin --password="$COOLPASS" -echo "$COOLPASS" >~/.coolpass -msg_ok "Installed Collabora Online" - -# OpenCloud -fetch_and_deploy_gh_release "opencloud" "opencloud-eu/opencloud" "singlefile" "v5.0.1" "/usr/bin" "opencloud-*-linux-amd64" - -msg_info "Configuring OpenCloud" -DATA_DIR="/var/lib/opencloud/" -CONFIG_DIR="/etc/opencloud" -ENV_FILE="${CONFIG_DIR}/opencloud.env" -mkdir -p "$DATA_DIR" "$CONFIG_DIR"/assets/apps - -curl -fsSL https://raw.githubusercontent.com/opencloud-eu/opencloud-compose/refs/heads/main/config/opencloud/csp.yaml -o "$CONFIG_DIR"/csp.yaml -curl -fsSL https://raw.githubusercontent.com/opencloud-eu/opencloud-compose/refs/heads/main/config/opencloud/proxy.yaml -o "$CONFIG_DIR"/proxy.yaml.bak - -cat <"$ENV_FILE" -OC_URL=https://${OC_HOST} -OC_INSECURE=false -IDM_CREATE_DEMO_USERS=false -OC_LOG_LEVEL=warning -OC_CONFIG_DIR=${CONFIG_DIR} -OC_BASE_DATA_PATH=${DATA_DIR} -STORAGE_SYSTEM_OC_ROOT=${DATA_DIR}/storage/metadata - -## Web -WEB_ASSET_CORE_PATH=${CONFIG_DIR}/web/assets -WEB_ASSET_APPS_PATH=${CONFIG_DIR}/web/assets/apps -WEB_UI_CONFIG_FILE=${CONFIG_DIR}/web/config.json -# WEB_ASSET_THEMES_PATH=${CONFIG_DIR}/web/assets/themes -# WEB_UI_THEME_PATH= - -## Frontend -FRONTEND_DISABLE_RADICALE=true -FRONTEND_GROUPWARE_ENABLED=false -GRAPH_INCLUDE_OCM_SHAREES=true - -## Proxy -PROXY_TLS=false -PROXY_CSP_CONFIG_FILE_LOCATION=${CONFIG_DIR}/csp.yaml - -## Collaboration - requires VALID TLS -COLLABORA_DOMAIN=${COLLABORA_HOST} -COLLABORATION_APP_NAME="CollaboraOnline" -COLLABORATION_APP_PRODUCT="Collabora" -COLLABORATION_APP_ADDR=https://${COLLABORA_HOST} -COLLABORATION_APP_INSECURE=false -COLLABORATION_HTTP_ADDR=0.0.0.0:9300 -COLLABORATION_WOPI_SRC=https://${WOPI_HOST} -COLLABORATION_JWT_SECRET= - -## Notifications - Email settings -# NOTIFICATIONS_SMTP_HOST= -# NOTIFICATIONS_SMTP_PORT= -# NOTIFICATIONS_SMTP_SENDER= -# NOTIFICATIONS_SMTP_USERNAME= -# NOTIFICATIONS_SMTP_PASSWORD= -# NOTIFICATIONS_SMTP_AUTHENTICATION=login -## Encryption method. Possible values are 'starttls', 'ssltls' and 'none' -# NOTIFICATIONS_SMTP_ENCRYPTION=starttls -## Allow insecure connections. Defaults to false. -# NOTIFICATIONS_SMTP_INSECURE=false - -## Start additional services at runtime -## Examples: notifications, antivirus etc. -## Do not uncomment unless configured above. -# OC_ADD_RUN_SERVICES="notifications" - -## OpenID - via web browser -## uncomment for OpenID in general -# OC_EXCLUDE_RUN_SERVICES=idp -# OC_OIDC_ISSUER= -# IDP_DOMAIN= -# PROXY_OIDC_ACCESS_TOKEN_VERIFY_METHOD=none -# PROXY_OIDC_REWRITE_WELLKNOWN=true -# PROXY_USER_OIDC_CLAIM=preferred_username -# PROXY_USER_CS3_CLAIM=username -## automatically create accounts -# PROXY_AUTOPROVISION_ACCOUNTS=true -# WEB_OIDC_SCOPE=openid profile email groups -# GRAPH_ASSIGN_DEFAULT_USER_ROLE=false -# -## uncomment below if using PocketID -# WEB_OIDC_CLIENT_ID= -# WEB_OIDC_METADATA_URL=/.well-known/openid-configuration - -## Full Text Search - Apache Tika -## Requires a separate install of Tika - see https://community-scripts.github.io/ProxmoxVE/scripts?id=apache-tika -# SEARCH_EXTRACTOR_TYPE=tika -# FRONTEND_FULL_TEXT_SEARCH_ENABLED=true -# SEARCH_EXTRACTOR_TIKA_TIKA_URL= - -## External storage test - Only NFS v4.2+ is supported -## User files -# STORAGE_USERS_POSIX_ROOT= -EOF - -cat </etc/systemd/system/opencloud.service -[Unit] -Description=OpenCloud server -After=network-online.target - -[Service] -Type=simple -User=opencloud -Group=opencloud -EnvironmentFile=${ENV_FILE} -ExecStart=/usr/bin/opencloud server -Restart=always - -[Install] -WantedBy=multi-user.target -EOF - -cat </etc/systemd/system/opencloud-wopi.service -[Unit] -Description=OpenCloud WOPI Server -Wants=coolwsd.service -After=opencloud.service coolwsd.service - -[Service] -Type=simple -User=opencloud -Group=opencloud -EnvironmentFile=${ENV_FILE} -ExecStartPre=/bin/sleep 10 -ExecStart=/usr/bin/opencloud collaboration server -Restart=always -KillSignal=SIGKILL -KillMode=mixed -TimeoutStopSec=10 - -[Install] -WantedBy=multi-user.target -EOF - -$STD sudo -u cool coolconfig set ssl.enable false -$STD sudo -u cool coolconfig set ssl.termination true -$STD sudo -u cool coolconfig set ssl.ssl_verification true -sed -i "s|CSP2\"/>|CSP2\">frame-ancestors https://${OC_HOST}|" /etc/coolwsd/coolwsd.xml -useradd -r -M -s /usr/sbin/nologin opencloud -chown -R opencloud:opencloud "$CONFIG_DIR" "$DATA_DIR" -sudo -u opencloud opencloud init --config-path "$CONFIG_DIR" --insecure no -OPENCLOUD_SECRET="$(sed -n '/jwt/p' "$CONFIG_DIR"/opencloud.yaml | awk '{print $2}')" -sed -i "s/JWT_SECRET=/&${OPENCLOUD_SECRET//&/\\&}/" "$ENV_FILE" -msg_ok "Configured OpenCloud" - -msg_info "Starting services" -systemctl enable -q --now coolwsd opencloud -sleep 5 -systemctl enable -q --now opencloud-wopi -msg_ok "Started services" - -motd_ssh -customize -cleanup_lxc From 7c3c1a3c860d6db11136e035a47af54743330317 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 10:21:30 +0100 Subject: [PATCH 04/23] add Bichon script --- ct/bichon.sh | 55 +++++++++++++++++++++++++++++++++++++++ install/bichon-install.sh | 50 +++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 ct/bichon.sh create mode 100644 install/bichon-install.sh diff --git a/ct/bichon.sh b/ct/bichon.sh new file mode 100644 index 000000000..f4091c9d9 --- /dev/null +++ b/ct/bichon.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE +# Source: https://github.com/rustmailer/bichon + +APP="PowerDNS" +var_tags="${var_tags:-email;archive}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-1024}" +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/bichon ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "bichon" "rustmailer/bichon"; then + msg_info "Stopping service" + systemctl stop bichon + msg_ok "Stopped service" + + cp /opt/bichon/bichon.env /tmp/bichon.env.backup + 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 + + msg_info "Starting service" + systemctl start bichon + msg_ok "Service started" + 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}:15630${CL}" diff --git a/install/bichon-install.sh b/install/bichon-install.sh new file mode 100644 index 000000000..323897384 --- /dev/null +++ b/install/bichon-install.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE +# Source: https://github.com/rustmailer/bichon + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os +setup_hwaccel + +fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz" +mkdir -p /opt/bichon-data + +msg_info "Setting up Bichon" +cat </opt/bichon/bichon.env +BICHON_ROOT_DIR=/opt/bichon-data +BICHON_LOG_LEVEL=info +EOF +msg_ok "Setup Bichon" + +msg_info "Creating Service" +cat </etc/systemd/system/bichon.service +[Unit] +Description=Bichon service +After=network.target + +[Service] +Type=simple +User=root +EnvironmentFile=/opt/bichon/bichon.env +WorkingDirectory=/opt/bichon +ExecStart=/opt/bichon/bichon +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now bichon +msg_info "Created Service" + +motd_ssh +customize +cleanup_lxc From 7ab95e6e99b98ecadb5b960d8c9f058816853e2a Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 10:23:24 +0100 Subject: [PATCH 05/23] oops --- ct/bichon.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/bichon.sh b/ct/bichon.sh index f4091c9d9..0e8d13a4f 100644 --- a/ct/bichon.sh +++ b/ct/bichon.sh @@ -5,7 +5,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV # License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE # Source: https://github.com/rustmailer/bichon -APP="PowerDNS" +APP="Bichon" var_tags="${var_tags:-email;archive}" var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" From a18e7001ee65df4143e5c9ba5cf61b37d0e13863 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 10:36:50 +0100 Subject: [PATCH 06/23] add Bichon.json --- frontend/public/json/bichon.json | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 frontend/public/json/bichon.json diff --git a/frontend/public/json/bichon.json b/frontend/public/json/bichon.json new file mode 100644 index 000000000..62f768bb3 --- /dev/null +++ b/frontend/public/json/bichon.json @@ -0,0 +1,35 @@ +{ + "name": "Bichon", + "slug": "bichon", + "categories": [ + 7 + ], + "date_created": "2024-06-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 15630, + "documentation": "https://github.com/rustmailer/bichon/blob/main/README.md", + "config_path": "/opt/bichon/bichon.env", + "website": "https://github.com/rustmailer/bichon", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/bichon.webp", + "description": "Bichon is an open-source email archiving system that synchronizes emails from IMAP servers, indexes them for full-text search, and provides a REST API for programmatic access. Unlike email clients, Bichon is designed for archiving and searching rather than sending/receiving emails. It runs as a standalone server application that continuously synchronizes configured email accounts and maintains a searchable local archive.", + "install_methods": [ + { + "type": "default", + "script": "ct/bichon.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "admin@bichon" + }, + "notes": [] +} From 5a0f48c1c856ab1324c66780b7e3ee4e920a06c5 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 10:41:21 +0100 Subject: [PATCH 07/23] Update Bichon docs --- frontend/public/json/bichon.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/public/json/bichon.json b/frontend/public/json/bichon.json index 62f768bb3..119f29237 100644 --- a/frontend/public/json/bichon.json +++ b/frontend/public/json/bichon.json @@ -9,7 +9,7 @@ "updateable": true, "privileged": false, "interface_port": 15630, - "documentation": "https://github.com/rustmailer/bichon/blob/main/README.md", + "documentation": "https://github.com/rustmailer/bichon/wiki", "config_path": "/opt/bichon/bichon.env", "website": "https://github.com/rustmailer/bichon", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/bichon.webp", From 439856a9071d830b19f241e8cb89a7a5d019c79f Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 11:22:16 +0100 Subject: [PATCH 08/23] Update PR template --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f6356f517..4592caa56 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -48,3 +48,4 @@ Link: # - [ ] The application is **actively maintained** - [ ] The application has **600+ GitHub stars** - [ ] Official **release tarballs** are published +- [ ] I understand that not all scripts will be accepted due to various reasons and criteria by the community-scripts ORG From 349b28d220f70aba152355b776e1e533d3096fd9 Mon Sep 17 00:00:00 2001 From: vhsdream Date: Fri, 6 Feb 2026 08:23:34 -0500 Subject: [PATCH 09/23] nextExplorer: repo change --- ct/nextexplorer.sh | 6 +++--- frontend/public/json/nextexplorer.json | 2 +- install/nextexplorer-install.sh | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ct/nextexplorer.sh b/ct/nextexplorer.sh index 27fcf564f..201525c8e 100644 --- a/ct/nextexplorer.sh +++ b/ct/nextexplorer.sh @@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV # Copyright (c) 2021-2026 community-scripts ORG # Author: vhsdream # License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/vikramsoni2/nextExplorer +# Source: https://github.com/nxzai/nextExplorer APP="nextExplorer" var_tags="${var_tags:-files;documents}" @@ -31,12 +31,12 @@ function update_script() { NODE_VERSION="24" setup_nodejs - if check_for_gh_release "nextExplorer" "vikramsoni2/nextExplorer"; then + if check_for_gh_release "nextExplorer" "nxzai/nextExplorer"; then msg_info "Stopping nextExplorer" $STD systemctl stop nextexplorer msg_ok "Stopped nextExplorer" - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nextExplorer" "vikramsoni2/nextExplorer" "tarball" "latest" "/opt/nextExplorer" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nextExplorer" "nxzai/nextExplorer" "tarball" "latest" "/opt/nextExplorer" msg_info "Updating nextExplorer" APP_DIR="/opt/nextExplorer/app" diff --git a/frontend/public/json/nextexplorer.json b/frontend/public/json/nextexplorer.json index 4e753b3cd..958c674a3 100644 --- a/frontend/public/json/nextexplorer.json +++ b/frontend/public/json/nextexplorer.json @@ -11,7 +11,7 @@ "privileged": false, "interface_port": 3000, "documentation": "https://explorer.nxz.ai", - "website": "https://github.com/vikramsoni2/nextExplorer", + "website": "https://github.com/nxzai/nextExplorer", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/nextexplorer.webp", "config_path": "/etc/nextExplorer/.env", "description": "Self-hosted file access for teams, homelabs, and agencies with a refined interface.", diff --git a/install/nextexplorer-install.sh b/install/nextexplorer-install.sh index efd29f343..11b8559af 100644 --- a/install/nextexplorer-install.sh +++ b/install/nextexplorer-install.sh @@ -3,7 +3,7 @@ # Copyright (c) 2021-2026 community-scripts ORG # Author: vhsdream # License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/vikramsoni2/nextExplorer +# Source: https://github.com/nxzai/nextExplorer source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color @@ -26,7 +26,7 @@ msg_ok "Installed Dependencies" NODE_VERSION="24" setup_nodejs -fetch_and_deploy_gh_release "nextExplorer" "vikramsoni2/nextExplorer" "tarball" "latest" "/opt/nextExplorer" +fetch_and_deploy_gh_release "nextExplorer" "nxzai/nextExplorer" "tarball" "latest" "/opt/nextExplorer" msg_info "Building nextExplorer" APP_DIR="/opt/nextExplorer/app" From e90093364f6bd69d969245f76698e17eb683434e Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 20:14:24 +0100 Subject: [PATCH 10/23] Bichon: add more env vars to default --- install/bichon-install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install/bichon-install.sh b/install/bichon-install.sh index 323897384..38151e49d 100644 --- a/install/bichon-install.sh +++ b/install/bichon-install.sh @@ -16,11 +16,15 @@ setup_hwaccel fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz" mkdir -p /opt/bichon-data +BICHON_ENC_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-32) msg_info "Setting up Bichon" cat </opt/bichon/bichon.env BICHON_ROOT_DIR=/opt/bichon-data BICHON_LOG_LEVEL=info +BICHON_ENCRYPT_PASSWORD=$BICHON_ENC_PASSWORD +BICHON_PUBLIC_URL=http://${LOCAL_IP}:15630 +BICHON_CORS_ORIGINS=http://${LOCAL_IP}:15630 EOF msg_ok "Setup Bichon" From 350efe011008fb0a02a5142d759e8f7e337f8c2b Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 20:41:03 +0100 Subject: [PATCH 11/23] Bichon: update json --- frontend/public/json/bichon.json | 71 +++++++++++++++++--------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/frontend/public/json/bichon.json b/frontend/public/json/bichon.json index 119f29237..ed52bca60 100644 --- a/frontend/public/json/bichon.json +++ b/frontend/public/json/bichon.json @@ -1,35 +1,40 @@ { - "name": "Bichon", - "slug": "bichon", - "categories": [ - 7 - ], - "date_created": "2024-06-15", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 15630, - "documentation": "https://github.com/rustmailer/bichon/wiki", - "config_path": "/opt/bichon/bichon.env", - "website": "https://github.com/rustmailer/bichon", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/bichon.webp", - "description": "Bichon is an open-source email archiving system that synchronizes emails from IMAP servers, indexes them for full-text search, and provides a REST API for programmatic access. Unlike email clients, Bichon is designed for archiving and searching rather than sending/receiving emails. It runs as a standalone server application that continuously synchronizes configured email accounts and maintains a searchable local archive.", - "install_methods": [ - { - "type": "default", - "script": "ct/bichon.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin@bichon" - }, - "notes": [] + "name": "Bichon", + "slug": "bichon", + "categories": [ + 7 + ], + "date_created": "2024-06-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 15630, + "documentation": "https://github.com/rustmailer/bichon/wiki", + "config_path": "/opt/bichon/bichon.env", + "website": "https://github.com/rustmailer/bichon", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/bichon.webp", + "description": "Bichon is an open-source email archiving system that synchronizes emails from IMAP servers, indexes them for full-text search, and provides a REST API for programmatic access. Unlike email clients, Bichon is designed for archiving and searching rather than sending/receiving emails. It runs as a standalone server application that continuously synchronizes configured email accounts and maintains a searchable local archive.", + "install_methods": [ + { + "type": "default", + "script": "ct/bichon.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "admin@bichon" + }, + "notes": [ + { + "text": "The HDD space initially allocated by the script is only a placeholder as we can't know how much space you will ever need. You can increase it to match your workload.", + "type": "info" + } + ] } From bc8380b4864af924551478f4ee6730a833901b7c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 19:44:10 +0000 Subject: [PATCH 12/23] Delete nightscout (ct) after migration to ProxmoxVE (#1423) Co-authored-by: github-actions[bot] --- ct/nightscout.sh | 58 ----------------------- frontend/public/json/nightscout.json | 52 --------------------- install/nightscout-install.sh | 69 ---------------------------- 3 files changed, 179 deletions(-) delete mode 100644 ct/nightscout.sh delete mode 100644 frontend/public/json/nightscout.json delete mode 100644 install/nightscout-install.sh diff --git a/ct/nightscout.sh b/ct/nightscout.sh deleted file mode 100644 index 227342f2c..000000000 --- a/ct/nightscout.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: aendel -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/nightscout/cgm-remote-monitor - -APP="Nightscout" -var_tags="${var_tags:-health}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-10}" -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/nightscout ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "nightscout" "nightscout/cgm-remote-monitor"; then - msg_info "Stopping Service" - systemctl stop nightscout - msg_ok "Stopped Service" - - fetch_and_deploy_gh_release "nightscout" "nightscout/cgm-remote-monitor" "source" - - msg_info "Updating Nightscout" - cd /opt/nightscout - $STD npm install - msg_ok "Updated Nightscout" - - msg_info "Starting Service" - systemctl start nightscout - 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}:1337${CL}" diff --git a/frontend/public/json/nightscout.json b/frontend/public/json/nightscout.json deleted file mode 100644 index 05116582e..000000000 --- a/frontend/public/json/nightscout.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "Nightscout", - "slug": "nightscout", - "categories": [ - 0 - ], - "date_created": "2025-01-17", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 1337, - "documentation": "https://nightscout.github.io/", - "website": "http://www.nightscout.info/", - "logo": "https://raw.githubusercontent.com/nightscout/cgm-remote-monitor/master/static/images/large.png", - "config_path": "/opt/nightscout/my.env", - "description": "Nightscout is an open source, DIY project that allows real time access to a CGM data via personal website, smartwatch watchers, or apps and widgets available for smartphones.", - "install_methods": [ - { - "type": "default", - "script": "ct/nightscout.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 10, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Nightscout requires configuring `my.env` with your Mongo connection string. API_SECRET has been generated and saved to `~/nightscout.creds`.", - "type": "info" - }, - { - "text": "Edit `/opt/nightscout/my.env` to configure your CGM source (Dexcom/CareLink). Then run: `systemctl restart nightscout`", - "type": "info" - }, - { - "text": "Official Configuration Guide: https://nightscout.github.io/nightscout/setup_variables/", - "type": "info" - }, - { - "text": "Nightscout requires HTTPS for many features (security, tokens, PWA). Usage of a reverse proxy (e.g. Nginx Proxy Manager, Traefik, Caddy) is highly recommended.", - "type": "warning" - } - ] -} \ No newline at end of file diff --git a/install/nightscout-install.sh b/install/nightscout-install.sh deleted file mode 100644 index b8a1baa1c..000000000 --- a/install/nightscout-install.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) 2021-2026 community-scripts ORG -# Author: aendel -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/nightscout/cgm-remote-monitor - -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 \ - build-essential \ - libssl-dev \ - openssl -msg_ok "Installed Dependencies" - -MONGO_VERSION="8.0" setup_mongodb -NODE_VERSION="22" setup_nodejs -fetch_and_deploy_gh_release "nightscout" "nightscout/cgm-remote-monitor" "source" - -msg_info "Installing Nightscout" -$STD npm install --prefix /opt/nightscout -msg_ok "Installed Nightscout" - -msg_info "Creating Service" -useradd -s /bin/bash -m nightscout -chown -R nightscout:nightscout /opt/nightscout -API_SECRET=$(openssl rand -hex 16) -cat </opt/nightscout/my.env -MONGO_CONNECTION=mongodb://127.0.0.1:27017/nightscout -BASE_URL=http://localhost:1337 -API_SECRET=${API_SECRET} -DISPLAY_UNITS=mg/dl -ENABLE=careportal boluscalc food bwp cage sage iage iob cob basal ar2 rawbg pushover bgi pump openaps pvb linear custom -INSECURE_USE_HTTP=true -EOF -chown nightscout:nightscout /opt/nightscout/my.env -cat </etc/systemd/system/nightscout.service -[Unit] -Description=Nightscout CGM Service -After=network.target mongodb.service - -[Service] -Type=simple -User=nightscout -WorkingDirectory=/opt/nightscout -EnvironmentFile=/opt/nightscout/my.env -ExecStart=/usr/bin/npm start -Restart=always - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now nightscout -msg_ok "Created Service" - -{ - echo "Nightscout Credentials" - echo "API_SECRET: ${API_SECRET}" -} >> ~/nightscout.creds - -motd_ssh -customize -cleanup_lxc From 4b9c68a6dc73511e6d89b0a9ce23ad08254972bc Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 20:54:04 +0100 Subject: [PATCH 13/23] Remove hwaccel --- install/bichon-install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install/bichon-install.sh b/install/bichon-install.sh index 38151e49d..ce3417a49 100644 --- a/install/bichon-install.sh +++ b/install/bichon-install.sh @@ -12,7 +12,6 @@ catch_errors setting_up_container network_check update_os -setup_hwaccel fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz" mkdir -p /opt/bichon-data From 98adea402a2f4b2e80d5de37cc762c58bf06cec7 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 20:56:31 +0100 Subject: [PATCH 14/23] Bichon: standard --- install/bichon-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/bichon-install.sh b/install/bichon-install.sh index ce3417a49..01f802880 100644 --- a/install/bichon-install.sh +++ b/install/bichon-install.sh @@ -14,10 +14,11 @@ network_check update_os fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz" + +msg_info "Setting up Bichon" mkdir -p /opt/bichon-data BICHON_ENC_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-32) -msg_info "Setting up Bichon" cat </opt/bichon/bichon.env BICHON_ROOT_DIR=/opt/bichon-data BICHON_LOG_LEVEL=info From 1e63205bbcee073af28484c99e16ba385bfda955 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Fri, 6 Feb 2026 21:02:45 +0100 Subject: [PATCH 15/23] Bichon: json fix --- frontend/public/json/bichon.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/public/json/bichon.json b/frontend/public/json/bichon.json index ed52bca60..c0b316b8e 100644 --- a/frontend/public/json/bichon.json +++ b/frontend/public/json/bichon.json @@ -33,7 +33,7 @@ }, "notes": [ { - "text": "The HDD space initially allocated by the script is only a placeholder as we can't know how much space you will ever need. You can increase it to match your workload.", + "text": "The HDD space initially allocated by the script is only a placeholder as we can't know how much space you will ever need. You should increase it to match your workload.", "type": "info" } ] From 9f17984bf80a3051d506d7c279e52a7d0cdb239c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20B=C3=A9dard-Couture?= Date: Fri, 6 Feb 2026 23:48:19 -0500 Subject: [PATCH 16/23] Refactor Zitadel script to support Login V2 --- ct/zitadel.sh | 72 +++++++ frontend/public/json/zitadel.json | 44 ++++ install/zitadel-install.sh | 324 ++++++++++++++++++++++++++++++ 3 files changed, 440 insertions(+) create mode 100644 ct/zitadel.sh create mode 100644 frontend/public/json/zitadel.json create mode 100644 install/zitadel-install.sh diff --git a/ct/zitadel.sh b/ct/zitadel.sh new file mode 100644 index 000000000..f7bf09041 --- /dev/null +++ b/ct/zitadel.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Author: dave-yap (dave-yap) | Co-author: remz1337 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://zitadel.com/ + +APP="Zitadel" +var_tags="${var_tags:-identity-provider}" +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 [[ ! -f /etc/systemd/system/zitadel.service ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "zitadel" "zitadel/zitadel"; then + msg_info "Stopping Service" + systemctl stop zitadel + msg_ok "Stopped Service" + + msg_info "Updating Zitadel" + rm -f /opt/zitadel/* + fetch_and_deploy_gh_release "zitadel" "zitadel/zitadel" "prebuild" "latest" "/opt/zitadel" "zitadel-linux-amd64.tar.gz" + + rm -f /opt/login/* + fetch_and_deploy_gh_release "login" "zitadel/zitadel" "prebuild" "latest" "${LOGIN_DIR}" "zitadel-login.tar.gz" + + cd /opt/zitadel + ./zitadel setup --masterkeyFile /etc/zitadel/.masterkey --config /etc/zitadel/config.yaml --init-projections=true + msg_ok "Updated Zitadel" + + msg_info "Starting Service" + systemctl start zitadel + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +start +build_container +description + +msg_info "Setting Container to Normal Resources" +pct set $CTID -memory 1024 +pct set $CTID -cores 1 +msg_ok "Set Container to Normal Resources" + +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}:8080/ui/console${CL}" + +echo -e "${INFO}${GN} Default Admin Credentials:${CL}" +echo -e "${INFO}${BL} Username: zitadel-admin@zitadel.localhost${CL}" +echo -e "${INFO}${BL} Password: Password1!${CL}" +echo -e "${INFO} All credentials are saved in: /etc/zitadel/INSTALLATION_INFO.txt${CL}" \ No newline at end of file diff --git a/frontend/public/json/zitadel.json b/frontend/public/json/zitadel.json new file mode 100644 index 000000000..5f3b789ec --- /dev/null +++ b/frontend/public/json/zitadel.json @@ -0,0 +1,44 @@ +{ + "name": "Zitadel", + "slug": "zitadel", + "categories": [ + 6 + ], + "date_created": "2025-02-10", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://zitadel.com/docs/guides/overview", + "website": "https://zitadel.com", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/zitadel.webp", + "config_path": "/etc/zitadel/config.yaml", + "description": "Zitadel is an open-source identity and access management (IAM) solution designed to provide secure authentication, authorization, and user management for modern applications and services. Built with a focus on flexibility, scalability, and security, Zitadel offers a comprehensive set of features for developers and organizations looking to implement robust identity management.", + "install_methods": [ + { + "type": "default", + "script": "ct/zitadel.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 6, + "os": "debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "zitadel-admin@zitadel.localhost", + "password": "Password1!" + }, + "notes": [ + { + "text": "Application credentials: `cat /etc/zitadel/INSTALLATION_INFO.txt`", + "type": "info" + }, + { + "text": "Change the ExternalDomain value in `/etc/zitadel/config.yaml` to your domain/hostname/IP and run `bash zitadel-rerun.sh`", + "type": "info" + } + ] +} diff --git a/install/zitadel-install.sh b/install/zitadel-install.sh new file mode 100644 index 000000000..e7988c311 --- /dev/null +++ b/install/zitadel-install.sh @@ -0,0 +1,324 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: dave-yap (dave-yap) | Co-Author: remz1337 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://zitadel.com/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +# Configuration variables +ZITADEL_DIR="/opt/zitadel" +LOGIN_DIR="/opt/login" +CONFIG_DIR="/etc/zitadel" +ZITADEL_USER="zitadel" +ZITADEL_GROUP="zitadel" +DB_NAME="zitadel" +DB_USER="zitadel" +DB_PASSWORD="$(openssl rand -base64 32 | tr -d '=/+' | head -c 32)" +POSTGRES_ADMIN_PASSWORD="$(openssl rand -base64 32 | tr -d '=/+' | head -c 32)" +MASTERKEY="$(openssl rand -base64 32 | tr -d '=/+' | head -c 32)" +API_PORT="8080" +LOGIN_PORT="3000" + +# Detect server IP address +SERVER_IP=$(hostname -I | awk '{print $1}') + +msg_info "Installing Dependencies (Patience)" +$STD apt install -y ca-certificates +msg_ok "Installed Dependecies" + +# Create zitadel user +msg_info "Creating zitadel system user" +groupadd --system "${ZITADEL_GROUP}" +useradd --system --gid "${ZITADEL_GROUP}" --shell /bin/bash --home-dir "${ZITADEL_DIR}" "${ZITADEL_USER}" +msg_ok "Created zitadel system user" + +fetch_and_deploy_gh_release "zitadel" "zitadel/zitadel" "prebuild" "latest" "${ZITADEL_DIR}" "zitadel-linux-amd64.tar.gz" +chown -R "${ZITADEL_USER}:${ZITADEL_GROUP}" "${ZITADEL_DIR}" + +fetch_and_deploy_gh_release "login" "zitadel/zitadel" "prebuild" "latest" "${LOGIN_DIR}" "zitadel-login.tar.gz" +chown -R "${ZITADEL_USER}:${ZITADEL_GROUP}" "${LOGIN_DIR}" + +NODE_VERSION="24" setup_nodejs + +PG_VERSION="17" setup_postgresql + +setup_go + +msg_info "Configuring Postgresql" +$STD sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '${POSTGRES_ADMIN_PASSWORD}';" +msg_ok "Configured PostgreSQL" + +msg_info "Installing Zitadel" +cd "${ZITADEL_DIR}" +mkdir -p ${CONFIG_DIR} +echo "${MASTERKEY}" > ${CONFIG_DIR}/.masterkey + +# Update config.yaml for network access +cat > "${CONFIG_DIR}/config.yaml" < "${CONFIG_DIR}/login.env" < "${CONFIG_DIR}/api.env" < /etc/systemd/system/zitadel-api.service < /etc/systemd/system/zitadel-login.service < "${CONFIG_DIR}/INSTALLATION_INFO.txt" < zitadel_backup_\$(date +%Y%m%d).sql + +Database restore: + PGPASSWORD=${DB_PASSWORD} psql -h localhost -U ${DB_USER} ${DB_NAME} < zitadel_backup_YYYYMMDD.sql + +################################################################################ +EOF +chmod 600 "${CONFIG_DIR}/INSTALLATION_INFO.txt" +chown "${ZITADEL_USER}:${ZITADEL_GROUP}" "${CONFIG_DIR}/INSTALLATION_INFO.txt" +cp ${ZITADEL_DIR}/admin.pat ${CONFIG_DIR}/admin.pat.BAK +cp ${ZITADEL_DIR}/login-client.pat ${CONFIG_DIR}/login-client.pat.BAK +msg_ok "Saved Credentials" + +msg_info "Create zitadel-rerun.sh" +cat <~/zitadel-rerun.sh +systemctl stop zitadel +timeout --kill-after=5s 15s zitadel setup --masterkeyFile ${CONFIG_DIR}/.masterkey --config ${CONFIG_DIR}/config.yaml" +systemctl restart zitadel +EOF +msg_ok "Bash script for rerunning Zitadel after changing Zitadel config.yaml" + +motd_ssh +customize +cleanup_lxc From 89f85faeeaadc8318be892841a7a6d7cd13d1162 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Sat, 7 Feb 2026 08:11:51 +0100 Subject: [PATCH 17/23] Update ct/zitadel.sh Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- ct/zitadel.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ct/zitadel.sh b/ct/zitadel.sh index f7bf09041..8d1c39290 100644 --- a/ct/zitadel.sh +++ b/ct/zitadel.sh @@ -23,22 +23,22 @@ function update_script() { header_info check_container_storage check_container_resources - if [[ ! -f /etc/systemd/system/zitadel.service ]]; then + if [[ ! -f /etc/systemd/system/zitadel-api.service ]]; then msg_error "No ${APP} Installation Found!" exit fi if check_for_gh_release "zitadel" "zitadel/zitadel"; then msg_info "Stopping Service" - systemctl stop zitadel + systemctl stop zitadel-api zitadel-login msg_ok "Stopped Service" msg_info "Updating Zitadel" rm -f /opt/zitadel/* - fetch_and_deploy_gh_release "zitadel" "zitadel/zitadel" "prebuild" "latest" "/opt/zitadel" "zitadel-linux-amd64.tar.gz" + fetch_and_deploy_gh_release "zitadel" "zitadel/zitadel" "prebuild" "latest" "/opt/zitadel" "zitadel-linux-amd64.tar.gz" rm -f /opt/login/* - fetch_and_deploy_gh_release "login" "zitadel/zitadel" "prebuild" "latest" "${LOGIN_DIR}" "zitadel-login.tar.gz" + fetch_and_deploy_gh_release "login" "zitadel/zitadel" "prebuild" "latest" "/opt/login" "zitadel-login.tar.gz" cd /opt/zitadel ./zitadel setup --masterkeyFile /etc/zitadel/.masterkey --config /etc/zitadel/config.yaml --init-projections=true From 75f034bd4640dc91af1ea77367228a0d6e1d3114 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Sat, 7 Feb 2026 08:12:16 +0100 Subject: [PATCH 18/23] Update ct/zitadel.sh Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- ct/zitadel.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ct/zitadel.sh b/ct/zitadel.sh index 8d1c39290..f98ad4052 100644 --- a/ct/zitadel.sh +++ b/ct/zitadel.sh @@ -65,8 +65,4 @@ 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}:8080/ui/console${CL}" - -echo -e "${INFO}${GN} Default Admin Credentials:${CL}" -echo -e "${INFO}${BL} Username: zitadel-admin@zitadel.localhost${CL}" -echo -e "${INFO}${BL} Password: Password1!${CL}" echo -e "${INFO} All credentials are saved in: /etc/zitadel/INSTALLATION_INFO.txt${CL}" \ No newline at end of file From 384eafb9f961054087e1d31c7635faa5a0827647 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Sat, 7 Feb 2026 20:40:37 +0100 Subject: [PATCH 19/23] Bichon: add read for public URL --- install/bichon-install.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/install/bichon-install.sh b/install/bichon-install.sh index 01f802880..9feee90e7 100644 --- a/install/bichon-install.sh +++ b/install/bichon-install.sh @@ -15,6 +15,17 @@ update_os fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz" +read -r -p "Enter the public URL for Bichon (e.g., https://bichon.yourdomain.com) or leave empty to use container IP: " bichon_url +if [[ -z "$bichon_url" ]]; then + msg_info "No URL provided" + BICHON_PUBLIC_URL="http://$LOCAL_IP:15630" + msg_ok "using local IP: http://$LOCAL_IP:15630\n" +else + BICHON_PUBLIC_URL="$bichon_url" + msg_info "URL provided" + msg_ok "Using provided URL: $BICHON_PUBLIC_URL\n" +fi + msg_info "Setting up Bichon" mkdir -p /opt/bichon-data BICHON_ENC_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-32) @@ -23,8 +34,8 @@ cat </opt/bichon/bichon.env BICHON_ROOT_DIR=/opt/bichon-data BICHON_LOG_LEVEL=info BICHON_ENCRYPT_PASSWORD=$BICHON_ENC_PASSWORD -BICHON_PUBLIC_URL=http://${LOCAL_IP}:15630 -BICHON_CORS_ORIGINS=http://${LOCAL_IP}:15630 +BICHON_PUBLIC_URL=$BICHON_PUBLIC_URL +BICHON_CORS_ORIGINS=$BICHON_PUBLIC_URL EOF msg_ok "Setup Bichon" From ea2cf865a5834c492943c3d87b49302512bbad39 Mon Sep 17 00:00:00 2001 From: tremor021 Date: Sat, 7 Feb 2026 20:41:18 +0100 Subject: [PATCH 20/23] Bichon: add read for public URL --- install/bichon-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/bichon-install.sh b/install/bichon-install.sh index 9feee90e7..ff528a470 100644 --- a/install/bichon-install.sh +++ b/install/bichon-install.sh @@ -21,8 +21,8 @@ if [[ -z "$bichon_url" ]]; then BICHON_PUBLIC_URL="http://$LOCAL_IP:15630" msg_ok "using local IP: http://$LOCAL_IP:15630\n" else - BICHON_PUBLIC_URL="$bichon_url" msg_info "URL provided" + BICHON_PUBLIC_URL="$bichon_url" msg_ok "Using provided URL: $BICHON_PUBLIC_URL\n" fi From 28a7a8c125ff2d655a50c89cbb95090a41a8732e Mon Sep 17 00:00:00 2001 From: tremor021 Date: Sat, 7 Feb 2026 20:55:40 +0100 Subject: [PATCH 21/23] FIxes --- install/bichon-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/bichon-install.sh b/install/bichon-install.sh index ff528a470..813912c79 100644 --- a/install/bichon-install.sh +++ b/install/bichon-install.sh @@ -15,11 +15,11 @@ update_os fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz" -read -r -p "Enter the public URL for Bichon (e.g., https://bichon.yourdomain.com) or leave empty to use container IP: " bichon_url +read -r -p "${TAB3}Enter the public URL for Bichon (e.g., https://bichon.yourdomain.com) or leave empty to use container IP: " bichon_url if [[ -z "$bichon_url" ]]; then msg_info "No URL provided" BICHON_PUBLIC_URL="http://$LOCAL_IP:15630" - msg_ok "using local IP: http://$LOCAL_IP:15630\n" + msg_ok "Using local IP: http://$LOCAL_IP:15630\n" else msg_info "URL provided" BICHON_PUBLIC_URL="$bichon_url" From 14a84e2c3d6d53dd170108ab31ba1af55db764a7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 7 Feb 2026 21:25:32 +0000 Subject: [PATCH 22/23] Delete bichon (ct) after migration to ProxmoxVE (#1430) Co-authored-by: github-actions[bot] --- ct/bichon.sh | 55 --------------------------- frontend/public/json/bichon.json | 40 -------------------- install/bichon-install.sh | 65 -------------------------------- 3 files changed, 160 deletions(-) delete mode 100644 ct/bichon.sh delete mode 100644 frontend/public/json/bichon.json delete mode 100644 install/bichon-install.sh diff --git a/ct/bichon.sh b/ct/bichon.sh deleted file mode 100644 index 0e8d13a4f..000000000 --- a/ct/bichon.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/rustmailer/bichon - -APP="Bichon" -var_tags="${var_tags:-email;archive}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-1024}" -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/bichon ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "bichon" "rustmailer/bichon"; then - msg_info "Stopping service" - systemctl stop bichon - msg_ok "Stopped service" - - cp /opt/bichon/bichon.env /tmp/bichon.env.backup - 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 - - msg_info "Starting service" - systemctl start bichon - msg_ok "Service started" - 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}:15630${CL}" diff --git a/frontend/public/json/bichon.json b/frontend/public/json/bichon.json deleted file mode 100644 index c0b316b8e..000000000 --- a/frontend/public/json/bichon.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "Bichon", - "slug": "bichon", - "categories": [ - 7 - ], - "date_created": "2024-06-15", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 15630, - "documentation": "https://github.com/rustmailer/bichon/wiki", - "config_path": "/opt/bichon/bichon.env", - "website": "https://github.com/rustmailer/bichon", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/bichon.webp", - "description": "Bichon is an open-source email archiving system that synchronizes emails from IMAP servers, indexes them for full-text search, and provides a REST API for programmatic access. Unlike email clients, Bichon is designed for archiving and searching rather than sending/receiving emails. It runs as a standalone server application that continuously synchronizes configured email accounts and maintains a searchable local archive.", - "install_methods": [ - { - "type": "default", - "script": "ct/bichon.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin@bichon" - }, - "notes": [ - { - "text": "The HDD space initially allocated by the script is only a placeholder as we can't know how much space you will ever need. You should increase it to match your workload.", - "type": "info" - } - ] -} diff --git a/install/bichon-install.sh b/install/bichon-install.sh deleted file mode 100644 index 813912c79..000000000 --- a/install/bichon-install.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/rustmailer/bichon - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz" - -read -r -p "${TAB3}Enter the public URL for Bichon (e.g., https://bichon.yourdomain.com) or leave empty to use container IP: " bichon_url -if [[ -z "$bichon_url" ]]; then - msg_info "No URL provided" - BICHON_PUBLIC_URL="http://$LOCAL_IP:15630" - msg_ok "Using local IP: http://$LOCAL_IP:15630\n" -else - msg_info "URL provided" - BICHON_PUBLIC_URL="$bichon_url" - msg_ok "Using provided URL: $BICHON_PUBLIC_URL\n" -fi - -msg_info "Setting up Bichon" -mkdir -p /opt/bichon-data -BICHON_ENC_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-32) - -cat </opt/bichon/bichon.env -BICHON_ROOT_DIR=/opt/bichon-data -BICHON_LOG_LEVEL=info -BICHON_ENCRYPT_PASSWORD=$BICHON_ENC_PASSWORD -BICHON_PUBLIC_URL=$BICHON_PUBLIC_URL -BICHON_CORS_ORIGINS=$BICHON_PUBLIC_URL -EOF -msg_ok "Setup Bichon" - -msg_info "Creating Service" -cat </etc/systemd/system/bichon.service -[Unit] -Description=Bichon service -After=network.target - -[Service] -Type=simple -User=root -EnvironmentFile=/opt/bichon/bichon.env -WorkingDirectory=/opt/bichon -ExecStart=/opt/bichon/bichon -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now bichon -msg_info "Created Service" - -motd_ssh -customize -cleanup_lxc From c672875f40b7601977e48908ca7000d8473cd417 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 7 Feb 2026 21:52:10 +0000 Subject: [PATCH 23/23] Delete checkmate (ct) after migration to ProxmoxVE (#1431) Co-authored-by: github-actions[bot] --- ct/checkmate.sh | 78 ---------------- frontend/public/json/checkmate.json | 48 ---------- install/checkmate-install.sh | 136 ---------------------------- 3 files changed, 262 deletions(-) delete mode 100644 ct/checkmate.sh delete mode 100644 frontend/public/json/checkmate.json delete mode 100644 install/checkmate-install.sh diff --git a/ct/checkmate.sh b/ct/checkmate.sh deleted file mode 100644 index 6cf30fbb4..000000000 --- a/ct/checkmate.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/bluewave-labs/Checkmate - -APP="Checkmate" -var_tags="${var_tags:-monitoring;uptime}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-10}" -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/checkmate ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "checkmate" "bluewave-labs/Checkmate"; then - msg_info "Stopping Services" - systemctl stop checkmate-server checkmate-client nginx - msg_ok "Stopped Services" - - msg_info "Backing up Data" - cp /opt/checkmate/server/.env /opt/checkmate_server.env.bak - [ -f /opt/checkmate/client/.env.local ] && cp /opt/checkmate/client/.env.local /opt/checkmate_client.env.local.bak - msg_ok "Backed up Data" - - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" - - msg_info "Updating Checkmate Server" - cd /opt/checkmate/server - $STD npm install - if [ -f package.json ]; then - grep -q '"build"' package.json && $STD npm run build || true - fi - msg_ok "Updated Checkmate Server" - - msg_info "Updating Checkmate Client" - cd /opt/checkmate/client - $STD npm install - VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build - msg_ok "Updated Checkmate Client" - - msg_info "Restoring Data" - mv /opt/checkmate_server.env.bak /opt/checkmate/server/.env - [ -f /opt/checkmate_client.env.local.bak ] && mv /opt/checkmate_client.env.local.bak /opt/checkmate/client/.env.local - msg_ok "Restored Data" - - msg_info "Starting Services" - systemctl start checkmate-server checkmate-client nginx - 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}" diff --git a/frontend/public/json/checkmate.json b/frontend/public/json/checkmate.json deleted file mode 100644 index dbc51b983..000000000 --- a/frontend/public/json/checkmate.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "Checkmate", - "slug": "checkmate", - "categories": [ - 9 - ], - "date_created": "2026-02-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5173, - "documentation": "https://github.com/bluewave-labs/Checkmate#readme", - "website": "https://github.com/bluewave-labs/Checkmate", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/checkmate.webp", - "config_path": "/opt/checkmate/server/.env", - "description": "Checkmate is an open source uptime and infrastructure monitoring application that helps you track the availability and performance of your services.", - "install_methods": [ - { - "type": "default", - "script": "ct/checkmate.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 10, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Create your admin account on first login via the web interface.", - "type": "info" - }, - { - "text": "Server API runs on port 52345, Client UI on port 5173.", - "type": "info" - }, - { - "text": "For PageSpeed monitoring, add a Google PageSpeed API key to the server .env file.", - "type": "info" - } - ] -} \ No newline at end of file diff --git a/install/checkmate-install.sh b/install/checkmate-install.sh deleted file mode 100644 index ad245ca8d..000000000 --- a/install/checkmate-install.sh +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/bluewave-labs/Checkmate - -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 \ - build-essential \ - openssl \ - nginx -msg_ok "Installed Dependencies" - -MONGO_VERSION="8.0" setup_mongodb -NODE_VERSION="22" setup_nodejs -fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" - -msg_info "Configuring Checkmate" -JWT_SECRET="$(openssl rand -hex 32)" -cat </opt/checkmate/server/.env -CLIENT_HOST="http://${LOCAL_IP}" -JWT_SECRET="${JWT_SECRET}" -DB_CONNECTION_STRING="mongodb://localhost:27017/checkmate_db" -TOKEN_TTL="99d" -ORIGIN="${LOCAL_IP}" -LOG_LEVEL="info" -SERVER_HOST=0.0.0.0 -SERVER_PORT=52345 -EOF - -cat </opt/checkmate/client/.env.local -VITE_APP_API_BASE_URL="/api/v1" -UPTIME_APP_API_BASE_URL="/api/v1" -VITE_APP_LOG_LEVEL="warn" -EOF -msg_ok "Configured Checkmate" - -msg_info "Installing Checkmate Server" -cd /opt/checkmate/server -$STD npm install -$STD npm run build -msg_ok "Installed Checkmate Server" - -msg_info "Installing Checkmate Client" -cd /opt/checkmate/client -$STD npm install -VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build -msg_ok "Installed Checkmate Client" - -msg_info "Creating Services" -cat </etc/systemd/system/checkmate-server.service -[Unit] -Description=Checkmate Server -After=network.target mongod.service - -[Service] -Type=simple -User=root -WorkingDirectory=/opt/checkmate/server -EnvironmentFile=/opt/checkmate/server/.env -ExecStart=/usr/bin/npm start -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF - -cat </etc/systemd/system/checkmate-client.service -[Unit] -Description=Checkmate Client -After=network.target - -[Service] -Type=simple -User=root -WorkingDirectory=/opt/checkmate/client -ExecStart=/usr/bin/npm run preview -- --host 127.0.0.1 --port 5173 -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF -$STD systemctl enable -q --now checkmate-server -$STD systemctl enable -q --now checkmate-client -msg_ok "Created Services" - -msg_info "Configuring Nginx Reverse Proxy" -cat </etc/nginx/sites-available/checkmate -server { - listen 80 default_server; - server_name _; - - client_max_body_size 100M; - - # Client UI - location / { - proxy_pass http://127.0.0.1:5173; - proxy_http_version 1.1; - proxy_set_header Upgrade \$http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host \$host; - proxy_set_header X-Real-IP \$remote_addr; - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; - } - - # API Server - location /api/v1/ { - proxy_pass http://127.0.0.1:52345/api/v1/; - proxy_http_version 1.1; - proxy_set_header Host \$host; - proxy_set_header X-Real-IP \$remote_addr; - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; - } -} -EOF - -ln -sf /etc/nginx/sites-available/checkmate /etc/nginx/sites-enabled/checkmate -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -$STD systemctl reload nginx -msg_ok "Configured Nginx Reverse Proxy" - -motd_ssh -customize -cleanup_lxc