diff --git a/ct/alpine-adguard.sh b/ct/alpine-adguard.sh deleted file mode 100644 index 5e71e166a..000000000 --- a/ct/alpine-adguard.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://adguardhome.com/ - -APP="Alpine-AdGuard" -var_tags="${var_tags:-alpine;adblock}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating AdGuard Home" - $STD /opt/AdGuardHome/AdGuardHome --update - msg_ok "Updated AdGuard Home" - - msg_info "Restarting AdGuard Home" - $STD rc-service adguardhome restart - msg_ok "Restarted AdGuard Home" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-bitmagnet.sh b/ct/alpine-bitmagnet.sh deleted file mode 100644 index 922ed5705..000000000 --- a/ct/alpine-bitmagnet.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/bitmagnet-io/bitmagnet - -APP="Alpine-bitmagnet" -var_tags="${var_tags:-alpine;torrent}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-3}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - - if [[ ! -d /opt/bitmagnet ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [ "${RELEASE}" != "$(cat /opt/bitmagnet_version.txt)" ] || [ ! -f /opt/bitmagnet_version.txt ]; then - msg_info "Backing up database" - rm -f /tmp/backup.sql - $STD sudo -u postgres pg_dump \ - --column-inserts \ - --data-only \ - --on-conflict-do-nothing \ - --rows-per-insert=1000 \ - --table=metadata_sources \ - --table=content \ - --table=content_attributes \ - --table=content_collections \ - --table=content_collections_content \ - --table=torrent_sources \ - --table=torrents \ - --table=torrent_files \ - --table=torrent_hints \ - --table=torrent_contents \ - --table=torrent_tags \ - --table=torrents_torrent_sources \ - --table=key_values \ - bitmagnet \ - >/tmp/backup.sql - mv /tmp/backup.sql /opt/ - msg_ok "Database backed up" - - msg_info "Updating ${APP} from $(cat /opt/bitmagnet_version.txt) to ${RELEASE}" - $STD apk -U upgrade - $STD service bitmagnet stop - [ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/ - [ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/ - rm -rf /opt/bitmagnet/* - temp_file=$(mktemp) - curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" - tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet - cd /opt/bitmagnet - VREL=v$RELEASE - $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL" - chmod +x bitmagnet - [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/ - [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/ - rm -f "$temp_file" - echo "${RELEASE}" >/opt/bitmagnet_version.txt - $STD service bitmagnet start - msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit 0 -} - -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 IP:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:3333${CL}" diff --git a/ct/alpine-caddy.sh b/ct/alpine-caddy.sh deleted file mode 100644 index 609339ef8..000000000 --- a/ct/alpine-caddy.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: cobalt (cobaltgit) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://caddyserver.com/ - -APP="Alpine-Caddy" -var_tags="${var_tags:-webserver}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-3}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - if [[ ! -d /etc/caddy ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating $APP LXC" - $STD apk -U upgrade - msg_ok "Updated $APP LXC" - - msg_info "Restarting Caddy" - rc-service caddy restart - msg_ok "Restarted Caddy" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:80${CL}" diff --git a/ct/alpine-docker.sh b/ct/alpine-docker.sh deleted file mode 100644 index 1d7143d46..000000000 --- a/ct/alpine-docker.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.docker.com/ - -APP="Alpine-Docker" -var_tags="${var_tags:-docker;alpine}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-1024}" -var_disk="${var_disk:-2}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - $STD apk -U upgrade - msg_ok "Updated successfully!" - exit 0 -} - -start -build_container -description - -msg_ok "Completed successfully!\n" diff --git a/ct/alpine-forgejo.sh b/ct/alpine-forgejo.sh deleted file mode 100644 index 1de6104c6..000000000 --- a/ct/alpine-forgejo.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Johann3s-H (An!ma) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://forgejo.org/ - -APP="Alpine-Forgejo" -var_tags="${var_tags:-alpine;git}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating Forgejo" - $STD apk upgrade forgejo - msg_ok "Updated Forgejo" - - msg_info "Restarting Forgejo" - $STD rc-service forgejo restart - msg_ok "Restarted Forgejo" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-garage.sh b/ct/alpine-garage.sh deleted file mode 100644 index ae6f2c604..000000000 --- a/ct/alpine-garage.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://garagehq.deuxfleurs.fr/ - -APP="Alpine-Garage" -var_tags="${var_tags:-alpine;object-storage}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-5}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - if [[ ! -f /usr/local/bin/garage ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - GITEA_RELEASE=$(curl -fsSL https://api.github.com/repos/deuxfleurs-org/garage/tags | jq -r '.[0].name') - if [[ "${GITEA_RELEASE}" != "$(cat ~/.garage 2>/dev/null)" ]] || [[ ! -f ~/.garage ]]; then - msg_info "Stopping Service" - rc-service garage stop || true - msg_ok "Stopped Service" - - msg_info "Backing Up Data" - cp /usr/local/bin/garage /usr/local/bin/garage.old 2>/dev/null || true - cp /etc/garage.toml /etc/garage.toml.bak 2>/dev/null || true - msg_ok "Backed Up Data" - - msg_info "Updating Garage" - curl -fsSL "https://garagehq.deuxfleurs.fr/_releases/${GITEA_RELEASE}/$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl/garage" -o /usr/local/bin/garage - chmod +x /usr/local/bin/garage - echo "${GITEA_RELEASE}" >~/.garage - msg_ok "Updated Garage" - - msg_info "Starting Service" - rc-service garage start || rc-service garage restart - msg_ok "Started Service" - msg_ok "Updated successfully!" - else - msg_ok "No update required. Garage is already at ${GITEA_RELEASE}" - fi - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/ct/alpine-gatus.sh b/ct/alpine-gatus.sh deleted file mode 100644 index c8c720f4d..000000000 --- a/ct/alpine-gatus.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/TwiN/gatus - -APP="Alpine-gatus" -var_tags="${var_tags:-alpine;monitoring}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-3}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - - if [[ ! -d /opt/gatus ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [ "${RELEASE}" != "$(cat /opt/gatus_version.txt)" ] || [ ! -f /opt/gatus_version.txt ]; then - msg_info "Updating ${APP} LXC" - $STD apk -U upgrade - $STD service gatus stop - mv /opt/gatus/config/config.yaml /opt - rm -rf /opt/gatus/* - temp_file=$(mktemp) - curl -fsSL "https://github.com/TwiN/gatus/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" - tar zxf "$temp_file" --strip-components=1 -C /opt/gatus - cd /opt/gatus - $STD go mod tidy - CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus . - setcap CAP_NET_RAW+ep gatus - mv /opt/config.yaml config - rm -f "$temp_file" - echo "${RELEASE}" >/opt/gatus_version.txt - $STD service gatus start - msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit 0 -} - -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 IP:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:8080${CL}" diff --git a/ct/alpine-gitea.sh b/ct/alpine-gitea.sh deleted file mode 100644 index bbeb95c9b..000000000 --- a/ct/alpine-gitea.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://gitea.io/ - -APP="Alpine-Gitea" -var_tags="${var_tags:-alpine;git}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating Gitea" - apk upgrade gitea - msg_ok "Updated Gitea" - - msg_info "Restarting Gitea" - rc-service gitea restart - msg_ok "Restarted Gitea" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-grafana.sh b/ct/alpine-grafana.sh deleted file mode 100644 index d95f9a6d0..000000000 --- a/ct/alpine-grafana.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://grafana.com/ - -APP="Alpine-Grafana" -var_tags="${var_tags:-alpine;monitoring}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-2}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1) - - CHOICE=$(msg_menu "Grafana Update Options" \ - "1" "Check for Grafana Updates" \ - "2" "Allow 0.0.0.0 for listening" \ - "3" "Allow only ${LXCIP} for listening") - - case $CHOICE in - 1) - $STD apk -U upgrade - msg_ok "Updated successfully!" - exit - ;; - 2) - sed -i -e "s/cfg:server.http_addr=.*/cfg:server.http_addr=0.0.0.0/g" /etc/conf.d/grafana - service grafana restart - msg_ok "Allowed listening on all interfaces!" - exit - ;; - 3) - sed -i -e "s/cfg:server.http_addr=.*/cfg:server.http_addr=$LXCIP/g" /etc/conf.d/grafana - service grafana restart - msg_ok "Allowed listening only on ${LXCIP}!" - exit - ;; - esac - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-ironclaw.sh b/ct/alpine-ironclaw.sh deleted file mode 100644 index f9d6c9fb2..000000000 --- a/ct/alpine-ironclaw.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/nearai/ironclaw - -APP="Alpine-IronClaw" -var_tags="${var_tags:-ai;agent;alpine}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-1024}" -var_disk="${var_disk:-8}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - - if [[ ! -f /usr/local/bin/ironclaw ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - RELEASE="ironclaw-v0.29.1" - if check_for_gh_release "ironclaw-bin" "nearai/ironclaw" "${RELEASE}" "IronClaw 1.0 (Reborn) is a ground-up rearchitecture with an incompatible CLI/config format; pinned until this script supports it"; then - msg_info "Stopping Service" - rc-service ironclaw stop 2>/dev/null || true - msg_ok "Stopped Service" - - msg_info "Backing up Configuration" - cp /root/.ironclaw/.env /root/ironclaw.env.bak - msg_ok "Backed up Configuration" - - fetch_and_deploy_gh_release "ironclaw-bin" "nearai/ironclaw" "prebuild" "${RELEASE}" "/usr/local/bin" \ - "ironclaw-$(uname -m)-unknown-linux-musl.tar.gz" - chmod +x /usr/local/bin/ironclaw - - msg_info "Restoring Configuration" - cp /root/ironclaw.env.bak /root/.ironclaw/.env - rm -f /root/ironclaw.env.bak - msg_ok "Restored Configuration" - - msg_info "Starting Service" - rc-service ironclaw start - 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} Next Steps:${CL}" -echo -e "${TAB}1. Complete setup by running:${CL}" -echo -e "${TAB}${TAB}${BGN}/usr/local/bin/ironclaw onboard${CL}" -echo -e "${TAB}2. Start the service:${CL}" -echo -e "${TAB}${TAB}${BGN}rc-service ironclaw start${CL}" -echo -e "${TAB}3. Access the Web UI at:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:3000${CL}" -echo -e "${INFO}${YW} Use Gateway Authentication Token to login:${CL}" -echo -e "${TAB}${TAB}${BGN}cat /root/.ironclaw/gateway.creds${CL}" diff --git a/ct/alpine-loki.sh b/ct/alpine-loki.sh deleted file mode 100644 index 2ea565b56..000000000 --- a/ct/alpine-loki.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: hoholms -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/grafana/loki - -APP="Alpine-Loki" -var_tags="${var_tags:-alpine;monitoring}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1) - - CHOICE=$(msg_menu "Loki Update Options" \ - "1" "Check for Loki Updates" \ - "2" "Allow 0.0.0.0 for listening" \ - "3" "Allow only ${LXCIP} for listening") - - case $CHOICE in - 1) - $STD apk -U upgrade - msg_ok "Updated successfully!" - exit - ;; - 2) - sed -i -e "s/cfg:server.http_addr=.*/cfg:server.http_addr=0.0.0.0/g" /etc/conf.d/loki - service loki restart - msg_ok "Allowed listening on all interfaces!" - exit - ;; - 3) - sed -i -e "s/cfg:server.http_addr=.*/cfg:server.http_addr=$LXCIP/g" /etc/conf.d/loki - service loki restart - msg_ok "Allowed listening only on ${LXCIP}!" - exit - ;; - esac - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:3100${CL}" diff --git a/ct/alpine-mariadb.sh b/ct/alpine-mariadb.sh deleted file mode 100644 index c579bca8f..000000000 --- a/ct/alpine-mariadb.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://mariadb.org/ - -APP="Alpine-MariaDB" -var_tags="${var_tags:-alpine;database}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating MariaDB" - $STD apk upgrade mariadb mariadb-client - msg_ok "Updated MariaDB" - - msg_info "Restarting MariaDB" - $STD rc-service mariadb restart - msg_ok "Restarted MariaDB" - msg_ok "Updated successfully!" - exit 0 -} - -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 IP:${CL}" -echo -e "${GATEWAY}${BGN}${IP}:3306${CL}" diff --git a/ct/alpine-node-red.sh b/ct/alpine-node-red.sh deleted file mode 100644 index 006698ea1..000000000 --- a/ct/alpine-node-red.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://nodered.org/ - -APP="Alpine-Node-RED" -var_tags="${var_tags:-alpine;automation}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating Node.js and npm" - $STD apk upgrade nodejs npm - msg_ok "Updated Node.js and npm" - - msg_info "Updating Node-RED" - $STD npm install -g --unsafe-perm node-red - msg_ok "Updated Node-RED" - - msg_info "Restarting Node-RED" - $STD rc-service nodered restart - msg_ok "Restarted Node-RED" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:1880${CL}" diff --git a/ct/alpine-ntfy.sh b/ct/alpine-ntfy.sh deleted file mode 100644 index b98384e19..000000000 --- a/ct/alpine-ntfy.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: cobalt (cobaltgit) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://ntfy.sh/ - -APP="Alpine-ntfy" -var_tags="${var_tags:-notification}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-2}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - if [[ ! -d /etc/ntfy ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating ntfy LXC" - $STD apk -U upgrade - setcap 'cap_net_bind_service=+ep' /usr/bin/ntfy - msg_ok "Updated ntfy LXC" - - msg_info "Restarting ntfy" - rc-service ntfy restart - msg_ok "Restarted ntfy" - 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 "${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/ct/alpine-postgresql.sh b/ct/alpine-postgresql.sh deleted file mode 100644 index 558a07a6a..000000000 --- a/ct/alpine-postgresql.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.postgresql.org/ - -APP="Alpine-PostgreSQL" -var_tags="${var_tags:-alpine;database}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating PostgreSQL" - $STD apk upgrade postgresql postgresql-contrib - msg_ok "Updated PostgreSQL" - - msg_info "Restarting PostgreSQL" - $STD rc-service postgresql restart - msg_ok "Restarted PostgreSQL" - msg_ok "Updated successfully!" - exit 0 -} - -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 IP:${CL}" -echo -e "${GATEWAY}${BGN}${IP}:5432${CL}" diff --git a/ct/alpine-prometheus.sh b/ct/alpine-prometheus.sh deleted file mode 100644 index 466c3ffd7..000000000 --- a/ct/alpine-prometheus.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://prometheus.io/ - -APP="Alpine-Prometheus" -var_tags="${var_tags:-alpine;monitoring}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating Prometheus" - $STD apk upgrade prometheus - msg_ok "Updated Prometheus" - - msg_info "Restarting Prometheus" - $STD rc-service prometheus restart - msg_ok "Restarted Prometheus" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:9090${CL}" diff --git a/ct/alpine-rclone.sh b/ct/alpine-rclone.sh deleted file mode 100644 index 8aec2bff3..000000000 --- a/ct/alpine-rclone.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/rclone/rclone - -APP="Alpine-rclone" -var_tags="${var_tags:-alpine;backup}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" -var_fuse="${var_fuse:-yes}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - if [ ! -d /opt/rclone ]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [ "${RELEASE}" != "$(cat /opt/rclone_version.txt)" ] || [ ! -f /opt/rclone_version.txt ]; then - msg_info "Updating ${APP} LXC" - temp_file=$(mktemp) - curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-$(arch_resolve).zip" -o "$temp_file" - $STD unzip -o "$temp_file" '*/**' -d /opt/rclone - rm -f "$temp_file" - echo "${RELEASE}" >/opt/rclone_version.txt - msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit 0 -} - -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 IP:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-redis.sh b/ct/alpine-redis.sh deleted file mode 100644 index 9db9706f3..000000000 --- a/ct/alpine-redis.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://redis.io/ - -APP="Alpine-Redis" -var_tags="${var_tags:-alpine;database}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1) - - CHOICE=$(msg_menu "Redis Management" \ - "1" "Update Redis" \ - "2" "Allow 0.0.0.0 for listening" \ - "3" "Allow only ${LXCIP} for listening") - - case $CHOICE in - 1) - msg_info "Updating Redis" - apk update && apk upgrade redis - rc-service redis restart - msg_ok "Updated successfully!" - exit - ;; - 2) - msg_info "Setting Redis to listen on all interfaces" - sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis.conf - rc-service redis restart - msg_ok "Redis now listens on all interfaces!" - exit - ;; - 3) - msg_info "Setting Redis to listen only on ${LXCIP}" - sed -i "s/^bind .*/bind ${LXCIP}/" /etc/redis.conf - rc-service redis restart - msg_ok "Redis now listens only on ${LXCIP}!" - exit - ;; - esac -} - -start -build_container -description - -msg_ok "Completed successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW}Connect to Redis CLI using the following command:${CL}" -echo -e "${GATEWAY}${BGN}redis-cli -h ${IP} -p 6379${CL}" diff --git a/ct/alpine-rustdeskserver.sh b/ct/alpine-rustdeskserver.sh deleted file mode 100644 index 29187338f..000000000 --- a/ct/alpine-rustdeskserver.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/rustdesk/rustdesk-server - -APP="Alpine-RustDeskServer" -var_tags="${var_tags:-alpine;monitoring}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-3}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - if [[ ! -d /opt/rustdesk-server ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then - msg_info "Updating RustDesk Server to v${RELEASE}" - $STD apk -U upgrade - $STD service rustdesk-server-hbbs stop - $STD service rustdesk-server-hbbr stop - temp_file1=$(mktemp) - ARCH=$(arch_resolve "amd64" "arm64v8") - curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-${ARCH}.zip" -o "$temp_file1" - $STD unzip "$temp_file1" - cp -r "$ARCH"/* /opt/rustdesk-server/ - echo "${RELEASE}" >~/.rustdesk-server - $STD service rustdesk-server-hbbs start - $STD service rustdesk-server-hbbr start - rm -rf "$ARCH" - rm -f "$temp_file1" - msg_ok "Updated RustDesk Server" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" - fi - if [ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ] || [ ! -f ~/.rustdesk-api ]; then - msg_info "Updating RustDesk API to v${APIRELEASE}" - $STD service rustdesk-api stop - temp_file2=$(mktemp) - curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-$(arch_resolve).tar.gz" -o "$temp_file2" - $STD tar zxvf "$temp_file2" - cp -r release/* /opt/rustdesk-api - echo "${APIRELEASE}" >~/.rustdesk-api - $STD service rustdesk-api start - rm -rf release - rm -f "$temp_file2" - msg_ok "Updated RustDesk API" - else - msg_ok "No update required. RustDesk API is already at v${APIRELEASE}" - fi - msg_ok "Updated successfully!" - exit 0 -} - -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 IP:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:21114${CL}" diff --git a/ct/alpine-rustypaste.sh b/ct/alpine-rustypaste.sh deleted file mode 100644 index 6a9cf3029..000000000 --- a/ct/alpine-rustypaste.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/orhun/rustypaste - -APP="Alpine-RustyPaste" -var_tags="${var_tags:-alpine;pastebin;storage}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-4}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - - if ! apk info -e rustypaste >/dev/null 2>&1; then - msg_error "No ${APP} Installation Found!" - exit - fi - - msg_info "Updating RustyPaste" - $STD apk update - $STD apk upgrade rustypaste --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community - msg_ok "Updated RustyPaste" - - msg_info "Restarting Services" - $STD rc-service rustypaste restart - msg_ok "Restarted Services" - 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 "${GATEWAY}${BGN}http://${IP}:8000${CL}" diff --git a/ct/alpine-syncthing.sh b/ct/alpine-syncthing.sh deleted file mode 100644 index ee60e1460..000000000 --- a/ct/alpine-syncthing.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://syncthing.net/ - -APP="Alpine-Syncthing" -var_tags="${var_tags:-alpine;networking}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating Syncthing" - $STD apk upgrade syncthing - msg_ok "Updated Syncthing" - - msg_info "Restarting Syncthing" - $STD rc-service syncthing restart - msg_ok "Restarted Syncthing" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:8384${CL}" diff --git a/ct/alpine-teamspeak-server.sh b/ct/alpine-teamspeak-server.sh deleted file mode 100644 index 79fd91b6a..000000000 --- a/ct/alpine-teamspeak-server.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: tremor021 (Slaviša Arežina) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://teamspeak.com/en/ - -APP="Alpine-TeamSpeak-Server" -var_tags="${var_tags:-alpine;communication}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-2}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-no}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - - if [[ ! -d /opt/teamspeak-server ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]*[0-9]\).*/\1/p' | awk 'NR==1') - - if [ "${RELEASE}" != "$(cat ~/.teamspeak-server)" ] || [ ! -f ~/.teamspeak-server ]; then - msg_info "Updating ${APP} LXC" - $STD apk -U upgrade - $STD service teamspeak stop - curl -fsSL "https://files.teamspeak-services.com/releases/server/${RELEASE}/teamspeak3-server_linux_amd64-${RELEASE}.tar.bz2" -o ts3server.tar.bz2 - tar -xf ./ts3server.tar.bz2 - cp -ru teamspeak3-server_linux_amd64/* /opt/teamspeak-server/ - rm -f ~/ts3server.tar.bz* - rm -rf teamspeak3-server_linux_amd64 - echo "${RELEASE}" >~/.teamspeak-server - $STD service teamspeak start - msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit 0 -} - -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 IP:${CL}" -echo -e "${GATEWAY}${BGN}${IP}:9987${CL}" diff --git a/ct/alpine-tinyauth.sh b/ct/alpine-tinyauth.sh deleted file mode 100644 index c47ca2f22..000000000 --- a/ct/alpine-tinyauth.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) | Co-Author: Stavros (steveiliop56) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/tinyauthapp/tinyauth - -APP="Alpine-Tinyauth" -var_tags="${var_tags:-alpine;auth}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-2}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - if [[ ! -d /opt/tinyauth ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - msg_info "Updating packages" - $STD apk -U upgrade - msg_ok "Updated packages" - - RELEASE=$(curl -s https://api.github.com/repos/tinyauthapp/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [ "${RELEASE}" != "$(cat ~/.tinyauth 2>/dev/null)" ] || [ ! -f ~/.tinyauth ]; then - msg_info "Stopping Service" - $STD service tinyauth stop - msg_ok "Service Stopped" - - if [[ -f /opt/tinyauth/.env ]] && ! grep -q "^TINYAUTH_" /opt/tinyauth/.env; then - msg_info "Migrating .env to v5 format" - sed -i \ - -e 's/^DATABASE_PATH=/TINYAUTH_DATABASE_PATH=/' \ - -e 's/^USERS=/TINYAUTH_AUTH_USERS=/' \ - -e "s/^USERS='/TINYAUTH_AUTH_USERS='/" \ - -e 's/^APP_URL=/TINYAUTH_APPURL=/' \ - -e 's/^SECRET=/TINYAUTH_AUTH_SECRET=/' \ - -e 's/^PORT=/TINYAUTH_SERVER_PORT=/' \ - -e 's/^ADDRESS=/TINYAUTH_SERVER_ADDRESS=/' \ - /opt/tinyauth/.env - msg_ok "Migrated .env to v5 format" - fi - - msg_info "Updating Tinyauth" - rm -f /opt/tinyauth/tinyauth - curl -fsSL "https://github.com/tinyauthapp/tinyauth/releases/download/v${RELEASE}/tinyauth-$(arch_resolve)" -o /opt/tinyauth/tinyauth - chmod +x /opt/tinyauth/tinyauth - echo "${RELEASE}" >~/.tinyauth - msg_ok "Updated Tinyauth" - - msg_info "Restarting Tinyauth" - $STD service tinyauth start - msg_ok "Restarted Tinyauth" - msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-traefik.sh b/ct/alpine-traefik.sh deleted file mode 100644 index 8d7190dbe..000000000 --- a/ct/alpine-traefik.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://alpinelinux.org/ - -APP="Alpine-Traefik" -var_tags="${var_tags:-os;alpine}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating traefik from edge" - $STD apk add traefik --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community - msg_ok "Updated traefik" - msg_ok "Updated successfully!" - exit 0 -} - -start -build_container -description - -msg_ok "Completed successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} WebUI Access (if configured) - using the following URL:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:8080/dashboard${CL}" diff --git a/ct/alpine-transmission.sh b/ct/alpine-transmission.sh deleted file mode 100644 index dee98ec80..000000000 --- a/ct/alpine-transmission.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://transmissionbt.com/ - -APP="Alpine-Transmission" -var_tags="${var_tags:-alpine;torrent}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "Updating Transmission" - $STD apk upgrade transmission-daemon - msg_ok "Updated Transmission" - - msg_info "Restarting Transmission" - $STD rc-service transmission-daemon restart - msg_ok "Restarted Transmission" - msg_ok "Updated successfully!" - exit 0 -} - -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 "${GATEWAY}${BGN}http://${IP}:9091${CL}" diff --git a/ct/alpine-valkey.sh b/ct/alpine-valkey.sh deleted file mode 100644 index 25bd097a8..000000000 --- a/ct/alpine-valkey.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: pshankinclarke (lazarillo) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://valkey.io/ - -APP="Alpine-Valkey" -var_tags="${var_tags:-alpine;database}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1) - - CHOICE=$(msg_menu "Valkey Management" \ - "1" "Update Valkey" \ - "2" "Allow 0.0.0.0 for listening" \ - "3" "Allow only ${LXCIP} for listening") - - case $CHOICE in - 1) - msg_info "Updating Valkey" - apk update && apk upgrade valkey - rc-service valkey restart - msg_ok "Updated Valkey" - msg_ok "Updated successfully!" - exit - ;; - 2) - msg_info "Setting Valkey to listen on all interfaces" - sed -i 's/^bind .*/bind 0.0.0.0/' /etc/valkey/valkey.conf - rc-service valkey restart - msg_ok "Valkey now listens on all interfaces!" - exit - ;; - 3) - msg_info "Setting Valkey to listen only on ${LXCIP}" - sed -i "s/^bind .*/bind ${LXCIP}/" /etc/valkey/valkey.conf - rc-service valkey restart - msg_ok "Valkey now listens only on ${LXCIP}!" - exit - ;; - esac -} - -start -build_container -description - -msg_ok "Completed successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW}Connect to Valkey CLI using the following command:${CL}" -echo -e "${GATEWAY}${BGN}valkey-cli -h ${IP} -p 6379${CL}" diff --git a/ct/alpine-vaultwarden.sh b/ct/alpine-vaultwarden.sh deleted file mode 100644 index df6c01185..000000000 --- a/ct/alpine-vaultwarden.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/dani-garcia/vaultwarden - -APP="Alpine-Vaultwarden" -var_tags="${var_tags:-alpine;vault}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - CHOICE=$(msg_menu "Vaultwarden Update Options" \ - "1" "Update Vaultwarden" \ - "2" "Reset ADMIN_TOKEN") - - case $CHOICE in - 1) - $STD apk -U upgrade - rc-service vaultwarden restart -q - msg_ok "Updated successfully!" - exit - ;; - 2) - if [[ "${PHS_SILENT:-0}" == "1" ]]; then - msg_warn "Reset ADMIN_TOKEN requires interactive mode, skipping." - exit - fi - read -r -s -p "Setup your ADMIN_TOKEN (make it strong): " NEWTOKEN - echo "" - if [[ -n "$NEWTOKEN" ]]; then - if ! command -v argon2 >/dev/null 2>&1; then apk add argon2 &>/dev/null; fi - TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1) - if [[ ! -f /var/lib/vaultwarden/config.json ]]; then - sed -i "s|export ADMIN_TOKEN=.*|export ADMIN_TOKEN='${TOKEN}'|" /etc/conf.d/vaultwarden - else - sed -i "s|\"admin_token\": .*|\"admin_token\": \"${TOKEN}\",|" /var/lib/vaultwarden/config.json - fi - rc-service vaultwarden restart -q - msg_ok "Admin token updated" - fi - exit - ;; - esac -} - -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 "${GATEWAY}${BGN}https://${IP}:8000${CL}" diff --git a/ct/alpine-wireguard.sh b/ct/alpine-wireguard.sh deleted file mode 100644 index 930334605..000000000 --- a/ct/alpine-wireguard.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.wireguard.com/ - -APP="Alpine-Wireguard" -var_tags="${var_tags:-alpine;vpn}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_disk="${var_disk:-1}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-1}" -var_tun="${var_tun:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - msg_info "Updating Alpine Packages" - $STD apk -U upgrade - msg_ok "Updated Alpine Packages" - - msg_info "update wireguard-tools" - $STD apk add --no-cache --upgrade wireguard-tools - msg_ok "wireguard-tools updated" - - if [[ -d /etc/wgdashboard/src ]]; then - msg_info "update WGDashboard" - cd /etc/wgdashboard/src - echo "y" | ./wgd.sh update >/dev/null 2>&1 - $STD ./wgd.sh start - msg_ok "WGDashboard updated" - fi - msg_ok "Updated successfully!" - exit 0 -} - -start -build_container -description - -msg_ok "Completed successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} WGDashboardAccess it using the following URL:${CL}" -echo -e "${GATEWAY}${BGN}http://${IP}:10086${CL}" diff --git a/ct/alpine-zigbee2mqtt.sh b/ct/alpine-zigbee2mqtt.sh deleted file mode 100644 index 8048cc870..000000000 --- a/ct/alpine-zigbee2mqtt.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.zigbee2mqtt.io/ - -APP="Alpine-Zigbee2MQTT" -var_tags="${var_tags:-alpine;zigbee;mqtt;smarthome}" -var_disk="${var_disk:-1}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-256}" -var_os="${var_os:-alpine}" -var_version="${var_version:-3.24}" -var_arm64="${var_arm64:-yes}" -var_unprivileged="${var_unprivileged:-0}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - $STD apk -U upgrade - msg_ok "Updated successfully!" - exit 0 -} - -start -build_container -description - -msg_ok "Completed successfully!\n" diff --git a/install/alpine-adguard-install.sh b/install/alpine-adguard-install.sh deleted file mode 100644 index d1446bfcb..000000000 --- a/install/alpine-adguard-install.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://adguardhome.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Downloading AdGuard Home" -$STD curl -fsSL -o /tmp/AdGuardHome_linux_$(arch_resolve).tar.gz \ -"https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_$(arch_resolve).tar.gz" -msg_ok "Downloaded AdGuard Home" - -msg_info "Installing AdGuard Home" -$STD tar -xzf /tmp/AdGuardHome_linux_$(arch_resolve).tar.gz -C /opt -$STD rm /tmp/AdGuardHome_linux_$(arch_resolve).tar.gz -msg_ok "Installed AdGuard Home" - -msg_info "Creating AdGuard Home Service" -cat </etc/init.d/adguardhome -#!/sbin/openrc-run -name="AdGuardHome" -description="AdGuard Home Service" -command="/opt/AdGuardHome/AdGuardHome" -command_background="yes" -pidfile="/run/adguardhome.pid" -EOF -$STD chmod +x /etc/init.d/adguardhome -msg_ok "Created AdGuard Home Service" - -msg_info "Enabling AdGuard Home Service" -$STD rc-update add adguardhome default -msg_ok "Enabled AdGuard Home Service" - -msg_info "Starting AdGuard Home" -$STD rc-service adguardhome start -msg_ok "Started AdGuard Home" - -motd_ssh -customize diff --git a/install/alpine-bitmagnet-install.sh b/install/alpine-bitmagnet-install.sh deleted file mode 100644 index 6bb31de7b..000000000 --- a/install/alpine-bitmagnet-install.sh +++ /dev/null @@ -1,85 +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/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/bitmagnet-io/bitmagnet - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing dependencies" -$STD apk add --no-cache \ - gcc \ - musl-dev \ - git \ - iproute2-ss \ - sudo -$STD apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community go -msg_ok "Installed dependencies" - -msg_info "Installing PostgreSQL" -$STD apk add --no-cache \ - postgresql16 \ - postgresql16-contrib \ - postgresql16-openrc -$STD rc-update add postgresql -$STD rc-service postgresql start -msg_ok "Installed PostreSQL" - -RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - -msg_info "Installing bitmagnet v${RELEASE}" -mkdir -p /opt/bitmagnet -temp_file=$(mktemp) -curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" -tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet -cd /opt/bitmagnet -VREL=v$RELEASE -$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL" -chmod +x bitmagnet -$STD su - postgres -c "psql -c 'CREATE DATABASE bitmagnet;'" -echo "${RELEASE}" >/opt/bitmagnet_version.txt -msg_ok "Installed bitmagnet v${RELEASE}" - -read -rp "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey - -msg_info "Enabling bitmagnet Service" -cat </etc/init.d/bitmagnet -#!/sbin/openrc-run -description="bitmagnet Service" -directory="/opt/bitmagnet" -command="/opt/bitmagnet/bitmagnet" -command_args="worker run --all" -command_background="true" -command_user="root" -pidfile="/var/run/bitmagnet.pid" - -depend() { - use net -} - -start_pre() { - export TMDB_API_KEY="$tmdbapikey" -} -EOF -chmod +x /etc/init.d/bitmagnet -$STD rc-update add bitmagnet default -msg_ok "Enabled bitmagnet Service" - -msg_info "Starting bitmagnet" -$STD service bitmagnet start -msg_ok "Started bitmagnet" - -motd_ssh -customize - -msg_info "Cleaning up" -rm -f "$temp_file" -$STD apk cache clean -msg_ok "Cleaned" diff --git a/install/alpine-caddy-install.sh b/install/alpine-caddy-install.sh deleted file mode 100644 index dc2b7eff2..000000000 --- a/install/alpine-caddy-install.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: cobalt (cobaltgit) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://caddyserver.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Caddy" -$STD apk add --no-cache caddy caddy-openrc -cat </etc/caddy/Caddyfile -:80 { - # Set this path to your site's directory. - root * /var/www/html - - # Enable the static file server. - file_server - - # Another common task is to set up a reverse proxy: - # reverse_proxy localhost:8080 - - # Or serve a PHP site through php-fpm: - # php_fastcgi localhost:9000 -} -EOF -mkdir -p /var/www/html -cat </var/www/html/index.html - - - - Caddy works! - - -

