diff --git a/ct/docker.sh b/ct/docker.sh deleted file mode 100644 index 645114b41..000000000 --- a/ct/docker.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.docker.com/ - -APP="Docker" -var_tags="${var_tags:-docker}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-4}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - - get_latest_release() { - curl -fsSL https://api.github.com/repos/"$1"/releases/latest | grep '"tag_name":' | cut -d'"' -f4 - } - - msg_info "Updating base system" - $STD apt update - $STD apt -y upgrade - msg_ok "Base system updated" - - msg_info "Updating Docker Engine" - $STD apt install --only-upgrade -y docker-ce docker-ce-cli containerd.io - msg_ok "Docker Engine updated" - - if [[ -f /usr/local/lib/docker/cli-plugins/docker-compose ]]; then - COMPOSE_BIN="/usr/local/lib/docker/cli-plugins/docker-compose" - COMPOSE_NEW_VERSION=$(get_latest_release "docker/compose") - msg_info "Updating Docker Compose to $COMPOSE_NEW_VERSION" - curl -fsSL "https://github.com/docker/compose/releases/download/${COMPOSE_NEW_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \ - -o "$COMPOSE_BIN" - chmod +x "$COMPOSE_BIN" - msg_ok "Docker Compose updated" - fi - - if docker ps -a --format '{{.Names}}' | grep -q '^portainer$'; then - msg_info "Updating Portainer" - $STD docker pull portainer/portainer-ce:latest - $STD docker stop portainer && docker rm portainer - $STD docker volume create portainer_data >/dev/null 2>&1 - $STD docker run -d \ - -p 8000:8000 \ - -p 9443:9443 \ - --name=portainer \ - --restart=always \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v portainer_data:/data \ - portainer/portainer-ce:latest - msg_ok "Updated Portainer" - fi - - if docker ps -a --format '{{.Names}}' | grep -q '^portainer_agent$'; then - msg_info "Updating Portainer Agent" - $STD docker pull portainer/agent:latest - $STD docker stop portainer_agent && docker rm portainer_agent - $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 "Updated Portainer Agent" - fi - - msg_info "Cleaning up" - $STD apt-get -y autoremove - $STD apt-get -y autoclean - msg_ok "Cleanup complete" - 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} If you installed Portainer, access it at the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:9443${CL}" diff --git a/ct/gitea-mirror.sh b/ct/gitea-mirror.sh deleted file mode 100644 index ac227bcca..000000000 --- a/ct/gitea-mirror.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/RayLabsHQ/gitea-mirror - -APP="gitea-mirror" -var_tags="${var_tags:-mirror;gitea}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-6}" -var_os="${var_os:-debian}" -var_version="${var_version:-12}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" - -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/gitea-mirror ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4) - if [[ $APP_VERSION =~ ^2\. ]]; then - if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ VERSION 2.x DETECTED" --yesno \ - "WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno; then - exit 0 - fi - - if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ FINAL CONFIRMATION" --yesno \ - "FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno; then - whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60 - exit 0 - fi - whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \ - "Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50 - rm -rf /opt/gitea-mirror - fi - - if [[ ! -f /opt/gitea-mirror.env ]]; then - msg_info "Detected old Enviroment, updating files" - APP_SECRET=$(openssl rand -base64 32) - HOST_IP=$(hostname -I | awk '{print $1}') - cat </opt/gitea-mirror.env -# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md -NODE_ENV=production -HOST=0.0.0.0 -PORT=4321 -DATABASE_URL=sqlite://data/gitea-mirror.db -BETTER_AUTH_URL=http://${HOST_IP}:4321 -BETTER_AUTH_SECRET=${APP_SECRET} -npm_package_version=${APP_VERSION} -EOF - rm /etc/systemd/system/gitea-mirror.service - cat </etc/systemd/system/gitea-mirror.service -[Unit] -Description=Gitea Mirror -After=network.target -[Service] -Type=simple -WorkingDirectory=/opt/gitea-mirror -ExecStart=/usr/local/bin/bun dist/server/entry.mjs -Restart=on-failure -RestartSec=10 -EnvironmentFile=/opt/gitea-mirror.env -[Install] -WantedBy=multi-user.target -EOF - systemctl daemon-reload - msg_ok "Old Enviroment fixed" - fi - - if check_for_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"; then - msg_info "Stopping Services" - systemctl stop gitea-mirror - msg_ok "Services Stopped" - - msg_info "Backup Data" - mkdir -p /opt/gitea-mirror-backup/data - cp /opt/gitea-mirror/data/* /opt/gitea-mirror-backup/data/ - msg_ok "Backup Data" - - NODE_VERSION="22" NODE_MODULES="bun" setup_nodejs - - rm -rf /opt/gitea-mirror - fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror" - - msg_info "Updating and rebuilding ${APP}" - cd /opt/gitea-mirror - $STD bun run setup - $STD bun run build - APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4) - - sudo sed -i.bak "s|^npm_package_version=.*|npm_package_version=${APP_VERSION}|" /opt/gitea-mirror.env - msg_ok "Updated and rebuilt ${APP}" - - msg_info "Restoring Data" - cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data - msg_ok "Restored Data" - - msg_info "Starting Service" - systemctl start gitea-mirror - msg_ok "Service Started" - msg_ok "Updated successfully!" - fi - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4321${CL}" diff --git a/ct/joplin-server.sh b/ct/joplin-server.sh deleted file mode 100644 index d7824f8ba..000000000 --- a/ct/joplin-server.sh +++ /dev/null @@ -1,61 +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://joplinapp.org/ - -APP="Joplin-Server" -var_tags="${var_tags:-notes}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-20}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/joplin-server ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "joplin-server" "laurent22/joplin"; then - msg_info "Stopping Services" - systemctl stop joplin-server - msg_ok "Stopped Services" - - fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest" - - msg_info "Updating Joplin-Server" - cd /opt/joplin-server - sed -i "/onenote-converter/d" packages/lib/package.json - $STD yarn config set --home enableTelemetry 0 - export BUILD_SEQUENCIAL=1 - $STD yarn install --inline-builds - msg_ok "Updated Joplin-Server" - - msg_info "Starting Services" - systemctl start joplin-server - msg_ok "Started Services" - msg_ok "Updated Successfully!" - fi - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:22300${CL}" diff --git a/ct/mealie.sh b/ct/mealie.sh deleted file mode 100644 index d32937262..000000000 --- a/ct/mealie.sh +++ /dev/null @@ -1,96 +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: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://mealie.io - -APP="Mealie" -var_tags="${var_tags:-recipes}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-3072}" -var_disk="${var_disk:-10}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - - if [[ ! -d /opt/mealie ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - if check_for_gh_release "mealie" "mealie-recipes/mealie"; then - PYTHON_VERSION="3.12" setup_uv - NODE_MODULE="yarn" NODE_VERSION="24" setup_nodejs - - msg_info "Stopping Service" - systemctl stop mealie - msg_ok "Stopped Service" - - msg_info "Backing up Configuration" - cp -f /opt/mealie/mealie.env /opt/mealie/mealie.env.bak - cp -f /opt/mealie/start.sh /opt/mealie/start.sh.bak - msg_ok "Backup completed" - - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball" "latest" "/opt/mealie" - - msg_info "Installing Python Dependencies with uv" - cd /opt/mealie - $STD uv sync --frozen --extra pgsql - msg_ok "Installed Python Dependencies" - - msg_info "Building Frontend" - export NUXT_TELEMETRY_DISABLED=1 - cd /opt/mealie/frontend - $STD yarn install --prefer-offline --frozen-lockfile --non-interactive --production=false --network-timeout 1000000 - $STD yarn generate - msg_ok "Built Frontend" - - msg_info "Copying Built Frontend" - mkdir -p /opt/mealie/mealie/frontend - cp -r /opt/mealie/frontend/dist/* /opt/mealie/mealie/frontend/ - msg_ok "Copied Frontend" - - msg_info "Updating NLTK Data" - mkdir -p /nltk_data/ - cd /opt/mealie - $STD uv run python -m nltk.downloader -d /nltk_data averaged_perceptron_tagger_eng - msg_ok "Updated NLTK Data" - - msg_info "Restoring Configuration" - mv -f /opt/mealie/mealie.env.bak /opt/mealie/mealie.env - cat <<'STARTEOF' >/opt/mealie/start.sh -#!/bin/bash -set -a -source /opt/mealie/mealie.env -set +a -exec uv run mealie -STARTEOF - chmod +x /opt/mealie/start.sh - msg_ok "Configuration restored" - - msg_info "Starting Service" - systemctl start mealie - msg_ok "Started Service" - msg_ok "Update Successful" - fi - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}" diff --git a/ct/metabase.sh b/ct/metabase.sh deleted file mode 100644 index d057b52b3..000000000 --- a/ct/metabase.sh +++ /dev/null @@ -1,65 +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://www.metabase.com/ - -APP="Metabase" -var_tags="${var_tags:-analytics}" -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 /opt/metabase ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "metabase" "metabase/metabase"; then - msg_info "Stopping Service" - systemctl stop metabase - msg_info "Service stopped" - - msg_info "Creating backup" - mv /opt/metabase/.env /opt - msg_ok "Created backup" - - msg_info "Updating Metabase" - RELEASE=$(get_latest_github_release "metabase/metabase") - curl -fsSL "https://downloads.metabase.com/v${RELEASE}.x/metabase.jar" -o /opt/metabase/metabase.jar - echo $RELEASE >~/.metabase - msg_ok "Updated Metabase" - - msg_info "Restoring backup" - mv /opt/.env /opt/metabase - msg_ok "Restored backup" - - msg_info "Starting Service" - systemctl start metabase - 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/ct/wanderer.sh b/ct/wanderer.sh deleted file mode 100644 index 973970b17..000000000 --- a/ct/wanderer.sh +++ /dev/null @@ -1,75 +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: rrole -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://wanderer.to - -APP="Wanderer" -var_tags="${var_tags:-traveling;sport}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -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 /opt/wanderer/start.sh ]]; then - msg_error "No wanderer Installation Found!" - exit - fi - - if check_for_gh_release "wanderer" "Flomp/wanderer"; then - msg_info "Stopping wanderer service" - systemctl stop wanderer-web - msg_ok "Stopped wanderer service" - - fetch_and_deploy_gh_release "wanderer" "Flomp/wanderer" "tarball" "latest" "/opt/wanderer/source" - - msg_info "Updating wanderer" - cd /opt/wanderer/source/db - $STD go mod tidy - $STD go build - cd /opt/wanderer/source/web - $STD npm ci --omit=dev - $STD npm run build - msg_ok "Updated wanderer" - - msg_info "Starting wanderer service" - systemctl start wanderer-web - msg_ok "Started wanderer service" - msg_ok "Update Successful" - fi - if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then - msg_info "Stopping wanderer service" - systemctl stop wanderer-web - msg_ok "Stopped wanderer service" - - fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary" "latest" "/opt/wanderer/source/search" - - msg_info "Starting wanderer service" - systemctl start wanderer-web - msg_ok "Started wanderer service" - msg_ok "Update Successful" - fi - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/web-check.sh b/ct/web-check.sh deleted file mode 100644 index bb6555503..000000000 --- a/ct/web-check.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/Lissy93/web-check - -APP="web-check" -var_tags="${var_tags:-network;analysis}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-12}" -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/web-check ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "web-check" "CrazyWolf13/web-check"; then - msg_info "Stopping Service" - systemctl stop web-check - msg_ok "Stopped Service" - - msg_info "Creating backup" - mv /opt/web-check/.env /opt - msg_ok "Created backup" - - NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "web-check" "CrazyWolf13/web-check" - - msg_info "Building Web-Check" - cd /opt/web-check - $STD yarn install --frozen-lockfile --network-timeout 100000 - $STD yarn build --production - rm -rf /var/lib/apt/lists/* /app/node_modules/.cache - msg_ok "Built Web-Check" - - msg_info "Restoring backup" - mv /opt/.env /opt/web-check - msg_ok "Restored backup" - - msg_info "Starting Service" - systemctl start web-check - 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/frontend/public/json/freepbx.json b/frontend/public/json/freepbx.json new file mode 100644 index 000000000..eb9381de7 --- /dev/null +++ b/frontend/public/json/freepbx.json @@ -0,0 +1,44 @@ +{ + "name": "FreePBX", + "slug": "freepbx", + "categories": [ + 17 + ], + "date_created": "2025-01-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://wiki.freepbx.org/", + "website": "https://www.freepbx.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/freepbx.svg", + "config_path": "/etc/freepbx.conf", + "description": "FreePBX is a web-based open-source graphical user interface that manages Asterisk, a voice over IP and telephony server. FreePBX provides a complete PBX solution with call routing, voicemail, IVR, and more.", + "install_methods": [ + { + "type": "default", + "script": "ct/freepbx.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 10, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Access the web interface to complete initial setup", + "type": "info" + }, + { + "text": "SIP Port: 5060, IAX2 Port: 4569", + "type": "info" + } + ] +} diff --git a/frontend/public/json/metabase.json b/frontend/public/json/metabase.json deleted file mode 100644 index 1cb744078..000000000 --- a/frontend/public/json/metabase.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Metabase", - "slug": "metabase", - "categories": [ - 9 - ], - "date_created": "2025-09-04", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://www.metabase.com/docs/latest/", - "config_path": "/opt/metabase/.env", - "website": "https://www.metabase.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metabase.webp", - "description": "Metabase is an open-source business intelligence platform. You can use Metabase to ask questions about your data, or embed Metabase in your app to let your customers explore their data on their own.", - "install_methods": [ - { - "type": "default", - "script": "ct/metabase.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 6, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} diff --git a/frontend/public/json/petio.json b/frontend/public/json/petio.json new file mode 100644 index 000000000..a8c2aaec7 --- /dev/null +++ b/frontend/public/json/petio.json @@ -0,0 +1,40 @@ +{ + "name": "Petio", + "slug": "petio", + "categories": [ + 14 + ], + "date_created": "2025-01-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 7777, + "documentation": "https://docs.petio.tv/", + "website": "https://petio.tv/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/petio.svg", + "config_path": "/opt/petio", + "description": "Petio is a third party companion app available to Plex server owners to allow their users to request, review and discover content. It integrates with your existing services, such as Sonarr and Radarr, for seamless content management.", + "install_methods": [ + { + "type": "default", + "script": "ct/petio.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "ubuntu", + "version": "24.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Installation path: /opt/Petio", + "type": "info" + } + ] +} diff --git a/frontend/public/json/rybbit.json b/frontend/public/json/rybbit.json new file mode 100644 index 000000000..bb559a68d --- /dev/null +++ b/frontend/public/json/rybbit.json @@ -0,0 +1,35 @@ +{ + "name": "Rybbit", + "slug": "rybbit", + "categories": [ + 2 + ], + "date_created": "2025-01-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/rybbit-io/rybbit", + "website": "https://github.com/rybbit-io/rybbit", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/rybbit.svg", + "config_path": "/opt/rybbit", + "description": "Rybbit is a privacy-focused, open-source web analytics platform. Track your website visitors without compromising their privacy or using cookies.", + "install_methods": [ + { + "type": "default", + "script": "ct/rybbit.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 5, + "os": "debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/speedtest-tracker.json b/frontend/public/json/speedtest-tracker.json new file mode 100644 index 000000000..75704e54d --- /dev/null +++ b/frontend/public/json/speedtest-tracker.json @@ -0,0 +1,40 @@ +{ + "name": "Speedtest-Tracker", + "slug": "speedtest-tracker", + "categories": [ + 2 + ], + "date_created": "2025-01-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.speedtest-tracker.dev/", + "website": "https://github.com/alexjustesen/speedtest-tracker", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/speedtest-tracker.svg", + "config_path": "/opt/speedtest-tracker/.env", + "description": "Speedtest Tracker is a self-hosted application that runs scheduled speed tests using the Ookla Speedtest CLI and saves the results to a database for historical tracking and visualization.", + "install_methods": [ + { + "type": "default", + "script": "ct/speedtest-tracker.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Installation path: /opt/speedtest-tracker", + "type": "info" + } + ] +} diff --git a/frontend/public/json/valkey.json b/frontend/public/json/valkey.json deleted file mode 100644 index bafe38af8..000000000 --- a/frontend/public/json/valkey.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Valkey", - "slug": "valkey", - "categories": [ - 9 - ], - "date_created": "2025-11-24", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 6379, - "documentation": "https://valkey.io/docs/", - "config_path": "/etc/valkey/valkey.conf", - "website": "https://valkey.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/valkey.webp", - "description": "Valkey is an open source (BSD) high-performance key/value datastore that supports a variety of workloads such as caching, message queues, and can act as a primary database. The project is backed by the Linux Foundation, ensuring it will remain open source forever.", - "install_methods": [ - { - "type": "default", - "script": "ct/valkey.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} diff --git a/frontend/public/json/wanderer.json b/frontend/public/json/wanderer.json deleted file mode 100644 index aade13021..000000000 --- a/frontend/public/json/wanderer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Wanderer", - "slug": "wanderer", - "categories": [ - 0 - ], - "date_created": "2025-11-23", - "type": "ct", - "updateable": true, - "privileged": false, - "config_path": "/opt/wanderer/.env", - "interface_port": 3000, - "documentation": "https://wanderer.to/welcome", - "website": "https://wanderer.to", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@master/webp/wanderer-light.webp", - "description": "Wanderer is a decentralized, self-hosted trail database. You can upload your recorded GPS tracks or create new ones and add various metadata to build an easily searchable catalogue.", - "install_methods": [ - { - "type": "default", - "script": "ct/wanderer.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 8, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} diff --git a/install/gitea-mirror-install.sh b/install/gitea-mirror-install.sh deleted file mode 100644 index 3ec7171bd..000000000 --- a/install/gitea-mirror-install.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/RayLabsHQ/gitea-mirror - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -NODE_VERSION="22" NODE_MODULES="bun" setup_nodejs -fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror" - -msg_info "Installing gitea-mirror" -cd /opt/gitea-mirror -$STD bun run setup -$STD bun run build -msg_ok "Installed gitea-mirror" - -msg_info "Creating Services" -APP_SECRET=$(openssl rand -base64 32) -APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4) -HOST_IP=$(hostname -I | awk '{print $1}') -cat </opt/gitea-mirror.env -# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md -NODE_ENV=production -HOST=0.0.0.0 -PORT=4321 -DATABASE_URL=sqlite://data/gitea-mirror.db -BETTER_AUTH_URL=http://${HOST_IP}:4321 -BETTER_AUTH_SECRET=${APP_SECRET} -npm_package_version=${APP_VERSION} -EOF - -cat </etc/systemd/system/gitea-mirror.service -[Unit] -Description=Gitea Mirror -After=network.target -[Service] -Type=simple -WorkingDirectory=/opt/gitea-mirror -ExecStart=/usr/local/bin/bun dist/server/entry.mjs -Restart=on-failure -RestartSec=10 -EnvironmentFile=/opt/gitea-mirror.env -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now gitea-mirror -msg_ok "Created Service" - -motd_ssh -customize -cleanup_lxc diff --git a/install/joplin-server-install.sh b/install/joplin-server-install.sh deleted file mode 100644 index 35d85fbf2..000000000 --- a/install/joplin-server-install.sh +++ /dev/null @@ -1,94 +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://joplinapp.org/ - -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 \ - git \ - rsync -msg_ok "Installed Dependencies" - -PG_VERSION="17" setup_postgresql -NODE_VERSION=24 NODE_MODULE="yarn,npm,pm2" setup_nodejs -mkdir -p /opt/pm2 -export PM2_HOME=/opt/pm2 -$STD pm2 install pm2-logrotate -$STD pm2 set pm2-logrotate:max_size 100MB -$STD pm2 set pm2-logrotate:retain 5 -$STD pm2 set pm2-logrotate:compress tr - -msg_info "Setting up PostgreSQL Database" -DB_NAME=joplin -DB_USER=joplin -DB_PASS="$(openssl rand -base64 18 | 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 "Joplin-Credentials" - echo "Joplin Database User: $DB_USER" - echo "Joplin Database Password: $DB_PASS" - echo "Joplin Database Name: $DB_NAME" -} >>~/joplin.creds -msg_ok "Set up PostgreSQL Database" - -fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest" - -msg_info "Setting up Joplin Server (Patience)" -LOCAL_IP=$(hostname -I | awk '{print $1}') -cd /opt/joplin-server -sed -i "/onenote-converter/d" packages/lib/package.json -$STD yarn config set --home enableTelemetry 0 -export BUILD_SEQUENCIAL=1 -$STD yarn install --inline-builds - -cat </opt/joplin-server/.env -PM2_HOME=/opt/pm2 -NODE_ENV=production -APP_BASE_URL=http://$LOCAL_IP:22300 -APP_PORT=22300 -DB_CLIENT=pg -POSTGRES_PASSWORD=$DB_PASS -POSTGRES_DATABASE=$DB_NAME -POSTGRES_USER=$DB_USER -POSTGRES_PORT=5432 -POSTGRES_HOST=localhost -EOF -msg_ok "Setup Joplin Server" - -msg_info "Setting up Service" -cat </etc/systemd/system/joplin-server.service -[Unit] -Description=Joplin Server Service -After=network.target - -[Service] -Type=simple -WorkingDirectory=/opt/joplin-server/packages/server -EnvironmentFile=/opt/joplin-server/.env -ExecStart=/usr/bin/yarn start-prod -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now joplin-server -msg_ok "Service Setup" - -motd_ssh -customize -cleanup_lxc diff --git a/install/mealie-install.sh b/install/mealie-install.sh deleted file mode 100644 index 78e857c1d..000000000 --- a/install/mealie-install.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://mealie.io - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt install -y \ - build-essential \ - libpq-dev \ - libwebp-dev \ - libsasl2-dev \ - libldap2-dev \ - libldap-common \ - libssl-dev \ - libldap2 \ - gosu \ - iproute2 -msg_ok "Installed Dependencies" - -PYTHON_VERSION="3.12" setup_uv -POSTGRES_VERSION="16" setup_postgresql -NODE_MODULE="yarn" NODE_VERSION="24" setup_nodejs -fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball" "latest" "/opt/mealie" -PG_DB_NAME="mealie_db" PG_DB_USER="mealie_user" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db - -msg_info "Installing Python Dependencies with uv" -cd /opt/mealie -$STD uv sync --frozen --extra pgsql -msg_ok "Installed Python Dependencies" - -msg_info "Building Frontend" -MEALIE_VERSION=$(<$HOME/.mealie) -CONTAINER_IP=$(hostname -I | awk '{print $1}') -export NUXT_TELEMETRY_DISABLED=1 -cd /opt/mealie/frontend -$STD sed -i "s|https://github.com/mealie-recipes/mealie/commit/|https://github.com/mealie-recipes/mealie/releases/tag/|g" /opt/mealie/frontend/pages/admin/site-settings.vue -$STD sed -i "s|value: data.buildId,|value: \"v${MEALIE_VERSION}\",|g" /opt/mealie/frontend/pages/admin/site-settings.vue -$STD sed -i "s|value: data.production ? i18n.t(\"about.production\") : i18n.t(\"about.development\"),|value: \"bare-metal\",|g" /opt/mealie/frontend/pages/admin/site-settings.vue -$STD yarn install --prefer-offline --frozen-lockfile --non-interactive --production=false --network-timeout 1000000 -$STD yarn generate -msg_ok "Built Frontend" - -msg_info "Copying Built Frontend" -mkdir -p /opt/mealie/mealie/frontend -cp -r /opt/mealie/frontend/dist/* /opt/mealie/mealie/frontend/ -msg_ok "Copied Frontend" - -msg_info "Downloading NLTK Data" -mkdir -p /nltk_data/ -cd /opt/mealie -$STD uv run python -m nltk.downloader -d /nltk_data averaged_perceptron_tagger_eng -msg_ok "Downloaded NLTK Data" - -msg_info "Writing Environment File" -SECRET=$(openssl rand -hex 32) -mkdir -p /run/secrets -cat </opt/mealie/mealie.env -MEALIE_HOME=/opt/mealie -NLTK_DATA=/nltk_data -SECRET=${SECRET} - -DB_ENGINE=postgres -POSTGRES_SERVER=localhost -POSTGRES_PORT=5432 -POSTGRES_USER=${PG_DB_USER} -POSTGRES_PASSWORD=${PG_DB_PASS} -POSTGRES_DB=${PG_DB_NAME} - -PRODUCTION=true -HOST=0.0.0.0 -PORT=9000 -BASE_URL=http://${CONTAINER_IP}:9000 -EOF -msg_ok "Wrote Environment File" - -msg_info "Creating Start Script" -cat <<'EOF' >/opt/mealie/start.sh -#!/bin/bash -set -a -source /opt/mealie/mealie.env -set +a -exec uv run mealie -EOF -chmod +x /opt/mealie/start.sh -msg_ok "Created Start Script" - -msg_info "Creating Systemd Service" -cat <<'EOF' >/etc/systemd/system/mealie.service -[Unit] -Description=Mealie Recipe Manager -After=network.target postgresql.service -Wants=postgresql.service - -[Service] -Type=simple -User=root -WorkingDirectory=/opt/mealie -ExecStart=/opt/mealie/start.sh -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now mealie -msg_ok "Created and Started Service" - -motd_ssh -customize -cleanup_lxc diff --git a/install/metabase-install.sh b/install/metabase-install.sh deleted file mode 100644 index f14ff7c2d..000000000 --- a/install/metabase-install.sh +++ /dev/null @@ -1,59 +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://www.metabase.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -JAVA_VERSION="21" setup_java -PG_VERSION="17" setup_postgresql -PG_DB_NAME="metabase_db" PG_DB_USER="metabase" setup_postgresql_db - -msg_info "Setting up Metabase" -mkdir -p /opt/metabase -RELEASE=$(get_latest_github_release "metabase/metabase") -curl -fsSL "https://downloads.metabase.com/v${RELEASE}.x/metabase.jar" -o /opt/metabase/metabase.jar -cd /opt/metabase - -cat </opt/metabase/.env -MB_DB_TYPE=postgres -MB_DB_DBNAME=$PG_DB_NAME -MB_DB_PORT=5432 -MB_DB_USER=$PG_DB_USER -MB_DB_PASS=$PG_DB_PASS -MB_DB_HOST=localhost -EOF -echo $RELEASE >~/.metabase -msg_ok "Setup Metabase" - -msg_info "Creating Service" -cat </etc/systemd/system/metabase.service -[Unit] -Description=Metabase Service -After=network.target - -[Service] -EnvironmentFile=/opt/metabase/.env -WorkingDirectory=/opt/metabase -ExecStart=/usr/bin/java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar -Restart=always -SuccessExitStatus=143 -TimeoutStopSec=120 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now metabase -msg_ok "Created Service" - -motd_ssh -customize -cleanup_lxc diff --git a/install/valkey-install.sh b/install/valkey-install.sh deleted file mode 100644 index 6a0a1441f..000000000 --- a/install/valkey-install.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 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 apt update -$STD apt install -y valkey -sed -i 's/^bind .*/bind 0.0.0.0/' /etc/valkey/valkey.conf -systemctl enable -q --now valkey-server -systemctl restart valkey-server -msg_ok "Installed Valkey" - -motd_ssh -customize -cleanup_lxc diff --git a/install/viseron-install.sh b/install/viseron-install.sh index 2aa3f21f0..a20aa8e51 100644 --- a/install/viseron-install.sh +++ b/install/viseron-install.sh @@ -15,90 +15,53 @@ update_os msg_info "Installing Dependencies" $STD apt install -y \ - python3-opencv jq \ - libglib2.0-0 pciutils gcc musl-dev \ - libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 \ - gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav \ - build-essential python3-dev python3-gi pkg-config libcairo2-dev gir1.2-glib-2.0 \ - cmake gfortran libopenblas-dev liblapack-dev libgirepository1.0-dev git libpq-dev + python3 python3-pip python3-venv \ + libgl1 libglib2.0-0 \ + libsm6 libxext6 libxrender-dev \ + libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 \ + libgstreamer-plugins-bad1.0-0 gstreamer1.0-plugins-base \ + gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \ + gstreamer1.0-plugins-ugly gstreamer1.0-libav \ + gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa \ + gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 \ + gstreamer1.0-pulseaudio \ + libavcodec-dev libavformat-dev libswscale-dev \ + libv4l-dev libxvidcore-dev libx264-dev \ + libjpeg-dev libpng-dev libtiff-dev \ + gfortran \ + libhdf5-dev \ + python3-pyqt5 \ + libgtk-3-dev libcanberra-gtk3-module \ + libgirepository1.0-dev libcairo2-dev pkg-config \ + libopenblas-dev liblapack-dev \ + libxss1 \ + libasound2 msg_ok "Installed Dependencies" -PG_VERSION="16" setup_postgresql -PYTHON_VERSION="3.11" setup_uv - -msg_info "Setting up PostgreSQL Database" -DB_NAME=viseron -DB_USER=viseron_usr -DB_PASS="$(openssl rand -base64 18 | 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 "Viseron-Credentials" - echo "Viseron Database User: $DB_USER" - echo "Viseron Database Password: $DB_PASS" - echo "Viseron Database Name: $DB_NAME" -} >>~/viseron.creds -msg_ok "Set up PostgreSQL Database" - -msg_info "Setting up Hardware Acceleration" -if [[ "$CTTYPE" == "0" ]]; then - chgrp video /dev/dri - chmod 755 /dev/dri - chmod 660 /dev/dri/* -fi -msg_ok "Hardware Acceleration Configured" - -fetch_and_deploy_gh_release "viseron" "roflcoopter/viseron" +mkdir -p ~/.config/pip +cat >~/.config/pip/pip.conf </config/viseron.yaml @@ -152,14 +115,6 @@ motion_detection: enabled: true threshold: 25 sensitivity: 0.8 - -storage: - connection_string: postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME - recordings: /recordings - snapshots: /snapshots - segments: /segments - event_clips: /event_clips - thumbnails: /thumbnails EOF msg_ok "Created Default Configuration" @@ -173,7 +128,8 @@ After=network.target Type=simple User=root WorkingDirectory=/opt/viseron -ExecStart=/opt/viseron/.venv/bin/python -m viseron --config /config/viseron.yaml +Environment=PATH=/opt/viseron/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ExecStart=/opt/viseron/bin/viseron --config /config/viseron.yaml Restart=always RestartSec=10 @@ -185,8 +141,4 @@ msg_ok "Created Systemd Service" motd_ssh customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -msg_ok "Cleaned" +cleanup_lxc diff --git a/install/wanderer-install.sh b/install/wanderer-install.sh deleted file mode 100644 index 291957787..000000000 --- a/install/wanderer-install.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: rrole -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://wanderer.to - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -setup_go -setup_nodejs -fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary" "latest" "/opt/wanderer/source/search" -mkdir -p /opt/wanderer/{source,data/pb_data,data/meili_data} -fetch_and_deploy_gh_release "wanderer" "Flomp/wanderer" "tarball" "latest" "/opt/wanderer/source" - -msg_info "Installing wanderer (patience)" -cd /opt/wanderer/source/db -$STD go mod tidy -$STD go build -cd /opt/wanderer/source/web -$STD npm ci -s vitest -$STD npm ci --omit=dev -$STD npm run build -msg_ok "Installed wanderer" - -msg_info "Creating Service" -MEILI_KEY=$(openssl rand -hex 32) -POCKETBASE_KEY=$(openssl rand -hex 16) -LOCAL_IP="$(hostname -I | awk '{print $1}')" - -cat </opt/wanderer/.env -ORIGIN=http://${LOCAL_IP}:3000 -MEILI_HTTP_ADDR=${LOCAL_IP}:7700 -MEILI_URL=http://${LOCAL_IP}:7700 -MEILI_MASTER_KEY=${MEILI_KEY} -PB_URL=${LOCAL_IP}:8090 -PUBLIC_POCKETBASE_URL=http://${LOCAL_IP}:8090 -PUBLIC_VALHALLA_URL=https://valhalla1.openstreetmap.de -POCKETBASE_ENCRYPTION_KEY=${POCKETBASE_KEY} -PB_DB_LOCATION=/opt/wanderer/data/pb_data -MEILI_DB_PATH=/opt/wanderer/data/meili_data -EOF - -cat </opt/wanderer/start.sh -#!/usr/bin/env bash - -trap "kill 0" EXIT - -cd /opt/wanderer/source/search && meilisearch --master-key \$MEILI_MASTER_KEY & -sleep 1 -cd /opt/wanderer/source/db && ./pocketbase serve --http=\$PB_URL --dir=\$PB_DB_LOCATION & -cd /opt/wanderer/source/web && node build & - -wait -n -EOF -chmod +x /opt/wanderer/start.sh - -cat </etc/systemd/system/wanderer-web.service -[Unit] -Description=wanderer -After=network.target -StartLimitIntervalSec=10 -StartLimitBurst=5 - -[Service] -Type=simple -EnvironmentFile=/opt/wanderer/.env -ExecStart=/usr/bin/bash /opt/wanderer/start.sh -Restart=always -RestartSec=1 - -[Install] -WantedBy=multi-user.target -EOF -sleep 1 -systemctl enable -q --now wanderer-web -msg_ok "Created Service" - -motd_ssh -customize -cleanup_lxc diff --git a/install/web-check-install.sh b/install/web-check-install.sh deleted file mode 100644 index dd21d8ca9..000000000 --- a/install/web-check-install.sh +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/lissy93/web-check - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -export DEBIAN_FRONTEND=noninteractive -$STD apt -y install --no-install-recommends \ - git \ - traceroute \ - make \ - g++ \ - traceroute \ - xvfb \ - dbus \ - xorg \ - xvfb \ - gtk2-engines-pixbuf \ - dbus-x11 \ - xfonts-base \ - xfonts-100dpi \ - xfonts-75dpi \ - xfonts-scalable \ - imagemagick \ - x11-apps -msg_ok "Installed Dependencies" - -NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs - -msg_info "Setup Python3" -$STD apt install -y python3 -rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Setup Python3" - -msg_info "Installing Chromium" -curl -fsSL https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome-keyring.gpg -cat </dev/null -Types: deb -URIs: http://dl.google.com/linux/chrome/deb/ -Suites: stable -Components: main -Architectures: amd64 -Signed-By: /usr/share/keyrings/google-chrome-keyring.gpg -EOF -$STD apt update -$STD apt -y install \ - chromium \ - libxss1 \ - lsb-release -msg_ok "Installed Chromium" - -msg_info "Setting up Chromium" -/usr/bin/chromium --no-sandbox --version >/etc/chromium-version -chmod 755 /usr/bin/chromium -msg_ok "Setup Chromium" - -fetch_and_deploy_gh_release "web-check" "MickLesk/web-check" - -msg_info "Installing Web-Check (Patience)" -cd /opt/web-check -cat <<'EOF' >/opt/web-check/.env -CHROME_PATH=/usr/bin/chromium -PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium -HEADLESS=true -GOOGLE_CLOUD_API_KEY='' -REACT_APP_SHODAN_API_KEY='' -REACT_APP_WHO_API_KEY='' -SECURITY_TRAILS_API_KEY='' -CLOUDMERSIVE_API_KEY='' -TRANCO_USERNAME='' -TRANCO_API_KEY='' -URL_SCAN_API_KEY='' -BUILT_WITH_API_KEY='' -TORRENT_IP_API_KEY='' -PORT='3000' -DISABLE_GUI='false' -API_TIMEOUT_LIMIT='10000' -API_CORS_ORIGIN='*' -API_ENABLE_RATE_LIMIT='false' -REACT_APP_API_ENDPOINT='/api' -ENABLE_ANALYTICS='false' -EOF -$STD yarn install --frozen-lockfile --network-timeout 100000 -msg_ok "Installed Web-Check" - -msg_info "Building Web-Check" -$STD yarn build --production -rm -rf /var/lib/apt/lists/* /app/node_modules/.cache -msg_ok "Built Web-Check" - -msg_info "Creating Service" -cat <<'EOF' >/opt/run_web-check.sh -#!/bin/bash -SCREEN_RESOLUTION="1280x1024x24" -if ! systemctl is-active --quiet dbus; then - echo "Warning: dbus service is not running. Some features may not work properly." -fi -[[ -z "${DISPLAY}" ]] && export DISPLAY=":99" -Xvfb "${DISPLAY}" -screen 0 "${SCREEN_RESOLUTION}" & -XVFB_PID=$! -sleep 2 -cd /opt/web-check -exec yarn start -EOF -chmod +x /opt/run_web-check.sh -cat <<'EOF' >/etc/systemd/system/web-check.service -[Unit] -Description=Web Check Service -After=network.target - -[Service] -Type=simple -User=root -Group=root -WorkingDirectory=/opt/web-check -EnvironmentFile=/opt/web-check/.env -ExecStartPre=/bin/bash -c "service dbus start || true" -ExecStartPre=/bin/bash -c "if ! pgrep -f 'Xvfb.*:99' > /dev/null; then Xvfb :99 -screen 0 1280x1024x24 & fi" -ExecStart=/opt/run_web-check.sh -Restart=on-failure -Environment=DISPLAY=:99 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now web-check -msg_ok "Created Service" - -motd_ssh -customize -cleanup_lxc