diff --git a/api/go.mod b/api/go.mod index 9a800e283..044bc8428 100644 --- a/api/go.mod +++ b/api/go.mod @@ -1,6 +1,6 @@ module proxmox-api -go 1.23.2 +go 1.24.0 require ( github.com/gorilla/mux v1.8.1 @@ -17,7 +17,7 @@ require ( github.com/xdg-go/scram v1.1.2 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect - golang.org/x/crypto v0.35.0 // indirect - golang.org/x/sync v0.11.0 // indirect - golang.org/x/text v0.22.0 // indirect + golang.org/x/crypto v0.45.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/text v0.31.0 // indirect ) diff --git a/api/go.sum b/api/go.sum index f0a92be40..cb111bdb8 100644 --- a/api/go.sum +++ b/api/go.sum @@ -27,16 +27,16 @@ go.mongodb.org/mongo-driver v1.17.2 h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793Sqyh go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= -golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -48,8 +48,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= diff --git a/ct/asterisk.sh b/ct/asterisk.sh deleted file mode 100644 index 02f2506cb..000000000 --- a/ct/asterisk.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: michelroegl-brunner -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://asterisk.org/ - -APP="Asterisk" -var_tags="${var_tags:-telephone;pbx}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-4}" -var_os="${var_os:-debian}" -var_version="${var_version:-12}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - msg_error "No Update function provided for ${APP} LXC" - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" diff --git a/ct/kanba.sh b/ct/deferred/kanba.sh similarity index 100% rename from ct/kanba.sh rename to ct/deferred/kanba.sh diff --git a/ct/domain-locker.sh b/ct/domain-locker.sh deleted file mode 100644 index f6054664d..000000000 --- a/ct/domain-locker.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-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/Lissy93/domain-locker - -APP="Domain-Locker" -var_tags="${var_tags:-Monitoring}" -var_cpu="${var_cpu:-4}" -var_ram="${var_ram:-10240}" -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/domain-locker ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "domain-locker" "Lissy93/domain-locker"; then - msg_info "Stopping Service" - systemctl stop domain-locker - msg_info "Service stopped" - - PG_VERSION="17" setup_postgresql - setup_nodejs - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "domain-locker" "Lissy93/domain-locker" - - msg_info "Installing Modules (patience)" - cd /opt/domain-locker - $STD npm install - msg_ok "Installed Modules" - - msg_info "Building Domain-Locker (a lot of patience)" - npm install - set -a - source /opt/domain-locker.env - set +a - $STD npm run build - msg_info "Built Domain-Locker" - - msg_info "Restarting Services" - systemctl start domain-locker - msg_ok "Restarted 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}:3000${CL}" diff --git a/ct/freepbx.sh b/ct/freepbx.sh index 0552674bf..fd2395c91 100644 --- a/ct/freepbx.sh +++ b/ct/freepbx.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -source <(curl -s https://raw.githubusercontent.com/vsc55/community-scripts-ProxmoxVED/refs/heads/freepbx/misc/build.func) +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/freepbx/misc/build.func) # Copyright (c) 2021-2025 community-scripts ORG # Author: Arian Nasr (arian-nasr) # Updated by: Javier Pastor (vsc55) diff --git a/ct/headers/domain-monitor b/ct/headers/domain-monitor deleted file mode 100644 index 09b4943e8..000000000 --- a/ct/headers/domain-monitor +++ /dev/null @@ -1,6 +0,0 @@ - ____ _ __ ___ _ __ - / __ \____ ____ ___ ____ _(_)___ / |/ /___ ____ (_) /_____ _____ - / / / / __ \/ __ `__ \/ __ `/ / __ \______/ /|_/ / __ \/ __ \/ / __/ __ \/ ___/ - / /_/ / /_/ / / / / / / /_/ / / / / /_____/ / / / /_/ / / / / / /_/ /_/ / / -/_____/\____/_/ /_/ /_/\__,_/_/_/ /_/ /_/ /_/\____/_/ /_/_/\__/\____/_/ - diff --git a/ct/headers/miniflux b/ct/headers/miniflux deleted file mode 100644 index cb3195ae2..000000000 --- a/ct/headers/miniflux +++ /dev/null @@ -1,6 +0,0 @@ - __ ____ _ ______ - / |/ (_)___ (_) __/ /_ ___ __ - / /|_/ / / __ \/ / /_/ / / / / |/_/ - / / / / / / / / / __/ / /_/ /> < -/_/ /_/_/_/ /_/_/_/ /_/\__,_/_/|_| - diff --git a/ct/headers/netvisor b/ct/headers/netvisor deleted file mode 100644 index 034b19e53..000000000 --- a/ct/headers/netvisor +++ /dev/null @@ -1,6 +0,0 @@ - _ __ __ _ ___ - / | / /__ / /| | / (_)________ _____ - / |/ / _ \/ __/ | / / / ___/ __ \/ ___/ - / /| / __/ /_ | |/ / (__ ) /_/ / / -/_/ |_/\___/\__/ |___/_/____/\____/_/ - diff --git a/ct/headers/passbolt b/ct/headers/passbolt new file mode 100644 index 000000000..91f0ab71d --- /dev/null +++ b/ct/headers/passbolt @@ -0,0 +1,6 @@ + ____ __ ____ + / __ \____ ___________/ /_ ____ / / /_ + / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/ + / ____/ /_/ (__ |__ ) /_/ / /_/ / / /_ +/_/ \__,_/____/____/_.___/\____/_/\__/ + diff --git a/ct/headers/splunk-enterprise b/ct/headers/splunk-enterprise deleted file mode 100644 index f219afef0..000000000 --- a/ct/headers/splunk-enterprise +++ /dev/null @@ -1,6 +0,0 @@ - _____ __ __ ______ __ _ - / ___/____ / /_ ______ / /__ / ____/___ / /____ _________ _____(_)_______ - \__ \/ __ \/ / / / / __ \/ //_/_____/ __/ / __ \/ __/ _ \/ ___/ __ \/ ___/ / ___/ _ \ - ___/ / /_/ / / /_/ / / / / ,< /_____/ /___/ / / / /_/ __/ / / /_/ / / / (__ ) __/ -/____/ .___/_/\__,_/_/ /_/_/|_| /_____/_/ /_/\__/\___/_/ / .___/_/ /_/____/\___/ - /_/ /_/ diff --git a/ct/headers/upgopher b/ct/headers/upgopher new file mode 100644 index 000000000..e1126d09c --- /dev/null +++ b/ct/headers/upgopher @@ -0,0 +1,6 @@ + __ __ __ + / / / /___ ____ _____ ____ / /_ ___ _____ + / / / / __ \/ __ `/ __ \/ __ \/ __ \/ _ \/ ___/ +/ /_/ / /_/ / /_/ / /_/ / /_/ / / / / __/ / +\____/ .___/\__, /\____/ .___/_/ /_/\___/_/ + /_/ /____/ /_/ diff --git a/ct/joplin-server.sh b/ct/joplin-server.sh new file mode 100644 index 000000000..d7824f8ba --- /dev/null +++ b/ct/joplin-server.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://joplinapp.org/ + +APP="Joplin-Server" +var_tags="${var_tags:-notes}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-4096}" +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 /opt/joplin-server ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "joplin-server" "laurent22/joplin"; then + msg_info "Stopping Services" + systemctl stop joplin-server + msg_ok "Stopped Services" + + fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest" + + msg_info "Updating Joplin-Server" + cd /opt/joplin-server + sed -i "/onenote-converter/d" packages/lib/package.json + $STD yarn config set --home enableTelemetry 0 + export BUILD_SEQUENCIAL=1 + $STD yarn install --inline-builds + msg_ok "Updated Joplin-Server" + + msg_info "Starting Services" + systemctl start joplin-server + 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}:22300${CL}" diff --git a/ct/librenms.sh b/ct/librenms.sh deleted file mode 100644 index 5df919b12..000000000 --- a/ct/librenms.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: michelroegl-brunner -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://librenms.org - -APP="Librenms" -var_tags="${var_tags:-monitoring}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-4}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [ ! -d /opt/librenms ]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating ${APP} Installation" - su librenms - cd /opt/librenms - ./daily.sh - msg_ok "Updated ${APP} Installation" - - 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/ct/mealie.sh b/ct/mealie.sh new file mode 100644 index 000000000..3829845d0 --- /dev/null +++ b/ct/mealie.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://mealie.io + +APP="Mealie" +var_tags="${var_tags:-recipes}" +var_cpu="${var_cpu:-5}" +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/mealie ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + if check_for_gh_release "mealie" "mealie-recipes/mealie"; then + PYTHON_VERSION="3.12" setup_uv + NODE_MODULE="yarn" NODE_VERSION="24" setup_nodejs + + msg_info "Stopping Service" + systemctl stop mealie + msg_ok "Stopped Service" + + msg_info "Backing up configuration" + mkdir -p /opt/mealie_bak + cp -f /opt/mealie/mealie.env /opt/mealie_bak/mealie.env.bak + cp -f /opt/mealie/start.sh /opt/mealie_bak/start.sh.bak + msg_ok "Backup completed" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball" "latest" "/opt/mealie" + + msg_info "Rebuilding Frontend" + export NUXT_TELEMETRY_DISABLED=1 + cd /opt/mealie/frontend + $STD yarn install --prefer-offline --frozen-lockfile --non-interactive --production=false --network-timeout 1000000 + $STD yarn generate + cp -r /opt/mealie/frontend/dist/* /opt/mealie/mealie/frontend/ + msg_ok "Frontend rebuilt" + + msg_info "Updating Python Dependencies" + cd /opt/mealie + $STD uv sync --frozen --extra pgsql + msg_ok "Dependencies updated" + + msg_info "Restoring configuration" + grep -q "^SECRET=" /opt/mealie_bak/mealie.env.bak || echo "SECRET=$(openssl rand -hex 32)" >>/opt/mealie_bak/mealie.env.bak + grep -q "^MEALIE_HOME=" /opt/mealie_bak/mealie.env.bak || echo "MEALIE_HOME=/opt/mealie" >>/opt/mealie_bak/mealie.env.bak + grep -q "^NLTK_DATA=" /opt/mealie_bak/mealie.env.bak || echo "NLTK_DATA=/nltk_data" >>/opt/mealie_bak/mealie.env.bak + + mv -f /opt/mealie_bak/mealie.env.bak /opt/mealie/mealie.env + mv -f /opt/mealie_bak/start.sh.bak /opt/mealie/start.sh + chmod +x /opt/mealie/start.sh + sed -i 's|exec .*|source /opt/mealie/.venv/bin/activate\nexec uv run mealie|' /opt/mealie/start.sh + msg_ok "Configuration restored" + + msg_info "Starting Service" + systemctl start mealie + 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/ct/omada.sh b/ct/omada.sh deleted file mode 100644 index 576797b71..000000000 --- a/ct/omada.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.tp-link.com/us/support/download/omada-software-controller/ - -APP="Omada" -var_tags="${var_tags:-tp-link;controller}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-3072}" -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/tplink ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - msg_info "Updating MongoDB" - if lscpu | grep -q 'avx'; then - MONGO_VERSION="8.0" setup_mongodb - else - msg_warn "No AVX detected: Using older MongoDB 4.4" - MONGO_VERSION="4.4" setup_mongodb - fi - - msg_info "Checking if right Azul Zulu Java is installed" - java_version=$(java -version 2>&1 | awk -F[\"_] '/version/ {print $2}') - if [[ "$java_version" =~ ^1\.8\.* ]]; then - $STD apt remove --purge -y zulu8-jdk - $STD apt -y install zulu21-jre-headless - msg_ok "Updated Azul Zulu Java to 21" - else - msg_ok "Azul Zulu Java 21 already installed" - fi - - msg_info "Updating Omada Controller" - OMADA_URL=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" | - grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | - head -n1) - OMADA_PKG=$(basename "$OMADA_URL") - if [ -z "$OMADA_PKG" ]; then - msg_error "Could not retrieve Omada package – server may be down." - exit - fi - curl -fsSL "$OMADA_URL" -o "$OMADA_PKG" - export DEBIAN_FRONTEND=noninteractive - $STD dpkg -i "$OMADA_PKG" - rm -f "$OMADA_PKG" - msg_ok "Updated successfully!" - 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}:8043${CL}" diff --git a/ct/passbolt.sh b/ct/passbolt.sh deleted file mode 100644 index caf0696ba..000000000 --- a/ct/passbolt.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://www.passbolt.com/ - -APP="Passbolt" -var_tags="${var_tags:-auth}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-2}" -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 /var ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating $APP LXC" - $STD apt update - $STD apt upgrade -y - msg_ok "Updated $APP LXC" - cleanup_lxc - 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}" diff --git a/ct/upgopher.sh b/ct/upgopher.sh deleted file mode 100644 index cd7b4d69a..000000000 --- a/ct/upgopher.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Eduard González (wanetty) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/wanetty/upgopher - -APP="Upgopher" -var_tags="${var_tags:-file-sharing}" -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/upgopher ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "upgopher" "wanetty/upgopher"; then - msg_info "Stopping Service" - systemctl stop upgopher - msg_ok "Stopped Service" - - fetch_and_deploy_gh_release "upgopher" "wanetty/upgopher" "prebuild" "latest" "/opt/upgopher" "upgopher_*_linux_amd64.tar.gz" - chmod +x /opt/upgopher/upgopher - - msg_info "Starting Service" - systemctl start upgopher - 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}:9090${CL}" diff --git a/frontend/public/json/domain-locker.json b/frontend/public/json/domain-locker.json deleted file mode 100644 index 9a9260903..000000000 --- a/frontend/public/json/domain-locker.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Domain Locker", - "slug": "domain-locker", - "categories": [ - 9 - ], - "date_created": "2025-11-10", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://domain-locker.com/about", - "config_path": "/opt/domain-locker.env", - "website": "https://github.com/Lissy93/domain-locker", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/domain-locker.webp", - "description": "The all-in-one tool, for keeping track of your domain name portfolio. Got domain names? Get Domain Locker! ", - "install_methods": [ - { - "type": "default", - "script": "ct/domain-locker.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Show DB credentials: `cat ~/Domain-Locker.creds`", - "type": "info" - }, - { - "text": "Domain-locker takes quite some time to build and a lot of ressources, RAM and Cores can be lowered after install.", - "type": "info" - } - ] -} diff --git a/frontend/public/json/ente.json b/frontend/public/json/ente.json new file mode 100644 index 000000000..794580914 --- /dev/null +++ b/frontend/public/json/ente.json @@ -0,0 +1,48 @@ +{ + "name": "Ente", + "slug": "ente", + "categories": [ + 20 + ], + "date_created": "2025-11-22", + "type": "ct", + "updateable": false, + "privileged": false, + "config_path": "/opt", + "interface_port": 3000, + "documentation": "https://github.com/ente-io/ente", + "website": "https://ente.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/ente-photos.svg", + "description": "Ente is a service that provides a fully open source, end-to-end encrypted platform for you to store your data in the cloud without needing to trust the service provider. On top of this platform, we have built two apps so far: Ente Photos (an alternative to Apple and Google Photos) and Ente Auth (a 2FA alternative to the deprecated Authy).", + "install_methods": [ + { + "type": "default", + "script": "ct/ente.sh", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 10, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Please use `journalctl -u ente-museum.service -n 10` to read logs for the signup verification code", + "type": "info" + }, + { + "text": "If you want to use the Ente CLI to add/whitelist admins, please follow the instructions at https://ente.io/help/self-hosting/administration/cli", + "type": "info" + }, + { + "text": "To see Museium config: `cat /opt/ente/server/museum.yaml`", + "type": "info" + } + ] +} diff --git a/frontend/public/json/librenms.json b/frontend/public/json/librenms.json deleted file mode 100644 index 39f738c12..000000000 --- a/frontend/public/json/librenms.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "LibreNMS", - "slug": "librenms", - "categories": [ - 9 - ], - "date_created": "2025-03-24", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 80, - "documentation": "https://docs.librenms.org/", - "website": "https://librenms.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/librenms.webp", - "config_path": "/opt/librenms/config.php and /opt/librenms/.env", - "description": "LibreNMS is an open-source, community-driven network monitoring system that provides automatic discovery, alerting, and performance tracking for network devices. It supports a wide range of hardware and integrates with various notification and logging platforms.", - "install_methods": [ - { - "type": "default", - "script": "ct/librenms.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" - }, - "notes": [] -} diff --git a/frontend/public/json/passbolt.json b/frontend/public/json/passbolt.json deleted file mode 100644 index 09359e49d..000000000 --- a/frontend/public/json/passbolt.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Passbolt", - "slug": "passbolt", - "categories": [ - 6 - ], - "date_created": "2025-09-04", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 443, - "documentation": "https://www.passbolt.com/docs/", - "config_path": "/etc/passbolt/passbolt.php", - "website": "https://www.passbolt.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/passbolt.webp", - "description": "Passbolt is a hybrid credential platform. It is built-first for modern IT teams, yet simple enough for everyone. A sovereign, battle-tested solution that delivers for a team of 5, or an organisation of 5000.", - "install_methods": [ - { - "type": "default", - "script": "ct/passbolt.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Type `cat ~/.Passbolt.creds` to see MariaDB database credentials. You will need those to setup Passbolt.", - "type": "info" - }, - { - "text": "The application uses self-signed certificates. You can also use Let's Encrypt to get a valid certificate for your domain. Please read the documentation for more information.", - "type": "info" - } - ] -} diff --git a/frontend/public/json/qbittorrent-exporter.json b/frontend/public/json/qbittorrent-exporter.json new file mode 100644 index 000000000..0c4ba9c38 --- /dev/null +++ b/frontend/public/json/qbittorrent-exporter.json @@ -0,0 +1,46 @@ +{ + "name": "qbittorrent Exporter", + "slug": "qbittorrent-exporter", + "categories": [ + 9 + ], + "date_created": "2025-11-21", + "type": "addon", + "updateable": true, + "privileged": false, + "interface_port": 8090, + "documentation": "https://github.com/martabal/qbittorrent-exporter", + "website": "https://github.com/martabal/qbittorrent-exporter", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/qbittorrent.webp", + "config_path": "/opt/qbittorrent-exporter.env", + "description": "A fast and lightweight prometheus exporter for qBittorrent ", + "install_methods": [ + { + "type": "default", + "script": "tools/addon/qbittorrent-exporter.sh", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + }, + { + "type": "alpine", + "script": "tools/addon/qbittorrent-exporter.sh", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/upgopher.json b/frontend/public/json/upgopher.json deleted file mode 100644 index 3e54643a0..000000000 --- a/frontend/public/json/upgopher.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "Upgopher", - "slug": "upgopher", - "categories": [ - 11 - ], - "date_created": "2025-10-31", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9090, - "documentation": "https://github.com/wanetty/upgopher#readme", - "config_path": "", - "website": "https://github.com/wanetty/upgopher", - "logo": "https://raw.githubusercontent.com/wanetty/upgopher/main/static/logopher.webp", - "description": "A simple Go web server for file upload, download, and browsing. Cross-platform alternative to Python-based file servers with no library dependencies. Features file upload via web interface, directory navigation, URL copying to clipboard, optional basic authentication, HTTPS support, and hidden files toggle.", - "install_methods": [ - { - "type": "default", - "script": "ct/upgopher.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Default: HTTP on port 9090, no authentication, uploads dir: /opt/upgopher/uploads", - "type": "info" - }, - { - "text": "To customize: edit /etc/systemd/system/upgopher.service and modify ExecStart line. Available flags: -user -pass (authentication), -ssl (HTTPS with self-signed cert), -port (custom port), -dir (upload directory), -disable-hidden-files (hide hidden files)", - "type": "info" - }, - { - "text": "Example with auth: ExecStart=/opt/upgopher/upgopher -port 9090 -dir /opt/upgopher/uploads -user admin -pass mysecret", - "type": "info" - }, - { - "text": "After editing service file: systemctl daemon-reload && systemctl restart upgopher", - "type": "info" - } - ] -} diff --git a/install/asterisk-install.sh b/install/asterisk-install.sh deleted file mode 100644 index 202c12e10..000000000 --- a/install/asterisk-install.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: michelroegl-brunner -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://asterisk.org - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -ASTERISK_VERSIONS_URL="https://www.asterisk.org/downloads/asterisk/all-asterisk-versions/" -html=$(curl -fsSL "$ASTERISK_VERSIONS_URL") - -LTS_VERSION="" -for major in 20 22 24 26; do - block=$(echo "$html" | awk "/Asterisk $major - LTS/,/