Hello Caddy!

-

For more information, refer to the Caddy documentation

- - -EOF -msg_ok "Installed Caddy" - -read -r -p "${TAB3}Would you like to install xCaddy Addon? " prompt -if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - GO_VERSION="$(curl -fsSL https://go.dev/VERSION?m=text | head -1 | cut -c3-)" setup_go - msg_info "Setup xCaddy" - cd /opt - RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.tar.gz" -o "xcaddy_${RELEASE:1}_linux_amd64.tar.gz" - $STD tar xzf xcaddy_"${RELEASE:1}"_linux_amd64.tar.gz -C /usr/local/bin xcaddy - rm -rf /opt/xcaddy* - $STD xcaddy build - msg_ok "Setup xCaddy" -fi - -msg_info "Enabling Caddy Service" -$STD rc-update add caddy default -msg_ok "Enabled Caddy Service" - -msg_info "Starting Caddy" -$STD service caddy start -msg_ok "Started Caddy" - -motd_ssh -customize diff --git a/install/alpine-docker-install.sh b/install/alpine-docker-install.sh deleted file mode 100644 index 91a07a770..000000000 --- a/install/alpine-docker-install.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.docker.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add tzdata openssl -msg_ok "Installed Dependencies" - -msg_info "Installing Docker" -$STD apk add docker -$STD rc-service docker start -$STD rc-update add docker default -msg_ok "Installed Docker" - -get_latest_release() { - curl -fsSL https://api.github.com/repos/"$1"/releases/latest | grep '"tag_name":' | cut -d'"' -f4 -} -DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose") -PORTAINER_AGENT_LATEST_VERSION=$(get_latest_release "portainer/agent") - -read -r -p "${TAB3}Would you like to add Docker Compose? " prompt -if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - msg_info "Installing Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" - DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} - mkdir -p "$DOCKER_CONFIG"/cli-plugins - curl -fsSL https://github.com/docker/compose/releases/download/"$DOCKER_COMPOSE_LATEST_VERSION"/docker-compose-linux-$(arch_resolve "x86_64" "aarch64") -o ~/.docker/cli-plugins/docker-compose - chmod +x "$DOCKER_CONFIG"/cli-plugins/docker-compose - msg_ok "Installed Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" -fi - -if prompt_confirm "${TAB3}Would you like to install Portainer (UI) via the community-scripts addon?" "n" 60; then - bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/portainer.sh)" <<<"y" -else - read -r -p "${TAB3}Would you like to add the Portainer Agent? " prompt - if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION" - $STD docker run -d \ - -p 9001:9001 \ - --name portainer_agent \ - --restart=always \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v /var/lib/docker/volumes:/var/lib/docker/volumes \ - portainer/agent - msg_ok "Installed Portainer Agent $PORTAINER_AGENT_LATEST_VERSION" - fi -fi - -read -r -p "${TAB3}Would you like to expose the Docker TCP socket? " prompt -if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - msg_info "Exposing Docker TCP socket" - $STD mkdir -p /etc/docker - $STD echo '{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }' >/etc/docker/daemon.json - $STD rc-service docker restart - msg_ok "Exposed Docker TCP socket at tcp://+:2375" -fi - -motd_ssh -customize diff --git a/install/alpine-forgejo-install.sh b/install/alpine-forgejo-install.sh deleted file mode 100644 index b09a6414f..000000000 --- a/install/alpine-forgejo-install.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Johann3s-H (An!ma) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://forgejo.org/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Forgejo" -$STD apk add --no-cache forgejo -msg_ok "Installed Forgejo" - -msg_info "Enabling Forgejo Service" -$STD rc-update add forgejo default -msg_ok "Enabled Forgejo Service" - -msg_info "Starting Forgejo" -$STD service forgejo start -msg_ok "Started Forgejo" - -motd_ssh -customize diff --git a/install/alpine-garage-install.sh b/install/alpine-garage-install.sh deleted file mode 100644 index 476f98dd7..000000000 --- a/install/alpine-garage-install.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://garagehq.deuxfleurs.fr/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add --no-cache openssl -msg_ok "Installed Dependencies" - -GITEA_RELEASE=$(curl -s https://api.github.com/repos/deuxfleurs-org/garage/tags | jq -r '.[0].name') -curl -fsSL "https://garagehq.deuxfleurs.fr/_releases/${GITEA_RELEASE}/$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl/garage" -o /usr/local/bin/garage -chmod +x /usr/local/bin/garage -mkdir -p /var/lib/garage/{data,meta,snapshots} -mkdir -p /etc/garage -RPC_SECRET=$(openssl rand -hex 64 | cut -c1-64) -ADMIN_TOKEN=$(openssl rand -base64 32) -METRICS_TOKEN=$(openssl rand -base64 32) -cat <~/garage.creds -Garage Tokens and Secrets -RPC Secret: $RPC_SECRET -Admin Token: $ADMIN_TOKEN -Metrics Token: $METRICS_TOKEN -EOF -echo $GITEA_RELEASE >>~/.garage -cat </etc/garage.toml -metadata_dir = "/var/lib/garage/meta" -data_dir = "/var/lib/garage/data" -db_engine = "sqlite" -replication_factor = 1 - -rpc_bind_addr = "0.0.0.0:3901" -rpc_public_addr = "127.0.0.1:3901" -rpc_secret = "${RPC_SECRET}" - -[s3_api] -s3_region = "garage" -api_bind_addr = "0.0.0.0:3900" -root_domain = ".s3.garage" - -[s3_web] -bind_addr = "0.0.0.0:3902" -root_domain = ".web.garage" -index = "index.html" - -[k2v_api] -api_bind_addr = "0.0.0.0:3904" - -[admin] -api_bind_addr = "0.0.0.0:3903" -admin_token = "${ADMIN_TOKEN}" -metrics_token = "${METRICS_TOKEN}" -EOF -msg_ok "Configured Garage" - -msg_info "Creating Service" -cat <<'EOF' >/etc/init.d/garage -#!/sbin/openrc-run -name="Garage Object Storage" -command="/usr/local/bin/garage" -command_args="server" -command_background="yes" -pidfile="/run/garage.pid" -depend() { - need net -} -EOF - -chmod +x /etc/init.d/garage -$STD rc-update add garage default -$STD rc-service garage restart || rc-service garage start -msg_ok "Service active" - -motd_ssh -customize diff --git a/install/alpine-gatus-install.sh b/install/alpine-gatus-install.sh deleted file mode 100644 index 6bab8a41c..000000000 --- a/install/alpine-gatus-install.sh +++ /dev/null @@ -1,70 +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/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/TwiN/gatus - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing dependencies" -$STD apk add --no-cache \ - ca-certificates \ - libcap-setcap -$STD apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community go -msg_ok "Installed dependencies" - -RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -msg_info "Installing gatus v${RELEASE}" -temp_file=$(mktemp) -mkdir -p /opt/gatus -curl -fsSL "https://github.com/TwiN/gatus/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" -tar zxf "$temp_file" --strip-components=1 -C /opt/gatus -cd /opt/gatus -$STD go mod tidy -CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus . -setcap CAP_NET_RAW+ep gatus -mv config.yaml config -echo "${RELEASE}" >/opt/gatus_version.txt -msg_ok "Installed gatus v${RELEASE}" - -msg_info "Enabling gatus Service" -cat </etc/init.d/gatus -#!/sbin/openrc-run -description="gatus Service" -directory="/opt/gatus" -command="/opt/gatus/gatus" -command_args="" -command_background="true" -command_user="root" -pidfile="/var/run/gatus.pid" - -export GATUS_CONFIG_PATH="" -export GATUS_LOG_LEVEL="INFO" -export PORT="8080" - -depend() { - use net -} -EOF -chmod +x /etc/init.d/gatus -$STD rc-update add gatus default -msg_ok "Enabled gatus Service" - -msg_info "Starting gatus" -$STD service gatus start -msg_ok "Started gatus" - -motd_ssh -customize - -msg_info "Cleaning up" -rm -f "$temp_file" -$STD apk cache clean -msg_ok "Cleaned" diff --git a/install/alpine-gitea-install.sh b/install/alpine-gitea-install.sh deleted file mode 100644 index dc7b8225b..000000000 --- a/install/alpine-gitea-install.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://gitea.io/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Gitea" -$STD apk add --no-cache gitea -msg_ok "Installed Gitea" - -msg_info "Enabling Gitea Service" -$STD rc-update add gitea default -msg_ok "Enabled Gitea Service" - -msg_info "Starting Gitea" -$STD service gitea start -msg_ok "Started Gitea" - -motd_ssh -customize diff --git a/install/alpine-grafana-install.sh b/install/alpine-grafana-install.sh deleted file mode 100644 index 6920bceb2..000000000 --- a/install/alpine-grafana-install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://grafana.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Grafana" -$STD apk add grafana -$STD sed -i '/http_addr/s/127.0.0.1/0.0.0.0/g' /etc/conf.d/grafana -$STD rc-service grafana start -$STD rc-update add grafana default -msg_ok "Installed Grafana" - -motd_ssh -customize diff --git a/install/alpine-ironclaw-install.sh b/install/alpine-ironclaw-install.sh deleted file mode 100644 index 84936637a..000000000 --- a/install/alpine-ironclaw-install.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/nearai/ironclaw - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add openssl dbus gnome-keyring -msg_ok "Installed Dependencies" - -msg_info "Installing PostgreSQL" -$STD apk add postgresql17 postgresql17-openrc postgresql-pgvector postgresql-common -$STD rc-service postgresql setup -$STD rc-update add postgresql default -$STD rc-service postgresql start -msg_ok "Installed PostgreSQL" - -msg_info "Setting up Database" -PG_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13) -$STD su -s /bin/sh postgres -c "psql -c \"CREATE ROLE ironclaw WITH LOGIN PASSWORD '${PG_PASS}';\"" -$STD su -s /bin/sh postgres -c "psql -c \"CREATE DATABASE ironclaw WITH OWNER ironclaw;\"" -$STD su -s /bin/sh postgres -c "psql -d ironclaw -c \"CREATE EXTENSION IF NOT EXISTS vector;\"" -msg_ok "Set up Database" - -fetch_and_deploy_gh_release "ironclaw-bin" "nearai/ironclaw" "prebuild" "ironclaw-v0.29.1" "/usr/local/bin" \ - "ironclaw-$(uname -m)-unknown-linux-musl.tar.gz" -chmod +x /usr/local/bin/ironclaw - -msg_info "Configuring Environment" -GATEWAY_TOKEN=$(openssl rand -hex 32) -mkdir -p /root/.ironclaw -cat </root/.ironclaw/gateway.creds -Gateway-Token -Token: $GATEWAY_TOKEN -EOF - -mkdir -p /root/.ironclaw -cat </root/.ironclaw/.env -DATABASE_BACKEND=postgres -DATABASE_URL=postgresql://ironclaw:${PG_PASS}@localhost:5432/ironclaw?sslmode=disable -GATEWAY_ENABLED=true -GATEWAY_HOST=0.0.0.0 -GATEWAY_PORT=3000 -GATEWAY_AUTH_TOKEN=${GATEWAY_TOKEN} -CLI_ENABLED=false -RUST_LOG=ironclaw=info,tower_http=info -EOF -chmod 600 /root/.ironclaw/.env -msg_ok "Configured Environment" - -msg_info "Configuring IronClaw" -# Set values in the database since it is typically the true source of truth and ensures values are set correctly on first run before the service starts. -/usr/local/bin/ironclaw --no-onboard config set database_backend postgres >/dev/null -/usr/local/bin/ironclaw --no-onboard config set database_url "postgresql://ironclaw:${PG_PASS}@localhost:5432/ironclaw?sslmode=disable" >/dev/null -/usr/local/bin/ironclaw --no-onboard config set channels.gateway_enabled true >/dev/null -/usr/local/bin/ironclaw --no-onboard config set channels.gateway_host 0.0.0.0 >/dev/null -/usr/local/bin/ironclaw --no-onboard config set channels.gateway_port 3000 >/dev/null -/usr/local/bin/ironclaw --no-onboard config set channels.gateway_auth_token "${GATEWAY_TOKEN}" >/dev/null -/usr/local/bin/ironclaw --no-onboard config set channels.cli_enabled false >/dev/null -/usr/local/bin/ironclaw --no-onboard config set secrets_master_key_source none >/dev/null -# Running ironclaw defaults to use env for secrets and creates this entry, but we want to set that during onboard. -sleep 5 -sed -i '/SECRETS_MASTER_KEY/d' /root/.ironclaw/.env -msg_ok "Configured IronClaw" - -msg_info "Creating Service" -cat </etc/init.d/ironclaw -#!/sbin/openrc-run - -name="IronClaw" -description="IronClaw AI Agent" -command="/usr/bin/dbus-run-session" -command_args="/usr/local/bin/ironclaw" -command_background=true -pidfile="/run/ironclaw.pid" -directory="/root" -supervise_daemon_args="--env-file /root/.ironclaw/.env" - -depend() { - need net postgresql -} -EOF -chmod +x /etc/init.d/ironclaw -$STD rc-update add ironclaw default -msg_ok "Created Service" - -motd_ssh -customize diff --git a/install/alpine-loki-install.sh b/install/alpine-loki-install.sh deleted file mode 100644 index 738d3b8d1..000000000 --- a/install/alpine-loki-install.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: hoholms -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/grafana/loki - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Loki" -$STD apk add loki -$STD sed -i '/http_addr/s/127.0.0.1/0.0.0.0/g' /etc/conf.d/loki -mkdir -p /var/lib/loki/{chunks,boltdb-shipper-active,boltdb-shipper-cache} -chown -R loki:grafana /var/lib/loki -mkdir -p /var/log/loki -chown -R loki:grafana /var/log/loki -cat </etc/loki/loki-local-config.yaml -auth_enabled: false - -server: - http_listen_port: 3100 - log_level: info - -common: - instance_addr: 127.0.0.1 - path_prefix: /var/lib/loki - storage: - filesystem: - chunks_directory: /var/lib/loki/chunks - rules_directory: /var/lib/loki/rules - replication_factor: 1 - ring: - kvstore: - store: inmemory - -schema_config: - configs: - - from: 2020-10-24 - store: tsdb - object_store: filesystem - schema: v13 - index: - prefix: index_ - period: 24h - -query_range: - results_cache: - cache: - embedded_cache: - enabled: true - max_size_mb: 100 - -limits_config: - metric_aggregation_enabled: true - -ruler: - alertmanager_url: http://localhost:9093 -EOF -chown loki:grafana /etc/loki/loki-local-config.yaml -chmod 644 /etc/loki/loki-local-config.yaml -echo "output_log=\"\${output_log:-/var/log/loki/output.log}\"" >> /etc/init.d/loki -echo "error_log=\"\${error_log:-/var/log/loki/error.log}\"" >> /etc/init.d/loki -echo "start_stop_daemon_args=\"\${SSD_OPTS} -1 \${output_log} -2 \${error_log}\"" >> /etc/init.d/loki -$STD rc-update add loki default -$STD rc-service loki start -msg_ok "Installed Loki" - -motd_ssh -customize -cleanup_lxc diff --git a/install/alpine-mariadb-install.sh b/install/alpine-mariadb-install.sh deleted file mode 100644 index fb3142efa..000000000 --- a/install/alpine-mariadb-install.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://mariadb.org/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing MariaDB" -$STD apk add --no-cache mariadb mariadb-client -$STD rc-update add mariadb default -msg_ok "Installed MariaDB" - -msg_info "Configuring MariaDB" -mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql >/dev/null 2>&1 -$STD rc-service mariadb start -msg_ok "MariaDB Configured" - -read -r -p "${TAB3}Would you like to install Adminer with lighttpd? : " prompt -if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - msg_info "Installing Adminer and dependencies" - $STD apk add --no-cache \ - lighttpd \ - lighttpd-openrc \ - php83 \ - php83-cgi \ - php83-common \ - php83-curl \ - php83-gd \ - php83-mbstring \ - php83-mysqli \ - php83-mysqlnd \ - php83-openssl \ - php83-zip \ - php83-session \ - jq - - sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf - sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf - mkdir -p /var/www/localhost/htdocs - ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//') - curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php - chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php - chmod 755 /var/www/localhost/htdocs/adminer.php - msg_ok "Adminer Installed" - - msg_info "Starting Lighttpd" - $STD rc-update add lighttpd default - $STD rc-service lighttpd restart - msg_ok "Lighttpd Started" -fi - -motd_ssh -customize - -msg_info "Cleaning up" -msg_ok "Cleaned" diff --git a/install/alpine-node-red-install.sh b/install/alpine-node-red-install.sh deleted file mode 100644 index 07cd3ecdd..000000000 --- a/install/alpine-node-red-install.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://nodered.org/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add --no-cache \ - git \ - nodejs \ - npm -msg_ok "Installed Dependencies" - -msg_info "Creating Node-RED User" -adduser -D -H -s /sbin/nologin -G users nodered -msg_ok "Created Node-RED User" - -msg_info "Installing Node-RED" -$STD npm install -g --unsafe-perm node-red -msg_ok "Installed Node-RED" - -msg_info "Creating /home/nodered" -mkdir -p /home/nodered -chown -R nodered:users /home/nodered -chmod 750 /home/nodered -msg_ok "Created /home/nodered" - -msg_info "Creating Node-RED Service" -service_path="/etc/init.d/nodered" - -echo '#!/sbin/openrc-run -description="Node-RED Service" - -command="/usr/local/bin/node-red" -command_args="--max-old-space-size=128 -v" -command_user="nodered" -pidfile="/var/run/nodered.pid" -command_background="yes" - -depend() { - use net -}' >$service_path - -chmod +x $service_path -msg_ok "Created Node-RED Service" - -msg_info "Starting Node-RED" -$STD rc-update add nodered -$STD rc-service nodered start -msg_ok "Started Node-RED" - -motd_ssh -customize diff --git a/install/alpine-ntfy-install.sh b/install/alpine-ntfy-install.sh deleted file mode 100644 index 4f14c79e0..000000000 --- a/install/alpine-ntfy-install.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: cobalt (cobaltgit) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://ntfy.sh/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing ntfy" -$STD apk add --no-cache ntfy ntfy-openrc libcap -sed -i '/^listen-http/s/^\(.*\)$/#\1\n/' /etc/ntfy/server.yml -setcap 'cap_net_bind_service=+ep' /usr/bin/ntfy -$STD rc-update add ntfy default -$STD service ntfy start -msg_ok "Installed ntfy" - -motd_ssh -customize diff --git a/install/alpine-postgresql-install.sh b/install/alpine-postgresql-install.sh deleted file mode 100644 index 0156237fd..000000000 --- a/install/alpine-postgresql-install.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.postgresql.org/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -read -r -p "${TAB3}Enter PostgreSQL version (15/16/17): " ver -[[ $ver =~ ^(15|16|17)$ ]] || { echo "Invalid version"; exit 64; } - -msg_info "Installing PostgreSQL ${ver}" -$STD apk add --no-cache postgresql${ver} postgresql${ver}-contrib postgresql${ver}-openrc sudo -msg_ok "Installed PostgreSQL ${ver}" - -msg_info "Enabling PostgreSQL Service" -$STD rc-update add postgresql default -msg_ok "Enabled PostgreSQL Service" - -msg_info "Starting PostgreSQL" -$STD rc-service postgresql start -msg_ok "Started PostgreSQL" - -msg_info "Configuring PostgreSQL for External Access" -conf_file="/etc/postgresql${ver}/postgresql.conf" -hba_file="/etc/postgresql${ver}/pg_hba.conf" -sed -i 's/^#listen_addresses =.*/listen_addresses = '\''*'\''/' "$conf_file" -sed -i '/^host\s\+all\s\+all\s\+127.0.0.1\/32\s\+md5/ s/.*/host all all 0.0.0.0\/0 md5/' "$hba_file" -$STD rc-service postgresql restart -msg_ok "Configured and Restarted PostgreSQL" - -read -r -p "${TAB3}Would you like to install Adminer with lighttpd? : " prompt -if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - msg_info "Installing Adminer and dependencies" - $STD apk add --no-cache \ - lighttpd \ - lighttpd-openrc \ - php83 \ - php83-cgi \ - php83-common \ - php83-curl \ - php83-gd \ - php83-mbstring \ - php83-pdo \ - php83-pgsql \ - php83-openssl \ - php83-zip \ - php83-session \ - jq - - sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf - sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf - mkdir -p /var/www/localhost/htdocs - ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//') - curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php - chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php - chmod 755 /var/www/localhost/htdocs/adminer.php - msg_ok "Adminer Installed" - - msg_info "Starting Lighttpd" - $STD rc-update add lighttpd default - $STD rc-service lighttpd restart - msg_ok "Lighttpd Started" -fi - -motd_ssh -customize diff --git a/install/alpine-prometheus-install.sh b/install/alpine-prometheus-install.sh deleted file mode 100644 index d374abfb9..000000000 --- a/install/alpine-prometheus-install.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://prometheus.io/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Prometheus" -$STD apk add --no-cache prometheus -msg_ok "Installed Prometheus" - -msg_info "Enabling Prometheus Service" -$STD rc-update add prometheus default -msg_ok "Enabled Prometheus Service" - -msg_info "Starting Prometheus" -$STD service prometheus start -msg_ok "Started Prometheus" - -motd_ssh -customize diff --git a/install/alpine-rclone-install.sh b/install/alpine-rclone-install.sh deleted file mode 100644 index 40b345763..000000000 --- a/install/alpine-rclone-install.sh +++ /dev/null @@ -1,67 +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/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/rclone/rclone - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing dependencies" -$STD apk add --no-cache \ - apache2-utils fuse3 -msg_ok "Installed dependencies" - -msg_info "Installing rclone" -temp_file=$(mktemp) -mkdir -p /opt/rclone -RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-$(arch_resolve).zip" -o "$temp_file" -$STD unzip -j "$temp_file" '*/**' -d /opt/rclone -cd /opt/rclone -RCLONE_PASSWORD=$(head -c 16 /dev/urandom | xxd -p -c 16) -$STD htpasswd -cb -B /opt/login.pwd admin "$RCLONE_PASSWORD" -cat <~/rclone.creds -rclone-Credentials -rclone User Name: admin -rclone Password: $RCLONE_PASSWORD -EOF -echo "${RELEASE}" >/opt/rclone_version.txt -rm -f "$temp_file" -msg_ok "Installed rclone" - -msg_info "Enabling rclone Service" -cat </etc/init.d/rclone -#!/sbin/openrc-run -description="rclone Service" -command="/opt/rclone/rclone" -command_args="rcd --rc-web-gui --rc-web-gui-no-open-browser --rc-addr :3000 --rc-htpasswd /opt/login.pwd" -command_background="true" -command_user="root" -pidfile="/var/run/rclone.pid" - -depend() { - use net -} -EOF -chmod +x /etc/init.d/rclone -$STD rc-update add rclone default -msg_ok "Enabled rclone Service" - -msg_info "Starting rclone" -$STD service rclone start -msg_ok "Started rclone" - -motd_ssh -customize - -msg_info "Cleaning up" -rm -rf "$temp_file" -$STD apk cache clean -msg_ok "Cleaned" diff --git a/install/alpine-redis-install.sh b/install/alpine-redis-install.sh deleted file mode 100644 index 5b0e4e824..000000000 --- a/install/alpine-redis-install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://redis.io/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Redis" -$STD apk add redis -$STD sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis.conf -$STD rc-update add redis default -$STD rc-service redis start -msg_ok "Installed Redis" - -motd_ssh -customize diff --git a/install/alpine-rustdeskserver-install.sh b/install/alpine-rustdeskserver-install.sh deleted file mode 100644 index 99d3fae4e..000000000 --- a/install/alpine-rustdeskserver-install.sh +++ /dev/null @@ -1,123 +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/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/rustdesk/rustdesk-server - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') -msg_info "Installing RustDesk Server v${RELEASE}" -temp_file1=$(mktemp) -ARCH=$(arch_resolve "amd64" "arm64v8") -curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-${ARCH}.zip" -o "$temp_file1" -$STD unzip "$temp_file1" -mv "$ARCH" /opt/rustdesk-server -mkdir -p /root/.config/rustdesk -cd /opt/rustdesk-server -./rustdesk-utils genkeypair >/tmp/rustdesk_keys.txt -grep "Public Key" /tmp/rustdesk_keys.txt | awk '{print $3}' >/root/.config/rustdesk/id_ed25519.pub -grep "Secret Key" /tmp/rustdesk_keys.txt | awk '{print $3}' >/root/.config/rustdesk/id_ed25519 -chmod 600 /root/.config/rustdesk/id_ed25519 -chmod 644 /root/.config/rustdesk/id_ed25519.pub -rm /tmp/rustdesk_keys.txt -echo "${RELEASE}" >~/.rustdesk-server -msg_ok "Installed RustDesk Server v${RELEASE}" - -APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -msg_info "Installing RustDesk API v${APIRELEASE}" -temp_file2=$(mktemp) -curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-$(arch_resolve).tar.gz" -o "$temp_file2" -$STD tar zxvf "$temp_file2" -mv release /opt/rustdesk-api -cd /opt/rustdesk-api -ADMINPASS=$(head -c 16 /dev/urandom | xxd -p -c 16) -$STD ./apimain reset-admin-pwd "$ADMINPASS" -cat <~/rustdesk.creds -RustDesk WebUI - -Username: admin -Password: $ADMINPASS -EOF -echo "${APIRELEASE}" >~/.rustdesk-api -msg_ok "Installed RustDesk API v${APIRELEASE}" - -msg_info "Enabling RustDesk Server Services" -cat </etc/init.d/rustdesk-server-hbbs -#!/sbin/openrc-run -description="RustDesk HBBS Service" -directory="/opt/rustdesk-server" -command="/opt/rustdesk-server/hbbs" -command_args="" -command_background="true" -command_user="root" -pidfile="/var/run/rustdesk-server-hbbs.pid" -output_log="/var/log/rustdesk-hbbs.log" -error_log="/var/log/rustdesk-hbbs.err" - -depend() { - use net -} -EOF - -cat </etc/init.d/rustdesk-server-hbbr -#!/sbin/openrc-run -description="RustDesk HBBR Service" -directory="/opt/rustdesk-server" -command="/opt/rustdesk-server/hbbr" -command_args="" -command_background="true" -command_user="root" -pidfile="/var/run/rustdesk-server-hbbr.pid" -output_log="/var/log/rustdesk-hbbr.log" -error_log="/var/log/rustdesk-hbbr.err" - -depend() { - use net -} -EOF - -cat </etc/init.d/rustdesk-api -#!/sbin/openrc-run -description="RustDesk API Service" -directory="/opt/rustdesk-api" -command="/opt/rustdesk-api/apimain" -command_args="" -command_background="true" -command_user="root" -pidfile="/var/run/rustdesk-api.pid" -output_log="/var/log/rustdesk-api.log" -error_log="/var/log/rustdesk-api.err" - -depend() { - use net -} -EOF -chmod +x /etc/init.d/rustdesk-server-hbbs -chmod +x /etc/init.d/rustdesk-server-hbbr -chmod +x /etc/init.d/rustdesk-api -$STD rc-update add rustdesk-server-hbbs default -$STD rc-update add rustdesk-server-hbbr default -$STD rc-update add rustdesk-api default -msg_ok "Enabled RustDesk Server Services" - -msg_info "Starting RustDesk Server" -$STD service rustdesk-server-hbbs start -$STD service rustdesk-server-hbbr start -$STD service rustdesk-api start -msg_ok "Started RustDesk Server" - -motd_ssh -customize - -msg_info "Cleaning up" -rm -f "$temp_file1" "$temp_file2" -$STD apk cache clean -msg_ok "Cleaned" diff --git a/install/alpine-rustypaste-install.sh b/install/alpine-rustypaste-install.sh deleted file mode 100644 index f45707aba..000000000 --- a/install/alpine-rustypaste-install.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/orhun/rustypaste - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing RustyPaste" -$STD apk add --no-cache rustypaste --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community -msg_ok "Installed RustyPaste" - -msg_info "Configuring RustyPaste" -mkdir -p /var/lib/rustypaste -sed -i 's|^address = ".*"|address = "0.0.0.0:8000"|' /etc/rustypaste/config.toml -msg_ok "Configured RustyPaste" - -msg_info "Creating Service" -cat <<'EOF' >/etc/init.d/rustypaste -#!/sbin/openrc-run - -name="rustypaste" -description="RustyPaste - A minimal file upload/pastebin service" -command="/usr/bin/rustypaste" -command_args="" -command_user="root" -command_background=true -pidfile="/run/${RC_SVCNAME}.pid" -directory="/var/lib/rustypaste" - -depend() { - need net - after firewall -} - -start_pre() { - export CONFIG=/etc/rustypaste/config.toml - checkpath --directory --owner root:root --mode 0755 /var/lib/rustypaste -} -EOF -chmod +x /etc/init.d/rustypaste -$STD rc-update add rustypaste default -$STD rc-service rustypaste start -msg_ok "Created Service" - -motd_ssh -customize -cleanup_lxc diff --git a/install/alpine-syncthing-install.sh b/install/alpine-syncthing-install.sh deleted file mode 100644 index 2dd468c7b..000000000 --- a/install/alpine-syncthing-install.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://syncthing.net/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Setup Syncthing" -$STD apk add --no-cache syncthing -rc-service syncthing start -sleep 3 -rc-service syncthing stop -sed -i "{s/127.0.0.1:8384/0.0.0.0:8384/g}" /var/lib/syncthing/.local/state/syncthing/config.xml -msg_ok "Setup Syncthing" - -msg_info "Enabling Syncthing Service" -$STD rc-update add syncthing default -msg_ok "Enabled Syncthing Service" - -msg_info "Starting Syncthing" -$STD rc-service syncthing start -msg_ok "Started Syncthing" - -motd_ssh -customize diff --git a/install/alpine-teamspeak-server-install.sh b/install/alpine-teamspeak-server-install.sh deleted file mode 100644 index 63ef8a063..000000000 --- a/install/alpine-teamspeak-server-install.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: tremor021 (Slaviša Arežina) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://teamspeak.com/en/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing dependencies" -$STD apk add --no-cache \ - ca-certificates \ - libstdc++ \ - libc6-compat -msg_ok "Installed dependencies" - -RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]*[0-9]\).*/\1/p' | awk 'NR==1') -msg_info "Installing Teamspeak Server v${RELEASE}" -mkdir -p /opt/teamspeak-server -cd /opt/teamspeak-server -curl -fsSL "https://files.teamspeak-services.com/releases/server/${RELEASE}/teamspeak3-server_linux_amd64-${RELEASE}.tar.bz2" -o ts3server.tar.bz2 -tar xf ts3server.tar.bz2 --strip-components=1 -mkdir -p logs data lib -mv *.so lib -touch data/ts3server.sqlitedb data/query_ip_blacklist.txt data/query_ip_whitelist.txt .ts3server_license_accepted -echo "${RELEASE}" >~/.teamspeak-server -msg_ok "Installed TeamSpeak Server v${RELEASE}" - -msg_info "Enabling TeamSpeak Server Service" -cat </etc/init.d/teamspeak -#!/sbin/openrc-run - -name="TeamSpeak Server" -description="TeamSpeak 3 Server" -command="/opt/teamspeak-server/ts3server_startscript.sh" -command_args="start" -output_log="/var/log/teamspeak.out.log" -error_log="/var/log/teamspeak.err.log" -command_background=true -pidfile="/run/teamspeak-server.pid" -directory="/opt/teamspeak-server" - -depend() { - need net - use dns -} -EOF -chmod +x /etc/init.d/teamspeak -$STD rc-update add teamspeak default -msg_ok "Enabled TeamSpeak Server Service" - -msg_info "Starting TeamSpeak Server" -$STD service teamspeak start -msg_ok "Started TeamSpeak Server" - -motd_ssh -customize - -msg_info "Cleaning up" -rm -r ts3server.tar.bz* LICENSE* CHANGELOG doc serverquerydocs tsdns redist -$STD apk cache clean -msg_ok "Cleaned" diff --git a/install/alpine-tinyauth-install.sh b/install/alpine-tinyauth-install.sh deleted file mode 100644 index e9d26a1fa..000000000 --- a/install/alpine-tinyauth-install.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: Slaviša Arežina (tremor021) | Co-Author: Stavros (steveiliop56) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/tinyauthapp/tinyauth - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add --no-cache openssl apache2-utils -msg_ok "Installed Dependencies" - -msg_info "Installing Tinyauth" -mkdir -p /opt/tinyauth -RELEASE=$(curl -s https://api.github.com/repos/tinyauthapp/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -curl -fsSL "https://github.com/tinyauthapp/tinyauth/releases/download/v${RELEASE}/tinyauth-$(arch_resolve)" -o /opt/tinyauth/tinyauth -chmod +x /opt/tinyauth/tinyauth -PASS=$(openssl rand -base64 8 | tr -dc 'a-zA-Z0-9' | head -c 8) -USER=$(htpasswd -Bbn "tinyauth" "${PASS}") - -cat </opt/tinyauth/credentials.txt -Tinyauth Credentials -Username: tinyauth -Password: ${PASS} -EOF -echo "${RELEASE}" >~/.tinyauth -msg_ok "Installed Tinyauth" - -read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url - -cat </opt/tinyauth/.env -TINYAUTH_DATABASE_PATH=/opt/tinyauth/database.db -TINYAUTH_AUTH_USERS='${USER}' -TINYAUTH_APPURL=${app_url} -EOF - -msg_info "Creating Service" -cat <<'EOF' >/etc/init.d/tinyauth -#!/sbin/openrc-run -description="Tinyauth Service" - -set -a -ENV_FILE="/opt/tinyauth/.env" -[ -f "$ENV_FILE" ] && . "$ENV_FILE" -set +a - -command="/opt/tinyauth/tinyauth" -directory="/opt/tinyauth" -command_user="root" -command_background="true" -pidfile="/var/run/tinyauth.pid" - -depend() { - use net -} -EOF -chmod +x /etc/init.d/tinyauth -$STD rc-update add tinyauth default -msg_ok "Enabled Tinyauth Service" - -msg_info "Starting Tinyauth" -$STD service tinyauth start -msg_ok "Started Tinyauth" - -motd_ssh -customize diff --git a/install/alpine-traefik-install.sh b/install/alpine-traefik-install.sh deleted file mode 100644 index 652e9658b..000000000 --- a/install/alpine-traefik-install.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add ca-certificates -$STD update-ca-certificates -msg_ok "Installed Dependencies" - -msg_info "Installing Traefik" -$STD apk add traefik --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community -msg_ok "Installed Traefik" - -read -p "${TAB3}Enable Traefik WebUI (Port 8080)? [y/N]: " enable_webui -if [[ "$enable_webui" =~ ^[Yy]$ ]]; then - msg_info "Configuring Traefik WebUI" - sed -i 's/localhost//g' /etc/traefik/traefik.yaml - msg_ok "Configured Traefik WebUI" -fi - -msg_info "Enabling and starting Traefik service" -$STD rc-update add traefik default -sed -i '/^command=.*/i directory="/etc/traefik"' /etc/init.d/traefik -$STD rc-service traefik start -msg_ok "Traefik service started" - -motd_ssh -customize diff --git a/install/alpine-transmission-install.sh b/install/alpine-transmission-install.sh deleted file mode 100644 index d7cc76e1f..000000000 --- a/install/alpine-transmission-install.sh +++ /dev/null @@ -1,33 +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/ProxmoxVE/raw/main/LICENSE -# Source: https://transmissionbt.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Transmission" -$STD apk add --no-cache transmission-cli transmission-daemon -$STD rc-service transmission-daemon start -sleep 5 -$STD rc-service transmission-daemon stop -sed -i '{s/"rpc-whitelist-enabled": true/"rpc-whitelist-enabled": false/g; s/"rpc-host-whitelist-enabled": true,/"rpc-host-whitelist-enabled": false,/g}' /var/lib/transmission/config/settings.json -msg_ok "Installed Transmission" - -msg_info "Enabling Transmission Service" -$STD rc-update add transmission-daemon default -msg_ok "Enabled Transmission Service" - -msg_info "Starting Transmission" -$STD rc-service transmission-daemon start -msg_ok "Started Transmission" - -motd_ssh -customize diff --git a/install/alpine-valkey-install.sh b/install/alpine-valkey-install.sh deleted file mode 100644 index 02d80865e..000000000 --- a/install/alpine-valkey-install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: pshankinclarke (lazarillo) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://valkey.io/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Valkey" -$STD apk add valkey valkey-openrc valkey-cli -sed -i 's/^bind .*/bind 0.0.0.0/' /etc/valkey/valkey.conf - -PASS="$(head -c 100 /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c32)" -echo "requirepass $PASS" >>/etc/valkey/valkey.conf -echo "$PASS" >~/valkey.creds -chmod 600 ~/valkey.creds - -MEMTOTAL_MB=$(free -m | grep ^Mem: | awk '{print $2}') -MAXMEMORY_MB=$((MEMTOTAL_MB * 75 / 100)) - -cat </etc/valkey/valkey.conf -# Memory-optimized settings for small-scale deployments -maxmemory ${MAXMEMORY_MB}mb -maxmemory-policy allkeys-lru -maxmemory-samples 10 -EOF -msg_ok "Installed Valkey" - -# Note: Alpine's valkey package is compiled without TLS support -# For TLS, use the Debian-based valkey script instead - -$STD rc-update add valkey default -$STD rc-service valkey start - -motd_ssh -customize -cleanup_lxc diff --git a/install/alpine-vaultwarden-install.sh b/install/alpine-vaultwarden-install.sh deleted file mode 100644 index 729ef050b..000000000 --- a/install/alpine-vaultwarden-install.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/dani-garcia/vaultwarden - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add --no-cache \ - openssl \ - argon2 -msg_ok "Installed Dependencies" - -msg_info "Installing Alpine-Vaultwarden" -$STD apk add --no-cache vaultwarden -sed -i 's|export WEB_VAULT_ENABLED=.*|export WEB_VAULT_ENABLED=true|' /etc/conf.d/vaultwarden -echo -e "export ADMIN_TOKEN=''" >>/etc/conf.d/vaultwarden -echo -e "export ROCKET_ADDRESS=0.0.0.0" >>/etc/conf.d/vaultwarden -echo -e "export ROCKET_TLS='{certs=\"/etc/ssl/certs/vaultwarden-selfsigned.crt\",key=\"/etc/ssl/private/vaultwarden-selfsigned.key\"}'" >>/etc/conf.d/vaultwarden -$STD openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/ssl/private/vaultwarden-selfsigned.key -out /etc/ssl/certs/vaultwarden-selfsigned.crt -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost" -chown vaultwarden:vaultwarden /etc/ssl/certs/vaultwarden-selfsigned.crt -chown vaultwarden:vaultwarden /etc/ssl/private/vaultwarden-selfsigned.key -msg_ok "Installed Alpine-Vaultwarden" - -msg_info "Installing Web-Vault" -$STD apk add --no-cache vaultwarden-web-vault -msg_ok "Installed Web-Vault" - -msg_info "Starting Alpine-Vaultwarden" -$STD rc-service vaultwarden start -$STD rc-update add vaultwarden default -msg_ok "Started Alpine-Vaultwarden" - -motd_ssh -customize diff --git a/install/alpine-wireguard-install.sh b/install/alpine-wireguard-install.sh deleted file mode 100644 index 8456f0365..000000000 --- a/install/alpine-wireguard-install.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.wireguard.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apk add \ - iptables \ - openrc -msg_ok "Installed Dependencies" - -msg_info "Installing WireGuard" -$STD apk add --no-cache wireguard-tools -if [[ ! -L /etc/init.d/wg-quick.wg0 ]]; then - ln -s /etc/init.d/wg-quick /etc/init.d/wg-quick.wg0 -fi - -private_key=$(wg genkey) -cat </etc/wireguard/wg0.conf -[Interface] -PrivateKey = ${private_key} -Address = 10.0.0.1/24 -SaveConfig = true -PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; -PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; -ListenPort = 51820 -EOF -echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf -$STD rc-update add sysctl -$STD sysctl -p /etc/sysctl.conf -msg_ok "Installed WireGuard" - -read -rp "${TAB3}Do you want to install WGDashboard? (y/N): " INSTALL_WGD -if [[ "$INSTALL_WGD" =~ ^[Yy]$ ]]; then - msg_info "Installing additional dependencies for WGDashboard" - $STD apk add --no-cache \ - python3 \ - py3-pip \ - git \ - sudo \ - musl-dev \ - linux-headers \ - gcc \ - python3-dev - msg_ok "Installed additional dependencies for WGDashboard" - msg_info "Installing WGDashboard" - git clone -q https://github.com/WGDashboard/WGDashboard.git /etc/wgdashboard - cd /etc/wgdashboard/src - chmod u+x wgd.sh - $STD ./wgd.sh install - msg_ok "Installed WGDashboard" - - msg_info "Creating Service for WGDashboard" - cat </etc/init.d/wg-dashboard -#!/sbin/openrc-run - -description="WireGuard Dashboard Service" - -depend() { - need net - after firewall -} - -start() { - ebegin "Starting WGDashboard" - cd /etc/wgdashboard/src/ - ./wgd.sh start & - eend $? -} - -stop() { - ebegin "Stopping WGDashboard" - pkill -f "wgd.sh" - eend $? -} -EOF - chmod +x /etc/init.d/wg-dashboard - $STD rc-update add wg-dashboard default - $STD rc-service wg-dashboard start - msg_ok "Created Service for WGDashboard" - -fi - -msg_info "Starting Services" -$STD rc-update add wg-quick.wg0 default -$STD rc-service wg-quick.wg0 start -msg_ok "Started Services" - -motd_ssh -customize diff --git a/install/alpine-zigbee2mqtt-install.sh b/install/alpine-zigbee2mqtt-install.sh deleted file mode 100644 index bb0c1816c..000000000 --- a/install/alpine-zigbee2mqtt-install.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2026 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.zigbee2mqtt.io/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Alpine-Zigbee2MQTT" -mkdir -p /root/.z2m /etc/zigbee2mqtt -$STD apk add zigbee2mqtt -ln -s /etc/zigbee2mqtt/ /root/.z2m -chown -R root:root /etc/zigbee2mqtt /root/.z2m -sed -i -e 's/#datadir="\/var\/lib\/zigbee2mqtt"/datadir="\/etc\/zigbee2mqtt"/' -e 's/#command_user="zigbee2mqtt"/command_user="root"/' /etc/conf.d/zigbee2mqtt -$STD rc-update add zigbee2mqtt -$STD rc-service zigbee2mqtt restart -msg_ok "Installed Alpine-Zigbee2MQTT" - -motd_ssh -customize