diff --git a/ct/bentopdf.sh b/ct/bentopdf.sh deleted file mode 100644 index 0a9650efb..000000000 --- a/ct/bentopdf.sh +++ /dev/null @@ -1,62 +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: vhsdream -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/alam00000/bentopdf - -APP="BentoPDF" -var_tags="${var_tags:-pdf-editor}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-4}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/bentopdf ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - NODE_VERSION="24" setup_nodejs - - if check_for_gh_release "bentopdf" "alam00000/bentopdf"; then - msg_info "Stopping Service" - systemctl stop bentopdf - msg_ok "Stopped Service" - - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bentopdf" "alam00000/bentopdf" "tarball" "latest" "/opt/bentopdf" - - msg_info "Updating BentoPDF" - cd /opt/bentopdf - $STD npm ci --no-audit --no-fund - export SIMPLE_MODE=true - $STD npm run build -- --mode production - msg_ok "Updated BentoPDF" - - msg_info "Starting Service" - systemctl start bentopdf - 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}:8080${CL}" diff --git a/ct/bookstack.sh b/ct/bookstack.sh deleted file mode 100644 index 2034adbbc..000000000 --- a/ct/bookstack.sh +++ /dev/null @@ -1,81 +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://github.com/BookStackApp/BookStack - -APP="Bookstack" -var_tags="${var_tags:-organizer}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-1024}" -var_disk="${var_disk:-4}" -var_os="${var_os:-debian}" -var_version="${var_version:-12}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - - if [[ ! -d /opt/bookstack ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - if check_for_gh_release "bookstack" "BookStackApp/BookStack"; then - msg_info "Stopping Apache2" - systemctl stop apache2 - msg_ok "Services Stopped" - - msg_info "Backing up data" - mv /opt/bookstack /opt/bookstack-backup - msg_ok "Backup finished" - - setup_mariadb - fetch_and_deploy_gh_release "bookstack" "BookStackApp/BookStack" - PHP_MODULE="ldap,tidy,bz2,mysqli" PHP_FPM="YES" PHP_APACHE="YES" PHP_VERSION="8.3" setup_php - setup_composer - - msg_info "Restoring backup" - cp /opt/bookstack-backup/.env /opt/bookstack/.env - [[ -d /opt/bookstack-backup/public/uploads ]] && cp -a /opt/bookstack-backup/public/uploads/. /opt/bookstack/public/uploads/ - [[ -d /opt/bookstack-backup/storage/uploads ]] && cp -a /opt/bookstack-backup/storage/uploads/. /opt/bookstack/storage/uploads/ - [[ -d /opt/bookstack-backup/themes ]] && cp -a /opt/bookstack-backup/themes/. /opt/bookstack/themes/ - msg_ok "Backup restored" - - msg_info "Configuring BookStack" - cd /opt/bookstack - export COMPOSER_ALLOW_SUPERUSER=1 - $STD composer install --no-dev - $STD php artisan migrate --force - chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage - chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage - chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads - chmod -R 640 /opt/bookstack/.env - msg_ok "Configured BookStack" - - msg_info "Starting Apache2" - systemctl start apache2 - msg_ok "Started Apache2" - - msg_info "Cleaning Up" - rm -rf /opt/bookstack-backup - msg_ok "Cleaned" - 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}${CL}" diff --git a/ct/jellyfin.sh b/ct/jellyfin.sh deleted file mode 100644 index 4593ab21c..000000000 --- a/ct/jellyfin.sh +++ /dev/null @@ -1,53 +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://jellyfin.org/ - -APP="Jellyfin" -var_tags="${var_tags:-media}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-8}" -var_os="${var_os:-ubuntu}" -var_version="${var_version:-24.10}" -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 /usr/lib/jellyfin ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - msg_info "Updating Intel Dependencies" - fetch_and_deploy_gh_release "intel-igc-core-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-core-2_*_amd64.deb" - fetch_and_deploy_gh_release "intel-igc-opencl-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-opencl-2_*_amd64.deb" - fetch_and_deploy_gh_release "intel-libgdgmm12" "intel/compute-runtime" "binary" "latest" "" "libigdgmm12_*_amd64.deb" - fetch_and_deploy_gh_release "intel-opencl-icd" "intel/compute-runtime" "binary" "latest" "" "intel-opencl-icd_*_amd64.deb" - msg_ok "Updated Intel Dependencies" - - msg_info "Updating ${APP} LXC" - $STD apt-get update - $STD apt-get -y upgrade - $STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server - msg_ok "Updated ${APP} LXC" - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}" diff --git a/ct/livebook.sh b/ct/livebook.sh deleted file mode 100755 index 496503a30..000000000 --- a/ct/livebook.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: dkuku -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/livebook-dev/livebook - -APP="Livebook" -var_tags="${var_tags:-development}" -var_disk="${var_disk:-4}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-1024}" -var_os="${var_os:-ubuntu}" -var_version="${var_version:-24.04}" -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/livebook/.mix/escripts/livebook ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "livebook" "livebook-dev/livebook"; then - msg_info "Stopping Service" - systemctl stop livebook - msg_info "Stopped Service" - - msg_info "Updating Container" - $STD apt update - $STD apt upgrade -y - msg_ok "Updated Container" - - msg_info "Updating Livebook" - source /opt/livebook/.env - cd /opt/livebook - $STD mix escript.install hex livebook --force - - chown -R livebook:livebook /opt/livebook /data - systemctl start livebook - msg_ok "Updated Livebook" - msg_ok "Updated Successfully!" - fi - exit -} - -start -build_container -description - -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/reitti.sh b/ct/reitti.sh deleted file mode 100644 index 1025051cb..000000000 --- a/ct/reitti.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/dedicatedcode/reitti - -APP="Reitti" -var_tags="${var_tags:-location-tracker}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-15}" -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/reitti/reitti.jar ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - if check_for_gh_release "reitti" "dedicatedcode/reitti"; then - msg_info "Stopping Service" - systemctl stop reitti - msg_ok "Stopped Service" - - rm -f /opt/reitti/reitti.jar - USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "reitti" "dedicatedcode/reitti" "singlefile" "latest" "/opt/reitti" "reitti-app.jar" - mv /opt/reitti/reitti-*.jar /opt/reitti/reitti.jar - - msg_info "Starting Service" - systemctl start reitti - msg_ok "Started Service" - msg_ok "Updated Successfully!" - fi - if check_for_gh_release "photon" "dedicatedcode/reitti"; then - msg_info "Stopping Service" - systemctl stop photon - msg_ok "Stopped Service" - - rm -f /opt/photon/photon.jar - USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "photon" "komoot/photon" "singlefile" "latest" "/opt/photon" "photon-0*.jar" - mv /opt/photon/photon-*.jar /opt/photon/photon.jar - - msg_info "Starting Service" - systemctl start photon - 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}:8080${CL}" diff --git a/frontend/public/json/bentopdf.json b/frontend/public/json/bentopdf.json deleted file mode 100644 index 2a09b34cf..000000000 --- a/frontend/public/json/bentopdf.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "BentoPDF", - "slug": "bentopdf", - "categories": [ - 12 - ], - "date_created": "2025-10-30", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://github.com/alam00000/bentopdf", - "website": "https://www.bentopdf.com", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/bentopdf.webp", - "config_path": "", - "description": "A privacy-first, 100% client-side PDF Toolkit. No signups/accounts, works in the browser, online or offline.", - "install_methods": [ - { - "type": "default", - "script": "ct/bentopdf.sh", - "resources": { - "cpu": 1, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} diff --git a/frontend/public/json/livebook.json b/frontend/public/json/livebook.json deleted file mode 100644 index 0bad4f4f3..000000000 --- a/frontend/public/json/livebook.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "Livebook", - "slug": "livebook", - "categories": [ - 20 - ], - "date_created": "2025-10-30", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://hexdocs.pm/livebook/readme.html", - "config_path": null, - "website": "https://livebook.dev", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/livebook.webp", - "description": "Elixir Livebook is an interactive, web-based notebook platform for Elixir that combines code, documentation, and visualizations in a single document. Similar to Jupyter notebooks, it allows developers to write and execute Elixir code in real-time, making it ideal for data exploration, prototyping, learning, and collaborative development. Livebook features rich markdown support, built-in charting capabilities, and seamless integration with the Elixir ecosystem.", - "install_methods": [ - { - "type": "default", - "script": "ct/livebook.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "Ubuntu", - "version": "24.04" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Show initial Livebook password: `cat ~/livebook.creds`", - "type": "info" - } - ] -} diff --git a/frontend/public/json/reitti.json b/frontend/public/json/reitti.json deleted file mode 100644 index e97428ca3..000000000 --- a/frontend/public/json/reitti.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "Reitti", - "slug": "reitti", - "categories": [ - 21 - ], - "date_created": "2025-10-28", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://github.com/dedicatedcode/reitti", - "config_path": "/opt/reitti/.env", - "website": "https://www.dedicatedcode.com/projects/reitti/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/reitti.webp", - "description": "Reitti is a self-hosted location tracking and analysis platform that detects significant places, trip patterns, and integrates with OwnTracks, GPSLogger, and Immich. It uses PostgreSQL + PostGIS, RabbitMQ, Redis, and an optional Photon geocoder.", - "install_methods": [ - { - "type": "default", - "script": "ct/reitti.sh", - "resources": { - "cpu": 4, - "ram": 6144, - "hdd": 20, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" - }, - "notes": [ - { - "text": "Photon Geocoder must be running at http://127.0.0.1:2322. The installer sets this up Photon automatically, but without sample data. (filesize is big).", - "type": "info" - } - ] -} diff --git a/install/bentopdf-install.sh b/install/bentopdf-install.sh deleted file mode 100644 index f426200b2..000000000 --- a/install/bentopdf-install.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: vhsdream -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/alam00000/bentopdf - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -NODE_VERSION="24" setup_nodejs -fetch_and_deploy_gh_release "bentopdf" "alam00000/bentopdf" "tarball" "latest" "/opt/bentopdf" - -msg_info "Setup BentoPDF" -cd /opt/bentopdf -$STD npm ci --no-audit --no-fund -export SIMPLE_MODE=true -$STD npm run build -- --mode production -msg_ok "Setup BentoPDF" - -msg_info "Creating Service" -cat </etc/systemd/system/bentopdf.service -[Unit] -Description=BentoPDF Service -After=network.target - -[Service] -Type=simple -WorkingDirectory=/opt/bentopdf -ExecStart=/usr/bin/npx serve dist -p 8080 -Restart=always -RestartSec=10 - -[Install] -WantedBy=multi-user.target -EOF - -systemctl -q enable --now bentopdf -msg_ok "Created & started service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -$STD apt-get -y clean -msg_ok "Cleaned" diff --git a/install/livebook-install.sh b/install/livebook-install.sh deleted file mode 100644 index 1d24e25eb..000000000 --- a/install/livebook-install.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: dkuku -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/livebook-dev/livebook - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt-get install -y \ - build-essential \ - ca-certificates \ - cmake \ - git \ - libncurses5-dev -msg_ok "Installed Dependencies" - -msg_info "Creating livebook user" -mkdir -p /opt/livebook /data -export HOME=/opt/livebook -$STD adduser --system --group --home /opt/livebook --shell /bin/bash livebook -msg_ok "Created livebook user" - -msg_warn "WARNING: This script will run an external installer from a third-party source (https://elixir-lang.org)." -msg_warn "The following code is NOT maintained or audited by our repository." -msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" -msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://elixir-lang.org/install.sh" -echo -read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM -if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then - msg_error "Aborted by user. No changes have been made." - exit 10 -fi -curl -fsSO https://elixir-lang.org/install.sh -$STD sh install.sh elixir@latest otp@latest - -msg_info "Setup Erlang and Elixir" -ERLANG_VERSION=$(ls /opt/livebook/.elixir-install/installs/otp/ | head -n1) -ELIXIR_VERSION=$(ls /opt/livebook/.elixir-install/installs/elixir/ | head -n1) -LIVEBOOK_PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c16) - -export ERLANG_BIN="/opt/livebook/.elixir-install/installs/otp/$ERLANG_VERSION/bin" -export ELIXIR_BIN="/opt/livebook/.elixir-install/installs/elixir/$ELIXIR_VERSION/bin" -export PATH="$ERLANG_BIN:$ELIXIR_BIN:$PATH" - -$STD mix local.hex --force -$STD mix local.rebar --force -$STD mix escript.install hex livebook --force - -cat </opt/livebook/.env -export HOME=/opt/livebook -export ERLANG_VERSION=$ERLANG_VERSION -export ELIXIR_VERSION=$ELIXIR_VERSION -export LIVEBOOK_PORT=8080 -export LIVEBOOK_IP="::" -export LIVEBOOK_HOME=/data -export LIVEBOOK_PASSWORD="$LIVEBOOK_PASSWORD" -export ESCRIPTS_BIN=/opt/livebook/.mix/escripts -export ERLANG_BIN="/opt/livebook/.elixir-install/installs/otp/\${ERLANG_VERSION}/bin" -export ELIXIR_BIN="/opt/livebook/.elixir-install/installs/elixir/\${ELIXIR_VERSION}/bin" -export PATH="\$ESCRIPTS_BIN:\$ERLANG_BIN:\$ELIXIR_BIN:\$PATH" -EOF -{ - echo "Livebook-Credentials" - echo "Livebook Password: $LIVEBOOK_PASSWORD" -} >>~/livebook.creds -msg_ok "Installed Erlang $ERLANG_VERSION and Elixir $ELIXIR_VERSION" - -msg_info "Installing Livebook" -cat </etc/systemd/system/livebook.service -[Unit] -Description=Livebook -After=network.target - -[Service] -Type=exec -User=livebook -Group=livebook -WorkingDirectory=/data -EnvironmentFile=-/opt/livebook/.env -ExecStart=/bin/bash -c 'source /opt/livebook/.env && cd /opt/livebook && livebook server' -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target -EOF -chown -R livebook:livebook /opt/livebook /data -systemctl enable -q --now livebook -msg_ok "Installed Livebook" - -motd_ssh -customize - -msg_info "Cleaning Up" -$STD apt autoremove -y -$STD apt autoclean -y -$STD apt clean -y -msg_ok "Cleaned Up" diff --git a/install/proxmox-datacenter-manager-install.sh b/install/proxmox-datacenter-manager-install.sh deleted file mode 100644 index e9a3c3006..000000000 --- a/install/proxmox-datacenter-manager-install.sh +++ /dev/null @@ -1,33 +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: Proxmox Server Solution GmbH - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Proxmox Datacenter Manager" -curl -fsSL https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -o /usr/share/keyrings/proxmox-archive-keyring.gpg -echo "deb [signed-by=/usr/share/keyrings/proxmox-archive-keyring.gpg] http://download.proxmox.com/debian/pdm bookworm pdm-test " >/etc/apt/sources.list.d/pdm-test.list -$STD apt-get update -DEBIAN_FRONTEND=noninteractive -$STD apt-get -o Dpkg::Options::="--force-confdef" \ - -o Dpkg::Options::="--force-confold" \ - install -y proxmox-datacenter-manager \ - proxmox-datacenter-manager-ui -msg_ok "Installed Proxmox Datacenter Manager" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/reitti-install.sh b/install/reitti-install.sh deleted file mode 100644 index 021cdc3be..000000000 --- a/install/reitti-install.sh +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE -# Source: https://github.com/dedicatedcode/reitti - -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 \ - rabbitmq-server \ - libpq-dev \ - zstd -msg_ok "Installed Dependencies" - -JAVA_VERSION="24" setup_java -PG_VERSION="17" PG_MODULES="postgis" setup_postgresql - -msg_info "Setting up PostgreSQL" -DB_NAME="reitti_db" -DB_USER="reitti" -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';" -$STD sudo -u postgres psql -d "$DB_NAME" -c "CREATE EXTENSION IF NOT EXISTS postgis;" -$STD sudo -u postgres psql -d "$DB_NAME" -c "CREATE EXTENSION IF NOT EXISTS postgis_topology;" -{ - echo "Reitti Credentials" - echo "Database Name: $DB_NAME" - echo "Database User: $DB_USER" - echo "Database Password: $DB_PASS" -} >>~/reitti.creds -msg_ok "PostgreSQL Setup Completed" - -msg_info "Configuring RabbitMQ" -RABBIT_USER="reitti" -RABBIT_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)" -RABBIT_VHOST="/" -$STD rabbitmqctl add_user "$RABBIT_USER" "$RABBIT_PASS" -$STD rabbitmqctl add_vhost "$RABBIT_VHOST" -$STD rabbitmqctl set_permissions -p "$RABBIT_VHOST" "$RABBIT_USER" ".*" ".*" ".*" -$STD rabbitmqctl set_user_tags "$RABBIT_USER" administrator -{ - echo "" - echo "Reitti Credentials" - echo "RabbitMQ User: $RABBIT_USER" - echo "RabbitMQ Password: $RABBIT_PASS" -} >>~/reitti.creds -msg_ok "Configured RabbitMQ" - -USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "reitti" "dedicatedcode/reitti" "singlefile" "latest" "/opt/reitti" "reitti-app.jar" -mv /opt/reitti/reitti-*.jar /opt/reitti/reitti.jar -USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "photon" "komoot/photon" "singlefile" "latest" "/opt/photon" "photon-0*.jar" -mv /opt/photon/photon-*.jar /opt/photon/photon.jar - -msg_info "Creating Reitti Configuration-File" -cat </opt/reitti/application.properties -# Reitti Server Base URI -reitti.server.advertise-uri=http://127.0.0.1:8080 - -# PostgreSQL Database Connection -spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/$DB_NAME -spring.datasource.username=$DB_USER -spring.datasource.password=$DB_PASS -spring.datasource.driver-class-name=org.postgresql.Driver - -# Flyway Database Migrations -spring.flyway.enabled=true -spring.flyway.locations=classpath:db/migration -spring.flyway.baseline-on-migrate=true - -# RabbitMQ (Message Queue) -spring.rabbitmq.host=127.0.0.1 -spring.rabbitmq.port=5672 -spring.rabbitmq.username=$RABBIT_USER -spring.rabbitmq.password=$RABBIT_PASS - -# Redis (Cache) -spring.data.redis.host=127.0.0.1 -spring.data.redis.port=6379 - -# Server Port -server.port=8080 - -# Optional: Logging & Performance -logging.level.root=INFO -spring.jpa.hibernate.ddl-auto=none -spring.datasource.hikari.maximum-pool-size=10 - -# OIDC / Security Settings -reitti.security.oidc.registration.enabled=false - -# Photon (Geocoding) -PHOTON_BASE_URL=http://127.0.0.1:2322 -PROCESSING_WAIT_TIME=15 -PROCESSING_BATCH_SIZE=1000 -PROCESSING_WORKERS_PER_QUEUE=4-16 - -# Disable potentially dangerous features unless needed -DANGEROUS_LIFE=false -EOF -msg_ok "Created Configuration-File for Reitti" - -msg_info "Creating Services" -cat </etc/systemd/system/reitti.service -[Unit] -Description=Reitti -After=network.target postgresql.service redis-server.service rabbitmq-server.service photon.service -Wants=postgresql.service redis-server.service rabbitmq-server.service photon.service - -[Service] -Type=simple -WorkingDirectory=/opt/reitti/ -ExecStart=/usr/bin/java --enable-native-access=ALL-UNNAMED -jar -Xmx2g reitti.jar -TimeoutStopSec=20 -KillMode=process -Restart=on-failure - -[Install] -WantedBy=multi-user.target -EOF - -cat <<'EOF' >/etc/systemd/system/photon.service -[Unit] -Description=Photon Geocoding Service (Germany, OpenSearch) -After=network.target - -[Service] -Type=simple -WorkingDirectory=/opt/photon -ExecStart=/usr/bin/java -Xmx4g -jar photon.jar \ - -data-dir /opt/photon \ - -listen-port 2322 \ - -listen-ip 0.0.0.0 \ - -cors-any -Restart=on-failure -TimeoutStopSec=20 - -[Install] -WantedBy=multi-user.target -EOF - -systemctl enable -q --now photon -systemctl enable -q --now reitti -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"