diff --git a/ct/almalinux.sh b/ct/almalinux.sh new file mode 100644 index 0000000..ed76523 --- /dev/null +++ b/ct/almalinux.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://almalinux.org/ + +APP="AlmaLinux" +var_tags="${var_tags:-os}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-4}" +var_os="${var_os:-almalinux}" +var_version="${var_version:-10}" +var_arm64="${var_arm64:-no}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating AlmaLinux" + $STD dnf -y upgrade + msg_ok "Updated AlmaLinux" + exit +} + +start +build_container +description + +msg_ok "Completed successfully!" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" diff --git a/ct/centos.sh b/ct/centos.sh new file mode 100644 index 0000000..2dcf556 --- /dev/null +++ b/ct/centos.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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.centos.org/centos-stream/ + +APP="CentOS" +var_tags="${var_tags:-os}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-4}" +var_os="${var_os:-centos}" +var_version="${var_version:-10}" +var_arm64="${var_arm64:-no}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating CentOS LXC" + $STD dnf -y upgrade + msg_ok "Updated CentOS LXC" + exit +} + +start +build_container +description + +msg_ok "Completed successfully!" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" diff --git a/ct/devuan.sh b/ct/devuan.sh new file mode 100644 index 0000000..c5017d1 --- /dev/null +++ b/ct/devuan.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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.devuan.org/ + +APP="Devuan" +var_tags="${var_tags:-os}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-4}" +var_os="${var_os:-devuan}" +var_version="${var_version:-5.0}" +#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating Devuan LXC" + $STD apt update + $STD apt -y upgrade + msg_ok "Updated Devuan LXC" + exit +} + +start +build_container +description + +msg_ok "Completed successfully!" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" diff --git a/ct/directus.sh b/ct/directus.sh new file mode 100644 index 0000000..4aa2f1a --- /dev/null +++ b/ct/directus.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://directus.com/ + +APP="Directus" +var_tags="${var_tags:-cms;api;database;headless}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-8}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +var_arm64="${var_arm64:-yes}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -f /opt/directus/node_modules/.bin/directus ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "directus" "directus/directus"; then + msg_info "Stopping Service" + systemctl stop directus + msg_ok "Stopped Service" + + create_backup /opt/directus/.env \ + /opt/directus/uploads \ + /opt/directus/extensions + + msg_info "Updating Directus" + cd /opt/directus + $STD npm install --omit=dev "directus@${CHECK_UPDATE_RELEASE#v}" + cat <~/.directus +${CHECK_UPDATE_RELEASE#v} +EOF + restore_backup + msg_ok "Updated Directus" + + msg_info "Starting Service" + systemctl start directus + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW}Access it using the following URL:${CL}" +echo -e "${GATEWAY}${BGN}http://${IP}:8055${CL}" diff --git a/ct/endurain.sh b/ct/endurain.sh index 8f6c5fd..5fe72f0 100644 --- a/ct/endurain.sh +++ b/ct/endurain.sh @@ -40,29 +40,29 @@ function update_script() { msg_ok "Stopped Service" NODE_VERSION="24" setup_nodejs - create_backup /opt/endurain/.env /opt/endurain/frontend/dist/env.js CLEAN_INSTALL=1 fetch_and_deploy_codeberg_release "endurain" "endurain-project/endurain" "tarball" "latest" "/opt/endurain" - msg_info "Preparing Update" + msg_info "Updating Endurain Frontend" cd /opt/endurain rm -rf /opt/endurain/{docs,example.env,screenshot_01.png} /opt/endurain/docker* /opt/endurain/*.yml - msg_ok "Prepared Update" - - msg_info "Updating Frontend" cd /opt/endurain/frontend $STD npm ci $STD npm run build - msg_ok "Updated Frontend" + msg_ok "Updated Endurain Frontend" restore_backup - msg_info "Updating Backend" + if grep -qxF 'FRONTEND_DIR="/opt/endurain/frontend/app/dist"' /opt/endurain/.env; then + sed -i 's|^FRONTEND_DIR="/opt/endurain/frontend/app/dist"$|FRONTEND_DIR="/opt/endurain/frontend/dist"|' /opt/endurain/.env + fi + + msg_info "Updating Endurain Backend" cd /opt/endurain/backend UV_VERSION=$(grep -Po 'required-version\s*=\s*"\K[^"]+' pyproject.toml 2>/dev/null || echo "0.11.18") UV_VERSION="$UV_VERSION" setup_uv $STD uv sync --frozen --no-dev - msg_ok "Backend Updated" + msg_ok "Endurain Backend Updated" msg_info "Starting Service" systemctl start endurain diff --git a/ct/fedora.sh b/ct/fedora.sh new file mode 100644 index 0000000..c97a633 --- /dev/null +++ b/ct/fedora.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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://fedoraproject.org/ + +APP="Fedora" +var_tags="${var_tags:-os}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-4}" +var_os="${var_os:-fedora}" +var_version="${var_version:-43}" +var_arm64="${var_arm64:-no}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating Fedora LXC" + $STD dnf -y upgrade + msg_ok "Updated Fedora LXC" + exit +} + +start +build_container +description + +msg_ok "Completed successfully!" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" diff --git a/ct/gentoo.sh b/ct/gentoo.sh new file mode 100644 index 0000000..504b8d0 --- /dev/null +++ b/ct/gentoo.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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.gentoo.org/ + +APP="Gentoo" +var_tags="${var_tags:-os}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-10}" +var_os="${var_os:-gentoo}" +var_version="${var_version:-current}" +#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating Gentoo LXC" + $STD emerge --sync + $STD emerge --quiet --update --deep @world + msg_ok "Updated Gentoo LXC" + exit +} + +start +build_container +description + +msg_ok "Completed successfully!" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" diff --git a/ct/limesurvey.sh b/ct/limesurvey.sh index 1172742..1c9cc6c 100644 --- a/ct/limesurvey.sh +++ b/ct/limesurvey.sh @@ -33,6 +33,13 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi + if [[ ! -L /etc/apache2/mods-enabled/rewrite.load ]]; then + msg_info "Enabling Apache mod_rewrite" + $STD a2enmod rewrite + systemctl restart apache2 + msg_ok "Enabled Apache mod_rewrite" + fi + setup_mariadb msg_warn "Application is updated via Web Interface" diff --git a/ct/openeuler.sh b/ct/openeuler.sh new file mode 100644 index 0000000..9bd3d55 --- /dev/null +++ b/ct/openeuler.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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.openeuler.org/ + +APP="openEuler" +var_tags="${var_tags:-os}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-4}" +var_os="${var_os:-openeuler}" +var_version="${var_version:-25.03}" +#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating OpenEuler LXC" + $STD dnf -y upgrade + msg_ok "Updated OpenEuler LXC" + 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}" diff --git a/ct/opensuse.sh b/ct/opensuse.sh new file mode 100644 index 0000000..3bedbf5 --- /dev/null +++ b/ct/opensuse.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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.opensuse.org/ + +APP="openSUSE" +var_tags="${var_tags:-os}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-4}" +var_os="${var_os:-opensuse}" +var_version="${var_version:-16.0}" +#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating OpenSUSE LXC" + $STD zypper -n update + msg_ok "Updated OpenSUSE LXC" + msg_ok "Updated successfully!" + exit +} + +start +build_container +description + +msg_ok "Completed successfully!\n" +msg_custom "🚀" "${GN}" "${APP} setup has been successfully initialized!" diff --git a/ct/seanime.sh b/ct/seanime.sh new file mode 100644 index 0000000..86bdfdc --- /dev/null +++ b/ct/seanime.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func") +# Copyright (c) 2021-2026 community-scripts ORG +# Author: hasan-ismail +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://seanime.app/ + +APP="Seanime" +var_tags="${var_tags:-media;anime;manga}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-8}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +var_arm64="${var_arm64:-yes}" +var_unprivileged="${var_unprivileged:-1}" +var_gpu="${var_gpu:-yes}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/seanime ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "seanime" "5rahim/seanime"; then + msg_info "Stopping Service" + systemctl stop seanime + msg_ok "Stopped Service" + + create_backup /opt/seanime-data/config.toml + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "seanime" "5rahim/seanime" "prebuild" "latest" "/opt/seanime" "seanime-[0-9]*_Linux_$(arch_resolve x86_64 arm64).tar.gz" + chmod +x /opt/seanime/seanime + + restore_backup + + msg_info "Starting Service" + systemctl start seanime + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:43211${CL}" diff --git a/ct/yopass.sh b/ct/yopass.sh new file mode 100644 index 0000000..897144d --- /dev/null +++ b/ct/yopass.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/Incus/main" +_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" +source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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/jhaals/yopass + +APP="Yopass" +var_tags="${var_tags:-security;secrets}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-8}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/yopass ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "yopass" "jhaals/yopass"; then + msg_info "Stopping Service" + systemctl stop yopass + msg_ok "Stopped Service" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yopass" "jhaals/yopass" "tarball" + + msg_info "Building Yopass" + cd /opt/yopass + $STD go build -ldflags "-X main.version=$(cat ~/.yopass)" ./cmd/yopass-server + cd /opt/yopass/website + $STD yarn install --network-timeout 600000 + $STD yarn build + msg_ok "Built Yopass" + + msg_info "Starting Service" + systemctl start yopass + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW}Access it using the following URL:${CL}" +echo -e "${GATEWAY}${BGN}https://${IP}:1337${CL}" diff --git a/install/almalinux-install.sh b/install/almalinux-install.sh new file mode 100644 index 0000000..0179e32 --- /dev/null +++ b/install/almalinux-install.sh @@ -0,0 +1,18 @@ +#!/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://almalinux.org/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +motd_ssh +customize +cleanup_lxc diff --git a/install/centos-install.sh b/install/centos-install.sh new file mode 100644 index 0000000..c637037 --- /dev/null +++ b/install/centos-install.sh @@ -0,0 +1,18 @@ +#!/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.centos.org/centos-stream/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +motd_ssh +customize +cleanup_lxc diff --git a/install/devuan-install.sh b/install/devuan-install.sh new file mode 100644 index 0000000..8823958 --- /dev/null +++ b/install/devuan-install.sh @@ -0,0 +1,18 @@ +#!/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.devuan.org/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +motd_ssh +customize +cleanup_lxc diff --git a/install/directus-install.sh b/install/directus-install.sh new file mode 100644 index 0000000..520cc3c --- /dev/null +++ b/install/directus-install.sh @@ -0,0 +1,90 @@ +#!/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://directus.com/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +NODE_VERSION="22" setup_nodejs +PG_VERSION="17" setup_postgresql +PG_DB_NAME="directus" PG_DB_USER="directus" setup_postgresql_db + +msg_info "Installing Directus" +mkdir -p /opt/directus/uploads /opt/directus/extensions +cd /opt/directus +$STD npm init -y +DIRECTUS_VERSION=$(get_latest_github_release "directus/directus") +$STD npm install --omit=dev "directus@${DIRECTUS_VERSION}" +cat <~/.directus +${DIRECTUS_VERSION} +EOF +msg_ok "Installed Directus" + +msg_info "Configuring Directus" +DIRECTUS_KEY=$(openssl rand -hex 32) +DIRECTUS_SECRET=$(openssl rand -hex 32) +DIRECTUS_ADMIN_PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c16) +cat </opt/directus/.env +HOST="0.0.0.0" +PORT=8055 +PUBLIC_URL="http://${LOCAL_IP}:8055" +KEY="${DIRECTUS_KEY}" +SECRET="${DIRECTUS_SECRET}" + +DB_CLIENT="pg" +DB_HOST="127.0.0.1" +DB_PORT=5432 +DB_DATABASE="${PG_DB_NAME}" +DB_USER="${PG_DB_USER}" +DB_PASSWORD="${PG_DB_PASS}" + +ADMIN_EMAIL="admin@community-scripts.org" +ADMIN_PASSWORD="${DIRECTUS_ADMIN_PASSWORD}" + +STORAGE_LOCATIONS="local" +STORAGE_LOCAL_DRIVER="local" +STORAGE_LOCAL_ROOT="/opt/directus/uploads" +EXTENSIONS_PATH="/opt/directus/extensions" +TELEMETRY=false +EOF +chmod 640 /opt/directus/.env +msg_ok "Configured Directus" + +msg_info "Initializing Directus" +cd /opt/directus +$STD /opt/directus/node_modules/.bin/directus bootstrap +msg_ok "Initialized Directus" + +msg_info "Creating Service" +cat </etc/systemd/system/directus.service +[Unit] +Description=Directus +After=network.target postgresql.service +Requires=postgresql.service + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/directus +EnvironmentFile=/opt/directus/.env +ExecStart=/opt/directus/node_modules/.bin/directus start +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now directus +msg_ok "Created Service" + +motd_ssh +customize +cleanup_lxc diff --git a/install/fedora-install.sh b/install/fedora-install.sh new file mode 100644 index 0000000..5e8776d --- /dev/null +++ b/install/fedora-install.sh @@ -0,0 +1,18 @@ +#!/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://fedoraproject.org/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +motd_ssh +customize +cleanup_lxc diff --git a/install/gentoo-install.sh b/install/gentoo-install.sh new file mode 100644 index 0000000..de470e0 --- /dev/null +++ b/install/gentoo-install.sh @@ -0,0 +1,18 @@ +#!/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.gentoo.org/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +motd_ssh +customize +cleanup_lxc diff --git a/install/limesurvey-install.sh b/install/limesurvey-install.sh index 31dc998..f5672d7 100644 --- a/install/limesurvey-install.sh +++ b/install/limesurvey-install.sh @@ -60,6 +60,7 @@ cat </etc/apache2/sites-enabled/000-default.conf EOF chown -R www-data:www-data "/opt/limesurvey" chmod -R 750 "/opt/limesurvey" +$STD a2enmod rewrite systemctl reload apache2 rm -rf "$temp_file" msg_ok "Set up LimeSurvey" diff --git a/install/openeuler-install.sh b/install/openeuler-install.sh new file mode 100644 index 0000000..2e629a5 --- /dev/null +++ b/install/openeuler-install.sh @@ -0,0 +1,18 @@ +#!/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.openeuler.org/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +motd_ssh +customize +cleanup_lxc diff --git a/install/opensuse-install.sh b/install/opensuse-install.sh new file mode 100644 index 0000000..bf190ee --- /dev/null +++ b/install/opensuse-install.sh @@ -0,0 +1,18 @@ +#!/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.opensuse.org/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +motd_ssh +customize +cleanup_lxc diff --git a/install/seanime-install.sh b/install/seanime-install.sh new file mode 100644 index 0000000..28fbc1f --- /dev/null +++ b/install/seanime-install.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: hasan-ismail +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://seanime.app/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +setup_hwaccel + +msg_info "Installing FFmpeg" +setup_deb822_repo \ + "jellyfin" \ + "https://repo.jellyfin.org/jellyfin_team.gpg.key" \ + "https://repo.jellyfin.org/debian" \ + "$(get_os_info codename)" +$STD apt install -y jellyfin-ffmpeg7 +ln -sf /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/bin/ffmpeg +ln -sf /usr/lib/jellyfin-ffmpeg/ffprobe /usr/bin/ffprobe +msg_ok "Installed FFmpeg" + +fetch_and_deploy_gh_release "seanime" "5rahim/seanime" "prebuild" "latest" "/opt/seanime" "seanime-[0-9]*_Linux_$(arch_resolve x86_64 arm64).tar.gz" +chmod +x /opt/seanime/seanime + +msg_info "Configuring Seanime" +SEANIME_PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13) +mkdir -p /opt/seanime-data +cat </opt/seanime-data/config.toml +[server] +password = "${SEANIME_PASSWORD}" +EOF +cat </root/seanime.creds +Seanime URL: http://${LOCAL_IP}:43211 +Password: ${SEANIME_PASSWORD} +EOF +msg_ok "Configured Seanime" + +msg_info "Creating Service" +cat </etc/systemd/system/seanime.service +[Unit] +Description=Seanime +After=network.target + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/seanime +ExecStart=/opt/seanime/seanime --datadir /opt/seanime-data --host 0.0.0.0 +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now seanime +msg_ok "Created Service" + +motd_ssh +customize +cleanup_lxc diff --git a/install/yopass-install.sh b/install/yopass-install.sh new file mode 100644 index 0000000..c0f1b4c --- /dev/null +++ b/install/yopass-install.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/jhaals/yopass + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt install -y redis-server +systemctl enable -q --now redis-server +msg_ok "Installed Dependencies" + +setup_go +NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs + +fetch_and_deploy_gh_release "yopass" "jhaals/yopass" "tarball" + +msg_info "Building Yopass" +cd /opt/yopass +$STD go build -ldflags "-X main.version=$(cat ~/.yopass)" ./cmd/yopass-server +cd /opt/yopass/website +$STD yarn install --network-timeout 600000 +$STD yarn build +msg_ok "Built Yopass" + +msg_info "Generating SSL Certificate" +mkdir -p /opt/yopass/certificates +openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ + -keyout /opt/yopass/certificates/key.pem \ + -out /opt/yopass/certificates/cert.pem \ + -subj "/C=US/ST=State/L=City/O=Yopass/CN=${LOCAL_IP}" \ + -addext "subjectAltName=IP:${LOCAL_IP},DNS:localhost,IP:127.0.0.1" \ + 2>/dev/null +chmod 600 /opt/yopass/certificates/key.pem +chmod 644 /opt/yopass/certificates/cert.pem +msg_ok "Generated SSL Certificate" + +msg_info "Creating Service" +cat </etc/systemd/system/yopass.service +[Unit] +Description=Yopass +Wants=network-online.target +After=network-online.target redis-server.service + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/yopass +ExecStart=/opt/yopass/yopass-server --address 0.0.0.0 --port 1337 --tls-cert /opt/yopass/certificates/cert.pem --tls-key /opt/yopass/certificates/key.pem --database redis --redis redis://127.0.0.1:6379/0 --asset-path /opt/yopass/website/dist +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now yopass +msg_ok "Created Service" + +motd_ssh +customize +cleanup_lxc