diff --git a/ct/donetick.sh b/ct/donetick.sh deleted file mode 100644 index c27d820c9..000000000 --- a/ct/donetick.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: fstof -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/donetick/donetick - -APP="donetick" -var_tags="${var_tags:-productivity;tasks}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-2}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_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/donetick ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "donetick" "donetick/donetick"; then - msg_info "Stopping Service" - systemctl stop donetick - msg_ok "Stopped Service" - - msg_info "Backing Up Configurations" - mv /opt/donetick/config/selfhosted.yml /opt/donetick/donetick.db /opt - msg_ok "Backed Up Configurations" - - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz" - - msg_info "Restoring Configurations" - mv /opt/selfhosted.yml /opt/donetick/config - mv /opt/donetick.db /opt/donetick - msg_ok "Restored Configurations" - - msg_info "Starting Service" - systemctl start donetick - 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}:2021${CL}" diff --git a/ct/infisical.sh b/ct/infisical.sh deleted file mode 100644 index 389e69d79..000000000 --- a/ct/infisical.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://infisical.com/ - -APP="Infisical" -var_tags="${var_tags:-auth}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-6}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /etc/infisical ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - msg_info "Stopping service" - $STD inisical-ctl stop - msg_ok "Service stopped" - - msg_info "Creating backup" - DB_PASS=$(grep -Po '(?<=^Database Password:\s).*' ~/infisical.creds | head -n1) - PGPASSWORD=$DB_PASS pg_dump -U infisical -h localhost -d infisical_db > /opt/infisical_backup.sql - msg_ok "Created backup" - - msg_info "Updating Infisical" - $STD apt update - $STD apt install -y infisical-core - $STD infisical-ctl reconfigure - msg_ok "Updated Infisical" - - msg_info "Starting service" - infisical-ctl start - msg_ok "Started service" - msg_ok "Updated successfully" - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" diff --git a/ct/nginxproxymanager.sh b/ct/nginxproxymanager.sh deleted file mode 100644 index 6eb627a4d..000000000 --- a/ct/nginxproxymanager.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 Community-Script ORG -# Author: tteck (tteckster) | Co-Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://nginxproxymanager.com/ - -APP="Nginx Proxy Manager" -var_tags="${var_tags:-proxy}" -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_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -f /lib/systemd/system/npm.service ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if command -v node &>/dev/null; then - CURRENT_NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1) - if [[ "$CURRENT_NODE_VERSION" != "22" ]]; then - systemctl stop openresty - apt-get purge -y nodejs npm - apt-get autoremove -y - rm -rf /usr/local/bin/node /usr/local/bin/npm - rm -rf /usr/local/lib/node_modules - rm -rf ~/.npm - rm -rf /root/.npm - fi - fi - - NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs - - RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest | - grep "tag_name" | - awk '{print substr($2, 3, length($2)-4) }') - - fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" - - msg_info "Stopping Services" - systemctl stop openresty - systemctl stop npm - msg_ok "Stopped Services" - - msg_info "Cleaning old files" - $STD rm -rf /app \ - /var/www/html \ - /etc/nginx \ - /var/log/nginx \ - /var/lib/nginx \ - /var/cache/nginx - msg_ok "Cleaned old files" - - msg_info "Setting up Environment" - ln -sf /usr/bin/python3 /usr/bin/python - ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx - ln -sf /usr/local/openresty/nginx/ /etc/nginx - sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json - sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/frontend/package.json - sed -i 's+^daemon+#daemon+g' /opt/nginxproxymanager/docker/rootfs/etc/nginx/nginx.conf - NGINX_CONFS=$(find /opt/nginxproxymanager -type f -name "*.conf") - for NGINX_CONF in $NGINX_CONFS; do - sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF" - done - - mkdir -p /var/www/html /etc/nginx/logs - cp -r /opt/nginxproxymanager/docker/rootfs/var/www/html/* /var/www/html/ - cp -r /opt/nginxproxymanager/docker/rootfs/etc/nginx/* /etc/nginx/ - cp /opt/nginxproxymanager/docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini - cp /opt/nginxproxymanager/docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager - ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf - rm -f /etc/nginx/conf.d/dev.conf - - mkdir -p /tmp/nginx/body \ - /run/nginx \ - /data/nginx \ - /data/custom_ssl \ - /data/logs \ - /data/access \ - /data/nginx/default_host \ - /data/nginx/default_www \ - /data/nginx/proxy_host \ - /data/nginx/redirection_host \ - /data/nginx/stream \ - /data/nginx/dead_host \ - /data/nginx/temp \ - /var/lib/nginx/cache/public \ - /var/lib/nginx/cache/private \ - /var/cache/nginx/proxy_temp - - chmod -R 777 /var/cache/nginx - chown root /tmp/nginx - - echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" >/etc/nginx/conf.d/include/resolvers.conf - - if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]; then - openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost" -keyout /data/nginx/dummykey.pem -out /data/nginx/dummycert.pem &>/dev/null - fi - - mkdir -p /app/frontend/images - cp -r /opt/nginxproxymanager/backend/* /app - msg_ok "Set up Environment" - - msg_info "Building Frontend" - export NODE_OPTIONS="--max_old_space_size=2048 --openssl-legacy-provider" - cd /opt/nginxproxymanager/frontend - # Replace node-sass with sass in package.json before installation - sed -E -i 's/"node-sass" *: *"([^"]*)"/"sass": "\1"/g' package.json - $STD yarn install --network-timeout 600000 - $STD yarn build - cp -r /opt/nginxproxymanager/frontend/dist/* /app/frontend - cp -r /opt/nginxproxymanager/frontend/public/images/* /app/frontend/images - msg_ok "Built Frontend" - - msg_info "Initializing Backend" - rm -rf /app/config/default.json - if [ ! -f /app/config/production.json ]; then - cat <<'EOF' >/app/config/production.json -{ - "database": { - "engine": "knex-native", - "knex": { - "client": "sqlite3", - "connection": { - "filename": "/data/database.sqlite" - } - } - } -} -EOF - fi - cd /app - $STD yarn install --network-timeout 600000 - msg_ok "Initialized Backend" - - msg_info "Updating Certbot" - [ -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg ] && rm -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg - [ -f /etc/apt/sources.list.d/openresty.list ] && rm -f /etc/apt/sources.list.d/openresty.list - [ ! -f /etc/apt/trusted.gpg.d/openresty.gpg ] && curl -fsSL https://openresty.org/package/pubkey.gpg | gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/openresty.gpg - [ ! -f /etc/apt/sources.list.d/openresty.sources ] && cat <<'EOF' >/etc/apt/sources.list.d/openresty.sources -Types: deb -URIs: http://openresty.org/package/debian/ -Suites: bookworm -Components: openresty -Signed-By: /etc/apt/trusted.gpg.d/openresty.gpg -EOF - $STD apt update - $STD apt -y install openresty - if [ -d /opt/certbot ]; then - $STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel - $STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare - fi - msg_ok "Updated Certbot" - - msg_info "Starting Services" - sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf - sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager - systemctl enable -q --now openresty - systemctl enable -q --now npm - systemctl restart openresty - msg_ok "Started 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 "${TAB}${GATEWAY}${BGN}http://${IP}:81${CL}" diff --git a/ct/openwebui.sh b/ct/openwebui.sh deleted file mode 100644 index 33b315297..000000000 --- a/ct/openwebui.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: tteck | Co-Author: havardthom | Co-Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://openwebui.com/ - -APP="Open WebUI" -var_tags="${var_tags:-ai;interface}" -var_cpu="${var_cpu:-4}" -var_ram="${var_ram:-8192}" -var_disk="${var_disk:-25}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /root/.open-webui ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if [ -x "/usr/bin/ollama" ]; then - msg_info "Updating Ollama" - OLLAMA_VERSION=$(ollama -v | awk '{print $NF}') - RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}') - if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then - msg_info "Stopping Service" - systemctl stop ollama - msg_ok "Stopped Service" - curl -fsSLO -C - https://ollama.com/download/ollama-linux-amd64.tgz - rm -rf /usr/lib/ollama - rm -rf /usr/bin/ollama - tar -C /usr -xzf ollama-linux-amd64.tgz - rm -rf ollama-linux-amd64.tgz - msg_info "Starting Service" - systemctl start ollama - msg_info "Started Service" - msg_ok "Ollama updated to version $RELEASE" - else - msg_ok "Ollama is already up to date." - fi - fi - - msg_info "Restarting Open WebUI to initiate update" - systemctl restart open-webui - msg_ok "Updated successfully!" - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" diff --git a/ct/pangolin.sh b/ct/pangolin.sh deleted file mode 100644 index 4bcd6a76a..000000000 --- a/ct/pangolin.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://pangolin.net/ - -APP="Pangolin" -var_tags="${var_tags:-proxy}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-5}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" -var_tun="${var_tun:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/pangolin ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "pangolin" "fosrl/pangolin"; then - msg_info "Stopping Service" - systemctl stop pangolin - systemctl stop gerbil - msg_info "Service stopped" - - msg_info "Creating backup" - tar -czf /opt/pangolin_config_backup.tar.gz -C /opt/pangolin config - msg_ok "Created backup" - - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "pangolin" "fosrl/pangolin" "tarball" - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "gerbil" "fosrl/gerbil" "singlefile" "latest" "/usr/bin" "gerbil_linux_amd64" - - msg_info "Updating Pangolin" - cd /opt/pangolin - $STD npm ci - $STD npm run set:sqlite - $STD npm run set:oss - rm -rf server/private - $STD npm run build:sqlite - $STD npm run build:cli - cp -R .next/standalone ./ - chmod +x ./dist/cli.mjs - cp server/db/names.json ./dist/names.json - msg_ok "Updated Pangolin" - - msg_info "Restoring config" - tar -xzf /opt/pangolin_config_backup.tar.gz -C /opt/pangolin --overwrite - rm -f /opt/pangolin_config_backup.tar.gz - msg_ok "Restored config" - - msg_info "Starting Services" - systemctl start pangolin - systemctl start gerbil - msg_ok "Started Services" - msg_ok "Updated successfully!" - fi - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3002${CL}" diff --git a/ct/tracktor.sh b/ct/tracktor.sh deleted file mode 100644 index 53c37c1c1..000000000 --- a/ct/tracktor.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://tracktor.bytedge.in/ - -APP="tracktor" -var_tags="${var_tags:-car;monitoring}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-6}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/tracktor ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "tracktor" "javedh-dev/tracktor"; then - msg_info "Stopping Service" - systemctl stop tracktor - msg_ok "Stopped Service" - - msg_info "Correcting Services" - if [ -f /opt/tracktor/app/backend/.env ]; then - mv /opt/tracktor/app/backend/.env /opt/tracktor.env - echo 'AUTH_PIN=123456' >> /opt/tracktor.env - sed -i 's|^EnvironmentFile=.*|EnvironmentFile=/opt/tracktor.env|' /etc/systemd/system/tracktor.service - systemctl daemon-reload - fi - if [ ! -d "/opt/tracktor-data/uploads" ]; then - mkdir -p /opt/tracktor-data/{uploads,logs} - EXISTING_AUTH_PIN=$(grep '^AUTH_PIN=' /opt/tracktor.env 2>/dev/null | cut -d'=' -f2) - AUTH_PIN=${EXISTING_AUTH_PIN:-123456} - cat </opt/tracktor.env -NODE_ENV=production -DB_PATH=/opt/tracktor-data/tracktor.db -UPLOADS_DIR="/opt/tracktor-data/uploads" -LOG_DIR="/opt/tracktor-data/logs" -# If server host is not set by default it will run on all interfaces - 0.0.0.0 -# SERVER_HOST="" -SERVER_PORT=3000 -# Set this if you want to secure your endpoints otherwise default will be "*" -CORS_ORIGINS="*" -# Set this if you are using backend and frontend separately. -# PUBLIC_API_BASE_URL="" -LOG_REQUESTS=true -LOG_LEVEL="info" -AUTH_PIN=${AUTH_PIN} -# PUBLIC_DEMO_MODE=false -# FORCE_DATA_SEED=false -EOF - fi - msg_ok "Corrected Services" - - setup_nodejs - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tracktor" "javedh-dev/tracktor" "tarball" "latest" "/opt/tracktor" - - msg_info "Updating tracktor" - cd /opt/tracktor - $STD npm install - $STD npm run build - msg_ok "Updated tracktor" - - msg_info "Starting Service" - systemctl start tracktor - 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}:3000${CL}" diff --git a/install/donetick-install.sh b/install/donetick-install.sh deleted file mode 100644 index 2ee9da715..000000000 --- a/install/donetick-install.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: fstof -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/donetick/donetick - -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 ca-certificates -msg_ok "Installed Dependencies" - -fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz" - -msg_info "Setup donetick" -cd /opt/donetick -TOKEN=$(openssl rand -hex 16) -sed -i -e "s/change_this_to_a_secure_random_string_32_characters_long/${TOKEN}/g" config/selfhosted.yaml -msg_ok "Setup donetick" - -msg_info "Creating Service" -cat </etc/systemd/system/donetick.service -[Unit] -Description=donetick Service -After=network.target - -[Service] -Environment="DT_ENV=selfhosted" -WorkingDirectory=/opt/donetick -ExecStart=/opt/donetick/donetick -Restart=always - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now donetick -msg_ok "Created Service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" - diff --git a/install/infisical-install.sh b/install/infisical-install.sh deleted file mode 100644 index 01b22112c..000000000 --- a/install/infisical-install.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://infisical.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt install -y \ - apt-transport-https \ - ca-certificates \ - redis -msg_ok "Installed Dependencies" - -msg_info "Setting up Infisical repository" -curl -fsSL "https://artifacts-infisical-core.infisical.com/infisical.gpg" | gpg --dearmor >/etc/apt/trusted.gpg.d/infisical.gpg -cat </etc/apt/sources.list.d/infisical.sources -Types: deb -URIs: https://artifacts-infisical-core.infisical.com/deb -Suites: stable -Components: main -Signed-By: /etc/apt/trusted.gpg.d/infisical.gpg -EOF -msg_ok "Setup Infisical repository" - -PG_VERSION="17" setup_postgresql - -msg_info "Configuring PostgreSQL" -DB_NAME="infisical_db" -DB_USER="infisical" -DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)" -$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';" -$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';" -{ - echo "Infiscal Credentials" - echo "Database Name: $DB_NAME" - echo "Database User: $DB_USER" - echo "Database Password: $DB_PASS" -} >>~/infisical.creds -msg_ok "Configured PostgreSQL" - -msg_info "Setting up Infisical" -IP_ADDR=$(hostname -I | awk '{print $1}') -$STD apt install -y infisical-core -mkdir -p /etc/infisical -cat </etc/infisical/infisical.rb -infisical_core['ENCRYPTION_KEY'] = '6c1fe4e407b8911c104518103505b218' -infisical_core['AUTH_SECRET'] = '5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE=' -infisical_core['HOST'] = '$IP_ADDR' -infisical_core['DB_CONNECTION_URI'] = 'postgres://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}' -infisical_core['REDIS_URL'] = 'redis://localhost:6379' -EOF -$STD infisical-ctl reconfigure -msg_ok "Setup Infisical" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/openwebui-install.sh b/install/openwebui-install.sh deleted file mode 100644 index d07653b28..000000000 --- a/install/openwebui-install.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 tteck -# Author: tteck | Co-Author: havardthom | Co-Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://openwebui.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt install -y ffmpeg -msg_ok "Installed Dependencies" - -PYTHON_VERSION="3.12" setup_uv - -msg_info "Installing Open WebUI" -$STD uv tool install --python 3.12 open-webui[all] -msg_ok "Installed Open WebUI" - -read -r -p "${TAB3}Would you like to add Ollama? " prompt -if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - msg_info "Installing Ollama" - curl -fsSLO -C - https://ollama.com/download/ollama-linux-amd64.tgz - tar -C /usr -xzf ollama-linux-amd64.tgz - rm -rf ollama-linux-amd64.tgz - cat </etc/systemd/system/ollama.service -[Unit] -Description=Ollama Service -After=network-online.target - -[Service] -Type=exec -ExecStart=/usr/bin/ollama serve -Environment=HOME=$HOME -Environment=OLLAMA_HOST=0.0.0.0 -Restart=always -RestartSec=3 - -[Install] -WantedBy=multi-user.target -EOF - systemctl enable -q --now ollama - echo "ENABLE_OLLAMA_API=true" >/root/.env - msg_ok "Installed Ollama" -fi - -msg_info "Creating Service" -cat </etc/systemd/system/open-webui.service -[Unit] -Description=Open WebUI Service -After=network.target - -[Service] -Type=simple -EnvironmentFile=-/root/.env -Environment=DATA_DIR=/root/.open-webui -ExecStart=/root/.local/bin/open-webui serve -WorkingDirectory=/root -Restart=on-failure -RestartSec=5 -User=root - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now open-webui -msg_ok "Created Service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/pangolin-install.sh b/install/pangolin-install.sh deleted file mode 100644 index 0df22fdd8..000000000 --- a/install/pangolin-install.sh +++ /dev/null @@ -1,253 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Slaviša Arežina (tremor021) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://pangolin.net/ - -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 \ - sqlite3 \ - iptables -msg_ok "Installed Dependencies" - -NODE_VERSION="22" setup_nodejs -fetch_and_deploy_gh_release "pangolin" "fosrl/pangolin" "tarball" -fetch_and_deploy_gh_release "gerbil" "fosrl/gerbil" "singlefile" "latest" "/usr/bin" "gerbil_linux_amd64" -fetch_and_deploy_gh_release "traefik" "traefik/traefik" "prebuild" "latest" "/usr/bin" "traefik_v*_linux_amd64.tar.gz" - -read -rp "${TAB3}Enter your Pangolin URL (ex: https://pangolin.example.com): " pango_url -read -rp "${TAB3}Enter your email address: " pango_email - -msg_info "Setup Pangolin" -IP_ADDR=$(hostname -I | awk '{print $1}') -SECRET_KEY=$(openssl rand -base64 48 | tr -dc 'A-Za-z0-9' | head -c 32) -cd /opt/pangolin -mkdir -p /opt/pangolin/config/{traefik,db,letsencrypt,logs} -$STD npm ci -$STD npm run set:sqlite -$STD npm run set:oss -rm -rf server/private -$STD npm run build:sqlite -$STD npm run build:cli -cp -R .next/standalone ./ - -cat </usr/local/bin/pangctl -#!/bin/sh -cd /opt/pangolin -./dist/cli.mjs "$@" -EOF -chmod +x /usr/local/bin/pangctl ./dist/cli.mjs -cp server/db/names.json ./dist/names.json -mkdir -p /var/config - -cat </opt/pangolin/config/config.yml -app: - dashboard_url: "$pango_url" - -domains: - domain1: - base_domain: "$pango_url" - cert_resolver: "letsencrypt" - -server: - secret: "$SECRET_KEY" - -gerbil: - base_endpoint: "$pango_url" - -flags: - require_email_verification: false - disable_signup_without_invite: false - disable_user_create_org: false -EOF - -cat </opt/pangolin/config/traefik/traefik_config.yml -api: - insecure: true - dashboard: true - -providers: - http: - endpoint: "http://$IP_ADDR:3001/api/v1/traefik-config" - pollInterval: "5s" - file: - filename: "/opt/pangolin/config/traefik/dynamic_config.yml" - -experimental: - plugins: - badger: - moduleName: "github.com/fosrl/badger" - version: "v1.2.0" - -log: - level: "INFO" - format: "common" - -certificatesResolvers: - letsencrypt: - acme: - httpChallenge: - entryPoint: web - email: $pango_email - storage: "/opt/pangolin/config/letsencrypt/acme.json" - caServer: "https://acme-v02.api.letsencrypt.org/directory" - -entryPoints: - web: - address: ":80" - websecure: - address: ":443" - transport: - respondingTimeouts: - readTimeout: "30m" - http: - tls: - certResolver: "letsencrypt" - -serversTransport: - insecureSkipVerify: true - -ping: - entryPoint: "web" -EOF - -cat </opt/pangolin/config/traefik/dynamic_config.yml -http: - middlewares: - redirect-to-https: - redirectScheme: - scheme: https - - routers: - # HTTP to HTTPS redirect router - main-app-router-redirect: - rule: "Host(\`$pango_url\`)" - service: next-service - entryPoints: - - web - middlewares: - - redirect-to-https - - # Next.js router (handles everything except API and WebSocket paths) - next-router: - rule: "Host(\`$pango_url\`) && !PathPrefix(\`/api/v1\`)" - service: next-service - entryPoints: - - websecure - tls: - certResolver: letsencrypt - - # API router (handles /api/v1 paths) - api-router: - rule: "Host(\`$pango_url\`) && PathPrefix(\`/api/v1\`)" - service: api-service - entryPoints: - - websecure - tls: - certResolver: letsencrypt - - # WebSocket router - ws-router: - rule: "Host(\`$pango_url\`)" - service: api-service - entryPoints: - - websecure - tls: - certResolver: letsencrypt - - services: - next-service: - loadBalancer: - servers: - - url: "http://$IP_ADDR:3002" - - api-service: - loadBalancer: - servers: - - url: "http://$IP_ADDR:3000" -EOF -$STD npm run db:sqlite:generate -$STD npm run db:sqlite:push - -. /etc/os-release -if [ "$VERSION_CODENAME" = "trixie" ]; then - echo "net.ipv4.ip_forward=1" >>/etc/sysctl.d/sysctl.conf - $STD sysctl -p /etc/sysctl.d/sysctl.conf -else - echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf - $STD sysctl -p /etc/sysctl.conf -fi -msg_ok "Setup Pangolin" - -msg_info "Creating Services" -cat </etc/systemd/system/pangolin.service -[Unit] -Description=Pangolin Service -After=network.target - -[Service] -Type=simple -User=root -Environment=NODE_ENV=production -Environment=ENVIRONMENT=prod -WorkingDirectory=/opt/pangolin -ExecStart=/usr/bin/node --enable-source-maps dist/server.mjs -Restart=always -RestartSec=10 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now pangolin - -cat </etc/systemd/system/gerbil.service -[Unit] -Description=Gerbil Service -After=network.target -Requires=pangolin.service - -[Service] -Type=simple -User=root -ExecStart=/usr/bin/gerbil --reachableAt=http://$IP_ADDR:3004 --generateAndSaveKeyTo=/var/config/key --remoteConfig=http://$IP_ADDR:3001/api/v1/ -Restart=always -RestartSec=10 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now gerbil - -cat <<'EOF' >/etc/systemd/system/traefik.service -[Unit] -Description=Traefik is an open-source Edge Router that makes publishing your services a fun and easy experience - -[Service] -Type=notify -ExecStart=/usr/bin/traefik --configFile=/opt/pangolin/config/traefik/traefik_config.yaml -Restart=on-failure -ExecReload=/bin/kill -USR1 \$MAINPID - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now traefik -msg_ok "Created Services" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/tracktor-install.sh b/install/tracktor-install.sh deleted file mode 100644 index a979dfdbc..000000000 --- a/install/tracktor-install.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2025 Community Scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://tracktor.bytedge.in - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -setup_nodejs -fetch_and_deploy_gh_release "tracktor" "javedh-dev/tracktor" "tarball" "latest" "/opt/tracktor" - -msg_info "Configuring Tracktor" -cd /opt/tracktor -$STD npm install -$STD npm run build -mkdir -p /opt/tracktor-data/uploads -mkdir -p /opt/tracktor-data/logs -HOST_IP=$(hostname -I | awk '{print $1}') -cat </opt/tracktor.env -NODE_ENV=production -DB_PATH=/opt/tracktor-data/tracktor.db -UPLOADS_DIR="/opt/tracktor-data/uploads" -LOG_DIR="/opt/tracktor-data/logs" -# If server host is not set by default it will run on all interfaces - 0.0.0.0 -# SERVER_HOST="" -SERVER_PORT=3000 -PORT=3000 -# Set this if you want to secure your endpoints otherwise default will be "*" -# CORS_ORIGINS="*" -# Set this if you are using backend and frontend separately. For lxc installation this is not needed -# PUBLIC_API_BASE_URL="" -LOG_REQUESTS=true -LOG_LEVEL="info" -AUTH_PIN=123456 -# PUBLIC_DEMO_MODE=false -# FORCE_DATA_SEED=false -EOF -msg_ok "Configured Tracktor" - -msg_info "Creating service" -cat </etc/systemd/system/tracktor.service -[Unit] -Description=Tracktor Service -After=network.target - -[Service] -Type=simple -WorkingDirectory=/opt/tracktor -EnvironmentFile=/opt/tracktor.env -ExecStart=/usr/bin/npm start - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now tracktor -msg_ok "Created service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/misc/tools.func b/misc/tools.func index 08cb895b0..9eec2d06b 100644 --- a/misc/tools.func +++ b/misc/tools.func @@ -3082,7 +3082,7 @@ function setup_mariadb_db() { return 1 fi - if [[ -z "$DB_PASS" ]]; then + if [[ -z "${DB_PASS:-}" ]]; then DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) fi