diff --git a/.github/workflows/close-ttek-issues.yaml b/.github/workflows/close-ttek-issues.yaml index a921a5e61..b359414fc 100644 --- a/.github/workflows/close-ttek-issues.yaml +++ b/.github/workflows/close-ttek-issues.yaml @@ -5,6 +5,7 @@ on: jobs: close_tteck_issues: + if: github.repository == 'community-scripts/ProxmoxVE' runs-on: ubuntu-latest steps: - name: Auto-close if tteck script detected diff --git a/.github/workflows/frontend-cicd.yml b/.github/workflows/frontend-cicd.yml index 139720c3f..f547f0c50 100644 --- a/.github/workflows/frontend-cicd.yml +++ b/.github/workflows/frontend-cicd.yml @@ -88,7 +88,7 @@ jobs: deploy: runs-on: ubuntu-latest needs: build - if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/main' && github.repository == 'community-scripts/ProxmoxVE' permissions: pages: write id-token: write diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c3783a44..417b1fbe3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,340 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment. +## 2025-05-12 + +### πŸš€ Updated Scripts + + - Alpine: Use onliner for updates [@tremor021](https://github.com/tremor021) ([#4414](https://github.com/community-scripts/ProxmoxVE/pull/4414)) + + - #### ✨ New Features + + - Feature: LXC-Delete (pve helper): add "all items" [@MickLesk](https://github.com/MickLesk) ([#4296](https://github.com/community-scripts/ProxmoxVE/pull/4296)) + +### 🧰 Maintenance + + - #### πŸ’Ύ Core + + - Config file Function in build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4411](https://github.com/community-scripts/ProxmoxVE/pull/4411)) + +### 🌐 Website + + - #### πŸ“ Script Information + + - Navidrome - Fix config path (use /etc/ instead of /var/lib) [@quake1508](https://github.com/quake1508) ([#4406](https://github.com/community-scripts/ProxmoxVE/pull/4406)) + +## 2025-05-11 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Zammad: Enable ElasticSearch service [@tremor021](https://github.com/tremor021) ([#4391](https://github.com/community-scripts/ProxmoxVE/pull/4391)) + +## 2025-05-10 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - (fix) Documenso: fix build failures [@vhsdream](https://github.com/vhsdream) ([#4382](https://github.com/community-scripts/ProxmoxVE/pull/4382)) + - Jellyseerr: better handling of node and pnpm [@MickLesk](https://github.com/MickLesk) ([#4365](https://github.com/community-scripts/ProxmoxVE/pull/4365)) + +## 2025-05-09 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Authentik: change install to UV & increase resources to 10GB RAM [@MickLesk](https://github.com/MickLesk) ([#4364](https://github.com/community-scripts/ProxmoxVE/pull/4364)) + + - #### ✨ New Features + + - HomeAssistant-Core: update script for 2025.5+ [@MickLesk](https://github.com/MickLesk) ([#4363](https://github.com/community-scripts/ProxmoxVE/pull/4363)) + - Feature: autologin for Alpine [@MickLesk](https://github.com/MickLesk) ([#4344](https://github.com/community-scripts/ProxmoxVE/pull/4344)) + +### 🧰 Maintenance + + - #### πŸ’Ύ Core + + - fix: detect all bridge types, not just vmbr prefix [@filippolauria](https://github.com/filippolauria) ([#4351](https://github.com/community-scripts/ProxmoxVE/pull/4351)) + + - #### πŸ“‚ Github + + - Add a Repo check to all Workflows [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4339](https://github.com/community-scripts/ProxmoxVE/pull/4339)) + - Auto-Merge Automatic PR [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4343](https://github.com/community-scripts/ProxmoxVE/pull/4343)) + +## 2025-05-08 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - SearXNG: fix to resolve yaml dependency error [@Biendeo](https://github.com/Biendeo) ([#4322](https://github.com/community-scripts/ProxmoxVE/pull/4322)) + - Bugfix: Mikrotik & Pimox HAOS VM (NEXTID) [@MickLesk](https://github.com/MickLesk) ([#4313](https://github.com/community-scripts/ProxmoxVE/pull/4313)) + +### 🧰 Maintenance + + - #### πŸ’Ύ Core + + - build.func Change the menu for Bridge Selection [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4326](https://github.com/community-scripts/ProxmoxVE/pull/4326)) + +### 🌐 Website + + - FAQ: Explanation "updatable" [@tremor021](https://github.com/tremor021) ([#4300](https://github.com/community-scripts/ProxmoxVE/pull/4300)) + +## 2025-05-07 + +### πŸš€ Updated Scripts + + - Alpine scripts: Set minimum disk space to 0.5GB [@tremor021](https://github.com/tremor021) ([#4288](https://github.com/community-scripts/ProxmoxVE/pull/4288)) + + - #### 🐞 Bug Fixes + + - SuwayomiServer: Bump Java to v21, code formating [@tremor021](https://github.com/tremor021) ([#3987](https://github.com/community-scripts/ProxmoxVE/pull/3987)) + + - #### ✨ New Features + + - Feature: get correct next VMID [@MickLesk](https://github.com/MickLesk) ([#4292](https://github.com/community-scripts/ProxmoxVE/pull/4292)) + +### 🌐 Website + + - #### πŸ“ Script Information + + - OpenWebUI: Update docs link [@tremor021](https://github.com/tremor021) ([#4298](https://github.com/community-scripts/ProxmoxVE/pull/4298)) + +## 2025-05-06 + +### πŸ†• New Scripts + + - alpine-transmission ([#4277](https://github.com/community-scripts/ProxmoxVE/pull/4277)) +- streamlink-webui ([#4262](https://github.com/community-scripts/ProxmoxVE/pull/4262)) +- Fumadocs ([#4263](https://github.com/community-scripts/ProxmoxVE/pull/4263)) +- alpine-rclone ([#4265](https://github.com/community-scripts/ProxmoxVE/pull/4265)) +- alpine-tinyauth ([#4264](https://github.com/community-scripts/ProxmoxVE/pull/4264)) +- Re-Add: ActualBudget [@MickLesk](https://github.com/MickLesk) ([#4228](https://github.com/community-scripts/ProxmoxVE/pull/4228)) + +### 🧰 Maintenance + + - #### 🐞 Bug Fixes + + - whiptail menu - cancel button now exists the advanced menu [@MickLesk](https://github.com/MickLesk) ([#4259](https://github.com/community-scripts/ProxmoxVE/pull/4259)) + +## 2025-05-05 + +### πŸ†• New Scripts + + - Alpine-Komodo [@MickLesk](https://github.com/MickLesk) ([#4234](https://github.com/community-scripts/ProxmoxVE/pull/4234)) + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Docker VM: Fix variable doublequoting [@tremor021](https://github.com/tremor021) ([#4245](https://github.com/community-scripts/ProxmoxVE/pull/4245)) + - Alpine-Vaultwarden: Fix sed and better cert generation [@tremor021](https://github.com/tremor021) ([#4232](https://github.com/community-scripts/ProxmoxVE/pull/4232)) + - Apache Guacamole: Fix Version Grepping [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4229](https://github.com/community-scripts/ProxmoxVE/pull/4229)) + + - #### ✨ New Features + + - Docker-VM: Add Disk Size choice [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4241](https://github.com/community-scripts/ProxmoxVE/pull/4241)) + + - #### πŸ”§ Refactor + + - Refactor: Komodo update logic [@MickLesk](https://github.com/MickLesk) ([#4231](https://github.com/community-scripts/ProxmoxVE/pull/4231)) + +### 🧰 Maintenance + + - #### πŸ’Ύ Core + + - tools.func: better function handling + gs as new helper [@MickLesk](https://github.com/MickLesk) ([#4238](https://github.com/community-scripts/ProxmoxVE/pull/4238)) + +## 2025-05-04 + +### 🌐 Website + + - Code Server: Update misleading name, description and icon. [@ArmainAP](https://github.com/ArmainAP) ([#4211](https://github.com/community-scripts/ProxmoxVE/pull/4211)) + +## 2025-05-03 + +### πŸš€ Updated Scripts + + - Vaultwarden: Enable HTTPS by default [@tremor021](https://github.com/tremor021) ([#4197](https://github.com/community-scripts/ProxmoxVE/pull/4197)) + + - #### 🐞 Bug Fixes + + - Vaultwarden: Fix access URL [@tremor021](https://github.com/tremor021) ([#4199](https://github.com/community-scripts/ProxmoxVE/pull/4199)) + +### 🌐 Website + + - #### πŸ“ Script Information + + - SFTPGo: Switch updatable to true on website [@tremor021](https://github.com/tremor021) ([#4186](https://github.com/community-scripts/ProxmoxVE/pull/4186)) + +## 2025-05-02 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - NetBox: Fix typo in sed command, preventing install [@tremor021](https://github.com/tremor021) ([#4179](https://github.com/community-scripts/ProxmoxVE/pull/4179)) + +### 🌐 Website + + - #### 🐞 Bug Fixes + + - Changed the random script button to be the same as all the other buttons [@BramSuurdje](https://github.com/BramSuurdje) ([#4183](https://github.com/community-scripts/ProxmoxVE/pull/4183)) + + - #### πŸ“ Script Information + + - Habitica: correct config path [@DrDonoso](https://github.com/DrDonoso) ([#4181](https://github.com/community-scripts/ProxmoxVE/pull/4181)) + +## 2025-05-01 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Readeck: Fix release crawling [@tremor021](https://github.com/tremor021) ([#4172](https://github.com/community-scripts/ProxmoxVE/pull/4172)) + + - #### ✨ New Features + + - homepage: Add build time var [@burgerga](https://github.com/burgerga) ([#4167](https://github.com/community-scripts/ProxmoxVE/pull/4167)) + +### 🌐 Website + + - Bump vite from 6.2.6 to 6.3.4 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#4159](https://github.com/community-scripts/ProxmoxVE/pull/4159)) + + - #### πŸ“ Script Information + + - Grafana: add config path & documentation [@JamborJan](https://github.com/JamborJan) ([#4162](https://github.com/community-scripts/ProxmoxVE/pull/4162)) + +## 2025-04-30 + +### πŸš€ Updated Scripts + + - Refactor: Matterbridge [@MickLesk](https://github.com/MickLesk) ([#4148](https://github.com/community-scripts/ProxmoxVE/pull/4148)) +- Refactor: Ollama & Adding to Website [@MickLesk](https://github.com/MickLesk) ([#4147](https://github.com/community-scripts/ProxmoxVE/pull/4147)) + +### 🌐 Website + + - #### πŸ“ Script Information + + - mark Caddy as updateable [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4154](https://github.com/community-scripts/ProxmoxVE/pull/4154)) + - Website: Add missing docs and config paths [@tremor021](https://github.com/tremor021) ([#4131](https://github.com/community-scripts/ProxmoxVE/pull/4131)) + +## 2025-04-29 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Umlautadaptarr Service File [@MickLesk](https://github.com/MickLesk) ([#4124](https://github.com/community-scripts/ProxmoxVE/pull/4124)) + - CheckMK added filter to not install beta versions [@briodan](https://github.com/briodan) ([#4118](https://github.com/community-scripts/ProxmoxVE/pull/4118)) + + - #### πŸ”§ Refactor + + - Refactor: sabnzbd [@MickLesk](https://github.com/MickLesk) ([#4127](https://github.com/community-scripts/ProxmoxVE/pull/4127)) + - Refactor: Navidrome [@MickLesk](https://github.com/MickLesk) ([#4120](https://github.com/community-scripts/ProxmoxVE/pull/4120)) + +### 🧰 Maintenance + + - #### ✨ New Features + + - core: add setup_uv() function to automate installation and updating of uv [@MickLesk](https://github.com/MickLesk) ([#4129](https://github.com/community-scripts/ProxmoxVE/pull/4129)) + - core: persist /usr/local/bin via profile.d helper [@MickLesk](https://github.com/MickLesk) ([#4133](https://github.com/community-scripts/ProxmoxVE/pull/4133)) + + - #### πŸ“ Documentation + + - SECURITY.md: add pve 8.4 as supported [@MickLesk](https://github.com/MickLesk) ([#4123](https://github.com/community-scripts/ProxmoxVE/pull/4123)) + +### 🌐 Website + + - #### ✨ New Features + + - Feat: Random Script picker for Website [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4090](https://github.com/community-scripts/ProxmoxVE/pull/4090)) + +## 2025-04-28 + +### πŸ†• New Scripts + + - umlautadaptarr ([#4093](https://github.com/community-scripts/ProxmoxVE/pull/4093)) +- documenso ([#4080](https://github.com/community-scripts/ProxmoxVE/pull/4080)) + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Install rsync in ct/commafeed.sh [@mzhaodev](https://github.com/mzhaodev) ([#4086](https://github.com/community-scripts/ProxmoxVE/pull/4086)) + - fstrim: cancel/no whiptail support [@PonyXplosion](https://github.com/PonyXplosion) ([#4101](https://github.com/community-scripts/ProxmoxVE/pull/4101)) + - clean-lxc.sh: cancel/no whiptail support [@PonyXplosion](https://github.com/PonyXplosion) ([#4102](https://github.com/community-scripts/ProxmoxVE/pull/4102)) + + - #### ✨ New Features + + - karakeep: add cli and mcp build commands [@vhsdream](https://github.com/vhsdream) ([#4112](https://github.com/community-scripts/ProxmoxVE/pull/4112)) + - Make apt-cacher-ng a client of its own server [@pgcudahy](https://github.com/pgcudahy) ([#4092](https://github.com/community-scripts/ProxmoxVE/pull/4092)) + +### 🧰 Maintenance + + - #### ✨ New Features + + - Add: tools.func [@MickLesk](https://github.com/MickLesk) ([#4100](https://github.com/community-scripts/ProxmoxVE/pull/4100)) + + - #### πŸ’Ύ Core + + - core: remove unneeded logging [@MickLesk](https://github.com/MickLesk) ([#4103](https://github.com/community-scripts/ProxmoxVE/pull/4103)) + +### 🌐 Website + + - Website: Fix frontend path in footer [@tremor021](https://github.com/tremor021) ([#4108](https://github.com/community-scripts/ProxmoxVE/pull/4108)) + + - #### πŸ“ Script Information + + - GoMFT: Move configuration info into config_path [@tremor021](https://github.com/tremor021) ([#4106](https://github.com/community-scripts/ProxmoxVE/pull/4106)) + +## 2025-04-27 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Re-Add DeamonSync Package [@MickLesk](https://github.com/MickLesk) ([#4079](https://github.com/community-scripts/ProxmoxVE/pull/4079)) + +### 🌐 Website + + - #### πŸ“ Script Information + + - add default configuration file location for Caddy LXC [@aly-yvette](https://github.com/aly-yvette) ([#4074](https://github.com/community-scripts/ProxmoxVE/pull/4074)) + +## 2025-04-26 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Element Synapse: Fix install script cd command error [@thegeorgeliu](https://github.com/thegeorgeliu) ([#4066](https://github.com/community-scripts/ProxmoxVE/pull/4066)) + +## 2025-04-25 + +### πŸš€ Updated Scripts + + - #### 🐞 Bug Fixes + + - Element Synapse: Fix update for older versions [@tremor021](https://github.com/tremor021) ([#4050](https://github.com/community-scripts/ProxmoxVE/pull/4050)) + +### 🌐 Website + + - #### 🐞 Bug Fixes + + - Only show update source when app is marked updateable [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4059](https://github.com/community-scripts/ProxmoxVE/pull/4059)) + + - #### πŸ“ Script Information + + - Filebrowser: Add Category Files & Donwloads [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4055](https://github.com/community-scripts/ProxmoxVE/pull/4055)) + +### πŸ’₯ Breaking Changes + + - Removal of Seafile due to recurring problems [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4058](https://github.com/community-scripts/ProxmoxVE/pull/4058)) + ## 2025-04-24 ### πŸš€ Updated Scripts diff --git a/SECURITY.md b/SECURITY.md index cf5e73282..c2ad24e54 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -3,6 +3,7 @@ This project currently supports the following versions of Proxmox VE: | Version | Supported | | ------- | ------------------ | +| 8.4.x | :white_check_mark: | | 8.3.x | :white_check_mark: | | 8.2.x | :white_check_mark: | | 8.1.x | :white_check_mark: | diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh new file mode 100644 index 000000000..21da48ca9 --- /dev/null +++ b/ct/actualbudget.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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://actualbudget.org/ + +APP="Actual Budget" +var_tags="finance" +var_cpu="2" +var_ram="2048" +var_disk="4" +var_os="debian" +var_version="12" +var_unprivileged="1" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/actualbudget ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + NODE_VERSION="22" + install_node_and_modules + RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ -f /opt/actualbudget-data/config.json ]]; then + if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then + msg_info "Stopping ${APP}" + systemctl stop actualbudget + msg_ok "${APP} Stopped" + + msg_info "Updating ${APP} to ${RELEASE}" + $STD npm update -g @actual-app/sync-server + echo "${RELEASE}" >/opt/actualbudget_version.txt + msg_ok "Updated ${APP} to ${RELEASE}" + + msg_info "Starting ${APP}" + systemctl start actualbudget + msg_ok "Restarted ${APP}" + else + msg_info "${APP} is already up to date" + fi + else + msg_info "Old Installation Found, you need to migrate your data and recreate to a new container" + msg_info "Please follow the instructions on the ${APP} website to migrate your data" + msg_info "https://actualbudget.org/docs/backup-restore/backup" + exit 1 + 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}https://${IP}:5006${CL}" diff --git a/ct/alpine-adguard.sh b/ct/alpine-adguard.sh index 688d6ad8a..5dca95fa6 100644 --- a/ct/alpine-adguard.sh +++ b/ct/alpine-adguard.sh @@ -20,21 +20,20 @@ color catch_errors function update_script() { - header_info - msg_info "Updating Alpine Packages" - $STD apk update - $STD apk upgrade - msg_ok "Updated Alpine Packages" + header_info + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" - msg_info "Updating AdGuard Home" - $STD /opt/AdGuardHome/AdGuardHome --update - msg_ok "Updated AdGuard Home" + msg_info "Updating AdGuard Home" + $STD /opt/AdGuardHome/AdGuardHome --update + msg_ok "Updated AdGuard Home" - msg_info "Restarting AdGuard Home" - $STD rc-service adguardhome restart - msg_ok "Restarted AdGuard Home" + msg_info "Restarting AdGuard Home" + $STD rc-service adguardhome restart + msg_ok "Restarted AdGuard Home" - exit 0 + exit 0 } start diff --git a/ct/alpine-docker.sh b/ct/alpine-docker.sh index 045d04964..52ee62866 100644 --- a/ct/alpine-docker.sh +++ b/ct/alpine-docker.sh @@ -36,7 +36,7 @@ function update_script() { header_info case $CHOICE in 1) - apk update && apk upgrade + $STD apk -U upgrade exit ;; esac diff --git a/ct/alpine-gitea.sh b/ct/alpine-gitea.sh index fec1032eb..1443a46fb 100644 --- a/ct/alpine-gitea.sh +++ b/ct/alpine-gitea.sh @@ -20,19 +20,18 @@ color catch_errors function update_script() { - header_info - msg_info "Updating Alpine Packages" - apk update - apk upgrade - msg_ok "Updated Alpine Packages" + header_info + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" - msg_info "Updating Gitea" - apk upgrade gitea - msg_ok "Updated Gitea" + msg_info "Updating Gitea" + apk upgrade gitea + msg_ok "Updated Gitea" - msg_info "Restarting Gitea" - rc-service gitea restart - msg_ok "Restarted Gitea" + msg_info "Restarting Gitea" + rc-service gitea restart + msg_ok "Restarted Gitea" } start @@ -42,4 +41,4 @@ 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}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-grafana.sh b/ct/alpine-grafana.sh index b9fae0030..971740f1e 100644 --- a/ct/alpine-grafana.sh +++ b/ct/alpine-grafana.sh @@ -39,7 +39,7 @@ function update_script() { header_info case $CHOICE in 1) - apk update && apk upgrade + $STD apk -U upgrade exit ;; 2) diff --git a/ct/alpine-it-tools.sh b/ct/alpine-it-tools.sh index 27d2f97d5..c50587130 100644 --- a/ct/alpine-it-tools.sh +++ b/ct/alpine-it-tools.sh @@ -9,7 +9,7 @@ APP="Alpine-IT-Tools" var_tags="${var_tags:-alpine;development}" var_cpu="${var_cpu:-1}" var_ram="${var_ram:-256}" -var_disk="${var_disk:-0.2}" +var_disk="${var_disk:-0.5}" var_os="${var_os:-alpine}" var_version="${var_version:-3.21}" var_unprivileged="${var_unprivileged:-1}" @@ -20,32 +20,32 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources + header_info + check_container_storage + check_container_resources - if [ ! -d /usr/share/nginx/html ]; then - msg_error "No ${APP} Installation Found!" - exit 1 - fi + if [ ! -d /usr/share/nginx/html ]; then + msg_error "No ${APP} Installation Found!" + exit 1 + fi - RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4) - if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then - DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" - msg_info "Updating ${APP} LXC" - curl -fsSL -o it-tools.zip "$DOWNLOAD_URL" - mkdir -p /usr/share/nginx/html - rm -rf /usr/share/nginx/html/* - unzip -q it-tools.zip -d /tmp/it-tools - cp -r /tmp/it-tools/dist/* /usr/share/nginx/html - rm -rf /tmp/it-tools - rm -f it-tools.zip - msg_ok "Updated Successfully" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi + RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4) + if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then + DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" + msg_info "Updating ${APP} LXC" + curl -fsSL -o it-tools.zip "$DOWNLOAD_URL" + mkdir -p /usr/share/nginx/html + rm -rf /usr/share/nginx/html/* + unzip -q it-tools.zip -d /tmp/it-tools + cp -r /tmp/it-tools/dist/* /usr/share/nginx/html + rm -rf /tmp/it-tools + rm -f it-tools.zip + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi - exit 0 + exit 0 } start @@ -55,4 +55,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following IP:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/ct/alpine-komodo.sh b/ct/alpine-komodo.sh new file mode 100644 index 000000000..68e96cb3e --- /dev/null +++ b/ct/alpine-komodo.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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://komo.do + +APP="Alpine-Komodo" +var_tags="${var_tags:-docker,alpine}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-1024}" +var_disk="${var_disk:-10}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.21}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + [[ -d /opt/komodo ]] || { + msg_error "No ${APP} Installation Found!" + exit 1 + } + + msg_info "Updating ${APP}" + COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1) + if [[ -z "$COMPOSE_FILE" ]]; then + msg_error "No valid compose file found in /opt/komodo!" + exit 1 + fi + COMPOSE_BASENAME=$(basename "$COMPOSE_FILE") + BACKUP_FILE="/opt/komodo/${COMPOSE_BASENAME}.bak_$(date +%Y%m%d_%H%M%S)" + cp "$COMPOSE_FILE" "$BACKUP_FILE" || { + msg_error "Failed to create backup of ${COMPOSE_BASENAME}!" + exit 1 + } + GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_BASENAME}" + if ! curl -fsSL "$GITHUB_URL" -o "$COMPOSE_FILE"; then + msg_error "Failed to download ${COMPOSE_BASENAME} from GitHub!" + mv "$BACKUP_FILE" "$COMPOSE_FILE" + exit 1 + fi + $STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d + msg_ok "Updated ${APP}" + 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}:9120${CL}" diff --git a/ct/alpine-mariadb.sh b/ct/alpine-mariadb.sh index 85a3330fa..3bec8f6a2 100644 --- a/ct/alpine-mariadb.sh +++ b/ct/alpine-mariadb.sh @@ -20,20 +20,19 @@ color catch_errors function update_script() { - msg_info "Updating Alpine Packages" - $STD apk update - $STD apk upgrade - msg_ok "Updated Alpine Packages" + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" - msg_info "Updating MariaDB" - $STD apk upgrade mariadb mariadb-client - msg_ok "Updated MariaDB" + msg_info "Updating MariaDB" + $STD apk upgrade mariadb mariadb-client + msg_ok "Updated MariaDB" - msg_info "Restarting MariaDB" - $STD rc-service mariadb restart - msg_ok "Restarted MariaDB" + msg_info "Restarting MariaDB" + $STD rc-service mariadb restart + msg_ok "Restarted MariaDB" - exit 0 + exit 0 } start diff --git a/ct/alpine-node-red.sh b/ct/alpine-node-red.sh index 438ad9ec5..ae94858f1 100644 --- a/ct/alpine-node-red.sh +++ b/ct/alpine-node-red.sh @@ -20,24 +20,23 @@ color catch_errors function update_script() { - msg_info "Updating Alpine Packages" - $STD apk update - $STD apk upgrade - msg_ok "Updated Alpine Packages" + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" - msg_info "Updating Node.js and npm" - $STD apk upgrade nodejs npm - msg_ok "Updated Node.js and npm" + msg_info "Updating Node.js and npm" + $STD apk upgrade nodejs npm + msg_ok "Updated Node.js and npm" - msg_info "Updating Node-RED" - $STD npm install -g --unsafe-perm node-red - msg_ok "Updated Node-RED" + msg_info "Updating Node-RED" + $STD npm install -g --unsafe-perm node-red + msg_ok "Updated Node-RED" - msg_info "Restarting Node-RED" - $STD rc-service nodered restart - msg_ok "Restarted Node-RED" + msg_info "Restarting Node-RED" + $STD rc-service nodered restart + msg_ok "Restarted Node-RED" - exit 0 + exit 0 } start diff --git a/ct/alpine-postgresql.sh b/ct/alpine-postgresql.sh index 5e9a9492c..4b8788c5b 100644 --- a/ct/alpine-postgresql.sh +++ b/ct/alpine-postgresql.sh @@ -21,8 +21,7 @@ catch_errors function update_script() { msg_info "Updating Alpine Packages" - $STD apk update - $STD apk upgrade + $STD apk -U upgrade msg_ok "Updated Alpine Packages" msg_info "Updating PostgreSQL" diff --git a/ct/alpine-prometheus.sh b/ct/alpine-prometheus.sh index 6340c8338..7491ead3a 100644 --- a/ct/alpine-prometheus.sh +++ b/ct/alpine-prometheus.sh @@ -20,20 +20,19 @@ color catch_errors function update_script() { - msg_info "Updating Alpine Packages" - $STD apk update - $STD apk upgrade - msg_ok "Updated Alpine Packages" + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" - msg_info "Updating Prometheus" - $STD apk upgrade prometheus - msg_ok "Updated Prometheus" + msg_info "Updating Prometheus" + $STD apk upgrade prometheus + msg_ok "Updated Prometheus" - msg_info "Restarting Prometheus" - $STD rc-service prometheus restart - msg_ok "Restarted Prometheus" + msg_info "Restarting Prometheus" + $STD rc-service prometheus restart + msg_ok "Restarted Prometheus" - exit 0 + exit 0 } start diff --git a/ct/alpine-rclone.sh b/ct/alpine-rclone.sh new file mode 100644 index 000000000..d3e7fd7c3 --- /dev/null +++ b/ct/alpine-rclone.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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://github.com/rclone/rclone + +APP="Alpine-rclone" +var_tags="${var_tags:-alpine;backup}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-256}" +var_disk="${var_disk:-1}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.21}" +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/rclone ]; then + msg_error "No ${APP} Installation Found!" + exit 1 + fi + + RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [ "${RELEASE}" != "$(cat /opt/rclone_version.txt)" ] || [ ! -f /opt/rclone_version.txt ]; then + msg_info "Updating ${APP} LXC" + temp_file=$(mktemp) + curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-amd64.zip" -o "$temp_file" + $STD unzip -o "$temp_file" '*/**' -d /opt/rclone + rm -f "$temp_file" + echo "${RELEASE}" >/opt/rclone_version.txt + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi + + exit 0 +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following IP:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-tinyauth.sh b/ct/alpine-tinyauth.sh new file mode 100644 index 000000000..f36a7be7f --- /dev/null +++ b/ct/alpine-tinyauth.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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://github.com/steveiliop56/tinyauth + +APP="Alpine-tinyauth" +var_tags="${var_tags:-alpine;auth}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-512}" +var_disk="${var_disk:-3}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.21}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + if [[ ! -d /opt/tinyauth ]]; then + msg_error "No ${APP} Installation Found!" + exit 1 + fi + + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" + + msg_info "Updating tinyauth" + RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then + $STD service tinyauth stop + temp_file=$(mktemp) + cp /opt/tinyauth/.env /opt + rm -rf /opt/tinyauth + mkdir -p /opt/tinyauth + curl -fsSL "https://github.com/steveiliop56/tinyauth/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" + tar -xzf "$temp_file" -C /opt/tinyauth --strip-components=1 + cd /opt/tinyauth/frontend + $STD bun install + $STD bun run build + mv dist /opt/tinyauth/internal/assets/ + cd /opt/tinyauth + $STD go mod download + CGO_ENABLED=0 go build -ldflags "-s -w" + cp /opt/.env /opt/tinyauth + echo "${RELEASE}" >/opt/tinyauth_version.txt + rm -f "$temp_file" + msg_info "Restarting tinyauth" + $STD service tinyauth start + msg_ok "Restarted tinyauth" + msg_ok "Updated tinyauth" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi + exit 0 +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/alpine-transmission.sh b/ct/alpine-transmission.sh new file mode 100644 index 000000000..75de34283 --- /dev/null +++ b/ct/alpine-transmission.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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://transmissionbt.com/ + +APP="Alpine-Transmission" +var_tags="${var_tags:-alpine;torrent}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-256}" +var_disk="${var_disk:-1}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.21}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" + + msg_info "Updating Transmission" + $STD apk upgrade transmission-daemon + msg_ok "Updated Transmission" + + msg_info "Restarting Transmission" + $STD rc-service transmission-daemon restart + msg_ok "Restarted Transmission" + + exit 1 +} + +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}:9091${CL}" diff --git a/ct/alpine-vaultwarden.sh b/ct/alpine-vaultwarden.sh index 54dc5789c..ad426bbfe 100644 --- a/ct/alpine-vaultwarden.sh +++ b/ct/alpine-vaultwarden.sh @@ -37,14 +37,15 @@ function update_script() { header_info case $CHOICE in 1) - apk update && apk upgrade && rc-service vaultwarden restart -q + $STD apk -U upgrade + rc-service vaultwarden restart -q exit ;; 2) if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Setup your ADMIN_TOKEN (make it strong)" 10 58 3>&1 1>&2 2>&3); then if [[ -z "$NEWTOKEN" ]]; then exit-script; fi if ! command -v argon2 >/dev/null 2>&1; then apk add argon2 &>/dev/null; fi - TOKEN=$(echo -n ${NEWTOKEN} | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1) + TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1) if [[ ! -f /var/lib/vaultwarden/config.json ]]; then sed -i "s|export ADMIN_TOKEN=.*|export ADMIN_TOKEN='${TOKEN}'|" /etc/conf.d/vaultwarden else diff --git a/ct/alpine-wireguard.sh b/ct/alpine-wireguard.sh index 1f0d44acf..a586c0cd8 100644 --- a/ct/alpine-wireguard.sh +++ b/ct/alpine-wireguard.sh @@ -21,8 +21,7 @@ catch_errors function update_script() { msg_info "Updating Alpine Packages" - $STD apk update - $STD apk upgrade + $STD apk -U upgrade msg_ok "Updated Alpine Packages" msg_info "update wireguard-tools" diff --git a/ct/alpine-zigbee2mqtt.sh b/ct/alpine-zigbee2mqtt.sh index 3ff06faff..0ddd09ea1 100644 --- a/ct/alpine-zigbee2mqtt.sh +++ b/ct/alpine-zigbee2mqtt.sh @@ -36,7 +36,7 @@ function update_script() { header_info case $CHOICE in 1) - apk update && apk upgrade + $STD apk -U upgrade exit ;; esac diff --git a/ct/alpine.sh b/ct/alpine.sh index 727058c10..8511ef5c0 100644 --- a/ct/alpine.sh +++ b/ct/alpine.sh @@ -9,7 +9,7 @@ APP="Alpine" var_tags="${var_tags:-os;alpine}" var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" -var_disk="${var_disk:-0.1}" +var_disk="${var_disk:-0.5}" var_os="${var_os:-alpine}" var_version="${var_version:-3.21}" var_unprivileged="${var_unprivileged:-1}" @@ -20,13 +20,15 @@ color catch_errors function update_script() { - UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \ - "1" "Check for Alpine Updates" ON \ - 3>&1 1>&2 2>&3) + UPD=$( + whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \ + "1" "Check for Alpine Updates" ON \ + 3>&1 1>&2 2>&3 + ) header_info if [ "$UPD" == "1" ]; then - apk update && apk upgrade + $STD apk -U upgrade exit fi } diff --git a/ct/authentik.sh b/ct/authentik.sh index 76a6c1cc8..2f063eec4 100644 --- a/ct/authentik.sh +++ b/ct/authentik.sh @@ -9,7 +9,7 @@ APP="Authentik" var_tags="${var_tags:-identity-provider}" var_disk="${var_disk:-12}" var_cpu="${var_cpu:-6}" -var_ram="${var_ram:-8192}" +var_ram="${var_ram:-10240}" var_os="${var_os:-debian}" var_version="${var_version:-12}" var_unprivileged="${var_unprivileged:-1}" @@ -29,6 +29,13 @@ function update_script() { fi RELEASE=$(curl -fsSL https://api.github.com/repos/goauthentik/authentik/releases/latest | grep "tarball_url" | awk '{print substr($2, 2, length($2)-3)}') if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + NODE_VERSION="22" + PG_VERSION="16" + setup_uv + install_postgresql + install_node_and_modules + install_go + msg_info "Stopping ${APP}" systemctl stop authentik-server systemctl stop authentik-worker @@ -54,17 +61,14 @@ function update_script() { go build -o /opt/authentik/authentik-server /opt/authentik/cmd/server/ msg_ok "Built ${APP} server" - msg_info "Installing Python Dependencies" + msg_info "Building Authentik" cd /opt/authentik - $STD poetry install --only=main --no-ansi --no-interaction --no-root - $STD poetry export --without-hashes --without-urls -f requirements.txt --output requirements.txt - $STD pip install --no-cache-dir -r requirements.txt - $STD pip install . - msg_ok "Installed Python Dependencies" + $STD uv sync --frozen --no-install-project --no-dev + uv run python -m lifecycle.migrate + ln -s /opt/authentik/.venv/bin/gunicorn /usr/local/bin/gunicorn + ln -s /opt/authentik/.venv/bin/celery /usr/local/bin/celery + msg_ok "Authentik built" - msg_info "Updating ${APP} to v${RELEASE} (Patience)" - cp -r /opt/authentik/authentik/blueprints /opt/authentik/blueprints - $STD bash /opt/authentik/lifecycle/ak migrate echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Updated ${APP} to v${RELEASE}" diff --git a/ct/checkmk.sh b/ct/checkmk.sh index 01f255ffa..aacf01f0a 100644 --- a/ct/checkmk.sh +++ b/ct/checkmk.sh @@ -27,7 +27,7 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -v '\-rc' | sort -V | tail -n 1) + RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1) if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then msg_info "Updating ${APP} to v${RELEASE}" $STD omd stop monitoring diff --git a/ct/commafeed.sh b/ct/commafeed.sh index 66abcc616..bade5f025 100644 --- a/ct/commafeed.sh +++ b/ct/commafeed.sh @@ -33,6 +33,13 @@ function update_script() { systemctl stop commafeed msg_ok "Stopped ${APP}" + if ! [[ $(dpkg -s rsync 2>/dev/null) ]]; then + msg_info "Installing Dependencies" + $STD apt-get update + $STD apt-get install -y rsync + msg_ok "Installed Dependencies" + fi + msg_info "Updating ${APP} to ${RELEASE}" curl -fsSL "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip" -o $(basename "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip") unzip -q commafeed-"${RELEASE}"-h2-jvm.zip diff --git a/ct/docmost.sh b/ct/docmost.sh index dab6f2a3f..23e40ac5e 100644 --- a/ct/docmost.sh +++ b/ct/docmost.sh @@ -51,7 +51,7 @@ function update_script() { cp -r /opt/docmost/data /opt/ rm -rf /opt/docmost temp_file=$(mktemp) - curl -fsSL "https://github.com/docmost/docmost/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file"" + curl -fsSL "https://github.com/docmost/docmost/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" tar -xzf "$temp_file" mv docmost-${RELEASE} /opt/docmost cd /opt/docmost diff --git a/ct/documenso.sh b/ct/documenso.sh new file mode 100644 index 000000000..2a45e8149 --- /dev/null +++ b/ct/documenso.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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/documenso/documenso + +APP="Documenso" +var_tags="${var_tags:-document}" +var_disk="${var_disk:-12}" +var_cpu="${var_cpu:-6}" +var_ram="${var_ram:-6144}" +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/documenso ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -fsSL https://api.github.com/repos/documenso/documenso/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping ${APP}" + systemctl stop documenso + msg_ok "${APP} Stopped" + + msg_info "Updating ${APP} to ${RELEASE}" + cp /opt/documenso/.env /opt/ + rm -rf /opt/documenso + cd /opt + curl -fsSL "https://github.com/documenso/documenso/archive/refs/tags/v${RELEASE}.zip" -o v${RELEASE}.zip + unzip -q v${RELEASE}.zip + mv documenso-${RELEASE} /opt/documenso + cd /opt/documenso + mv /opt/.env /opt/documenso/.env + export TURBO_CACHE=1 + export NEXT_TELEMETRY_DISABLED=1 + export CYPRESS_INSTALL_BINARY=0 + export NODE_OPTIONS="--max-old-space-size=4096" + $STD npm ci + $STD turbo run build --filter=@documenso/remix + $STD npm run prisma:migrate-deploy + $STD turbo daemon stop + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated ${APP}" + + msg_info "Starting ${APP}" + systemctl start documenso + msg_ok "Started ${APP}" + + msg_info "Cleaning Up" + rm -rf /opt/v${RELEASE}.zip + msg_ok "Cleaned" + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + 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/elementsynapse.sh b/ct/elementsynapse.sh index 67f9c6318..258ae4929 100644 --- a/ct/elementsynapse.sh +++ b/ct/elementsynapse.sh @@ -47,23 +47,25 @@ function update_script() { $STD apt-get -y upgrade msg_ok "Updated $APP LXC" - msg_info "Updating Synapse-Admin" - RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ "${RELEASE}" != "$(cat /opt/"${APP}"_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then - temp_file=$(mktemp) - systemctl stop synapse-admin - rm -rf /opt/synapse-admin - mkdir -p /opt/synapse-admin - curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" - tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1 - cd /opt/synapse-admin - $STD yarn install --ignore-engines - systemctl start synapse-admin - echo "${RELEASE}" >/opt/"${APP}"_version.txt - rm -f "$temp_file" - msg_ok "Update Successful" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" + if [[ -f /systemd/system/synapse-admin.service ]]; then + msg_info "Updating Synapse-Admin" + RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ "${RELEASE}" != "$(cat /opt/"${APP}"_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + temp_file=$(mktemp) + systemctl stop synapse-admin + rm -rf /opt/synapse-admin + mkdir -p /opt/synapse-admin + curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" + tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1 + cd /opt/synapse-admin + $STD yarn install --ignore-engines + systemctl start synapse-admin + echo "${RELEASE}" >/opt/"${APP}"_version.txt + rm -f "$temp_file" + msg_ok "Update Successful" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + fi fi exit } diff --git a/ct/fumadocs.sh b/ct/fumadocs.sh new file mode 100644 index 000000000..244f2f2db --- /dev/null +++ b/ct/fumadocs.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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/fuma-nama/fumadoc + +APP="Fumadocs" +var_tags="${var_tags:-documentation}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-5}" +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/fumadocs ]]; then + msg_error "No installation found in /opt/fumadocs!" + exit 1 + fi + + if [[ ! -f /opt/fumadocs/.projectname ]]; then + msg_error "Project name file not found: /opt/fumadocs/.projectname!" + exit 1 + fi + + NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules + PROJECT_NAME=$(&1 1>&2 2>&3) + if [ "$UPD" == "1" ]; then if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then clear header_info echo -e "${GN}Updating to Beta Version${CL}" - BR="--pre " + BR="--pre" else clear header_info echo -e "${GN}Updating to Stable Version${CL}" BR="" fi + msg_info "Stopping Home Assistant" systemctl stop homeassistant msg_ok "Stopped Home Assistant" + if [[ -d /srv/homeassistant/bin ]]; then + msg_info "Migrating to .venv-based structure" + $STD source /srv/homeassistant/bin/activate + PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')") + $STD deactivate + mv /srv/homeassistant "/srv/homeassistant_backup_$PY_VER" + mkdir -p /srv/homeassistant + cd /srv/homeassistant + + $STD uv python install 3.13 + UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}') + if [[ -z "$UV_PYTHON" ]]; then + msg_error "No local Python 3.13 found via uv" + exit 1 + fi + + $STD uv venv .venv --python "$UV_PYTHON" + $STD source .venv/bin/activate + $STD uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel + mkdir -p /root/.homeassistant + msg_ok "Migration complete" + else + source /srv/homeassistant/.venv/bin/activate + fi + msg_info "Updating Home Assistant" - source /srv/homeassistant/bin/activate - $STD pip install ${BR}--upgrade homeassistant + $STD uv pip install $BR --upgrade homeassistant msg_ok "Updated Home Assistant" msg_info "Starting Home Assistant" + if [[ -f /etc/systemd/system/homeassistant.service ]] && grep -q "/srv/homeassistant/bin/python3" /etc/systemd/system/homeassistant.service; then + sed -i 's|ExecStart=/srv/homeassistant/bin/python3|ExecStart=/srv/homeassistant/.venv/bin/python3|' /etc/systemd/system/homeassistant.service + sed -i 's|PATH=/srv/homeassistant/bin|PATH=/srv/homeassistant/.venv/bin|' /etc/systemd/system/homeassistant.service + $STD systemctl daemon-reload + fi + systemctl start homeassistant - sleep 2 + sleep 5 msg_ok "Started Home Assistant" msg_ok "Update Successful" - echo -e "\n Go to http://${IP}:8123 \n" + echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}" exit fi + if [ "$UPD" == "2" ]; then msg_info "Installing Home Assistant Community Store (HACS)" $STD apt update $STD apt install -y unzip - cd .homeassistant + cd /root/.homeassistant $STD bash <(curl -fsSL https://get.hacs.xyz) msg_ok "Installed Home Assistant Community Store (HACS)" echo -e "\n Reboot Home Assistant and clear browser cache then Add HACS integration.\n" exit fi + if [ "$UPD" == "3" ]; then set +Eeuo pipefail read -r -p "Would you like to use No Authentication? " prompt diff --git a/ct/homeassistant.sh b/ct/homeassistant.sh index 24986c8e0..fac86ea9c 100644 --- a/ct/homeassistant.sh +++ b/ct/homeassistant.sh @@ -38,7 +38,7 @@ function update_script() { msg_info "Updating All Containers" CONTAINER_LIST="${1:-$(docker ps -q)}" for container in ${CONTAINER_LIST}; do - CONTAINER_IMAGE="$(docker inspect --format "{{.Config.Image}}" --type container ${container})" + CONTAINER_IMAGE="$(docker inspect --format "{{.Config.Image}}" --type container "${container}")" RUNNING_IMAGE="$(docker inspect --format "{{.Image}}" --type container "${container}")" docker pull "${CONTAINER_IMAGE}" LATEST_IMAGE="$(docker inspect --format "{{.Id}}" --type image "${CONTAINER_IMAGE}")" @@ -47,7 +47,7 @@ function update_script() { echo "Updating ${container} image ${CONTAINER_IMAGE}" DOCKER_COMMAND="$(runlike --use-volume-id "${container}")" docker rm --force "${container}" - eval ${DOCKER_COMMAND} + eval "${DOCKER_COMMAND}" fi done msg_ok "Updated All Containers" @@ -109,4 +109,4 @@ 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}HA: http://${IP}:8123${CL}" -echo -e "${TAB}${GATEWAY}${BGN}Portainer: http://${IP}:9443${CL}" +echo -e "${TAB}${GATEWAY}${BGN}Portainer: https://${IP}:9443${CL}" diff --git a/ct/homepage.sh b/ct/homepage.sh index 530e391ef..22b36592e 100644 --- a/ct/homepage.sh +++ b/ct/homepage.sh @@ -35,6 +35,15 @@ function update_script() { echo "Installed NPM..." fi fi + # ensure that jq is installed + if ! command -v jq &>/dev/null; then + $STD msg_info "Installing jq..." + $STD apt-get update -qq &>/dev/null + $STD apt-get install -y jq &>/dev/null || { + msg_error "Failed to install jq" + exit + } + fi LOCAL_IP=$(hostname -I | awk '{print $1}') RELEASE=$(curl -fsSL https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then @@ -50,6 +59,7 @@ function update_script() { $STD npx --yes update-browserslist-db@latest export NEXT_PUBLIC_VERSION="v$RELEASE" export NEXT_PUBLIC_REVISION="source" + export NEXT_PUBLIC_BUILDTIME=$(curl -fsSL https://api.github.com/repos/gethomepage/homepage/releases/latest | jq -r '.published_at') export NEXT_TELEMETRY_DISABLED=1 $STD pnpm build if [[ ! -f /opt/homepage/.env ]]; then diff --git a/ct/jellyseerr.sh b/ct/jellyseerr.sh index 1d0f14d73..bd1b6941c 100644 --- a/ct/jellyseerr.sh +++ b/ct/jellyseerr.sh @@ -53,10 +53,10 @@ function update_script() { if [ -z "$pnpm_current" ]; then msg_error "pnpm not found. Installing version $pnpm_desired..." - $STD npm install -g pnpm@"$pnpm_desired" + NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" install_node_and_modules elif ! node -e "const semver = require('semver'); process.exit(semver.satisfies('$pnpm_current', '$pnpm_desired') ? 0 : 1)"; then msg_error "Updating pnpm from version $pnpm_current to $pnpm_desired..." - $STD npm install -g pnpm@"$pnpm_desired" + NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" install_node_and_modules else msg_ok "pnpm is already installed and satisfies version $pnpm_desired." fi diff --git a/ct/karakeep.sh b/ct/karakeep.sh index 3d98a5174..81569c3d9 100644 --- a/ct/karakeep.sh +++ b/ct/karakeep.sh @@ -54,10 +54,15 @@ function update_script() { mv karakeep-"${RELEASE}" /opt/karakeep cd /opt/karakeep/apps/web $STD pnpm install --frozen-lockfile - $STD pnpm exec next build --experimental-build-mode compile - cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web + $STD pnpm build cd /opt/karakeep/apps/workers $STD pnpm install --frozen-lockfile + cd /opt/karakeep/apps/cli + $STD pnpm install --frozen-lockfile + $STD pnpm build + cd /opt/karakeep/apps/mcp + $STD pnpm install --frozen-lockfile + $STD pnpm build export DATA_DIR=/opt/karakeep_data cd /opt/karakeep/packages/db $STD pnpm migrate diff --git a/ct/komodo.sh b/ct/komodo.sh index 04cf74d93..7a8eb371d 100644 --- a/ct/komodo.sh +++ b/ct/komodo.sh @@ -20,42 +20,36 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/komodo ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating ${APP}" - COMPOSE_FILE="" - for file in /opt/komodo/*.compose.yaml; do - if [[ "$file" != "compose.env" ]]; then - COMPOSE_FILE="${file#/opt/komodo/}" - break - fi - done + header_info + check_container_storage + check_container_resources - if [[ -z "$COMPOSE_FILE" ]]; then - msg_error "No valid compose file found in /opt/komodo!" - exit 1 - fi + [[ -d /opt/komodo ]] || { + msg_error "No ${APP} Installation Found!" + exit 1 + } - BACKUP_FILE="${COMPOSE_FILE}.bak_$(date +%Y%m%d_%H%M%S)" - mv "/opt/komodo/$COMPOSE_FILE" "/opt/komodo/$BACKUP_FILE" || { - msg_error "Failed to create backup of $COMPOSE_FILE!" - exit 1 - } - - GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_FILE}" - if ! curl -fsSL "$GITHUB_URL" -o "/opt/komodo/${COMPOSE_FILE}"; then - msg_error "Failed to download ${COMPOSE_FILE} from GitHub!" - mv "/opt/komodo/${BACKUP_FILE}" "/opt/komodo/${COMPOSE_FILE}" - exit 1 - fi - - $STD docker compose -p komodo -f "/opt/komodo/$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d - msg_ok "Updated ${APP}" + msg_info "Updating ${APP}" + COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1) + if [[ -z "$COMPOSE_FILE" ]]; then + msg_error "No valid compose file found in /opt/komodo!" + exit 1 + fi + COMPOSE_BASENAME=$(basename "$COMPOSE_FILE") + BACKUP_FILE="/opt/komodo/${COMPOSE_BASENAME}.bak_$(date +%Y%m%d_%H%M%S)" + cp "$COMPOSE_FILE" "$BACKUP_FILE" || { + msg_error "Failed to create backup of ${COMPOSE_BASENAME}!" + exit 1 + } + GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_BASENAME}" + if ! curl -fsSL "$GITHUB_URL" -o "$COMPOSE_FILE"; then + msg_error "Failed to download ${COMPOSE_BASENAME} from GitHub!" + mv "$BACKUP_FILE" "$COMPOSE_FILE" + exit 1 + fi + $STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d + msg_ok "Updated ${APP}" + exit } start diff --git a/ct/linkwarden.sh b/ct/linkwarden.sh index ed8033d68..39239b811 100644 --- a/ct/linkwarden.sh +++ b/ct/linkwarden.sh @@ -28,6 +28,10 @@ function update_script() { fi RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + NODE_VERSION="22" + NODE_MODULE="yarn@latest" + install_node_and_modules + msg_info "Stopping ${APP}" systemctl stop linkwarden msg_ok "Stopped ${APP}" @@ -46,7 +50,7 @@ function update_script() { mv /opt/linkwarden/.env /opt/.env rm -rf /opt/linkwarden RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip") + curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o ${RELEASE}.zip unzip -q ${RELEASE}.zip mv linkwarden-${RELEASE:1} /opt/linkwarden cd /opt/linkwarden @@ -54,8 +58,9 @@ function update_script() { $STD npx playwright install-deps $STD yarn playwright install cp /opt/.env /opt/linkwarden/.env - $STD yarn build - $STD yarn prisma migrate deploy + $STD yarn prisma:generate + $STD yarn web:build + $STD yarn prisma:deploy echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Updated ${APP} to ${RELEASE}" diff --git a/ct/matterbridge.sh b/ct/matterbridge.sh index c3d24a808..f4c130c12 100644 --- a/ct/matterbridge.sh +++ b/ct/matterbridge.sh @@ -27,7 +27,11 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_error "Update via the Matterbridge UI" + $STD apt-get update + $STD apt-get upgrade -y + NODE_VERSION="22" + NODE_MODULE="matterbridge" + install_node_and_modules exit } diff --git a/ct/navidrome.sh b/ct/navidrome.sh index 62a422203..d7c5663b8 100644 --- a/ct/navidrome.sh +++ b/ct/navidrome.sh @@ -1,9 +1,9 @@ #!/usr/bin/env bash source <(curl -fsSL https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE -# Source: https://www.navidrome.org/ +# 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/navidrome/navidrome APP="Navidrome" var_tags="${var_tags:-music}" @@ -23,27 +23,35 @@ function update_script() { header_info check_container_storage check_container_resources - if [[ ! -d /opt/navidrome ]]; then + if [[ ! -d /var/lib/navidrome ]]; then msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -fsSL https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - msg_info "Stopping ${APP}" - systemctl stop navidrome - msg_ok "Stopped Navidrome" + RELEASE=$(curl -fsSL https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk -F '"' '{print $4}') + if [[ ! -f /opt/${APP}_version.txt ]]; then touch /opt/${APP}_version.txt; fi + if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Services" + systemctl stop navidrome + msg_ok "Services Stopped" - msg_info "Updating to v${RELEASE}" - cd /opt -curl -fsSL "https://github.com/navidrome/navidrome/releases/download/v${RELEASE}/navidrome_${RELEASE}_linux_amd64.tar.gz" -o "Navidrome.tar.gz" - $STD tar -xvzf Navidrome.tar.gz -C /opt/navidrome/ - chmod +x /opt/navidrome/navidrome - msg_ok "Updated ${APP}" - rm -rf /opt/Navidrome.tar.gz + msg_info "Updating ${APP} to ${RELEASE}" + TMP_DEB=$(mktemp --suffix=.deb) + curl -fsSL -o "${TMP_DEB}" "https://github.com/navidrome/navidrome/releases/download/${RELEASE}/navidrome_${RELEASE#v}_linux_amd64.deb" + $STD apt-get install -y "${TMP_DEB}" + echo "${RELEASE}" >/opt/"${APP}_version.txt" + msg_ok "Updated Navidrome" - msg_info "Starting ${APP}" - systemctl start navidrome.service - msg_ok "Started ${APP}" - msg_ok "Updated Successfully" + msg_info "Starting Services" + systemctl start navidrome + msg_ok "Started Services" + + msg_info "Cleaning Up" + rm -f "${TMP_DEB}" + msg_ok "Cleaned" + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi exit } diff --git a/ct/npmplus.sh b/ct/npmplus.sh index 9c6c115f4..da5775c5b 100644 --- a/ct/npmplus.sh +++ b/ct/npmplus.sh @@ -20,32 +20,32 @@ color catch_errors function update_script() { - UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE MODE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 14 60 2 \ - "1" "Check for Alpine Updates" OFF \ - "2" "Update NPMplus Docker Container" ON \ - 3>&1 1>&2 2>&3) + UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE MODE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 14 60 2 \ + "1" "Check for Alpine Updates" OFF \ + "2" "Update NPMplus Docker Container" ON \ + 3>&1 1>&2 2>&3) - header_info "$APP" + header_info "$APP" - case "$UPD" in - "1") - msg_info "Updating Alpine OS" - apk update && apk upgrade - msg_ok "System updated" - exit - ;; - "2") - msg_info "Updating NPMplus Container" - cd /opt - msg_info "Pulling latest container image" - $STD docker compose pull - msg_info "Recreating container" - $STD docker compose up -d - msg_ok "NPMplus container updated" - exit - ;; - esac - exit 0 + case "$UPD" in + "1") + msg_info "Updating Alpine OS" + $STD apk -U upgrade + msg_ok "System updated" + exit + ;; + "2") + msg_info "Updating NPMplus Container" + cd /opt + msg_info "Pulling latest container image" + $STD docker compose pull + msg_info "Recreating container" + $STD docker compose up -d + msg_ok "NPMplus container updated" + exit + ;; + esac + exit 0 } start diff --git a/ct/ollama.sh b/ct/ollama.sh index da15ddaa4..75ddf952d 100644 --- a/ct/ollama.sh +++ b/ct/ollama.sh @@ -9,9 +9,9 @@ APP="Ollama" var_tags="${var_tags:-ai}" var_cpu="${var_cpu:-4}" var_ram="${var_ram:-4096}" -var_disk="${var_disk:-24}" +var_disk="${var_disk:-35}" var_os="${var_os:-ubuntu}" -var_version="${var_version:-22.04}" +var_version="${var_version:-24.04}" header_info "$APP" variables @@ -19,18 +19,42 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/ollama ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating ${APP}" - $STD apt-get update - $STD apt-get -y upgrade - msg_ok "Updated Successfully" + header_info + check_container_storage + check_container_resources + if [[ ! -d /usr/local/lib/ollama ]]; then + msg_error "No Ollama Installation Found!" exit + fi + RELEASE=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk -F '"' '{print $4}') + if [[ ! -f /opt/Ollama_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/Ollama_version.txt)" ]]; then + if [[ ! -f /opt/Ollama_version.txt ]]; then + touch /opt/Ollama_version.txt + fi + msg_info "Stopping Services" + systemctl stop ollama + msg_ok "Services Stopped" + + TMP_TAR=$(mktemp --suffix=.tgz) + curl -fL# -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz" + msg_info "Updating Ollama to ${RELEASE}" + tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama + ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama + echo "${RELEASE}" >/opt/Ollama_version.txt + msg_ok "Updated Ollama to ${RELEASE}" + + msg_info "Starting Services" + systemctl start ollama + msg_ok "Started Services" + + msg_info "Cleaning Up" + rm -f "${TMP_TAR}" + msg_ok "Cleaned" + msg_ok "Updated Successfully" + else + msg_ok "No update required. Ollama is already at ${RELEASE}" + fi + exit } start @@ -40,4 +64,4 @@ 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}:14434${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:11434${CL}" diff --git a/ct/openwebui.sh b/ct/openwebui.sh index 9f7572424..7bda5d8ea 100644 --- a/ct/openwebui.sh +++ b/ct/openwebui.sh @@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/asylumexp/Proxmox/main/mis APP="Open WebUI" var_tags="${var_tags:-ai;interface}" var_cpu="${var_cpu:-4}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-16}" +var_ram="${var_ram:-8192}" +var_disk="${var_disk:-25}" var_os="${var_os:-debian}" var_version="${var_version:-12}" var_unprivileged="${var_unprivileged:-1}" diff --git a/ct/readeck.sh b/ct/readeck.sh index 84937a9a9..b6f7d97a1 100644 --- a/ct/readeck.sh +++ b/ct/readeck.sh @@ -20,23 +20,23 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/readeck ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_info "Updating ${APP}" - LATEST=$(curl -fsSL https://codeberg.org/readeck/readeck/releases/ | grep -oP '(?<=Version )\d+\.\d+\.\d+' | head -1) - systemctl stop readeck.service - rm -rf /opt/readeck/readeck - cd /opt/readeck -curl -fsSL "https://codeberg.org/readeck/readeck/releases/download/${LATEST}/readeck-${LATEST}-linux-amd64" -o "readeck" - chmod a+x readeck - systemctl start readeck.service - msg_ok "Updated ${APP}" + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/readeck ]]; then + msg_error "No ${APP} Installation Found!" exit + fi + msg_info "Updating ${APP}" + LATEST=$(curl -fsSL https://codeberg.org/readeck/readeck/releases/ | grep -oP '/releases/tag/\K\d+\.\d+\.\d+' | head -1) + systemctl stop readeck.service + rm -rf /opt/readeck/readeck + cd /opt/readeck + curl -fsSL "https://codeberg.org/readeck/readeck/releases/download/${LATEST}/readeck-${LATEST}-linux-amd64" -o "readeck" + chmod a+x readeck + systemctl start readeck.service + msg_ok "Updated ${APP}" + exit } start diff --git a/ct/sabnzbd.sh b/ct/sabnzbd.sh index fd0c52fba..cd3a05543 100644 --- a/ct/sabnzbd.sh +++ b/ct/sabnzbd.sh @@ -1,15 +1,15 @@ #!/usr/bin/env bash source <(curl -fsSL https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) # Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE +# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://sabnzbd.org/ APP="SABnzbd" var_tags="${var_tags:-downloader}" var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-8}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-5}" var_os="${var_os:-debian}" var_version="${var_version:-12}" var_unprivileged="${var_unprivileged:-1}" @@ -20,30 +20,44 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/sabnzbd ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/sabnzbd ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + setup_uv + RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + if [[ -f /opt/${APP}_version.txt ]] && [[ "${RELEASE}" == "$(cat /opt/${APP}_version.txt)" ]]; then + msg_ok "No update required. ${APP} is already at ${RELEASE}" + exit + fi msg_info "Updating $APP to ${RELEASE}" - rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED - systemctl stop sabnzbd.service - tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/$RELEASE/SABnzbd-${RELEASE}-src.tar.gz) - cp -rf SABnzbd-${RELEASE}/* /opt/sabnzbd - rm -rf SABnzbd-${RELEASE} - cd /opt/sabnzbd - $STD python3 -m pip install -r requirements.txt + systemctl stop sabnzbd + cp -r /opt/sabnzbd /opt/sabnzbd_backup_$(date +%s) + temp_file=$(mktemp) + curl -fsSL "https://github.com/sabnzbd/sabnzbd/releases/download/${RELEASE}/SABnzbd-${RELEASE}-src.tar.gz" -o "$temp_file" + tar -xzf "$temp_file" -C /opt/sabnzbd --strip-components=1 + rm -f "$temp_file" + if [[ ! -d /opt/sabnzbd/venv ]]; then + msg_info "Migrating SABnzbd to uv virtual environment" + $STD uv venv /opt/sabnzbd/venv + msg_ok "Created uv venv at /opt/sabnzbd/venv" + + if grep -q "ExecStart=python3 SABnzbd.py" /etc/systemd/system/sabnzbd.service; then + sed -i "s|ExecStart=python3 SABnzbd.py|ExecStart=/opt/sabnzbd/venv/bin/python SABnzbd.py|" /etc/systemd/system/sabnzbd.service + systemctl daemon-reload + msg_ok "Updated SABnzbd service to use uv venv" + fi + fi + $STD uv pip install --upgrade pip --python=/opt/sabnzbd/venv/bin/python + $STD uv pip install -r /opt/sabnzbd/requirements.txt --python=/opt/sabnzbd/venv/bin/python echo "${RELEASE}" >/opt/${APP}_version.txt - systemctl start sabnzbd.service + systemctl start sabnzbd msg_ok "Updated ${APP} to ${RELEASE}" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit + exit } start @@ -54,3 +68,4 @@ 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}:7777${CL}" + diff --git a/ct/seafile.sh b/ct/seafile.sh deleted file mode 100644 index 53ca43b25..000000000 --- a/ct/seafile.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: dave-yap (dave-yap) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://seafile.com/ - -APP="Seafile" -var_tags="${var_tags:-documents}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-20}" -var_os="${var_os:-debian}" -var_version="${var_version:-12}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -base_settings - -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -f /etc/systemd/system/seafile.service ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_ok "No upgrade path available now." - 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}:8000${CL}" \ No newline at end of file diff --git a/ct/streamlink-webui.sh b/ct/streamlink-webui.sh new file mode 100644 index 000000000..362f64ba0 --- /dev/null +++ b/ct/streamlink-webui.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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/CrazyWolf13/streamlink-webui + +APP="streamlink-webui" +var_tags="${var_tags:-download,streaming}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-10}" +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/streamlink-webui ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + RELEASE=$(curl -fsSL https://api.github.com/repos/CrazyWolf13/streamlink-webui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + msg_info "Starting Update" + + msg_info "Stopping $APP" + systemctl stop ${APP} + msg_ok "Stopped $APP" + + rm -rf /opt/${APP} + NODE_VERSION="22" + NODE_MODULE="npm,yarn" + install_node_and_modules + setup_uv + fetch_and_deploy_gh_release "CrazyWolf13/streamlink-webui" + + msg_info "Updating $APP to v${RELEASE}" + $STD uv venv /opt/"${APP}"/backend/src/.venv + source /opt/"${APP}"/backend/src/.venv/bin/activate + $STD uv pip install -r /opt/"${APP}"/backend/src/requirements.txt --python=/opt/"${APP}"/backend/src/.venv + cd /opt/"${APP}"/frontend/src + $STD yarn install + $STD yarn build + chmod +x /opt/"${APP}"/start.sh + msg_ok "Updated $APP to v${RELEASE}" + + msg_info "Starting $APP" + systemctl start ${APP} + msg_ok "Started $APP" + + msg_ok "Update Successful" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + 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}:8000${CL}" diff --git a/ct/suwayomiserver.sh b/ct/suwayomiserver.sh index 4a652af54..a114177e3 100644 --- a/ct/suwayomiserver.sh +++ b/ct/suwayomiserver.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash source <(curl -fsSL https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) # Copyright (c) 2021-2025 community-scripts ORG -# Author: tremor021 +# Author: SlaviΕ‘a AreΕΎina (tremor021) # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://github.com/Suwayomi/Suwayomi-Server @@ -20,38 +20,47 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources + header_info + check_container_storage + check_container_resources - if [[ ! -f /usr/bin/suwayomi-server ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -fsSL https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - if [[ "${RELEASE}" != "$(cat /opt/suwayomi-server_version.txt)" ]] || [[ ! -f /opt/suwayomi-server_version.txt ]]; then - msg_info "Updating $APP" - msg_info "Stopping $APP" - systemctl stop suwayomi-server - msg_ok "Stopped $APP" - msg_info "Updating $APP to v${RELEASE}" - cd /tmp - URL=$(curl -fsSL https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | grep "browser_download_url" | awk '{print substr($2, 2, length($2)-2) }' | tail -n+2 | head -n 1) - curl -fsSL "$URL" -o $(basename "$URL") - $STD dpkg -i /tmp/*.deb - msg_ok "Updated $APP to v${RELEASE}" - msg_info "Starting $APP" - systemctl start suwayomi-server - msg_ok "Started $APP" - msg_info "Cleaning Up" - rm -f *.deb - msg_ok "Cleanup Completed" - echo "${RELEASE}" >/opt/suwayomi-server_version.txt.txt - msg_ok "Update Successful" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" - fi + if [[ ! -f /usr/bin/suwayomi-server ]]; then + msg_error "No ${APP} Installation Found!" exit + fi + if dpkg -l | grep -q "openjdk-17-jre"; then + $STD apt-get remove -y openjdk-17-jre + fi + JAVA_VERSION=21 install_java + RELEASE=$(curl -fsSL https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + if [[ "${RELEASE}" != "$(cat /opt/suwayomi-server_version.txt)" ]] || [[ ! -f /opt/suwayomi-server_version.txt ]]; then + msg_info "Updating $APP" + + msg_info "Stopping $APP" + systemctl stop suwayomi-server + msg_ok "Stopped $APP" + + msg_info "Updating $APP to v${RELEASE}" + temp_file=$(mktemp) + RELEASE=$(curl -fsSL https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + curl -fsSL "https://github.com/Suwayomi/Suwayomi-Server/releases/download/${RELEASE}/Suwayomi-Server-${RELEASE}-debian-all.deb" -o "$temp_file" + $STD dpkg -i "$temp_file" + msg_ok "Updated $APP to v${RELEASE}" + + msg_info "Starting $APP" + systemctl start suwayomi-server + msg_ok "Started $APP" + + msg_info "Cleaning Up" + rm -f "$temp_file" + msg_ok "Cleanup Completed" + + echo "${RELEASE}" >/opt/suwayomi-server_version.txt.txt + msg_ok "Update Successful" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + fi + exit } start diff --git a/ct/umlautadaptarr.sh b/ct/umlautadaptarr.sh new file mode 100644 index 000000000..ae5cadc4c --- /dev/null +++ b/ct/umlautadaptarr.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: elvito +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/PCJones/UmlautAdaptarr + +APP="UmlautAdaptarr" +var_tags="arr" +var_cpu="1" +var_ram="512" +var_disk="4" +var_os="debian" +var_version="12" +var_unprivileged="1" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/UmlautAdaptarr ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -fsSL https://api.github.com/repos/PCJones/Umlautadaptarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}') + if [[ ! -f /opt/UmlautAdaptarr_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/UmlautAdaptarr_version.txt)" ]]; then + msg_info "Stopping Service" + systemctl stop umlautadaptarr + msg_ok "Stopped Service" + + msg_info "Updating ${APP}" + temp_file=$(mktemp) + curl -fsSL "https://github.com/PCJones/Umlautadaptarr/releases/download/${RELEASE}/linux-x64.zip" -o $temp_file + $STD unzip -u $temp_file '*/**' -d /opt/UmlautAdaptarr + msg_ok "Updated ${APP}" + + msg_info "Starting Service" + systemctl start umlautadaptarr + msg_ok "Started Service" + msg_ok "$APP has been updated to ${RELEASE}." + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + 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}:5005${CL}" diff --git a/ct/vaultwarden.sh b/ct/vaultwarden.sh index b2c164b93..5d477b4bd 100644 --- a/ct/vaultwarden.sh +++ b/ct/vaultwarden.sh @@ -76,12 +76,12 @@ function update_script() { msg_ok "Stopped Vaultwarden" msg_info "Updating Web-Vault to $WVRELEASE" - $STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/$WVRELEASE/bw_web_$WVRELEASE.tar.gz - $STD tar -zxf bw_web_$WVRELEASE.tar.gz -C /opt/vaultwarden/ + $STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/"$WVRELEASE"/bw_web_"$WVRELEASE".tar.gz + $STD tar -zxf bw_web_"$WVRELEASE".tar.gz -C /opt/vaultwarden/ msg_ok "Updated Web-Vault" msg_info "Cleaning up" - rm bw_web_$WVRELEASE.tar.gz + rm bw_web_"$WVRELEASE".tar.gz msg_ok "Cleaned" msg_info "Starting Vaultwarden" @@ -94,7 +94,7 @@ function update_script() { if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Set the ADMIN_TOKEN" 10 58 3>&1 1>&2 2>&3); then if [[ -z "$NEWTOKEN" ]]; then exit; fi if ! command -v argon2 >/dev/null 2>&1; then $STD apt-get install -y argon2; fi - TOKEN=$(echo -n ${NEWTOKEN} | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e) + TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e) sed -i "s|ADMIN_TOKEN=.*|ADMIN_TOKEN='${TOKEN}'|" /opt/vaultwarden/.env if [[ -f /opt/vaultwarden/data/config.json ]]; then sed -i "s|\"admin_token\":.*|\"admin_token\": \"${TOKEN}\"|" /opt/vaultwarden/data/config.json @@ -112,4 +112,4 @@ 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}:8000${CL}" +echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8000${CL}" diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 306499aee..2965849b6 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -3611,7 +3611,7 @@ "version": "19.0.0-rc.1", "resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz", "integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==", - "dev": true, + "devOptional": true, "dependencies": { "csstype": "^3.0.2" } @@ -3621,7 +3621,7 @@ "version": "19.0.0-rc.1", "resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz", "integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==", - "dev": true, + "devOptional": true, "dependencies": { "@types/react": "*" } @@ -8207,7 +8207,6 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", - "dev": true, "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -9655,6 +9654,51 @@ "dev": true, "license": "MIT" }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tinypool": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", @@ -9898,7 +9942,6 @@ "version": "5.8.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -10023,15 +10066,18 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz", - "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz", + "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rollup": "^4.30.1" + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" @@ -10137,6 +10183,34 @@ } } }, + "node_modules/vite/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/vitest": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.1.tgz", diff --git a/frontend/public/json/actualbudget.json b/frontend/public/json/actualbudget.json new file mode 100644 index 000000000..915b425c7 --- /dev/null +++ b/frontend/public/json/actualbudget.json @@ -0,0 +1,35 @@ +{ + "name": "Actual Budget", + "slug": "actualbudget", + "categories": [ + 23 + ], + "date_created": "2025-05-06", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5006, + "documentation": "https://github.com/community-scripts/ProxmoxVE/discussions/807", + "website": "https://actualbudget.org/", + "config_path": "/opt/actualbudget-data/config.json", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/actual-budget.svg", + "description": "Actual Budget is a super fast and privacy-focused app for managing your finances. At its heart is the well proven and much loved Envelope Budgeting methodology.", + "install_methods": [ + { + "type": "default", + "script": "ct/actualbudget.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/add-netbird-lxc.json b/frontend/public/json/add-netbird-lxc.json index 9256409bf..5d3d16eb9 100644 --- a/frontend/public/json/add-netbird-lxc.json +++ b/frontend/public/json/add-netbird-lxc.json @@ -1,7 +1,9 @@ { "name": "NetBird", "slug": "add-netbird-lxc", - "categories": [1], + "categories": [ + 1 + ], "date_created": "2024-05-19", "type": "addon", "updateable": false, @@ -44,4 +46,3 @@ } ] } - diff --git a/frontend/public/json/add-tailscale-lxc.json b/frontend/public/json/add-tailscale-lxc.json index d1838cb40..ed4a46373 100644 --- a/frontend/public/json/add-tailscale-lxc.json +++ b/frontend/public/json/add-tailscale-lxc.json @@ -9,7 +9,7 @@ "updateable": false, "privileged": false, "interface_port": null, - "documentation": null, + "documentation": "https://tailscale.com/kb/1017/install", "website": "https://tailscale.com/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/tailscale.svg", "config_path": "", @@ -46,4 +46,3 @@ } ] } - diff --git a/frontend/public/json/adventurelog.json b/frontend/public/json/adventurelog.json index 48a6e72ca..807e77d3f 100644 --- a/frontend/public/json/adventurelog.json +++ b/frontend/public/json/adventurelog.json @@ -1,40 +1,40 @@ { - "name": "AdventureLog", - "slug": "adventurelog", - "categories": [ - 24 - ], - "date_created": "2024-10-26", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": null, - "website": "https://adventurelog.app/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/adventurelog.svg", - "config_path": "", - "description": "Adventure Log is an app designed to track outdoor activities and personal achievements, allowing users to log their adventures with photos, notes, and location data. It focuses on enhancing outdoor experiences by preserving memories and sharing them with others.", - "install_methods": [ - { - "type": "default", - "script": "ct/adventurelog.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 7, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "AdventureLog uses an initial local IP, if you change your LXC-IP, you need to change the IP here: `/opt/adventurelog/backend/server/.env` and here: `/opt/adventurelog/frontend/.env`", - "type": "warning" - } - ] + "name": "AdventureLog", + "slug": "adventurelog", + "categories": [ + 24 + ], + "date_created": "2024-10-26", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://adventurelog.app/docs/intro/adventurelog_overview.html", + "website": "https://adventurelog.app/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/adventurelog.svg", + "config_path": "/opt/adventurelog/backend/server/.env", + "description": "Adventure Log is an app designed to track outdoor activities and personal achievements, allowing users to log their adventures with photos, notes, and location data. It focuses on enhancing outdoor experiences by preserving memories and sharing them with others.", + "install_methods": [ + { + "type": "default", + "script": "ct/adventurelog.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 7, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "AdventureLog uses an initial local IP, if you change your LXC-IP, you need to change the IP here: `/opt/adventurelog/backend/server/.env` and here: `/opt/adventurelog/frontend/.env`", + "type": "warning" + } + ] } diff --git a/frontend/public/json/agentdvr.json b/frontend/public/json/agentdvr.json index a722638d1..8fa9ceff1 100644 --- a/frontend/public/json/agentdvr.json +++ b/frontend/public/json/agentdvr.json @@ -1,35 +1,35 @@ { - "name": "AgentDVR", - "slug": "agentdvr", - "categories": [ - 15 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": true, - "interface_port": 8090, - "documentation": null, - "website": "https://www.ispyconnect.com/", - "logo": "https://ispycontent.azureedge.net/img/ispy2.png?raw=true", - "config_path": "", - "description": "AgentDVR a new video surveillance solution for the Internet Of Things.", - "install_methods": [ - { - "type": "default", - "script": "ct/agentdvr.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "ubuntu", - "version": "22.04" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "AgentDVR", + "slug": "agentdvr", + "categories": [ + 15 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": true, + "interface_port": 8090, + "documentation": "https://www.ispyconnect.com/docs/agent/about", + "website": "https://www.ispyconnect.com/", + "logo": "https://ispycontent.azureedge.net/img/ispy2.png?raw=true", + "config_path": "/opt/agentdvr/agent/Media/XML/config.json", + "description": "AgentDVR a new video surveillance solution for the Internet Of Things.", + "install_methods": [ + { + "type": "default", + "script": "ct/agentdvr.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "ubuntu", + "version": "22.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/alpine-it-tools.json b/frontend/public/json/alpine-it-tools.json index c4ea46f0c..af1b94a0c 100644 --- a/frontend/public/json/alpine-it-tools.json +++ b/frontend/public/json/alpine-it-tools.json @@ -2,7 +2,7 @@ "name": "Alpine-IT-Tools", "slug": "alpine-it-tools", "categories": [ - 20 + 20 ], "date_created": "2025-01-30", "type": "ct", @@ -15,33 +15,32 @@ "config_path": "", "description": "IT-Tools is a web-based suite of utilities designed to streamline and simplify various IT tasks, providing tools for developers and system administrators to manage their workflows efficiently.", "install_methods": [ - { - "type": "default", - "script": "ct/alpine-it-tools.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 0.2, - "os": "alpine", - "version": "3.21" - } - }, - { - "type": "alpine", - "script": "ct/alpine-it-tools.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 0.2, - "os": "alpine", - "version": "3.21" - } + { + "type": "default", + "script": "ct/alpine-it-tools.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 0.5, + "os": "alpine", + "version": "3.21" } + }, + { + "type": "alpine", + "script": "ct/alpine-it-tools.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 0.5, + "os": "alpine", + "version": "3.21" + } + } ], "default_credentials": { - "username": null, - "password": null + "username": null, + "password": null }, "notes": [] } - diff --git a/frontend/public/json/alpine-rclone.json b/frontend/public/json/alpine-rclone.json new file mode 100644 index 000000000..9defea694 --- /dev/null +++ b/frontend/public/json/alpine-rclone.json @@ -0,0 +1,55 @@ +{ + "name": "Alpine-rclone", + "slug": "alpine-rclone", + "categories": [ + 11 + ], + "date_created": "2025-05-06", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://rclone.org/docs/", + "website": "https://rclone.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/rclone.svg", + "config_path": "~/.config/rclone/rclone.conf", + "description": "Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces", + "install_methods": [ + { + "type": "default", + "script": "ct/alpine-rclone.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "alpine", + "version": "3.21" + } + }, + { + "type": "alpine", + "script": "ct/alpine-rclone.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "type": "info", + "text": "`cat ~/rclone.creds` to view login credentials" + }, + { + "type": "info", + "text": "`htpasswd -b -B /opt/rclone/login.pwd newuser newuserpassword` to add more users." + } + ] +} diff --git a/frontend/public/json/alpine-tinyauth.json b/frontend/public/json/alpine-tinyauth.json new file mode 100644 index 000000000..f062e2932 --- /dev/null +++ b/frontend/public/json/alpine-tinyauth.json @@ -0,0 +1,51 @@ +{ + "name": "Alpine-tinyauth", + "slug": "alpine-tinyauth", + "categories": [ + 6 + ], + "date_created": "2025-05-06", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://tinyauth.app/docs/getting-started.html", + "website": "https://tinyauth.app/", + "logo": "https://raw.githubusercontent.com/steveiliop56/tinyauth/refs/heads/main/frontend/public/android-chrome-192x192.png", + "config_path": "/opt/tinyauth/.env", + "description": "Tinyauth is a simple authentication middleware that adds simple username/password login or OAuth with Google, Github and any generic provider to all of your docker apps. It is designed for traefik but it can be extended to work with all reverse proxies like caddy and nginx.", + "install_methods": [ + { + "type": "default", + "script": "ct/alpine-tinyauth.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 3, + "os": "alpine", + "version": "3.21" + } + }, + { + "type": "alpine", + "script": "ct/alpine-tinyauth.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 3, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "type": "info", + "text": "`cat ~/tinyauth.creds` to view login credentials" + } + ] +} diff --git a/frontend/public/json/alpine.json b/frontend/public/json/alpine.json index dc77f9fe7..6918563a9 100644 --- a/frontend/public/json/alpine.json +++ b/frontend/public/json/alpine.json @@ -1,52 +1,51 @@ { - "name": "Alpine", - "slug": "alpine", - "categories": [ - 2 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": null, - "documentation": null, - "website": "https://www.alpinelinux.org/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg", - "config_path": "", - "description": "A security-oriented, lightweight Linux distribution based on musl and BusyBox.\r\nBy default, the root password is set to alpine. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.", - "install_methods": [ - { - "type": "default", - "script": "ct/alpine.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 0.1, - "os": "alpine", - "version": "3.21" - } - }, - { - "type": "alpine", - "script": "ct/alpine.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 0.1, - "os": "alpine", - "version": "3.21" - } - } - ], - "default_credentials": { - "username": null, - "password": "alpine" + "name": "Alpine", + "slug": "alpine", + "categories": [ + 2 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": "https://www.alpinelinux.org/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg", + "config_path": "", + "description": "A security-oriented, lightweight Linux distribution based on musl and BusyBox.\r\nBy default, the root password is set to alpine. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.", + "install_methods": [ + { + "type": "default", + "script": "ct/alpine.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 0.5, + "os": "alpine", + "version": "3.21" + } }, - "notes": [ - { - "text": "To Update Alpine: `apk update && apk upgrade`", - "type": "info" - } - ] + { + "type": "alpine", + "script": "ct/alpine.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 0.5, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": null, + "password": "alpine" + }, + "notes": [ + { + "text": "To Update Alpine: `apk -U upgrade`", + "type": "info" + } + ] } - diff --git a/frontend/public/json/apache-cassandra.json b/frontend/public/json/apache-cassandra.json index 210c2ed91..262f1f3f7 100644 --- a/frontend/public/json/apache-cassandra.json +++ b/frontend/public/json/apache-cassandra.json @@ -1,40 +1,35 @@ { - "name": "Apache-Cassandra", - "slug": "apache-cassandra", - "categories": [ - 8 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": null, - "documentation": null, - "website": "https://cassandra.apache.org/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/apachecassandra.svg", - "config_path": "", - "description": "Apache-Cassandra is an open source NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance.", - "install_methods": [ - { - "type": "default", - "script": "ct/apache-cassandra.sh", - "resources": { - "cpu": 1, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Apache-Cassandra Configuration: `nano /etc/cassandra/cassandra.yaml`", - "type": "info" - } - ] + "name": "Apache-Cassandra", + "slug": "apache-cassandra", + "categories": [ + 8 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": "https://cassandra.apache.org/doc/latest/", + "website": "https://cassandra.apache.org/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/apachecassandra.svg", + "config_path": "/etc/cassandra/cassandra.yaml", + "description": "Apache-Cassandra is an open source NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance.", + "install_methods": [ + { + "type": "default", + "script": "ct/apache-cassandra.sh", + "resources": { + "cpu": 1, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/apache-couchdb.json b/frontend/public/json/apache-couchdb.json index 221a24621..6fd2543fa 100644 --- a/frontend/public/json/apache-couchdb.json +++ b/frontend/public/json/apache-couchdb.json @@ -1,40 +1,40 @@ { - "name": "Apache-CouchDB", - "slug": "apache-couchdb", - "categories": [ - 8 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 5984, - "documentation": null, - "website": "https://couchdb.apache.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/couchdb.svg", - "config_path": "", - "description": "Apache-CouchDB Seamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.", - "install_methods": [ - { - "type": "default", - "script": "ct/apache-couchdb.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 10, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Show Login Credentials: `cat CouchDB.creds`", - "type": "info" - } - ] + "name": "Apache-CouchDB", + "slug": "apache-couchdb", + "categories": [ + 8 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 5984, + "documentation": "https://docs.couchdb.org/en/stable/", + "website": "https://couchdb.apache.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/couchdb.svg", + "config_path": "etc/default.ini", + "description": "Apache-CouchDB Seamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.", + "install_methods": [ + { + "type": "default", + "script": "ct/apache-couchdb.sh", + "resources": { + "cpu": 2, + "ram": 4096, + "hdd": 10, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Show Login Credentials: `cat CouchDB.creds`", + "type": "info" + } + ] } diff --git a/frontend/public/json/apache-tika.json b/frontend/public/json/apache-tika.json index ac38fb036..9c97c0385 100644 --- a/frontend/public/json/apache-tika.json +++ b/frontend/public/json/apache-tika.json @@ -1,36 +1,40 @@ { - "name": "Apache Tika", - "slug": "apache-tika", - "categories": [ - 12 - ], - "date_created": "2025-02-05", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9998, - "documentation": null, - "website": "https://tika.apache.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/apache-tika.svg", - "config_path": "", - "description": "The Apache Tikaβ„’ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF). All of these file types can be parsed through a single interface, making Tika useful for search engine indexing, content analysis, translation, and much more.", - "install_methods": [ - { - "type": "default", - "script": "ct/apache-tika.sh", - "resources": { - "cpu": 1, - "ram": 2024, - "hdd": 10, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Apache Tika", + "slug": "apache-tika", + "categories": [ + 12 + ], + "date_created": "2025-02-05", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9998, + "documentation": "https://cwiki.apache.org/confluence/display/tika", + "website": "https://tika.apache.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/apache-tika.svg", + "config_path": "/opt/apache-tika/tika-config.xml", + "description": "The Apache Tikaβ„’ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF). All of these file types can be parsed through a single interface, making Tika useful for search engine indexing, content analysis, translation, and much more.", + "install_methods": [ + { + "type": "default", + "script": "ct/apache-tika.sh", + "resources": { + "cpu": 1, + "ram": 2024, + "hdd": 10, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Configuration file is not created at install time. Example is at: `https://cwiki.apache.org/confluence/display/TIKA/TikaServer+in+Tika+2.x`", + "type": "info" + } + ] } - diff --git a/frontend/public/json/archivebox.json b/frontend/public/json/archivebox.json index 6e51476a1..bfc6b9ed5 100644 --- a/frontend/public/json/archivebox.json +++ b/frontend/public/json/archivebox.json @@ -1,35 +1,35 @@ { - "name": "ArchiveBox", - "slug": "archivebox", - "categories": [ - 12 - ], - "date_created": "2024-10-19", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": null, - "website": "https://archivebox.io/", - "logo": "https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/refs/heads/dev/website/icon.png", - "config_path": "", - "description": "ArchiveBox is an open source tool that lets organizations & individuals archive both public & private web content while retaining control over their data. It can be used to save copies of bookmarks, preserve evidence for legal cases, backup photos from FB/Insta/Flickr or media from YT/Soundcloud/etc., save research papers, and more...", - "install_methods": [ - { - "type": "default", - "script": "ct/archivebox.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "archivebox", - "password": "helper-scripts.com" - }, - "notes": [] + "name": "ArchiveBox", + "slug": "archivebox", + "categories": [ + 12 + ], + "date_created": "2024-10-19", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://github.com/ArchiveBox/ArchiveBox/wiki", + "website": "https://archivebox.io/", + "logo": "https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/refs/heads/dev/website/icon.png", + "config_path": "/opt/archivebox/data/ArchiveBox.conf", + "description": "ArchiveBox is an open source tool that lets organizations & individuals archive both public & private web content while retaining control over their data. It can be used to save copies of bookmarks, preserve evidence for legal cases, backup photos from FB/Insta/Flickr or media from YT/Soundcloud/etc., save research papers, and more...", + "install_methods": [ + { + "type": "default", + "script": "ct/archivebox.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "archivebox", + "password": "helper-scripts.com" + }, + "notes": [] } diff --git a/frontend/public/json/aria2.json b/frontend/public/json/aria2.json index 1f1dffb9e..4e24bd982 100644 --- a/frontend/public/json/aria2.json +++ b/frontend/public/json/aria2.json @@ -1,40 +1,40 @@ { - "name": "Aria2", - "slug": "aria2", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 6880, - "documentation": null, - "website": "https://aria2.github.io/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/linux.svg", - "config_path": "", - "description": "Aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.", - "install_methods": [ - { - "type": "default", - "script": "ct/aria2.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Within the LXC console, run `cat rpc.secret` to display the rpc-secret. Copy this token and paste it into the Aria2 RPC Secret Token box within the AriaNG Settings. Then, click the reload AriaNG button.", - "type": "info" - } - ] + "name": "Aria2", + "slug": "aria2", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 6880, + "documentation": "https://aria2.github.io/manual/en/html/index.html", + "website": "https://aria2.github.io/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/linux.svg", + "config_path": "/root/aria2.daemon", + "description": "Aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.", + "install_methods": [ + { + "type": "default", + "script": "ct/aria2.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Within the LXC console, run `cat rpc.secret` to display the rpc-secret. Copy this token and paste it into the Aria2 RPC Secret Token box within the AriaNG Settings. Then, click the reload AriaNG button.", + "type": "info" + } + ] } diff --git a/frontend/public/json/audiobookshelf.json b/frontend/public/json/audiobookshelf.json index 4c8bb82cc..a00bbb457 100644 --- a/frontend/public/json/audiobookshelf.json +++ b/frontend/public/json/audiobookshelf.json @@ -1,36 +1,35 @@ { - "name": "Audiobookshelf", - "slug": "audiobookshelf", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 13378, - "documentation": "https://www.audiobookshelf.org/guides/", - "website": "https://www.audiobookshelf.org/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/audiobookshelf.svg", - "config_path": "", - "description": "Audiobookshelf is a Self-hosted audiobook and podcast server.", - "install_methods": [ - { - "type": "default", - "script": "ct/audiobookshelf.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Audiobookshelf", + "slug": "audiobookshelf", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 13378, + "documentation": "https://www.audiobookshelf.org/guides/", + "website": "https://www.audiobookshelf.org/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/audiobookshelf.svg", + "config_path": "/usr/share/audiobookshelf/config", + "description": "Audiobookshelf is a Self-hosted audiobook and podcast server.", + "install_methods": [ + { + "type": "default", + "script": "ct/audiobookshelf.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } - diff --git a/frontend/public/json/authentik.json b/frontend/public/json/authentik.json index 19eb1ff68..6f14106bb 100644 --- a/frontend/public/json/authentik.json +++ b/frontend/public/json/authentik.json @@ -20,7 +20,7 @@ "script": "ct/authentik.sh", "resources": { "cpu": 6, - "ram": 8192, + "ram": 10240, "hdd": 12, "os": "debian", "version": "12" @@ -33,7 +33,11 @@ }, "notes": [ { - "text": "Authentik is very resource-heavy, it is recommended to use at least 8GB RAM anytime!", + "text": "Authentik is very resource-heavy, it is recommended to use at least 10GB RAM anytime!", + "type": "warning" + }, + { + "text": "Some updates don't work due to massive dependency errors, it's recommended to do a backup before updating or a pg_dump and a new LXC.", "type": "warning" } ] diff --git a/frontend/public/json/autobrr.json b/frontend/public/json/autobrr.json index c8c060229..c77a08b2a 100644 --- a/frontend/public/json/autobrr.json +++ b/frontend/public/json/autobrr.json @@ -1,35 +1,35 @@ { - "name": "Autobrr", - "slug": "autobrr", - "categories": [ - 14 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 7474, - "documentation": "https://autobrr.com/configuration/autobrr", - "website": "https://autobrr.com/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/autobrr.svg", - "config_path": "", - "description": "Autobrr is a torrent downloading tool that automates the process of downloading torrents. It is designed to be modern and user-friendly, providing users with a convenient and efficient way to download torrent files. With Autobrr, you can schedule and manage your torrent downloads, and have the ability to automatically download torrents based on certain conditions, such as time of day or availability of seeds. This can save you time and effort, allowing you to focus on other tasks while your torrents are being downloaded in the background.", - "install_methods": [ - { - "type": "default", - "script": "ct/autobrr.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Autobrr", + "slug": "autobrr", + "categories": [ + 14 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 7474, + "documentation": "https://autobrr.com/configuration/autobrr", + "website": "https://autobrr.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/autobrr.svg", + "config_path": "/root/.config/autobrr/config.toml", + "description": "Autobrr is a torrent downloading tool that automates the process of downloading torrents. It is designed to be modern and user-friendly, providing users with a convenient and efficient way to download torrent files. With Autobrr, you can schedule and manage your torrent downloads, and have the ability to automatically download torrents based on certain conditions, such as time of day or availability of seeds. This can save you time and effort, allowing you to focus on other tasks while your torrents are being downloaded in the background.", + "install_methods": [ + { + "type": "default", + "script": "ct/autobrr.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/baikal.json b/frontend/public/json/baikal.json index cf10f8d1e..48a8503c3 100644 --- a/frontend/public/json/baikal.json +++ b/frontend/public/json/baikal.json @@ -1,35 +1,35 @@ { - "name": "BaΓ―kal", - "slug": "baikal", - "categories": [ - 0 - ], - "date_created": "2025-01-31", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": null, - "website": "https://sabre.io/baikal/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/baikal.webp", - "config_path": "", - "description": "BaΓ―kal is a lightweight CalDAV+CardDAV server. It offers an extensive web interface with easy management of users, address books and calendars.", - "install_methods": [ - { - "type": "default", - "script": "ct/baikal.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "12" - } + "name": "BaΓ―kal", + "slug": "baikal", + "categories": [ + 0 + ], + "date_created": "2025-01-31", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": null, + "website": "https://sabre.io/baikal/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/baikal.webp", + "config_path": "/opt/baikal/config/baikal.yaml", + "description": "BaΓ―kal is a lightweight CalDAV+CardDAV server. It offers an extensive web interface with easy management of users, address books and calendars.", + "install_methods": [ + { + "type": "default", + "script": "ct/baikal.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "debian", + "version": "12" } - ], - "default_credentials": { - "username": "Admin", - "password": null - }, - "notes": [] + } + ], + "default_credentials": { + "username": "Admin", + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/barcode-buddy.json b/frontend/public/json/barcode-buddy.json index 71551f2c0..3256e3594 100644 --- a/frontend/public/json/barcode-buddy.json +++ b/frontend/public/json/barcode-buddy.json @@ -12,7 +12,7 @@ "documentation": "https://barcodebuddy-documentation.readthedocs.io/en/latest/", "website": "https://github.com/Forceu/barcodebuddy", "logo": "https://raw.githubusercontent.com/Forceu/barcodebuddy/refs/heads/master/incl/img/favicon/android-icon-192x192.png", - "config_path": "", + "config_path": "/opt/barcodebuddy/data/config.php", "description": "Barcode Buddy for Grocy is an extension for Grocy, allowing to pass barcodes to Grocy. It supports barcodes for products and chores. If you own a physical barcode scanner, it can be integrated, so that all barcodes scanned are automatically pushed to BarcodeBuddy/Grocy.", "install_methods": [ { @@ -38,4 +38,3 @@ } ] } - diff --git a/frontend/public/json/bazarr.json b/frontend/public/json/bazarr.json index 856f204a8..91ec671c1 100644 --- a/frontend/public/json/bazarr.json +++ b/frontend/public/json/bazarr.json @@ -1,36 +1,35 @@ { - "name": "Bazarr", - "slug": "bazarr", - "categories": [ - 14 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 6767, - "documentation": null, - "website": "https://www.bazarr.media/", - "logo": "https://www.bazarr.media/assets/img/logo.png", - "config_path": "", - "description": "Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.", - "install_methods": [ - { - "type": "default", - "script": "ct/bazarr.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Bazarr", + "slug": "bazarr", + "categories": [ + 14 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 6767, + "documentation": "https://wiki.bazarr.media/", + "website": "https://www.bazarr.media/", + "logo": "https://www.bazarr.media/assets/img/logo.png", + "config_path": "/opt/bazarr/data/config/config.yaml", + "description": "Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.", + "install_methods": [ + { + "type": "default", + "script": "ct/bazarr.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } - diff --git a/frontend/public/json/blocky.json b/frontend/public/json/blocky.json index 0db60737d..45b85f1c4 100644 --- a/frontend/public/json/blocky.json +++ b/frontend/public/json/blocky.json @@ -1,40 +1,35 @@ { - "name": "Blocky", - "slug": "blocky", - "categories": [ - 5 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 4000, - "documentation": null, - "website": "https://0xerr0r.github.io/blocky/", - "logo": "https://raw.githubusercontent.com/0xERR0R/blocky/main/docs/blocky.svg", - "config_path": "", - "description": "Blocky is a software tool designed for blocking unwanted ads and trackers on local networks. It functions as a DNS proxy and runs on the Go programming language. Blocky intercepts requests to advertisements and other unwanted content and blocks them before they reach the end user. This results in a cleaner, faster, and more secure online experience for users connected to the local network. Blocky is open-source, easy to configure and can be run on a variety of devices, making it a versatile solution for small to medium-sized local networks.", - "install_methods": [ - { - "type": "default", - "script": "ct/blocky.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Blocky Configuration Path: `/opt/blocky/config.yml`", - "type": "info" - } - ] + "name": "Blocky", + "slug": "blocky", + "categories": [ + 5 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 4000, + "documentation": null, + "website": "https://0xerr0r.github.io/blocky/", + "logo": "https://raw.githubusercontent.com/0xERR0R/blocky/main/docs/blocky.svg", + "config_path": "/opt/blocky/config.yml", + "description": "Blocky is a software tool designed for blocking unwanted ads and trackers on local networks. It functions as a DNS proxy and runs on the Go programming language. Blocky intercepts requests to advertisements and other unwanted content and blocks them before they reach the end user. This results in a cleaner, faster, and more secure online experience for users connected to the local network. Blocky is open-source, easy to configure and can be run on a variety of devices, making it a versatile solution for small to medium-sized local networks.", + "install_methods": [ + { + "type": "default", + "script": "ct/blocky.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/boltdiy.json b/frontend/public/json/boltdiy.json index 99c57df9e..5997cc6f2 100644 --- a/frontend/public/json/boltdiy.json +++ b/frontend/public/json/boltdiy.json @@ -12,7 +12,7 @@ "documentation": "https://stackblitz-labs.github.io/bolt.diy/", "website": "https://github.com/stackblitz-labs/bolt.diy", "logo": "https://github.com/stackblitz-labs/bolt.diy/raw/refs/heads/main/icons/logo-text.svg", - "config_path": "", + "config_path": "/opt/bolt.diy/.env.local", "description": "The official open source version of Bolt.new (previously known as oTToDev and bolt.new ANY LLM), which allows you to choose the LLM that you use for each prompt! Currently, you can use OpenAI, Anthropic, Ollama, OpenRouter, Gemini, LMStudio, Mistral, xAI, HuggingFace, DeepSeek, or Groq models - and it is easily extended to use any other model supported by the Vercel AI SDK!", "install_methods": [ { @@ -33,4 +33,3 @@ }, "notes": [] } - diff --git a/frontend/public/json/bunkerweb.json b/frontend/public/json/bunkerweb.json index 909659cb0..506994859 100644 --- a/frontend/public/json/bunkerweb.json +++ b/frontend/public/json/bunkerweb.json @@ -1,35 +1,35 @@ { - "name": "BunkerWeb", - "slug": "bunkerweb", - "categories": [ - 6 - ], - "date_created": "2024-06-12", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": null, - "website": "https://www.bunkerweb.io/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/bunkerweb.svg", - "config_path": "", - "description": "BunkerWeb is a security-focused web server that enhances web application protection. It guards against common web vulnerabilities like SQL injection, XSS, and CSRF. It features simple setup and configuration using a YAML file, customizable security rules, and provides detailed logs for traffic monitoring and threat detection.", - "install_methods": [ - { - "type": "default", - "script": "ct/bunkerweb.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "BunkerWeb", + "slug": "bunkerweb", + "categories": [ + 6 + ], + "date_created": "2024-06-12", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": null, + "documentation": "https://docs.bunkerweb.io/latest/", + "website": "https://www.bunkerweb.io/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/bunkerweb.svg", + "config_path": "/opt/bunkerweb/variables.env", + "description": "BunkerWeb is a security-focused web server that enhances web application protection. It guards against common web vulnerabilities like SQL injection, XSS, and CSRF. It features simple setup and configuration using a YAML file, customizable security rules, and provides detailed logs for traffic monitoring and threat detection.", + "install_methods": [ + { + "type": "default", + "script": "ct/bunkerweb.sh", + "resources": { + "cpu": 2, + "ram": 4096, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/caddy.json b/frontend/public/json/caddy.json index 2ab46536b..c5e175347 100644 --- a/frontend/public/json/caddy.json +++ b/frontend/public/json/caddy.json @@ -6,13 +6,13 @@ ], "date_created": "2024-05-11", "type": "ct", - "updateable": false, + "updateable": true, "privileged": false, "interface_port": 80, "documentation": "https://caddyserver.com/docs/", "website": "https://caddyserver.com/", "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/caddy.svg", - "config_path": "", + "config_path": "/etc/caddy/Caddyfile", "description": "Caddy is a powerful, extensible platform to serve your sites, services, and apps, written in Go.", "install_methods": [ { @@ -32,6 +32,10 @@ "password": null }, "notes": [ + { + "text": "xcaddy needs to be updated manually after a caddy update!", + "type": "warning" + }, { "text": "if you need an internal module run: `caddy add-package PACKAGENAME`", "type": "info" diff --git a/frontend/public/json/calibre-web.json b/frontend/public/json/calibre-web.json index 808d689e9..98be09661 100644 --- a/frontend/public/json/calibre-web.json +++ b/frontend/public/json/calibre-web.json @@ -1,40 +1,40 @@ { - "name": "Calibre-Web", - "slug": "calibre-web", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8083, - "documentation": null, - "website": "https://github.com/janeczku/calibre-web", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/calibre-web.svg", - "config_path": "", - "description": "Calibre-Web is a web app for browsing, reading and downloading eBooks stored in a Calibre database.", - "install_methods": [ - { - "type": "default", - "script": "ct/calibre-web.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin123" - }, - "notes": [ - { - "text": "Add Calibre-Web Extras via `update`", - "type": "info" - } - ] + "name": "Calibre-Web", + "slug": "calibre-web", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8083, + "documentation": "https://github.com/janeczku/calibre-web/wiki", + "website": "https://github.com/janeczku/calibre-web", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/calibre-web.svg", + "config_path": "", + "description": "Calibre-Web is a web app for browsing, reading and downloading eBooks stored in a Calibre database.", + "install_methods": [ + { + "type": "default", + "script": "ct/calibre-web.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "admin123" + }, + "notes": [ + { + "text": "Add Calibre-Web Extras via `update`", + "type": "info" + } + ] } diff --git a/frontend/public/json/changedetection.json b/frontend/public/json/changedetection.json index 200943928..98233ba78 100644 --- a/frontend/public/json/changedetection.json +++ b/frontend/public/json/changedetection.json @@ -1,36 +1,35 @@ { - "name": "Change Detection", - "slug": "changedetection", - "categories": [ - 24 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5000, - "documentation": null, - "website": "https://changedetection.io/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/changedetection.svg", - "config_path": "", - "description": "Change Detection is a service that allows you to monitor changes to web pages and receive notifications when changes occur. It can be used for a variety of purposes such as keeping track of online price changes, monitoring news websites for updates, or tracking changes to online forums.", - "install_methods": [ - { - "type": "default", - "script": "ct/changedetection.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 10, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Change Detection", + "slug": "changedetection", + "categories": [ + 24 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5000, + "documentation": "https://changedetection.io/tutorials", + "website": "https://changedetection.io/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/changedetection.svg", + "config_path": "/opt/changedetection/url-watches.json", + "description": "Change Detection is a service that allows you to monitor changes to web pages and receive notifications when changes occur. It can be used for a variety of purposes such as keeping track of online price changes, monitoring news websites for updates, or tracking changes to online forums.", + "install_methods": [ + { + "type": "default", + "script": "ct/changedetection.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 10, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } - diff --git a/frontend/public/json/channels.json b/frontend/public/json/channels.json index 0f876ca84..317788eb7 100644 --- a/frontend/public/json/channels.json +++ b/frontend/public/json/channels.json @@ -1,41 +1,40 @@ { - "name": "Channels DVR Server", - "slug": "channels", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": true, - "interface_port": 8089, - "documentation": null, - "website": "https://getchannels.com/dvr-server/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/channels-dvr.svg", - "config_path": "", - "description": "Channels DVR Server runs on your computer or NAS device at home. There's no cloud to worry about. Your tv shows and movies will always be available.", - "install_methods": [ - { - "type": "default", - "script": "ct/channels.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", - "type": "warning" - } - ] + "name": "Channels DVR Server", + "slug": "channels", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": true, + "interface_port": 8089, + "documentation": "https://getchannels.com/docs/getting-started/quick-start-guide/", + "website": "https://getchannels.com/dvr-server/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/channels-dvr.svg", + "config_path": "", + "description": "Channels DVR Server runs on your computer or NAS device at home. There's no cloud to worry about. Your tv shows and movies will always be available.", + "install_methods": [ + { + "type": "default", + "script": "ct/channels.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", + "type": "warning" + } + ] } - diff --git a/frontend/public/json/cloudflared.json b/frontend/public/json/cloudflared.json index e9f235fa9..700c04635 100644 --- a/frontend/public/json/cloudflared.json +++ b/frontend/public/json/cloudflared.json @@ -1,41 +1,40 @@ { - "name": "Cloudflared", - "slug": "cloudflared", - "categories": [ - 4 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": null, - "documentation": "https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/", - "website": "https://www.cloudflare.com/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/cloudflare.svg", - "config_path": "", - "description": "Cloudflared is a command-line tool that allows you to securely access resources on the Cloudflare network, such as websites and APIs, from your local computer. It works by creating a secure tunnel between your computer and the Cloudflare network, allowing you to access resources as if they were on your local network.", - "install_methods": [ - { - "type": "default", - "script": "ct/cloudflared.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "With an option to configure cloudflared as a DNS-over-HTTPS (DoH) proxy", - "type": "info" - } - ] + "name": "Cloudflared", + "slug": "cloudflared", + "categories": [ + 4 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": "https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/", + "website": "https://www.cloudflare.com/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/cloudflare.svg", + "config_path": "/usr/local/etc/cloudflared/config.yml", + "description": "Cloudflared is a command-line tool that allows you to securely access resources on the Cloudflare network, such as websites and APIs, from your local computer. It works by creating a secure tunnel between your computer and the Cloudflare network, allowing you to access resources as if they were on your local network.", + "install_methods": [ + { + "type": "default", + "script": "ct/cloudflared.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "With an option to configure cloudflared as a DNS-over-HTTPS (DoH) proxy", + "type": "info" + } + ] } - diff --git a/frontend/public/json/cockpit.json b/frontend/public/json/cockpit.json index bbcdf51ee..c1a88c3d3 100644 --- a/frontend/public/json/cockpit.json +++ b/frontend/public/json/cockpit.json @@ -1,40 +1,40 @@ { - "name": "Cockpit", - "slug": "cockpit", - "categories": [ - 10 - ], - "date_created": "2024-10-20", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9090, - "documentation": null, - "website": "https://cockpit-project.org/", - "logo": "https://i0.wp.com/easycode.page/wp-content/uploads/2021/10/cockpit.png?fit=400%2C400&ssl=1", - "config_path": "", - "description": "Cockpit is a web-based graphical interface for managing Linux servers. It allows users to perform tasks like configuring networks, managing storage, and monitoring system performance directly through a web browser. It integrates with existing system tools, making it suitable for both beginners and experienced admins.", - "install_methods": [ - { - "type": "default", - "script": "ct/cockpit.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Set a root password if using autologin. This will be the Cockpit password.`sudo passwd root`", - "type": "info" - } - ] + "name": "Cockpit", + "slug": "cockpit", + "categories": [ + 10 + ], + "date_created": "2024-10-20", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9090, + "documentation": "https://cockpit-project.org/documentation.html", + "website": "https://cockpit-project.org/", + "logo": "https://i0.wp.com/easycode.page/wp-content/uploads/2021/10/cockpit.png?fit=400%2C400&ssl=1", + "config_path": "/etc/cockpit/cockpit.conf", + "description": "Cockpit is a web-based graphical interface for managing Linux servers. It allows users to perform tasks like configuring networks, managing storage, and monitoring system performance directly through a web browser. It integrates with existing system tools, making it suitable for both beginners and experienced admins.", + "install_methods": [ + { + "type": "default", + "script": "ct/cockpit.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Set a root password if using autologin. This will be the Cockpit password.`sudo passwd root`", + "type": "info" + } + ] } diff --git a/frontend/public/json/code-server.json b/frontend/public/json/code-server.json deleted file mode 100644 index 935e993cc..000000000 --- a/frontend/public/json/code-server.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "VS Code Server", - "slug": "code-server", - "categories": [1, 20, 11], - "date_created": "2024-05-02", - "type": "addon", - "updateable": false, - "privileged": false, - "interface_port": 8680, - "documentation": null, - "website": null, - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/visual-studio-code.svg", - "config_path": "", - "description": "VS Code Server is a service you can run on a remote development machine, like your desktop PC or a virtual machine (VM). It allows you to securely connect to that remote machine from anywhere through a vscode.dev URL, without the requirement of SSH.", - "install_methods": [ - { - "type": "default", - "script": "tools/addon/code-server.sh", - "resources": { - "cpu": null, - "ram": null, - "hdd": null, - "os": null, - "version": null - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Execute within an existing LXC Console", - "type": "warning" - } - ] -} - diff --git a/frontend/public/json/coder-code-server.json b/frontend/public/json/coder-code-server.json new file mode 100644 index 000000000..a2832ee1f --- /dev/null +++ b/frontend/public/json/coder-code-server.json @@ -0,0 +1,42 @@ +{ + "name": "Coder Code Server", + "slug": "coder-code-server", + "categories": [ + 1, + 20, + 11 + ], + "date_created": "2024-05-02", + "type": "addon", + "updateable": false, + "privileged": false, + "interface_port": 8680, + "documentation": "https://coder.com/docs/code-server", + "website": "https://coder.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/coder.svg", + "config_path": "", + "description": "Coder Code Server is an open-source project that enables you to run Visual Studio Code (VS Code) on a remote machine, such as a desktop PC or virtual server. It serves a web-based version of VS Code that you can access from any browser via a URL, allowing remote development without needing an SSH connection. Unlike the official VS Code Server used by vscode.dev for Remote Tunnels, code-server is developed by Coder and operates independently, providing similar capabilities through a self-hosted solution.", + "install_methods": [ + { + "type": "default", + "script": "tools/addon/coder-code-server.sh", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Execute within an existing LXC Console", + "type": "warning" + } + ] +} diff --git a/frontend/public/json/cosmos.json b/frontend/public/json/cosmos.json index 007222c71..99b9e384f 100644 --- a/frontend/public/json/cosmos.json +++ b/frontend/public/json/cosmos.json @@ -13,7 +13,7 @@ "documentation": "https://cosmos-cloud.io/doc/1%20index/", "website": "https://cosmos-cloud.io/", "logo": "https://cosmos-cloud.io/Logo.png", - "config_path": "", + "config_path": "/etc/sysconfig/CosmosCloud", "description": "Cosmos Cloud is a self-hosting platform that automates maintenance and security. It offers an app marketplace, reverse proxy management, container control, VPN integration, real-time monitoring, and disk management. Security features include SSO, anti-DDoS, and encryption. It simplifies self-hosting for all users.", "install_methods": [ { @@ -34,4 +34,3 @@ }, "notes": [] } - diff --git a/frontend/public/json/cronicle.json b/frontend/public/json/cronicle.json index 049057375..bda048e0b 100644 --- a/frontend/public/json/cronicle.json +++ b/frontend/public/json/cronicle.json @@ -1,40 +1,40 @@ { - "name": "Cronicle Primary", - "slug": "cronicle", - "categories": [ - 19 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3012, - "documentation": null, - "website": "https://github.com/jhuckaby/Cronicle", - "logo": "https://github.com/jhuckaby/Cronicle/blob/master/htdocs/images/logo-128.png?raw=true", - "config_path": "", - "description": "Cronicle is a task scheduling and management software that allows users to schedule and run tasks automatically on multiple servers. It has a web-based user interface that provides a convenient and centralized way to manage tasks and view their execution status. With Cronicle, users can schedule tasks to run at specific times, or on demand, and assign tasks to specific worker servers. The software provides real-time statistics and a live log viewer to help users monitor the progress of tasks. Cronicle is designed for use in large-scale environments, making it a valuable tool for automation and management of complex and time-sensitive tasks.", - "install_methods": [ - { - "type": "default", - "script": "ct/cronicle.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Configuration Path: `/opt/cronicle/conf/config.json` (Primary and Worker Private Keys Must Match)", - "type": "info" - } - ] + "name": "Cronicle Primary", + "slug": "cronicle", + "categories": [ + 19 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3012, + "documentation": null, + "website": "https://github.com/jhuckaby/Cronicle", + "logo": "https://github.com/jhuckaby/Cronicle/blob/master/htdocs/images/logo-128.png?raw=true", + "config_path": "/opt/cronicle/conf/config.json", + "description": "Cronicle is a task scheduling and management software that allows users to schedule and run tasks automatically on multiple servers. It has a web-based user interface that provides a convenient and centralized way to manage tasks and view their execution status. With Cronicle, users can schedule tasks to run at specific times, or on demand, and assign tasks to specific worker servers. The software provides real-time statistics and a live log viewer to help users monitor the progress of tasks. Cronicle is designed for use in large-scale environments, making it a valuable tool for automation and management of complex and time-sensitive tasks.", + "install_methods": [ + { + "type": "default", + "script": "ct/cronicle.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Primary and Worker Private Keys Must Match in the config file", + "type": "warning" + } + ] } diff --git a/frontend/public/json/cross-seed.json b/frontend/public/json/cross-seed.json index 45f9092d4..3f3bcf8ce 100644 --- a/frontend/public/json/cross-seed.json +++ b/frontend/public/json/cross-seed.json @@ -1,41 +1,40 @@ { - "name": "cross-seed", - "slug": "cross-seed", - "categories": [ - 14 - ], - "date_created": "2025-02-07", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 2468, - "documentation": "https://www.cross-seed.org/docs/category/basics", - "website": "https://www.cross-seed.org/", - "logo": "https://www.cross-seed.org/img/cross-seed.svg", - "config_path": "", - "description": "cross-seed is an app designed to help you download torrents that you can cross seed based on your existing torrents. It is designed to match conservatively to minimize manual intervention.", - "install_methods": [ - { - "type": "default", - "script": "ct/cross-seed.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "After the installation cross-seed will fail to start with an empty configuration. To fix this, edit `~/.cross-seed/config.js` to properly configure cross-seed, then restart by running `systemctl restart cross-seed`.", - "type": "info" + "name": "cross-seed", + "slug": "cross-seed", + "categories": [ + 14 + ], + "date_created": "2025-02-07", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 2468, + "documentation": "https://www.cross-seed.org/docs/category/basics", + "website": "https://www.cross-seed.org/", + "logo": "https://www.cross-seed.org/img/cross-seed.svg", + "config_path": "~/.cross-seed/config.js", + "description": "cross-seed is an app designed to help you download torrents that you can cross seed based on your existing torrents. It is designed to match conservatively to minimize manual intervention.", + "install_methods": [ + { + "type": "default", + "script": "ct/cross-seed.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 2, + "os": "debian", + "version": "12" } - ] + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "After the installation cross-seed will fail to start with an empty configuration. To fix this, edit the config file to properly configure cross-seed, then restart by running `systemctl restart cross-seed`.", + "type": "warning" + } + ] } - diff --git a/frontend/public/json/cryptpad.json b/frontend/public/json/cryptpad.json index 7b0473060..96bb1dbb6 100644 --- a/frontend/public/json/cryptpad.json +++ b/frontend/public/json/cryptpad.json @@ -1,41 +1,40 @@ { - "name": "CryptPad", - "slug": "cryptpad", - "categories": [ - 12 - ], - "date_created": "2025-03-11", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://docs.cryptpad.org/", - "website": "https://cryptpad.org/", - "logo": "https://raw.githubusercontent.com/cryptpad/cryptpad/refs/heads/main/customize.dist/CryptPad_logo.svg", - "config_path": "", - "description": "CryptPad is a collaboration suite that is end-to-end encrypted and open-source. It is designed to facilitate collaboration by synchronizing changes to documents in real time. Since all the user data is encrypted, in the event of a breach, attackers have no way of accessing the stored content", - "install_methods": [ - { - "type": "default", - "script": "ct/cryptpad.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 8, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "After installation finishes, `systemctl status cryptpad.service` to get token URL which you can use to create admin account", - "type": "info" - } - ] + "name": "CryptPad", + "slug": "cryptpad", + "categories": [ + 12 + ], + "date_created": "2025-03-11", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://docs.cryptpad.org/", + "website": "https://cryptpad.org/", + "logo": "https://raw.githubusercontent.com/cryptpad/cryptpad/refs/heads/main/customize.dist/CryptPad_logo.svg", + "config_path": "/opt/cryptpad/config/config.js", + "description": "CryptPad is a collaboration suite that is end-to-end encrypted and open-source. It is designed to facilitate collaboration by synchronizing changes to documents in real time. Since all the user data is encrypted, in the event of a breach, attackers have no way of accessing the stored content", + "install_methods": [ + { + "type": "default", + "script": "ct/cryptpad.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 8, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "After installation finishes, `systemctl status cryptpad.service` to get token URL which you can use to create admin account", + "type": "info" + } + ] } - diff --git a/frontend/public/json/deconz.json b/frontend/public/json/deconz.json index 86a0221f0..ef4144ec1 100644 --- a/frontend/public/json/deconz.json +++ b/frontend/public/json/deconz.json @@ -1,35 +1,35 @@ { - "name": "deCONZ", - "slug": "deconz", - "categories": [ - 17 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": true, - "interface_port": 80, - "documentation": null, - "website": "https://www.phoscon.de/en/conbee2/software#deconz", - "logo": "https://phoscon.de/img/phoscon-logo128x.svg", - "config_path": "", - "description": "deCONZ is a software for managing and controlling Zigbee-based smart home devices. It allows for setting up, configuring and visualizing the status of connected devices, as well as for triggering actions and automations. It works as a bridge between the Zigbee network and other home automation systems and can be used as a standalone solution or integrated into existing setups.", - "install_methods": [ - { - "type": "default", - "script": "ct/deconz.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "deCONZ", + "slug": "deconz", + "categories": [ + 17 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": true, + "interface_port": 80, + "documentation": "https://github.com/dresden-elektronik/deconz-rest-plugin/wiki", + "website": "https://www.phoscon.de/en/conbee2/software#deconz", + "logo": "https://phoscon.de/img/phoscon-logo128x.svg", + "config_path": "", + "description": "deCONZ is a software for managing and controlling Zigbee-based smart home devices. It allows for setting up, configuring and visualizing the status of connected devices, as well as for triggering actions and automations. It works as a bridge between the Zigbee network and other home automation systems and can be used as a standalone solution or integrated into existing setups.", + "install_methods": [ + { + "type": "default", + "script": "ct/deconz.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/deluge.json b/frontend/public/json/deluge.json index b10f817ed..a4621d9db 100644 --- a/frontend/public/json/deluge.json +++ b/frontend/public/json/deluge.json @@ -1,35 +1,35 @@ { - "name": "Deluge", - "slug": "deluge", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8112, - "documentation": null, - "website": "https://www.deluge-torrent.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/deluge.svg", - "config_path": "", - "description": "Deluge is a free, open-source, lightweight BitTorrent client. It supports various platforms including Windows, Linux, and macOS, and offers features such as peer exchange, DHT, and magnet links.", - "install_methods": [ - { - "type": "default", - "script": "ct/deluge.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": "deluge" - }, - "notes": [] + "name": "Deluge", + "slug": "deluge", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8112, + "documentation": "https://www.deluge-torrent.org/userguide/", + "website": "https://www.deluge-torrent.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/deluge.svg", + "config_path": "~/.config/deluge", + "description": "Deluge is a free, open-source, lightweight BitTorrent client. It supports various platforms including Windows, Linux, and macOS, and offers features such as peer exchange, DHT, and magnet links.", + "install_methods": [ + { + "type": "default", + "script": "ct/deluge.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": "deluge" + }, + "notes": [] } diff --git a/frontend/public/json/docmost.json b/frontend/public/json/docmost.json index 0ed0acc24..61dce1cc0 100644 --- a/frontend/public/json/docmost.json +++ b/frontend/public/json/docmost.json @@ -1,35 +1,35 @@ { - "name": "Docmost", - "slug": "docmost", - "categories": [ - 12 - ], - "date_created": "2025-02-18", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://docmost.com/docs/installation", - "website": "https://docmost.com/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/docmost.webp", - "config_path": "", - "description": "Open-source collaborative wiki and documentation software Create, collaborate, and share knowledge seamlessly with Docmost. Ideal for managing your wiki, knowledge-base, documentation and a lot more.", - "install_methods": [ - { - "type": "default", - "script": "ct/docmost.sh", - "resources": { - "cpu": 3, - "ram": 3072, - "hdd": 7, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Docmost", + "slug": "docmost", + "categories": [ + 12 + ], + "date_created": "2025-02-18", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://docmost.com/docs/installation", + "website": "https://docmost.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/docmost.webp", + "config_path": "/opt/docmost/.env", + "description": "Open-source collaborative wiki and documentation software Create, collaborate, and share knowledge seamlessly with Docmost. Ideal for managing your wiki, knowledge-base, documentation and a lot more.", + "install_methods": [ + { + "type": "default", + "script": "ct/docmost.sh", + "resources": { + "cpu": 3, + "ram": 3072, + "hdd": 7, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/dolibarr.json b/frontend/public/json/dolibarr.json index c497fe63a..e65e76404 100644 --- a/frontend/public/json/dolibarr.json +++ b/frontend/public/json/dolibarr.json @@ -1,41 +1,40 @@ { - "name": "Dolibarr", - "slug": "dolibarr", - "categories": [ - 25 - ], - "date_created": "2025-02-20", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://wiki.dolibarr.org/index.php?title=Home", - "website": "https://www.dolibarr.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/dolibarr.svg", - "config_path": "", - "description": "Dolibarr ERP CRM is a modern software package to manage your company or foundation's activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). it's an open source Web application (written in PHP) designed for businesses of any sizes, foundations and freelancers.", - "install_methods": [ - { - "type": "default", - "script": "ct/dolibarr.sh", - "resources": { - "cpu": 1, - "ram": 2048, - "hdd": 6, - "os": "debian", - "version": "12" - } + "name": "Dolibarr", + "slug": "dolibarr", + "categories": [ + 25 + ], + "date_created": "2025-02-20", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://wiki.dolibarr.org/index.php?title=Home", + "website": "https://www.dolibarr.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/dolibarr.svg", + "config_path": "/usr/share/dolibarr/htdocs/conf/conf.php.example", + "description": "Dolibarr ERP CRM is a modern software package to manage your company or foundation's activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). it's an open source Web application (written in PHP) designed for businesses of any sizes, foundations and freelancers.", + "install_methods": [ + { + "type": "default", + "script": "ct/dolibarr.sh", + "resources": { + "cpu": 1, + "ram": 2048, + "hdd": 6, + "os": "debian", + "version": "12" } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Database credentials: `cat ~/dolibarr.creds`", - "type": "info" - } - ] - } - + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Database credentials: `cat ~/dolibarr.creds`", + "type": "info" + } + ] +} diff --git a/frontend/public/json/elementsynapse.json b/frontend/public/json/elementsynapse.json index fc0c8fbb0..7ddcffb75 100644 --- a/frontend/public/json/elementsynapse.json +++ b/frontend/public/json/elementsynapse.json @@ -1,31 +1,30 @@ { - - "name": "Element Synapse", - "slug": "elementsynapse", - "categories": [ - 4 - ], - "date_created": "2025-02-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8008, - "documentation": "https://element-hq.github.io/synapse/latest/welcome_and_overview.html", - "website": "https://element.io/", - "logo": "https://element.io/images/logo-mark-primary.svg", - "config_path": "", - "description": "Synapse is an open source Matrix homeserver implementation, written and maintained by Element. Matrix is the open standard for secure and interoperable real time communications. You can directly run and manage the source code in this repository, available under an AGPL license. There is no support provided from Element unless you have a subscription.", - "install_methods": [ - { - "type": "default", - "script": "ct/elementsynapse.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } + "name": "Element Synapse", + "slug": "elementsynapse", + "categories": [ + 4 + ], + "date_created": "2025-02-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8008, + "documentation": "https://element-hq.github.io/synapse/latest/welcome_and_overview.html", + "website": "https://element.io/", + "logo": "https://element.io/images/logo-mark-primary.svg", + "config_path": "/etc/matrix-synapse/homeserver.yaml", + "description": "Synapse is an open source Matrix homeserver implementation, written and maintained by Element. Matrix is the open standard for secure and interoperable real time communications. You can directly run and manage the source code in this repository, available under an AGPL license. There is no support provided from Element unless you have a subscription.", + "install_methods": [ + { + "type": "default", + "script": "ct/elementsynapse.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } } ], "default_credentials": { @@ -43,4 +42,3 @@ } ] } - diff --git a/frontend/public/json/emby.json b/frontend/public/json/emby.json index 2a83aaccb..72e37d535 100644 --- a/frontend/public/json/emby.json +++ b/frontend/public/json/emby.json @@ -1,40 +1,40 @@ { - "name": "Emby Media Server", - "slug": "emby", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8096, - "documentation": null, - "website": "https://emby.media/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/emby.svg", - "config_path": "", - "description": "Emby brings together your personal videos, music, photos, and live television.", - "install_methods": [ - { - "type": "default", - "script": "ct/emby.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "ubuntu", - "version": "22.04" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "With Privileged/Unprivileged Hardware Acceleration Support", - "type": "info" - } - ] + "name": "Emby Media Server", + "slug": "emby", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8096, + "documentation": "https://emby.media/support/articles/Home.html", + "website": "https://emby.media/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/emby.svg", + "config_path": "/var/lib/emby/config/system.xml", + "description": "Emby brings together your personal videos, music, photos, and live television.", + "install_methods": [ + { + "type": "default", + "script": "ct/emby.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "ubuntu", + "version": "22.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "With Privileged/Unprivileged Hardware Acceleration Support", + "type": "info" + } + ] } diff --git a/frontend/public/json/emqx.json b/frontend/public/json/emqx.json index 7705594c3..4eb14d13a 100644 --- a/frontend/public/json/emqx.json +++ b/frontend/public/json/emqx.json @@ -1,40 +1,40 @@ { - "name": "EMQX", - "slug": "emqx", - "categories": [ - 18 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 18083, - "documentation": null, - "website": "https://www.emqx.io/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/emqx.svg", - "config_path": "", - "description": "EMQX is an open-source MQTT broker that features a high-performance, real-time message processing engine. It is designed to handle large-scale IoT deployments, providing fast and reliable message delivery for connected devices. EMQX is known for its scalability, reliability, and low latency, making it a popular choice for IoT and M2M applications. It also offers a wide range of features and plugins for enhanced security, monitoring, and management.", - "install_methods": [ - { - "type": "default", - "script": "ct/emqx.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "public" - }, - "notes": [ - { - "text": "Setup-Steps: Access Control ➑ Authentication ➑ Create ➑ Next ➑ Next ➑ Create ➑ Users ➑ Add ➑ Username / Password (to authenicate with MQTT) ➑ Save. You're now ready to enjoy a high-performance MQTT Broker.", - "type": "info" - } - ] + "name": "EMQX", + "slug": "emqx", + "categories": [ + 18 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 18083, + "documentation": "https://docs.emqx.com/en/emqx/latest/", + "website": "https://www.emqx.io/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/emqx.svg", + "config_path": "/etc/emqx", + "description": "EMQX is an open-source MQTT broker that features a high-performance, real-time message processing engine. It is designed to handle large-scale IoT deployments, providing fast and reliable message delivery for connected devices. EMQX is known for its scalability, reliability, and low latency, making it a popular choice for IoT and M2M applications. It also offers a wide range of features and plugins for enhanced security, monitoring, and management.", + "install_methods": [ + { + "type": "default", + "script": "ct/emqx.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "public" + }, + "notes": [ + { + "text": "Setup-Steps: Access Control ➑ Authentication ➑ Create ➑ Next ➑ Next ➑ Create ➑ Users ➑ Add ➑ Username / Password (to authenicate with MQTT) ➑ Save. You're now ready to enjoy a high-performance MQTT Broker.", + "type": "info" + } + ] } diff --git a/frontend/public/json/ersatztv.json b/frontend/public/json/ersatztv.json index ae55f2bde..043501b82 100644 --- a/frontend/public/json/ersatztv.json +++ b/frontend/public/json/ersatztv.json @@ -1,35 +1,35 @@ { - "name": "ErsatzTV", - "slug": "ersatztv", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8409, - "documentation": null, - "website": "https://ersatztv.org/", - "logo": "https://raw.githubusercontent.com/ErsatzTV/ErsatzTV/main/artwork/ersatztv-logo.svg", - "config_path": "", - "description": "ErsatzTV is software for configuring and streaming custom live channels using your media library.", - "install_methods": [ - { - "type": "default", - "script": "ct/ersatztv.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 5, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "ErsatzTV", + "slug": "ersatztv", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8409, + "documentation": "https://ersatztv.org/docs/intro", + "website": "https://ersatztv.org/", + "logo": "https://raw.githubusercontent.com/ErsatzTV/ErsatzTV/main/artwork/ersatztv-logo.svg", + "config_path": "", + "description": "ErsatzTV is software for configuring and streaming custom live channels using your media library.", + "install_methods": [ + { + "type": "default", + "script": "ct/ersatztv.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 5, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/esphome.json b/frontend/public/json/esphome.json index eca1af74c..eeffb5946 100644 --- a/frontend/public/json/esphome.json +++ b/frontend/public/json/esphome.json @@ -1,35 +1,35 @@ { - "name": "ESPHome", - "slug": "esphome", - "categories": [ - 16 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 6052, - "documentation": null, - "website": "https://esphome.io/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/esphome.svg", - "config_path": "", - "description": "ESPHome is a platform for controlling ESP8266/ESP32-based devices using configuration files and integrating them with Home Automation systems. It provides a simple and flexible way to set up and manage the functionality of these devices, including defining and automating actions, monitoring sensors, and connecting to networks and other services. ESPHome is designed to be user-friendly and easy to use, and supports a wide range of features and integrations, making it a popular choice for home automation projects and IoT applications.", - "install_methods": [ - { - "type": "default", - "script": "ct/esphome.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "ESPHome", + "slug": "esphome", + "categories": [ + 16 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 6052, + "documentation": "https://esphome.io/components/", + "website": "https://esphome.io/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/esphome.svg", + "config_path": "/root/config/", + "description": "ESPHome is a platform for controlling ESP8266/ESP32-based devices using configuration files and integrating them with Home Automation systems. It provides a simple and flexible way to set up and manage the functionality of these devices, including defining and automating actions, monitoring sensors, and connecting to networks and other services. ESPHome is designed to be user-friendly and easy to use, and supports a wide range of features and integrations, making it a popular choice for home automation projects and IoT applications.", + "install_methods": [ + { + "type": "default", + "script": "ct/esphome.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/fenrus.json b/frontend/public/json/fenrus.json index 74c9b736d..bb740d5ad 100644 --- a/frontend/public/json/fenrus.json +++ b/frontend/public/json/fenrus.json @@ -1,35 +1,35 @@ { - "name": "Fenrus", - "slug": "fenrus", - "categories": [ - 10 - ], - "date_created": "2024-05-05", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 5000, - "documentation": null, - "website": "https://github.com/revenz/Fenrus", - "logo": "https://raw.githubusercontent.com/revenz/Fenrus/master/wwwroot/fenrus.svg", - "config_path": "", - "description": "A personal home page for quick access to all your personal apps/sites.", - "install_methods": [ - { - "type": "default", - "script": "ct/fenrus.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Fenrus", + "slug": "fenrus", + "categories": [ + 10 + ], + "date_created": "2024-05-05", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 5000, + "documentation": "https://github.com/revenz/Fenrus/wiki", + "website": "https://github.com/revenz/Fenrus", + "logo": "https://raw.githubusercontent.com/revenz/Fenrus/master/wwwroot/fenrus.svg", + "config_path": "", + "description": "A personal home page for quick access to all your personal apps/sites.", + "install_methods": [ + { + "type": "default", + "script": "ct/fenrus.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/fhem.json b/frontend/public/json/fhem.json index 0fb0cf9b9..d558f8379 100644 --- a/frontend/public/json/fhem.json +++ b/frontend/public/json/fhem.json @@ -1,40 +1,40 @@ { - "name": "FHEM", - "slug": "fhem", - "categories": [ - 16 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8083, - "documentation": null, - "website": "https://fhem.de/", - "logo": "https://avatars.githubusercontent.com/u/45183393?s=100&v=4", - "config_path": "", - "description": "FHEM stands for \"Freundliche Hausautomation und Energie-Messung,\" which translates to \"Friendly Home Automation and Energy Measurement\" in English. The software can interface with a wide range of devices, including lighting systems, thermostats, weather stations, and media devices, among others.", - "install_methods": [ - { - "type": "default", - "script": "ct/fhem.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.", - "type": "warning" - } - ] + "name": "FHEM", + "slug": "fhem", + "categories": [ + 16 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8083, + "documentation": "https://fhem.de/#Documentation", + "website": "https://fhem.de/", + "logo": "https://avatars.githubusercontent.com/u/45183393?s=100&v=4", + "config_path": "", + "description": "FHEM stands for \"Freundliche Hausautomation und Energie-Messung,\" which translates to \"Friendly Home Automation and Energy Measurement\" in English. The software can interface with a wide range of devices, including lighting systems, thermostats, weather stations, and media devices, among others.", + "install_methods": [ + { + "type": "default", + "script": "ct/fhem.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.", + "type": "warning" + } + ] } diff --git a/frontend/public/json/filebrowser.json b/frontend/public/json/filebrowser.json index de04f278e..478c30bc0 100644 --- a/frontend/public/json/filebrowser.json +++ b/frontend/public/json/filebrowser.json @@ -1,7 +1,7 @@ { "name": "File Browser", "slug": "filebrowser", - "categories": [1], + "categories": [1, 11], "date_created": "2024-05-02", "type": "addon", "updateable": false, diff --git a/frontend/public/json/fileflows.json b/frontend/public/json/fileflows.json index d74fe9ca7..cb1782902 100644 --- a/frontend/public/json/fileflows.json +++ b/frontend/public/json/fileflows.json @@ -12,7 +12,7 @@ "documentation": "https://fileflows.com/docs", "website": "https://fileflows.com/", "logo": "https://raw.githubusercontent.com/revenz/FileFlows/refs/heads/develop/icon.png", - "config_path": "", + "config_path": "/opt/fileflows/Data/server.config", "description": "FileFlows is a powerful, open-source tool for automating media file processing workflows, including encoding, decoding, and media management. It offers an intuitive GUI and extensive plugin support, making it ideal for tasks like video transcoding, organizing, and managing large media libraries.", "install_methods": [ { @@ -38,4 +38,3 @@ } ] } - diff --git a/frontend/public/json/firefly.json b/frontend/public/json/firefly.json index b5f251dd8..15a453a1c 100644 --- a/frontend/public/json/firefly.json +++ b/frontend/public/json/firefly.json @@ -2,7 +2,7 @@ "name": "Firefly III", "slug": "firefly", "categories": [ - 23 + 23 ], "date_created": "2025-01-01", "type": "ct", @@ -12,7 +12,7 @@ "documentation": "https://docs.firefly-iii.org/", "website": "https://firefly-iii.org/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/firefly-iii.svg", - "config_path": "", + "config_path": "/opt/firefly/.env", "description": "Firefly III is a free, self-hosted tool for managing your finances. Track expenses, plan budgets, and get detailed reports.", "install_methods": [ { @@ -38,4 +38,3 @@ } ] } - diff --git a/frontend/public/json/flaresolverr.json b/frontend/public/json/flaresolverr.json index d02aaa3ab..d7142cbbd 100644 --- a/frontend/public/json/flaresolverr.json +++ b/frontend/public/json/flaresolverr.json @@ -1,35 +1,35 @@ { - "name": "FlareSolverr", - "slug": "flaresolverr", - "categories": [ - 14 - ], - "date_created": "2024-06-12", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8191, - "documentation": null, - "website": "https://github.com/FlareSolverr/FlareSolverr", - "logo": "https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.svg", - "config_path": "", - "description": "FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.", - "install_methods": [ - { - "type": "default", - "script": "ct/flaresolverr.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "FlareSolverr", + "slug": "flaresolverr", + "categories": [ + 14 + ], + "date_created": "2024-06-12", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8191, + "documentation": "https://github.com/FlareSolverr/FlareSolverr/blob/master/README.md", + "website": "https://github.com/FlareSolverr/FlareSolverr", + "logo": "https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/resources/flaresolverr_logo.svg", + "config_path": "", + "description": "FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.", + "install_methods": [ + { + "type": "default", + "script": "ct/flaresolverr.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/flowiseai.json b/frontend/public/json/flowiseai.json index 23662c17d..cec861200 100644 --- a/frontend/public/json/flowiseai.json +++ b/frontend/public/json/flowiseai.json @@ -12,7 +12,7 @@ "documentation": "https://docs.flowiseai.com/", "website": "https://flowiseai.com/", "logo": "https://flowiseai.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo-color-high.e60de2f8.png&w=256&q=75", - "config_path": "", + "config_path": "/opt/flowiseai/.env", "description": "FlowiseAI is an open source low-code tool for developers to build customized LLM orchestration flow & AI agents", "install_methods": [ { @@ -38,4 +38,3 @@ } ] } - diff --git a/frontend/public/json/fluid-calendar.json b/frontend/public/json/fluid-calendar.json index ed30de281..250b69cc2 100644 --- a/frontend/public/json/fluid-calendar.json +++ b/frontend/public/json/fluid-calendar.json @@ -13,7 +13,7 @@ "documentation": "https://github.com/dotnetfactory/fluid-calendar/tree/main/docs", "website": "https://github.com/dotnetfactory/fluid-calendar", "logo": "https://raw.githubusercontent.com/dotnetfactory/fluid-calendar/refs/heads/main/src/app/favicon.ico", - "config_path": "", + "config_path": "/opt/fluid-calendar/.env", "description": "The open-source intelligent calendar that adapts to your workflow. Experience seamless task scheduling powered by AI, designed to make your time management effortless.", "install_methods": [ { @@ -39,4 +39,3 @@ } ] } - diff --git a/frontend/public/json/freshrss.json b/frontend/public/json/freshrss.json index 644f4bb15..24f872eb9 100644 --- a/frontend/public/json/freshrss.json +++ b/frontend/public/json/freshrss.json @@ -12,7 +12,7 @@ "documentation": "https://freshrss.github.io/FreshRSS/en/", "website": "https://freshrss.org/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/freshrss.svg", - "config_path": "", + "config_path": "/opt/freshrss/data/config.php", "description": "FreshRSS is a self-hosted RSS and Atom feed aggregator that lets users collect, organize, and read from multiple sources in one place. It is lightweight, easy to work with, powerful, and customizable.", "install_methods": [ { @@ -42,4 +42,3 @@ } ] } - diff --git a/frontend/public/json/fumadocs.json b/frontend/public/json/fumadocs.json new file mode 100644 index 000000000..53a5c40b6 --- /dev/null +++ b/frontend/public/json/fumadocs.json @@ -0,0 +1,35 @@ +{ + "name": "Fumadocs", + "slug": "fumadocs", + "categories": [ + 10 + ], + "date_created": "2025-05-06", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://fumadocs.vercel.app/docs/ui", + "website": "https://fumadocs.vercel.app/", + "logo": "https://raw.githubusercontent.com/fuma-nama/fumadocs/refs/heads/dev/documents/logo.png", + "config_path": "", + "description": "Fumadocs is a flexible and high-performance framework for creating well-structured documentation websites using Next.js. It allows developers to write content and transform it into structured data. Fumadocs supports various content sources, including MDX and Content Collections, and integrates search solutions like Orama and Algolia. It also provides interactive components to enhance the user experience.", + "install_methods": [ + { + "type": "default", + "script": "ct/fumadocs.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 5, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/glance.json b/frontend/public/json/glance.json index 8d042d2ce..bed5f520c 100644 --- a/frontend/public/json/glance.json +++ b/frontend/public/json/glance.json @@ -1,41 +1,35 @@ { - "name": "Glance", - "slug": "glance", - "categories": [ - 9 - ], - "date_created": "2024-12-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://github.com/glanceapp/glance/blob/main/docs/configuration.md", - "website": "https://github.com/glanceapp/glance", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/glance.svg", - "config_path": "", - "description": "A self-hosted dashboard that puts all your feeds in one place", - "install_methods": [ - { - "type": "default", - "script": "ct/glance.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } + "name": "Glance", + "slug": "glance", + "categories": [ + 9 + ], + "date_created": "2024-12-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://github.com/glanceapp/glance/blob/main/docs/configuration.md", + "website": "https://github.com/glanceapp/glance", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/glance.svg", + "config_path": "/opt/glance/glance.yml", + "description": "A self-hosted dashboard that puts all your feeds in one place", + "install_methods": [ + { + "type": "default", + "script": "ct/glance.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Config file is located in /opt/glance/glance.yml", - "type": "info" - } - ] - } - + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/glances.json b/frontend/public/json/glances.json index d0ac46f1b..63df43d8f 100644 --- a/frontend/public/json/glances.json +++ b/frontend/public/json/glances.json @@ -1,16 +1,18 @@ { "name": "Glances", "slug": "glances", - "categories": [9], + "categories": [ + 9 + ], "date_created": "2024-05-02", "type": "addon", "updateable": false, "privileged": false, "interface_port": 61208, - "documentation": null, + "documentation": "https://glances.readthedocs.io/en/latest/", "website": "https://nicolargo.github.io/glances/", "logo": "https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/Glances%20Logo.svg", - "config_path": "", + "config_path": "/usr/local/share/doc/glances/glances.conf", "description": "Glances is an open-source system cross-platform monitoring tool. It allows real-time monitoring of various aspects of your system such as CPU, memory, disk, network usage etc.", "install_methods": [ { @@ -40,4 +42,3 @@ } ] } - diff --git a/frontend/public/json/glpi.json b/frontend/public/json/glpi.json index eb80fb533..622f9b7f3 100644 --- a/frontend/public/json/glpi.json +++ b/frontend/public/json/glpi.json @@ -2,7 +2,7 @@ "name": "GLPI", "slug": "glpi", "categories": [ - 25 + 25 ], "date_created": "2025-01-06", "type": "ct", @@ -12,7 +12,7 @@ "documentation": "https://glpi-project.org/documentation/", "website": "https://glpi-project.org/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/glpi.svg", - "config_path": "", + "config_path": "/etc/glpi", "description": "GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.", "install_methods": [ { @@ -33,4 +33,3 @@ }, "notes": [] } - diff --git a/frontend/public/json/go2rtc.json b/frontend/public/json/go2rtc.json index dace56ff9..0bdb6d17f 100644 --- a/frontend/public/json/go2rtc.json +++ b/frontend/public/json/go2rtc.json @@ -1,35 +1,35 @@ { - "name": "go2rtc", - "slug": "go2rtc", - "categories": [ - 15 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 1984, - "documentation": null, - "website": "https://github.com/AlexxIT/go2rtc", - "logo": "https://github.com/AlexxIT/go2rtc/blob/master/assets/logo.png?raw=true", - "config_path": "", - "description": "go2rtc is the ultimate camera streaming application with support RTSP, WebRTC, HomeKit, FFmpeg, RTMP, etc.", - "install_methods": [ - { - "type": "default", - "script": "ct/go2rtc.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "go2rtc", + "slug": "go2rtc", + "categories": [ + 15 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 1984, + "documentation": "https://github.com/AlexxIT/go2rtc/blob/master/README.md", + "website": "https://github.com/AlexxIT/go2rtc", + "logo": "https://github.com/AlexxIT/go2rtc/blob/master/assets/logo.png?raw=true", + "config_path": "/opt/go2rtc/go2rtc.yaml", + "description": "go2rtc is the ultimate camera streaming application with support RTSP, WebRTC, HomeKit, FFmpeg, RTMP, etc.", + "install_methods": [ + { + "type": "default", + "script": "ct/go2rtc.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/gokapi.json b/frontend/public/json/gokapi.json index 25bce9bec..b8271072f 100644 --- a/frontend/public/json/gokapi.json +++ b/frontend/public/json/gokapi.json @@ -1,35 +1,35 @@ { - "name": "Gokapi", - "slug": "gokapi", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 53842, - "documentation": null, - "website": "https://github.com/Forceu/Gokapi", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/linux.svg", - "config_path": "", - "description": "Gokapi is a lightweight server to share files, which expire after a set amount of downloads or days.", - "install_methods": [ - { - "type": "default", - "script": "ct/gokapi.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Gokapi", + "slug": "gokapi", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 53842, + "documentation": "https://gokapi.readthedocs.io/en/latest/usage.html", + "website": "https://github.com/Forceu/Gokapi", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/linux.svg", + "config_path": "/opt/gokapi/config", + "description": "Gokapi is a lightweight server to share files, which expire after a set amount of downloads or days.", + "install_methods": [ + { + "type": "default", + "script": "ct/gokapi.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/gomft.json b/frontend/public/json/gomft.json index f0bee4849..b67bbb08e 100644 --- a/frontend/public/json/gomft.json +++ b/frontend/public/json/gomft.json @@ -12,7 +12,7 @@ "documentation": "https://github.com/StarFleetCPTN/GoMFT#configuration", "website": "https://github.com/StarFleetCPTN/GoMFT", "logo": "https://raw.githubusercontent.com/StarFleetCPTN/GoMFT/83be259754689acc49a4b0dba25ba8384088a0fc/static/img/logo.svg", - "config_path": "", + "config_path": "/opt/gomft/.env", "description": "GoMFT is a web-based managed file transfer application built with Go, leveraging rclone for robust file transfer capabilities. It provides a user-friendly interface for configuring, scheduling, and monitoring file transfers across various storage providers.", "install_methods": [ { @@ -33,9 +33,8 @@ }, "notes": [ { - "text": "For additional configuration options, edit .env file here: `/opt/gomft/.env`. Check the documentation for more details.", + "text": "For additional configuration options check the documentation.", "type": "info" } ] } - diff --git a/frontend/public/json/gotify.json b/frontend/public/json/gotify.json index ce30b147c..c182ae35b 100644 --- a/frontend/public/json/gotify.json +++ b/frontend/public/json/gotify.json @@ -1,35 +1,35 @@ { - "name": "Gotify", - "slug": "gotify", - "categories": [ - 19 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 80, - "documentation": null, - "website": "https://gotify.net/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/gotify.svg", - "config_path": "", - "description": "Gotify is a simple server for sending and receiving messages", - "install_methods": [ - { - "type": "default", - "script": "ct/gotify.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" - }, - "notes": [] + "name": "Gotify", + "slug": "gotify", + "categories": [ + 19 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 80, + "documentation": "https://gotify.net/docs/index", + "website": "https://gotify.net/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/gotify.svg", + "config_path": "/etc/gotify/config.yml", + "description": "Gotify is a simple server for sending and receiving messages", + "install_methods": [ + { + "type": "default", + "script": "ct/gotify.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "admin" + }, + "notes": [] } diff --git a/frontend/public/json/grafana.json b/frontend/public/json/grafana.json index abb8a3567..47dc4b887 100644 --- a/frontend/public/json/grafana.json +++ b/frontend/public/json/grafana.json @@ -9,10 +9,10 @@ "updateable": true, "privileged": false, "interface_port": 3000, - "documentation": null, + "documentation": "https://grafana.com/docs/grafana/latest/", "website": "https://grafana.com/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/grafana.svg", - "config_path": "/etc/conf.d/grafana", + "config_path": "/etc/grafana", "description": "Grafana is a data visualization and monitoring platform that enables users to query, visualize, alert on and understand metrics, logs, and other data sources. It integrates with various data sources, including Prometheus, InfluxDB, Elasticsearch, and many others, to present a unified view of the data and enable users to create insightful and interactive dashboards.", "install_methods": [ { diff --git a/frontend/public/json/grocy.json b/frontend/public/json/grocy.json index 5e56c2ca4..d596a6b4d 100644 --- a/frontend/public/json/grocy.json +++ b/frontend/public/json/grocy.json @@ -1,35 +1,35 @@ { - "name": "grocy", - "slug": "grocy", - "categories": [ - 24 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": null, - "website": "https://grocy.info/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/grocy.svg", - "config_path": "", - "description": "grocy is a web-based self-hosted groceries & household management solution for your home. It helps you keep track of your groceries and household items, manage your shopping list, and keep track of your pantry, recipes, meal plans, and more.", - "install_methods": [ - { - "type": "default", - "script": "ct/grocy.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" - }, - "notes": [] + "name": "grocy", + "slug": "grocy", + "categories": [ + 24 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://github.com/grocy/grocy#how-to-install", + "website": "https://grocy.info/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/grocy.svg", + "config_path": "/var/www/html/data/config.php", + "description": "grocy is a web-based self-hosted groceries & household management solution for your home. It helps you keep track of your groceries and household items, manage your shopping list, and keep track of your pantry, recipes, meal plans, and more.", + "install_methods": [ + { + "type": "default", + "script": "ct/grocy.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "admin" + }, + "notes": [] } diff --git a/frontend/public/json/habitica.json b/frontend/public/json/habitica.json index ecd3ed277..8278ab3fb 100644 --- a/frontend/public/json/habitica.json +++ b/frontend/public/json/habitica.json @@ -12,7 +12,7 @@ "documentation": "https://github.com/HabitRPG/habitica/wiki", "website": "https://habitica.com/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/habitica.svg", - "config_path": "/etc/headscale/config.yaml", + "config_path": "/opt/habitica/config.json", "description": "Habitica is an open-source habit-building program that treats your life like a role-playing game. Level up as you succeed, lose HP as you fail, and earn Gold to buy weapons and armor!", "install_methods": [ { @@ -35,11 +35,6 @@ { "text": "It takes a minute or two after installation for web UI to start, please be patient.", "type": "info" - }, - { - "text": "Config file is at `/opt/habitica/config.json`", - "type": "info" } ] } - diff --git a/frontend/public/json/heimdall-dashboard.json b/frontend/public/json/heimdall-dashboard.json index 65df0ba20..b9762cedc 100644 --- a/frontend/public/json/heimdall-dashboard.json +++ b/frontend/public/json/heimdall-dashboard.json @@ -1,35 +1,35 @@ { - "name": "Heimdall Dashboard", - "slug": "heimdall-dashboard", - "categories": [ - 10 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 7990, - "documentation": null, - "website": "https://heimdall.site/", - "logo": "https://raw.githubusercontent.com/linuxserver/Heimdall/refs/heads/master/public/img/heimdall-logo.svg", - "config_path": "", - "description": "Heimdall Dashboard is a self-hosted, web-based dashboard for managing and monitoring the health of applications and servers. It allows you to keep track of the status of your systems from a single, centralized location, and receive notifications when things go wrong. With Heimdall Dashboard, you have full control over your data and can customize it to meet your specific needs. Self-hosting the dashboard gives you the flexibility to run it on your own infrastructure, making it a suitable solution for organizations that prioritize data security and privacy.", - "install_methods": [ - { - "type": "default", - "script": "ct/heimdall-dashboard.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Heimdall Dashboard", + "slug": "heimdall-dashboard", + "categories": [ + 10 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 7990, + "documentation": null, + "website": "https://heimdall.site/", + "logo": "https://raw.githubusercontent.com/linuxserver/Heimdall/refs/heads/master/public/img/heimdall-logo.svg", + "config_path": "/opt/Heimdall/.env", + "description": "Heimdall Dashboard is a self-hosted, web-based dashboard for managing and monitoring the health of applications and servers. It allows you to keep track of the status of your systems from a single, centralized location, and receive notifications when things go wrong. With Heimdall Dashboard, you have full control over your data and can customize it to meet your specific needs. Self-hosting the dashboard gives you the flexibility to run it on your own infrastructure, making it a suitable solution for organizations that prioritize data security and privacy.", + "install_methods": [ + { + "type": "default", + "script": "ct/heimdall-dashboard.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/homebridge.json b/frontend/public/json/homebridge.json index 91e61d6ee..5dd5fc348 100644 --- a/frontend/public/json/homebridge.json +++ b/frontend/public/json/homebridge.json @@ -1,35 +1,35 @@ { - "name": "Homebridge", - "slug": "homebridge", - "categories": [ - 16 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8581, - "documentation": null, - "website": "https://homebridge.io/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/homebridge.svg", - "config_path": "", - "description": "Homebridge is a popular open-source software platform that enables you to integrate smart home devices and services that do not natively support Apple's HomeKit protocol into the HomeKit ecosystem. This allows you to control and automate these devices using Siri, the Home app, or other HomeKit-enabled apps, making it easy to bring together a variety of different devices into a unified smart home system. With Homebridge, you can expand the capabilities of your smart home, unlocking new possibilities for automating and controlling your devices and systems.", - "install_methods": [ - { - "type": "default", - "script": "ct/homebridge.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" - }, - "notes": [] + "name": "Homebridge", + "slug": "homebridge", + "categories": [ + 16 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8581, + "documentation": "https://github.com/homebridge/homebridge/wiki", + "website": "https://homebridge.io/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/homebridge.svg", + "config_path": "/var/lib/homebridge/config.json", + "description": "Homebridge is a popular open-source software platform that enables you to integrate smart home devices and services that do not natively support Apple's HomeKit protocol into the HomeKit ecosystem. This allows you to control and automate these devices using Siri, the Home app, or other HomeKit-enabled apps, making it easy to bring together a variety of different devices into a unified smart home system. With Homebridge, you can expand the capabilities of your smart home, unlocking new possibilities for automating and controlling your devices and systems.", + "install_methods": [ + { + "type": "default", + "script": "ct/homebridge.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "admin" + }, + "notes": [] } diff --git a/frontend/public/json/hyperhdr.json b/frontend/public/json/hyperhdr.json index b91511987..cfaad28b0 100644 --- a/frontend/public/json/hyperhdr.json +++ b/frontend/public/json/hyperhdr.json @@ -1,35 +1,35 @@ { - "name": "HyperHDR", - "slug": "hyperhdr", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": true, - "interface_port": 8090, - "documentation": null, - "website": "https://github.com/awawa-dev/HyperHDR", - "logo": "https://raw.githubusercontent.com/awawa-dev/HyperHDR/master/resources/icons/hyperhdr-icon-256px.png", - "config_path": "", - "description": "HyperHDR is a highly optimized open source ambient lighting implementation based on modern digital video and audio stream analysis.", - "install_methods": [ - { - "type": "default", - "script": "ct/hyperhdr.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "HyperHDR", + "slug": "hyperhdr", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": true, + "interface_port": 8090, + "documentation": "https://github.com/awawa-dev/HyperHDR/wiki", + "website": "https://github.com/awawa-dev/HyperHDR", + "logo": "https://raw.githubusercontent.com/awawa-dev/HyperHDR/master/resources/icons/hyperhdr-icon-256px.png", + "config_path": "", + "description": "HyperHDR is a highly optimized open source ambient lighting implementation based on modern digital video and audio stream analysis.", + "install_methods": [ + { + "type": "default", + "script": "ct/hyperhdr.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/inventree.json b/frontend/public/json/inventree.json index e2686bb6d..d1f648dcc 100644 --- a/frontend/public/json/inventree.json +++ b/frontend/public/json/inventree.json @@ -12,7 +12,7 @@ "documentation": "https://docs.inventree.org/en/latest/", "website": "https://inventree.org", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/inventree.svg", - "config_path": "", + "config_path": "/etc/inventree/", "description": "InvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is designed to be lightweight and easy to use for SME or hobbyist applications.", "install_methods": [ { @@ -38,4 +38,3 @@ } ] } - diff --git a/frontend/public/json/iobroker.json b/frontend/public/json/iobroker.json index 304c72180..73597fe38 100644 --- a/frontend/public/json/iobroker.json +++ b/frontend/public/json/iobroker.json @@ -1,40 +1,40 @@ { - "name": "ioBroker", - "slug": "iobroker", - "categories": [ - 16 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8081, - "documentation": null, - "website": "https://www.iobroker.net/#en/intro", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/iobroker.svg", - "config_path": "", - "description": "ioBroker is an open-source platform for building and managing smart home automation systems. It provides a centralized control and management interface for connected devices, sensors, and other IoT devices. ioBroker integrates with a wide range of popular smart home systems, devices, and services, making it easy to automate tasks and processes, monitor and control devices, and collect and analyze data from a variety of sources. With its flexible architecture and easy-to-use interface, ioBroker is designed to make it simple for users to build and customize their own smart home automation systems, regardless of their technical background or experience.", - "install_methods": [ - { - "type": "default", - "script": "ct/iobroker.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", - "type": "warning" - } - ] + "name": "ioBroker", + "slug": "iobroker", + "categories": [ + 16 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8081, + "documentation": "https://www.iobroker.net/#en/documentation", + "website": "https://www.iobroker.net/#en/intro", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/iobroker.svg", + "config_path": "", + "description": "ioBroker is an open-source platform for building and managing smart home automation systems. It provides a centralized control and management interface for connected devices, sensors, and other IoT devices. ioBroker integrates with a wide range of popular smart home systems, devices, and services, making it easy to automate tasks and processes, monitor and control devices, and collect and analyze data from a variety of sources. With its flexible architecture and easy-to-use interface, ioBroker is designed to make it simple for users to build and customize their own smart home automation systems, regardless of their technical background or experience.", + "install_methods": [ + { + "type": "default", + "script": "ct/iobroker.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", + "type": "warning" + } + ] } diff --git a/frontend/public/json/jackett.json b/frontend/public/json/jackett.json index 4ed29ea8e..31cc388aa 100644 --- a/frontend/public/json/jackett.json +++ b/frontend/public/json/jackett.json @@ -1,35 +1,35 @@ { - "name": "Jackett", - "slug": "jackett", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 9117, - "documentation": null, - "website": "https://github.com/Jackett/Jackett", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/jackett.svg", - "config_path": "", - "description": "Jackett supports a wide range of trackers, including popular ones like The Pirate Bay, RARBG, and Torrentz2, as well as many private trackers. It can be integrated with several BitTorrent clients, including qBittorrent, Deluge, and uTorrent, among others.", - "install_methods": [ - { - "type": "default", - "script": "ct/jackett.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Jackett", + "slug": "jackett", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 9117, + "documentation": "https://github.com/Jackett/Jackett/wiki", + "website": "https://github.com/Jackett/Jackett", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/jackett.svg", + "config_path": "", + "description": "Jackett supports a wide range of trackers, including popular ones like The Pirate Bay, RARBG, and Torrentz2, as well as many private trackers. It can be integrated with several BitTorrent clients, including qBittorrent, Deluge, and uTorrent, among others.", + "install_methods": [ + { + "type": "default", + "script": "ct/jackett.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/jellyfin.json b/frontend/public/json/jellyfin.json index cfc20a594..aa0f2854d 100644 --- a/frontend/public/json/jellyfin.json +++ b/frontend/public/json/jellyfin.json @@ -1,44 +1,44 @@ { - "name": "Jellyfin Media Server", - "slug": "jellyfin", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8096, - "documentation": "https://jellyfin.org/docs/", - "website": "https://jellyfin.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/jellyfin.svg", - "config_path": "", - "description": "Jellyfin is a free and open-source media server and suite of multimedia applications designed to organize, manage, and share digital media files to networked devices.", - "install_methods": [ - { - "type": "default", - "script": "ct/jellyfin.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "ubuntu", - "version": "22.04" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Jellyfin Media Server", + "slug": "jellyfin", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8096, + "documentation": "https://jellyfin.org/docs/", + "website": "https://jellyfin.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/jellyfin.svg", + "config_path": "/root/.config/jellyfin", + "description": "Jellyfin is a free and open-source media server and suite of multimedia applications designed to organize, manage, and share digital media files to networked devices.", + "install_methods": [ + { + "type": "default", + "script": "ct/jellyfin.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "ubuntu", + "version": "22.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "With Privileged/Unprivileged Hardware Acceleration Support", + "type": "info" }, - "notes": [ - { - "text": "With Privileged/Unprivileged Hardware Acceleration Support", - "type": "info" - }, - { - "text": "FFmpeg path: /usr/lib/jellyfin-ffmpeg/ffmpeg", - "type": "info" - } - ] + { + "text": "FFmpeg path: /usr/lib/jellyfin-ffmpeg/ffmpeg", + "type": "info" + } + ] } diff --git a/frontend/public/json/kavita.json b/frontend/public/json/kavita.json index 78ff26512..f4a528109 100644 --- a/frontend/public/json/kavita.json +++ b/frontend/public/json/kavita.json @@ -1,40 +1,40 @@ { - "name": "Kavita", - "slug": "kavita", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5000, - "documentation": null, - "website": "https://www.kavitareader.com/", - "logo": "https://raw.githubusercontent.com/Kareadita/Kavita/develop/Logo/kavita.svg", - "config_path": "", - "description": "Kavita is a fast, feature rich, cross platform reading server. Built with a focus for manga, and the goal of being a full solution for all your reading needs.", - "install_methods": [ - { - "type": "default", - "script": "ct/kavita.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [{ - "text": "To enable folder adding append your lxc.conf on your host with 'lxc.environment: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1'", - "type": "info" + "name": "Kavita", + "slug": "kavita", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5000, + "documentation": "https://wiki.kavitareader.com/getting-started/", + "website": "https://www.kavitareader.com/", + "logo": "https://raw.githubusercontent.com/Kareadita/Kavita/develop/Logo/kavita.svg", + "config_path": "", + "description": "Kavita is a fast, feature rich, cross platform reading server. Built with a focus for manga, and the goal of being a full solution for all your reading needs.", + "install_methods": [ + { + "type": "default", + "script": "ct/kavita.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" } - ] + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "To enable folder adding append your lxc.conf on your host with 'lxc.environment: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1'", + "type": "info" + } + ] } - diff --git a/frontend/public/json/keycloak.json b/frontend/public/json/keycloak.json index 579dbd96d..3b8075118 100644 --- a/frontend/public/json/keycloak.json +++ b/frontend/public/json/keycloak.json @@ -1,45 +1,44 @@ { - "name": "Keycloak", - "slug": "keycloak", - "categories": [ - 6 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8080, - "documentation": "https://github.com/community-scripts/ProxmoxVE/discussions/193", - "website": "https://www.keycloak.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/keycloak.svg", - "config_path": "", - "description": "Keycloak is an open-source identity and access management solution that provides centralized authentication and authorization for modern applications and services. It enables organizations to secure their applications and services with a single sign-on (SSO) solution, reducing the need for users to remember multiple login credentials. Keycloak supports various authentication protocols, including SAML, OAuth, and OpenID Connect, and integrates with a wide range of applications and services. With Keycloak, administrators can manage user identities, define security policies, and monitor access to their applications and services. The software is designed to be scalable, flexible, and easy to use, making it a valuable tool for enhancing the security and usability of modern applications and services.", - "install_methods": [ - { - "type": "default", - "script": "ct/keycloak.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Keycloak", + "slug": "keycloak", + "categories": [ + 6 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8080, + "documentation": "https://www.keycloak.org/documentation", + "website": "https://www.keycloak.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/keycloak.svg", + "config_path": "/opt/keycloak/conf/keycloak.conf", + "description": "Keycloak is an open-source identity and access management solution that provides centralized authentication and authorization for modern applications and services. It enables organizations to secure their applications and services with a single sign-on (SSO) solution, reducing the need for users to remember multiple login credentials. Keycloak supports various authentication protocols, including SAML, OAuth, and OpenID Connect, and integrates with a wide range of applications and services. With Keycloak, administrators can manage user identities, define security policies, and monitor access to their applications and services. The software is designed to be scalable, flexible, and easy to use, making it a valuable tool for enhancing the security and usability of modern applications and services.", + "install_methods": [ + { + "type": "default", + "script": "ct/keycloak.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "First start can take a few minutes", + "type": "warning" }, - "notes": [ - { - "text": "First start can take a few minutes", - "type": "warning" - }, - { - "text": "This script requires some extra steps after the installation, Please checkout the 'documentation'", - "type": "info" - } - ] + { + "text": "This script requires some extra steps after the installation, Please checkout the `https://github.com/community-scripts/ProxmoxVE/discussions/193`", + "type": "info" + } + ] } - diff --git a/frontend/public/json/komga.json b/frontend/public/json/komga.json index 91282ad41..3705caab5 100644 --- a/frontend/public/json/komga.json +++ b/frontend/public/json/komga.json @@ -1,41 +1,40 @@ { - "name": "Komga", - "slug": "komga", - "categories": [ - 13 - ], - "date_created": "2024-11-15", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 25600, - "documentation": "https://komga.org/docs/introduction", - "website": "https://komga.org/", - "logo": "https://raw.githubusercontent.com/gotson/komga/25a1cfa8660c57335313c244e41c248371ffd9d6/komga-webui/src/assets/logo.svg", - "config_path": "", - "description": "A media server for your comics, mangas, BDs, magazines and eBooks. Organize your CBZ, CBR, PDF and EPUB files in different libraries, collections or reading lists. Use the integrated Webreader, the Mihon extension, any OPDS reader, or other integrations. Edit metadata for your series and books.", - "install_methods": [ - { - "type": "default", - "script": "ct/komga.sh", - "resources": { - "cpu": 1, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Starting Komga (Web UI) may take up to 2 minutes after a restart or fresh installation.", - "type": "info" - } - ] + "name": "Komga", + "slug": "komga", + "categories": [ + 13 + ], + "date_created": "2024-11-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 25600, + "documentation": "https://komga.org/docs/introduction", + "website": "https://komga.org/", + "logo": "https://raw.githubusercontent.com/gotson/komga/25a1cfa8660c57335313c244e41c248371ffd9d6/komga-webui/src/assets/logo.svg", + "config_path": "~/.komga/application.yml", + "description": "A media server for your comics, mangas, BDs, magazines and eBooks. Organize your CBZ, CBR, PDF and EPUB files in different libraries, collections or reading lists. Use the integrated Webreader, the Mihon extension, any OPDS reader, or other integrations. Edit metadata for your series and books.", + "install_methods": [ + { + "type": "default", + "script": "ct/komga.sh", + "resources": { + "cpu": 1, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Starting Komga (Web UI) may take up to 2 minutes after a restart or fresh installation.", + "type": "info" + } + ] } - diff --git a/frontend/public/json/komodo.json b/frontend/public/json/komodo.json index 85219ea74..03f1956d3 100644 --- a/frontend/public/json/komodo.json +++ b/frontend/public/json/komodo.json @@ -25,6 +25,17 @@ "os": "debian", "version": "12" } + }, + { + "type": "alpine", + "script": "ct/alpine-komodo.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 10, + "os": "alpine", + "version": "3.21" + } } ], "default_credentials": { diff --git a/frontend/public/json/kubo.json b/frontend/public/json/kubo.json index eded3cb3b..7754fde23 100644 --- a/frontend/public/json/kubo.json +++ b/frontend/public/json/kubo.json @@ -1,35 +1,35 @@ { - "name": "Kubo", - "slug": "kubo", - "categories": [ - 4 - ], - "date_created": "2024-06-27", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": null, - "website": "https://github.com/ipfs/kubo", - "logo": "https://user-images.githubusercontent.com/157609/250148884-d6d12db8-fdcf-4be3-8546-2550b69845d8.png", - "config_path": "", - "description": "Kubo, developed by IPFS, is a decentralized file storage and sharing protocol. It implements the IPFS protocol, allowing users to manage files across a distributed network, ensuring data integrity and availability. Kubo supports file versioning, pinning, provides APIs and CLI tools for developers, and allows customizable node configurations for enhanced privacy and control.", - "install_methods": [ - { - "type": "default", - "script": "ct/kubo.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Kubo", + "slug": "kubo", + "categories": [ + 4 + ], + "date_created": "2024-06-27", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5001, + "documentation": "https://docs.ipfs.tech/how-to/command-line-quick-start/", + "website": "https://github.com/ipfs/kubo", + "logo": "https://user-images.githubusercontent.com/157609/250148884-d6d12db8-fdcf-4be3-8546-2550b69845d8.png", + "config_path": "~/.ipfs/config", + "description": "Kubo, developed by IPFS, is a decentralized file storage and sharing protocol. It implements the IPFS protocol, allowing users to manage files across a distributed network, ensuring data integrity and availability. Kubo supports file versioning, pinning, provides APIs and CLI tools for developers, and allows customizable node configurations for enhanced privacy and control.", + "install_methods": [ + { + "type": "default", + "script": "ct/kubo.sh", + "resources": { + "cpu": 2, + "ram": 4096, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/lazylibrarian.json b/frontend/public/json/lazylibrarian.json index 58d307b9a..b80a87950 100644 --- a/frontend/public/json/lazylibrarian.json +++ b/frontend/public/json/lazylibrarian.json @@ -1,35 +1,35 @@ { - "name": "LazyLibrarian", - "slug": "lazylibrarian", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 5299, - "documentation": null, - "website": "https://gitlab.com/LazyLibrarian/LazyLibrarian", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/lazylibrarian.webp", - "config_path": "", - "description": "LazyLibrarian is a SickBeard, CouchPotato, Headphones-like application for ebooks, audiobooks and magazines.", - "install_methods": [ - { - "type": "default", - "script": "ct/lazylibrarian.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "LazyLibrarian", + "slug": "lazylibrarian", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 5299, + "documentation": "https://lazylibrarian.gitlab.io/lazylibrarian.gitlab.io/", + "website": "https://gitlab.com/LazyLibrarian/LazyLibrarian", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/lazylibrarian.webp", + "config_path": "/opt/LazyLibrarian/config.ini", + "description": "LazyLibrarian is a SickBeard, CouchPotato, Headphones-like application for ebooks, audiobooks and magazines.", + "install_methods": [ + { + "type": "default", + "script": "ct/lazylibrarian.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/lldap.json b/frontend/public/json/lldap.json index 3decc012b..47e14c6b6 100644 --- a/frontend/public/json/lldap.json +++ b/frontend/public/json/lldap.json @@ -1,35 +1,35 @@ { - "name": "lldap", - "slug": "lldap", - "categories": [ - 6 - ], - "date_created": "2024-08-06", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 17170, - "documentation": null, - "website": "https://github.com/lldap/lldap", - "logo": "https://avatars.githubusercontent.com/u/129409591?s=64&v=4", - "config_path": "", - "description": "LLDAP is a lightweight LDAP server designed for simplicity and ease of use. It provides secure user authentication and authorization management through LDAP over TLS. Ideal for small to medium-sized environments, It aims to streamline identity management tasks with a minimalistic and straightforward setup.", - "install_methods": [ - { - "type": "default", - "script": "ct/lldap.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "password" - }, - "notes": [] + "name": "lldap", + "slug": "lldap", + "categories": [ + 6 + ], + "date_created": "2024-08-06", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 17170, + "documentation": "https://github.com/lldap/lldap/blob/main/README.md", + "website": "https://github.com/lldap/lldap", + "logo": "https://avatars.githubusercontent.com/u/129409591?s=64&v=4", + "config_path": "", + "description": "LLDAP is a lightweight LDAP server designed for simplicity and ease of use. It provides secure user authentication and authorization management through LDAP over TLS. Ideal for small to medium-sized environments, It aims to streamline identity management tasks with a minimalistic and straightforward setup.", + "install_methods": [ + { + "type": "default", + "script": "ct/lldap.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "password" + }, + "notes": [] } diff --git a/frontend/public/json/matterbridge.json b/frontend/public/json/matterbridge.json index 26863eca3..915bf3c15 100644 --- a/frontend/public/json/matterbridge.json +++ b/frontend/public/json/matterbridge.json @@ -6,7 +6,7 @@ ], "date_created": "2024-06-12", "type": "ct", - "updateable": false, + "updateable": true, "privileged": false, "interface_port": 8283, "documentation": null, @@ -35,6 +35,10 @@ { "text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.", "type": "warning" + }, + { + "text": "Updatable via the Matterbridge WebUI", + "type": "info" } ] } diff --git a/frontend/public/json/mediamtx.json b/frontend/public/json/mediamtx.json index 8e7c7d04a..bf7fd22bf 100644 --- a/frontend/public/json/mediamtx.json +++ b/frontend/public/json/mediamtx.json @@ -1,35 +1,35 @@ { - "name": "MediaMTX", - "slug": "mediamtx", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": null, - "documentation": "https://github.com/bluenviron/mediamtx/blob/main/README.md", - "website": "https://github.com/bluenviron/mediamtx", - "logo": "https://raw.githubusercontent.com/bluenviron/mediamtx/main/logo.png", - "config_path": "", - "description": "MediaMTX is a ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows you to read, publish, proxy, record and playback video and audio streams.", - "install_methods": [ - { - "type": "default", - "script": "ct/mediamtx.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "MediaMTX", + "slug": "mediamtx", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": "https://github.com/bluenviron/mediamtx/blob/main/README.md", + "website": "https://github.com/bluenviron/mediamtx", + "logo": "https://raw.githubusercontent.com/bluenviron/mediamtx/main/logo.png", + "config_path": "/opt/mediamtx/mediamtx.yml", + "description": "MediaMTX is a ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows you to read, publish, proxy, record and playback video and audio streams.", + "install_methods": [ + { + "type": "default", + "script": "ct/mediamtx.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/memos.json b/frontend/public/json/memos.json index 7125eae07..6c4527787 100644 --- a/frontend/public/json/memos.json +++ b/frontend/public/json/memos.json @@ -1,36 +1,35 @@ { - "name": "Memos", - "slug": "memos", - "categories": [ - 12 - ], - "date_created": "2024-10-31", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9030, - "documentation": null, - "website": "https://www.usememos.com/", - "logo": "https://camo.githubusercontent.com/aa5a8cac358e3448ef7bad80fc178699841913ec438ed0ddfe18f867f931d7ee/68747470733a2f2f7777772e7573656d656d6f732e636f6d2f6c6f676f2d726f756e6465642e706e67", - "config_path": "", - "description": "Memos is an open-source, self-hosted platform designed for fast, privacy-focused note-taking. Users can create, organize, and format notes with Markdown, which are securely stored in a local database. It\u2019s lightweight and customizable, built for quick access and adaptability to individual or team needs.", - "install_methods": [ - { - "type": "default", - "script": "ct/memos.sh", - "resources": { - "cpu": 2, - "ram": 3072, - "hdd": 7, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Memos", + "slug": "memos", + "categories": [ + 12 + ], + "date_created": "2024-10-31", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9030, + "documentation": "https://www.usememos.com/docs", + "website": "https://www.usememos.com/", + "logo": "https://camo.githubusercontent.com/aa5a8cac358e3448ef7bad80fc178699841913ec438ed0ddfe18f867f931d7ee/68747470733a2f2f7777772e7573656d656d6f732e636f6d2f6c6f676f2d726f756e6465642e706e67", + "config_path": "", + "description": "Memos is an open-source, self-hosted platform designed for fast, privacy-focused note-taking. Users can create, organize, and format notes with Markdown, which are securely stored in a local database. It\u2019s lightweight and customizable, built for quick access and adaptability to individual or team needs.", + "install_methods": [ + { + "type": "default", + "script": "ct/memos.sh", + "resources": { + "cpu": 2, + "ram": 3072, + "hdd": 7, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } - diff --git a/frontend/public/json/meshcentral.json b/frontend/public/json/meshcentral.json index fa8d9a7c9..1d247ca9e 100644 --- a/frontend/public/json/meshcentral.json +++ b/frontend/public/json/meshcentral.json @@ -1,35 +1,35 @@ { - "name": "MeshCentral", - "slug": "meshcentral", - "categories": [ - 4 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 80, - "documentation": null, - "website": "https://meshcentral.com/", - "logo": "https://github.com/Ylianst/MeshCentral/blob/master/public/favicon-303x303.png?raw=true", - "config_path": "", - "description": "MeshCentral is a web-based computer management platform that provides remote control and management capabilities for computers. It allows administrators to manage and control computers over a local network or the internet through a single, centralized web-based interface. With MeshCentral, users can monitor the status of computers, perform remote administration tasks, and control the power state of machines. The software supports various operating systems and provides real-time updates and alerts to keep administrators informed of the status of their systems. MeshCentral is designed to provide an easy-to-use, scalable, and secure solution for remote computer management, making it a valuable tool for IT administrators, helpdesk support, and remote workers.", - "install_methods": [ - { - "type": "default", - "script": "ct/meshcentral.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "MeshCentral", + "slug": "meshcentral", + "categories": [ + 4 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 80, + "documentation": "https://ylianst.github.io/MeshCentral/", + "website": "https://meshcentral.com/", + "logo": "https://github.com/Ylianst/MeshCentral/blob/master/public/favicon-303x303.png?raw=true", + "config_path": "/opt/meshcentral/meshcentral-data/config.json", + "description": "MeshCentral is a web-based computer management platform that provides remote control and management capabilities for computers. It allows administrators to manage and control computers over a local network or the internet through a single, centralized web-based interface. With MeshCentral, users can monitor the status of computers, perform remote administration tasks, and control the power state of machines. The software supports various operating systems and provides real-time updates and alerts to keep administrators informed of the status of their systems. MeshCentral is designed to provide an easy-to-use, scalable, and secure solution for remote computer management, making it a valuable tool for IT administrators, helpdesk support, and remote workers.", + "install_methods": [ + { + "type": "default", + "script": "ct/meshcentral.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/myspeed.json b/frontend/public/json/myspeed.json index 3d60842a8..8ca2e9084 100644 --- a/frontend/public/json/myspeed.json +++ b/frontend/public/json/myspeed.json @@ -1,35 +1,35 @@ { - "name": "MySpeed", - "slug": "myspeed", - "categories": [ - 4 - ], - "date_created": "2024-06-14", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5216, - "documentation": null, - "website": "https://myspeed.dev/", - "logo": "https://raw.githubusercontent.com/gnmyt/myspeed/development/web/public/assets/img/logo.png", - "config_path": "", - "description": "MySpeed is a speed test analysis tool that records and displays internet speed metrics for up to 30 days. It offers automated tests using Cron expressions and supports multiple speed test servers (Ookla, LibreSpeed, Cloudflare). MySpeed provides detailed statistics, health check notifications via email or messaging apps, and integrates with Prometheus and Grafana for advanced monitoring.", - "install_methods": [ - { - "type": "default", - "script": "ct/myspeed.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "MySpeed", + "slug": "myspeed", + "categories": [ + 4 + ], + "date_created": "2024-06-14", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5216, + "documentation": "https://docs.myspeed.dev/", + "website": "https://myspeed.dev/", + "logo": "https://raw.githubusercontent.com/gnmyt/myspeed/development/web/public/assets/img/logo.png", + "config_path": "", + "description": "MySpeed is a speed test analysis tool that records and displays internet speed metrics for up to 30 days. It offers automated tests using Cron expressions and supports multiple speed test servers (Ookla, LibreSpeed, Cloudflare). MySpeed provides detailed statistics, health check notifications via email or messaging apps, and integrates with Prometheus and Grafana for advanced monitoring.", + "install_methods": [ + { + "type": "default", + "script": "ct/myspeed.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/n8n.json b/frontend/public/json/n8n.json index 1f7adffc3..aa0cbbce4 100644 --- a/frontend/public/json/n8n.json +++ b/frontend/public/json/n8n.json @@ -1,35 +1,35 @@ { - "name": "n8n", - "slug": "n8n", - "categories": [ - 16 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5678, - "documentation": null, - "website": "https://n8n.io/", - "logo": "https://docs.n8n.io/_images/n8n-docs-icon.svg", - "config_path": "", - "description": "n8n is a workflow automation tool that enables users to automate various tasks and processes by connecting various data sources, systems, and services. It provides a visual interface for building workflows, allowing users to easily define and automate complex sequences of actions, such as data processing, conditional branching, and API calls. n8n supports a wide range of integrations, making it a versatile tool for automating a variety of use cases, from simple data processing workflows to complex business processes. With its extendable architecture, n8n is designed to be easily customizable and can be adapted to meet the specific needs of different users and industries.", - "install_methods": [ - { - "type": "default", - "script": "ct/n8n.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 6, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "n8n", + "slug": "n8n", + "categories": [ + 16 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5678, + "documentation": "https://docs.n8n.io/", + "website": "https://n8n.io/", + "logo": "https://docs.n8n.io/_images/n8n-docs-icon.svg", + "config_path": "", + "description": "n8n is a workflow automation tool that enables users to automate various tasks and processes by connecting various data sources, systems, and services. It provides a visual interface for building workflows, allowing users to easily define and automate complex sequences of actions, such as data processing, conditional branching, and API calls. n8n supports a wide range of integrations, making it a versatile tool for automating a variety of use cases, from simple data processing workflows to complex business processes. With its extendable architecture, n8n is designed to be easily customizable and can be adapted to meet the specific needs of different users and industries.", + "install_methods": [ + { + "type": "default", + "script": "ct/n8n.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 6, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/navidrome.json b/frontend/public/json/navidrome.json index 65c5f6901..77e74ef7e 100644 --- a/frontend/public/json/navidrome.json +++ b/frontend/public/json/navidrome.json @@ -12,7 +12,7 @@ "documentation": null, "website": "https://www.navidrome.org/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/navidrome.svg", - "config_path": "/var/lib/navidrome/navidrome.toml", + "config_path": "/etc/navidrome/navidrome.toml", "description": "Navidrome is a music server solution that makes your music collection accessible from anywhere. It provides a modern web-based user interface and compatibility with a range of third-party mobile apps for both iOS and Android devices. With Navidrome, users can access their music collection from anywhere, whether at home or on the go. The software supports a variety of music formats, making it easy for users to play their favorite songs and albums. Navidrome provides a simple and user-friendly interface for managing and organizing music collections, making it a valuable tool for music lovers who want to access their music from anywhere. The software is designed to be easy to set up and use, making it a popular choice for those who want to host their own music server and enjoy their music collection from anywhere.", "install_methods": [ { @@ -33,7 +33,7 @@ }, "notes": [ { - "text": "To change Navidrome music folder path, `nano /var/lib/navidrome/navidrome.toml`", + "text": "To change Navidrome music folder path, `nano /etc/navidrome/navidrome.toml`", "type": "info" } ] diff --git a/frontend/public/json/netdata.json b/frontend/public/json/netdata.json index 347d7c53b..c0c9346f0 100644 --- a/frontend/public/json/netdata.json +++ b/frontend/public/json/netdata.json @@ -1,16 +1,18 @@ { "name": "Proxmox VE Netdata", "slug": "netdata", - "categories": [1], + "categories": [ + 1 + ], "date_created": "2024-04-29", "type": "addon", "updateable": false, "privileged": false, - "interface_port": null, - "documentation": null, + "interface_port": 19999, + "documentation": "https://learn.netdata.cloud/", "website": "https://www.netdata.cloud/", "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/netdata.svg", - "config_path": "", + "config_path": "/etc/netdata/netdata.conf", "description": "Netdata is an open-source, real-time performance monitoring tool designed to provide insights into the performance and health of systems and applications. It is often used by system administrators, DevOps professionals, and developers to monitor and troubleshoot issues on servers and other devices.", "install_methods": [ { @@ -36,4 +38,3 @@ } ] } - diff --git a/frontend/public/json/nextpvr.json b/frontend/public/json/nextpvr.json index ee4e4f41b..abfb78e08 100644 --- a/frontend/public/json/nextpvr.json +++ b/frontend/public/json/nextpvr.json @@ -2,7 +2,7 @@ "name": "NextPVR", "slug": "nextpvr", "categories": [ - 13 + 13 ], "date_created": "2024-11-20", "type": "ct", @@ -11,8 +11,8 @@ "interface_port": 8866, "documentation": "https://github.com/sub3/NextPVR/wiki", "website": "https://nextpvr.com/", - "logo": null, - "config_path": "", + "logo": "https://kodi.tv/images/addons/omega/pvr.nextpvr/icon.png", + "config_path": "/var/opt/nextpvr/config.xml", "description": "NextPVR is a personal video recorder application for Microsoft Windows, Linux, Mac and Docker. NextPVR makes it easy to watch or record live TV, and provides great features like series recordings, web scheduling, iPhone/iPad client application, Kodi/Emby integration etc.", "install_methods": [ { @@ -28,9 +28,8 @@ } ], "default_credentials": { - "username": null, - "password": null + "username": "admin", + "password": "password" }, "notes": [] } - diff --git a/frontend/public/json/nocodb.json b/frontend/public/json/nocodb.json index 3ac6fa86c..cddf34e22 100644 --- a/frontend/public/json/nocodb.json +++ b/frontend/public/json/nocodb.json @@ -1,35 +1,35 @@ { - "name": "NocoDB", - "slug": "nocodb", - "categories": [ - 25 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": null, - "website": "https://www.nocodb.com/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/nocodb.svg", - "config_path": "", - "description": "NocoDB is a document-oriented database management system. It uses the NoSQL (Not Only SQL) data model, which allows for more flexible and scalable data storage than traditional relational databases. NoCoDB stores data in JSON format, making it easier to manage and query complex data structures, and supports a range of data types, including strings, numbers, arrays, and objects. The software provides a web-based interface for managing and querying data, and includes features such as real-time data synchronization, auto-indexing, and full-text search. NoCoDB is designed to be scalable, and can be used for a range of applications, from small projects to large enterprise systems. The software is free and open-source, and is designed to be easy to use and integrate with other applications.", - "install_methods": [ - { - "type": "default", - "script": "ct/nocodb.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "NocoDB", + "slug": "nocodb", + "categories": [ + 25 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://docs.nocodb.com/", + "website": "https://www.nocodb.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/nocodb.svg", + "config_path": "", + "description": "NocoDB is a document-oriented database management system. It uses the NoSQL (Not Only SQL) data model, which allows for more flexible and scalable data storage than traditional relational databases. NoCoDB stores data in JSON format, making it easier to manage and query complex data structures, and supports a range of data types, including strings, numbers, arrays, and objects. The software provides a web-based interface for managing and querying data, and includes features such as real-time data synchronization, auto-indexing, and full-text search. NoCoDB is designed to be scalable, and can be used for a range of applications, from small projects to large enterprise systems. The software is free and open-source, and is designed to be easy to use and integrate with other applications.", + "install_methods": [ + { + "type": "default", + "script": "ct/nocodb.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/node-red.json b/frontend/public/json/node-red.json index 876210324..67968c18d 100644 --- a/frontend/public/json/node-red.json +++ b/frontend/public/json/node-red.json @@ -1,52 +1,51 @@ { - "name": "Node-Red", - "slug": "node-red", - "categories": [ - 16 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 1880, - "documentation": null, - "website": "https://nodered.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/node-red.svg", - "config_path": "", - "description": "Node-RED is a visual programming tool that allows developers and non-developers alike to easily wire together hardware devices, APIs, and online services to create custom applications. It provides a visual interface for building workflows, making it easy to create and modify complex integrations without having to write any code. Node-RED is used in a wide range of applications, from simple automations to complex integrations, and is known for its simplicity, versatility, and ease of use.", - "install_methods": [ - { - "type": "default", - "script": "ct/node-red.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - }, - { - "type": "alpine", - "script": "ct/alpine-node-red.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 1, - "os": "alpine", - "version": "3.21" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Node-Red", + "slug": "node-red", + "categories": [ + 16 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 1880, + "documentation": "https://nodered.org/docs/", + "website": "https://nodered.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/node-red.svg", + "config_path": "~/.node-red/settings.js", + "description": "Node-RED is a visual programming tool that allows developers and non-developers alike to easily wire together hardware devices, APIs, and online services to create custom applications. It provides a visual interface for building workflows, making it easy to create and modify complex integrations without having to write any code. Node-RED is used in a wide range of applications, from simple automations to complex integrations, and is known for its simplicity, versatility, and ease of use.", + "install_methods": [ + { + "type": "default", + "script": "ct/node-red.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } }, - "notes": [ - { - "text": "To install themes, type `update` in the LXC console. (debian/ubuntu only)", - "type": "info" - } - ] + { + "type": "alpine", + "script": "ct/alpine-node-red.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "To install themes, type `update` in the LXC console. (debian/ubuntu only)", + "type": "info" + } + ] } - diff --git a/frontend/public/json/npmplus.json b/frontend/public/json/npmplus.json index 4259656e2..a48e6c6aa 100644 --- a/frontend/public/json/npmplus.json +++ b/frontend/public/json/npmplus.json @@ -1,60 +1,59 @@ { - "name": "NPMplus", - "slug": "npmplus", - "categories": [ - 21 - ], - "date_created": "2025-03-13", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 81, - "documentation": null, - "website": "https://github.com/ZoeyVid/NPMplus", - "logo": "https://raw.githubusercontent.com/ZoeyVid/NPMplus/refs/heads/develop/frontend/app-images/logo-256.png", - "config_path": "", - "description": "NPMplus is an enhanced version of Nginx Proxy Manager. It simplifies the process of setting up reverse proxies with TLS termination through a user-friendly web interface. Key features include HTTP/3 support, integration with CrowdSec IPS, inclusion of GoAccess for real-time log analysis, and support for ModSecurity with the Core Rule Set.", - "install_methods": [ - { - "type": "default", - "script": "ct/npmplus.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 3, - "os": "alpine", - "version": "3.21" - } - }, - { - "type": "alpine", - "script": "ct/npmplus.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 3, - "os": "alpine", - "version": "3.21" - } - } - ], - "default_credentials": { - "username": "root", - "password": null + "name": "NPMplus", + "slug": "npmplus", + "categories": [ + 21 + ], + "date_created": "2025-03-13", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 81, + "documentation": "https://github.com/ZoeyVid/NPMplus/blob/develop/README.md", + "website": "https://github.com/ZoeyVid/NPMplus", + "logo": "https://raw.githubusercontent.com/ZoeyVid/NPMplus/refs/heads/develop/frontend/app-images/logo-256.png", + "config_path": "/opt/compose.yaml", + "description": "NPMplus is an enhanced version of Nginx Proxy Manager. It simplifies the process of setting up reverse proxies with TLS termination through a user-friendly web interface. Key features include HTTP/3 support, integration with CrowdSec IPS, inclusion of GoAccess for real-time log analysis, and support for ModSecurity with the Core Rule Set.", + "install_methods": [ + { + "type": "default", + "script": "ct/npmplus.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 3, + "os": "alpine", + "version": "3.21" + } }, - "notes": [ - { - "text": "This uses Docker under the hood, as this can not easily be installed bare-metal. ", - "type": "info" - }, - { - "text": "The initial starting process can be take 1-2min. ", - "type": "info" - }, - { - "text": "Application credentials: `cat /opt/.npm_pwd`", - "type": "info" - } - ] + { + "type": "alpine", + "script": "ct/npmplus.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 3, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": "root", + "password": null + }, + "notes": [ + { + "text": "This uses Docker under the hood, as this can not easily be installed bare-metal. ", + "type": "info" + }, + { + "text": "The initial starting process can be take 1-2min. ", + "type": "info" + }, + { + "text": "Application credentials: `cat /opt/.npm_pwd`", + "type": "info" + } + ] } - diff --git a/frontend/public/json/nzbget.json b/frontend/public/json/nzbget.json index 59bc862b5..891eebb5c 100644 --- a/frontend/public/json/nzbget.json +++ b/frontend/public/json/nzbget.json @@ -1,36 +1,35 @@ { - "name": "NZBGet", - "slug": "nzbget", - "categories": [ - 11 - ], - "date_created": "2024-10-31", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 6789, - "documentation": null, - "website": "https://nzbget.com/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/nzbget.svg", - "config_path": "", - "description": "NZBGet is a Usenet downloader focused on efficiency and performance, designed to handle NZB files for downloading content from Usenet. It automates downloading, checking, repairing, and extracting files, optimizing resources to run well on lower-powered devices.", - "install_methods": [ - { - "type": "default", - "script": "ct/nzbget.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "nzbget", - "password": "tegbzn6789" - }, - "notes": [] + "name": "NZBGet", + "slug": "nzbget", + "categories": [ + 11 + ], + "date_created": "2024-10-31", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 6789, + "documentation": "https://nzbget.com/documentation/", + "website": "https://nzbget.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/nzbget.svg", + "config_path": "/usr/share/nzbget/nzbget.conf", + "description": "NZBGet is a Usenet downloader focused on efficiency and performance, designed to handle NZB files for downloading content from Usenet. It automates downloading, checking, repairing, and extracting files, optimizing resources to run well on lower-powered devices.", + "install_methods": [ + { + "type": "default", + "script": "ct/nzbget.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "nzbget", + "password": "tegbzn6789" + }, + "notes": [] } - diff --git a/frontend/public/json/octoprint.json b/frontend/public/json/octoprint.json index bb9c682ac..1055caf28 100644 --- a/frontend/public/json/octoprint.json +++ b/frontend/public/json/octoprint.json @@ -1,35 +1,35 @@ { - "name": "OctoPrint", - "slug": "octoprint", - "categories": [ - 24 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": true, - "interface_port": 5000, - "documentation": null, - "website": "https://octoprint.org/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/octoprint.svg", - "config_path": "", - "description": "OctoPrint is a free and open-source web-based 3D printer control software that allows you to remotely control and monitor your 3D printer from a web interface. It was designed to be compatible with a wide range of 3D printers.", - "install_methods": [ - { - "type": "default", - "script": "ct/octoprint.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "OctoPrint", + "slug": "octoprint", + "categories": [ + 24 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": true, + "interface_port": 5000, + "documentation": "https://docs.octoprint.org/en/master/", + "website": "https://octoprint.org/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/octoprint.svg", + "config_path": "", + "description": "OctoPrint is a free and open-source web-based 3D printer control software that allows you to remotely control and monitor your 3D printer from a web interface. It was designed to be compatible with a wide range of 3D printers.", + "install_methods": [ + { + "type": "default", + "script": "ct/octoprint.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/ollama.json b/frontend/public/json/ollama.json new file mode 100644 index 000000000..e73f34873 --- /dev/null +++ b/frontend/public/json/ollama.json @@ -0,0 +1,35 @@ +{ + "name": "Ollama", + "slug": "ollama", + "categories": [ + 20 + ], + "date_created": "2025-04-30", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 11434, + "documentation": "https://github.com/ollama/ollama/tree/main/docs", + "config_path": "/usr/local/lib/ollama", + "website": "https://ollama.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/ollama.svg", + "description": "Ollama is a tool that allows you to run large language models locally on your own computer. This means you can experiment with and use these AI models without needing an internet connection or relying on cloud-based services. It simplifies the process of managing and running these models, offering a way to keep your data private and potentially work faster. 1 You can use Ollama to create local chatbots, conduct AI research, develop privacy-focused AI applications, and integrate AI into existing systems.", + "install_methods": [ + { + "type": "default", + "script": "ct/ollama.sh", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 35, + "os": "Ubuntu", + "version": "24.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/ombi.json b/frontend/public/json/ombi.json index 5b1a7826c..b76491bb5 100644 --- a/frontend/public/json/ombi.json +++ b/frontend/public/json/ombi.json @@ -1,35 +1,35 @@ { - "name": "Ombi", - "slug": "ombi", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 5000, - "documentation": null, - "website": "https://ombi.io/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/ombi.svg", - "config_path": "", - "description": "Ombi is a self-hosted web application designed to empower shared Plex, Emby or Jellyfin users with automated content request capabilities. By integrating with various TV Show and Movie DVR tools, Ombi ensures a smooth and comprehensive experience for your users, allowing them to effortlessly request content on their own.", - "install_methods": [ - { - "type": "default", - "script": "ct/ombi.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Ombi", + "slug": "ombi", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 5000, + "documentation": "https://docs.ombi.app/", + "website": "https://ombi.io/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/ombi.svg", + "config_path": "", + "description": "Ombi is a self-hosted web application designed to empower shared Plex, Emby or Jellyfin users with automated content request capabilities. By integrating with various TV Show and Movie DVR tools, Ombi ensures a smooth and comprehensive experience for your users, allowing them to effortlessly request content on their own.", + "install_methods": [ + { + "type": "default", + "script": "ct/ombi.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/onedev.json b/frontend/public/json/onedev.json index 8a941dde9..649bb1217 100644 --- a/frontend/public/json/onedev.json +++ b/frontend/public/json/onedev.json @@ -1,35 +1,35 @@ { - "name": "OneDev", - "slug": "onedev", - "categories": [ - 20 - ], - "date_created": "2024-11-30", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 6610, - "documentation": "https://docs.onedev.io/", - "website": "https://onedev.io/", - "logo": "https://docs.onedev.io/img/logo.svg", - "config_path": "", - "description": "Git server with CI/CD, kanban, and packages.", - "install_methods": [ - { - "type": "default", - "script": "ct/onedev.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } + "name": "OneDev", + "slug": "onedev", + "categories": [ + 20 + ], + "date_created": "2024-11-30", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 6610, + "documentation": "https://docs.onedev.io/", + "website": "https://onedev.io/", + "logo": "https://docs.onedev.io/img/logo.svg", + "config_path": "/opt/onedev/conf", + "description": "Git server with CI/CD, kanban, and packages.", + "install_methods": [ + { + "type": "default", + "script": "ct/onedev.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] - } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/openhab.json b/frontend/public/json/openhab.json index bc8ac3e35..18571d5db 100644 --- a/frontend/public/json/openhab.json +++ b/frontend/public/json/openhab.json @@ -1,36 +1,35 @@ { - "name": "openHAB", - "slug": "openhab", - "categories": [ - 16 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8443, - "documentation": "https://www.openhab.org/docs/", - "website": "https://www.openhab.org/", - "logo": "https://www.coxprod.org/domotique/wp-content/uploads/2019/01/openhab-logo-square.png", - "config_path": "", - "description": "openHAB is a popular open-source home automation platform that provides a vendor and technology agnostic solution for integrating and automating various smart home devices and services. It supports a wide range of devices and protocols, making it easy to bring together different systems and devices into a unified smart home ecosystem. With its user-friendly interface and powerful automation capabilities, openHAB makes it easy to create custom automations and monitor and control your smart home devices and systems, all from a single interface.", - "install_methods": [ - { - "type": "default", - "script": "ct/openhab.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "openHAB", + "slug": "openhab", + "categories": [ + 16 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8443, + "documentation": "https://www.openhab.org/docs/", + "website": "https://www.openhab.org/", + "logo": "https://www.coxprod.org/domotique/wp-content/uploads/2019/01/openhab-logo-square.png", + "config_path": "", + "description": "openHAB is a popular open-source home automation platform that provides a vendor and technology agnostic solution for integrating and automating various smart home devices and services. It supports a wide range of devices and protocols, making it easy to bring together different systems and devices into a unified smart home ecosystem. With its user-friendly interface and powerful automation capabilities, openHAB makes it easy to create custom automations and monitor and control your smart home devices and systems, all from a single interface.", + "install_methods": [ + { + "type": "default", + "script": "ct/openhab.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } - diff --git a/frontend/public/json/openproject.json b/frontend/public/json/openproject.json index 8df151ac7..7bb2315f7 100644 --- a/frontend/public/json/openproject.json +++ b/frontend/public/json/openproject.json @@ -12,7 +12,7 @@ "documentation": "https://www.openproject.org", "website": "https://www.openproject.org", "logo": "https://raw.githubusercontent.com/opf/openproject/dev/docker/prod/logo.png", - "config_path": "", + "config_path": "/etc/openproject/conf.d/env", "description": "OpenProject is a web-based project management software. Use OpenProject to manage your projects, tasks and goals. Collaborate via work packages and link them to your pull requests on Github. Read more about the OpenProject GitHub integration.", "install_methods": [ { @@ -33,4 +33,3 @@ }, "notes": [] } - diff --git a/frontend/public/json/openwebui.json b/frontend/public/json/openwebui.json index 43c56501c..462f5a4bf 100644 --- a/frontend/public/json/openwebui.json +++ b/frontend/public/json/openwebui.json @@ -1,35 +1,35 @@ { - "name": "Open WebUI", - "slug": "openwebui", - "categories": [ - 20 - ], - "date_created": "2024-10-24", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": null, - "website": "https://openwebui.com/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/open-webui.svg", - "config_path": "/opt/open-webui/.env", - "description": "OpenWebUI is a self-hosted, web-based interface that allows you to run AI models entirely offline. It integrates with various LLM runners, such as OpenAI and Ollama, and supports features like markdown and LaTeX rendering, model management, and voice/video calls. It also offers multilingual support and the ability to generate images using APIs like DALL-E or ComfyUI", - "install_methods": [ - { - "type": "default", - "script": "ct/openwebui.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 16, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Open WebUI", + "slug": "openwebui", + "categories": [ + 20 + ], + "date_created": "2024-10-24", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://docs.openwebui.com/", + "website": "https://openwebui.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/open-webui.svg", + "config_path": "/opt/open-webui/.env", + "description": "OpenWebUI is a self-hosted, web-based interface that allows you to run AI models entirely offline. It integrates with various LLM runners, such as OpenAI and Ollama, and supports features like markdown and LaTeX rendering, model management, and voice/video calls. It also offers multilingual support and the ability to generate images using APIs like DALL-E or ComfyUI", + "install_methods": [ + { + "type": "default", + "script": "ct/openwebui.sh", + "resources": { + "cpu": 4, + "ram": 8192, + "hdd": 25, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/overseerr.json b/frontend/public/json/overseerr.json index c41f85a30..71081c117 100644 --- a/frontend/public/json/overseerr.json +++ b/frontend/public/json/overseerr.json @@ -1,35 +1,35 @@ { - "name": "Overseerr", - "slug": "overseerr", - "categories": [ - 14 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5055, - "documentation": null, - "website": "https://overseerr.dev/", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/overseerr.svg", - "config_path": "", - "description": "Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.", - "install_methods": [ - { - "type": "default", - "script": "ct/overseerr.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Overseerr", + "slug": "overseerr", + "categories": [ + 14 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5055, + "documentation": "https://docs.overseerr.dev/", + "website": "https://overseerr.dev/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/overseerr.svg", + "config_path": "/opt/overseerr/config/settings.json", + "description": "Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.", + "install_methods": [ + { + "type": "default", + "script": "ct/overseerr.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/owncast.json b/frontend/public/json/owncast.json index 1c38b73f6..0e83a5d9e 100644 --- a/frontend/public/json/owncast.json +++ b/frontend/public/json/owncast.json @@ -1,35 +1,35 @@ { - "name": "Owncast", - "slug": "owncast", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8080, - "documentation": null, - "website": "https://owncast.online/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/owncast.svg", - "config_path": "", - "description": "Owncast is a free and open source live video and web chat server for use with existing popular broadcasting software.", - "install_methods": [ - { - "type": "default", - "script": "ct/owncast.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "abc123" - }, - "notes": [] + "name": "Owncast", + "slug": "owncast", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8080, + "documentation": "https://owncast.online/docs/", + "website": "https://owncast.online/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/owncast.svg", + "config_path": "", + "description": "Owncast is a free and open source live video and web chat server for use with existing popular broadcasting software.", + "install_methods": [ + { + "type": "default", + "script": "ct/owncast.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "abc123" + }, + "notes": [] } diff --git a/frontend/public/json/pairdrop.json b/frontend/public/json/pairdrop.json index e89194d13..5a1d0758c 100644 --- a/frontend/public/json/pairdrop.json +++ b/frontend/public/json/pairdrop.json @@ -1,35 +1,35 @@ { - "name": "PairDrop", - "slug": "pairdrop", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 3000, - "documentation": null, - "website": "https://github.com/schlagmichdoch/PairDrop", - "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/pairdrop.svg", - "config_path": "", - "description": "PairDrop: Local file sharing in your browser.", - "install_methods": [ - { - "type": "default", - "script": "ct/pairdrop.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "PairDrop", + "slug": "pairdrop", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/schlagmichdoch/PairDrop/blob/master/docs/host-your-own.md", + "website": "https://github.com/schlagmichdoch/PairDrop", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/pairdrop.svg", + "config_path": "", + "description": "PairDrop: Local file sharing in your browser.", + "install_methods": [ + { + "type": "default", + "script": "ct/pairdrop.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/petio.json b/frontend/public/json/petio.json index e0bae1281..a3bd5e8bb 100644 --- a/frontend/public/json/petio.json +++ b/frontend/public/json/petio.json @@ -1,35 +1,35 @@ { - "name": "Petio", - "slug": "petio", - "categories": [ - 13 - ], - "date_created": "2024-06-12", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 7777, - "documentation": null, - "website": "https://petio.tv/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/petio.webp", - "config_path": "", - "description": "Petio is a third party companion app available to Plex server owners to allow their users to request, review and discover content.", - "install_methods": [ - { - "type": "default", - "script": "ct/petio.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "ubuntu", - "version": "20.04" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Petio", + "slug": "petio", + "categories": [ + 13 + ], + "date_created": "2024-06-12", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 7777, + "documentation": "https://docs.petio.tv/", + "website": "https://petio.tv/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/petio.webp", + "config_path": "", + "description": "Petio is a third party companion app available to Plex server owners to allow their users to request, review and discover content.", + "install_methods": [ + { + "type": "default", + "script": "ct/petio.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "ubuntu", + "version": "20.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/pingvin.json b/frontend/public/json/pingvin.json index 12bee6cbb..872c815e0 100644 --- a/frontend/public/json/pingvin.json +++ b/frontend/public/json/pingvin.json @@ -1,35 +1,35 @@ { - "name": "Pingvin Share", - "slug": "pingvin", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 3000, - "documentation": null, - "website": "https://github.com/stonith404/pingvin-share", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/pingvin-share.svg", - "config_path": "", - "description": "Pingvin Share is self-hosted file sharing platform and an alternative for WeTransfer.", - "install_methods": [ - { - "type": "default", - "script": "ct/pingvin.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Pingvin Share", + "slug": "pingvin", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 3000, + "documentation": "https://stonith404.github.io/pingvin-share/introduction", + "website": "https://github.com/stonith404/pingvin-share", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/pingvin-share.svg", + "config_path": "/opt/pingin-share/config.yaml", + "description": "Pingvin Share is self-hosted file sharing platform and an alternative for WeTransfer.", + "install_methods": [ + { + "type": "default", + "script": "ct/pingvin.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/plex.json b/frontend/public/json/plex.json index 20022725a..95bc7e8f8 100644 --- a/frontend/public/json/plex.json +++ b/frontend/public/json/plex.json @@ -1,44 +1,44 @@ { - "name": "Plex Media Server", - "slug": "plex", - "categories": [ - 13 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 32400, - "documentation": null, - "website": "https://www.plex.tv/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/plex.svg", - "config_path": "", - "description": "Plex personal media server magically scans and organizes your files, sorting your media intuitively and beautifully.", - "install_methods": [ - { - "type": "default", - "script": "ct/plex.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "ubuntu", - "version": "22.04" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Plex Media Server", + "slug": "plex", + "categories": [ + 13 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 32400, + "documentation": "https://support.plex.tv/articles/", + "website": "https://www.plex.tv/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/plex.svg", + "config_path": "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml", + "description": "Plex personal media server magically scans and organizes your files, sorting your media intuitively and beautifully.", + "install_methods": [ + { + "type": "default", + "script": "ct/plex.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "ubuntu", + "version": "22.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "With Privileged/Unprivileged Hardware Acceleration Support", + "type": "info" }, - "notes": [ - { - "text": "With Privileged/Unprivileged Hardware Acceleration Support", - "type": "info" - }, - { - "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", - "type": "warning" - } - ] + { + "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", + "type": "warning" + } + ] } diff --git a/frontend/public/json/prometheus-pve-exporter.json b/frontend/public/json/prometheus-pve-exporter.json index 9f97fa908..93c7fc0fd 100644 --- a/frontend/public/json/prometheus-pve-exporter.json +++ b/frontend/public/json/prometheus-pve-exporter.json @@ -1,41 +1,41 @@ { - "name": "Prometheus Proxmox VE Exporter", - "slug": "prometheus-pve-exporter", - "categories": [ - 1, - 9 - ], - "date_created": "2025-01-28", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9221, - "documentation": "https://github.com/prometheus-pve/prometheus-pve-exporter", - "website": "https://github.com/prometheus-pve/prometheus-pve-exporter", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/proxmox.svg", - "config_path": "", - "description": "An exporter that exposes information gathered from Proxmox VE node for use by the Prometheus monitoring system.", - "install_methods": [ - { - "type": "default", - "script": "ct/prometheus-pve-exporter.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Please adjust the Proxmox credentials in the configuration file: /opt/prometheus-pve-exporter/pve.yml", - "type": "info" - } - ] + "name": "Prometheus Proxmox VE Exporter", + "slug": "prometheus-pve-exporter", + "categories": [ + 1, + 9 + ], + "date_created": "2025-01-28", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9221, + "documentation": "https://github.com/prometheus-pve/prometheus-pve-exporter", + "website": "https://github.com/prometheus-pve/prometheus-pve-exporter", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/proxmox.svg", + "config_path": "/opt/prometheus-pve-exporter/pve.yml", + "description": "An exporter that exposes information gathered from Proxmox VE node for use by the Prometheus monitoring system.", + "install_methods": [ + { + "type": "default", + "script": "ct/prometheus-pve-exporter.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Please adjust the Proxmox credentials in the configuration file!", + "type": "info" + } + ] } diff --git a/frontend/public/json/rabbitmq.json b/frontend/public/json/rabbitmq.json index 7a927b874..85ce23942 100644 --- a/frontend/public/json/rabbitmq.json +++ b/frontend/public/json/rabbitmq.json @@ -1,35 +1,35 @@ { - "name": "RabbitMQ", - "slug": "rabbitmq", - "categories": [ - 18 - ], - "date_created": "2024-06-27", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 15672, - "documentation": null, - "website": "https://www.rabbitmq.com/", - "logo": "https://raw.githubusercontent.com/rabbitmq/rabbitmq-website/main/static/img/rabbitmq-logo.svg", - "config_path": "", - "description": "RabbitMQ is a robust messaging broker widely used for message queuing, streaming, and decoupling services. It supports multiple messaging protocols, ensures reliable message delivery, and offers features like routing, clustering, and federation. RabbitMQ is suitable for various use cases, including microservices communication, real-time data processing, and IoT applications.", - "install_methods": [ - { - "type": "default", - "script": "ct/rabbitmq.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "RabbitMQ", + "slug": "rabbitmq", + "categories": [ + 18 + ], + "date_created": "2024-06-27", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 15672, + "documentation": "https://www.rabbitmq.com/docs", + "website": "https://www.rabbitmq.com/", + "logo": "https://raw.githubusercontent.com/rabbitmq/rabbitmq-website/main/static/img/rabbitmq-logo.svg", + "config_path": "/etc/rabbitmq/rabbitmq.conf", + "description": "RabbitMQ is a robust messaging broker widely used for message queuing, streaming, and decoupling services. It supports multiple messaging protocols, ensures reliable message delivery, and offers features like routing, clustering, and federation. RabbitMQ is suitable for various use cases, including microservices communication, real-time data processing, and IoT applications.", + "install_methods": [ + { + "type": "default", + "script": "ct/rabbitmq.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/radicale.json b/frontend/public/json/radicale.json index 609839115..9e645bbbe 100644 --- a/frontend/public/json/radicale.json +++ b/frontend/public/json/radicale.json @@ -12,7 +12,7 @@ "documentation": "https://radicale.org/master.html#documentation-1", "website": "https://radicale.org/", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/radicale.svg", - "config_path": "", + "config_path": "/etc/radicale/config or ~/.config/radicale/config", "description": "Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts)", "install_methods": [ { @@ -42,4 +42,3 @@ } ] } - diff --git a/frontend/public/json/readeck.json b/frontend/public/json/readeck.json index 9d4c24080..68a16f174 100644 --- a/frontend/public/json/readeck.json +++ b/frontend/public/json/readeck.json @@ -1,35 +1,35 @@ { - "name": "Readeck", - "slug": "readeck", - "categories": [ - 12 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8000, - "documentation": null, - "website": "https://readeck.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/readeck.svg", - "config_path": "", - "description": "Readeck helps you keep all that web content you want to revisit in an hour, tomorrow, or in 20 years.", - "install_methods": [ - { - "type": "default", - "script": "ct/readeck.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Readeck", + "slug": "readeck", + "categories": [ + 12 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://readeck.org/en/docs/", + "website": "https://readeck.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/readeck.svg", + "config_path": "/opt/readeck/config.toml", + "description": "Readeck helps you keep all that web content you want to revisit in an hour, tomorrow, or in 20 years.", + "install_methods": [ + { + "type": "default", + "script": "ct/readeck.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/rtsptoweb.json b/frontend/public/json/rtsptoweb.json index 9ed9afac7..65d8246a5 100644 --- a/frontend/public/json/rtsptoweb.json +++ b/frontend/public/json/rtsptoweb.json @@ -1,35 +1,35 @@ { - "name": "RTSPtoWeb", - "slug": "rtsptoweb", - "categories": [ - 24 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8083, - "documentation": null, - "website": "https://github.com/deepch/RTSPtoWeb", - "logo": "https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true", - "config_path": "", - "description": "RTSPtoWeb converts your RTSP streams to formats consumable in a web browser like MSE (Media Source Extensions), WebRTC, or HLS. It's fully native Golang without the use of FFmpeg or GStreamer", - "install_methods": [ - { - "type": "default", - "script": "ct/rtsptoweb.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "RTSPtoWeb", + "slug": "rtsptoweb", + "categories": [ + 24 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8083, + "documentation": "https://readeck.org/en/docs/", + "website": "https://github.com/deepch/RTSPtoWeb", + "logo": "https://brands.home-assistant.io/_/rtsp_to_webrtc/logo.png?raw=true", + "config_path": "/opt/rtsptoweb/config.json", + "description": "RTSPtoWeb converts your RTSP streams to formats consumable in a web browser like MSE (Media Source Extensions), WebRTC, or HLS. It's fully native Golang without the use of FFmpeg or GStreamer", + "install_methods": [ + { + "type": "default", + "script": "ct/rtsptoweb.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/sabnzbd.json b/frontend/public/json/sabnzbd.json index 1ea34c4f3..27f631150 100644 --- a/frontend/public/json/sabnzbd.json +++ b/frontend/public/json/sabnzbd.json @@ -9,10 +9,10 @@ "updateable": true, "privileged": false, "interface_port": 7777, - "documentation": null, + "documentation": "https://sabnzbd.org/wiki/", "website": "https://sabnzbd.org/", - "logo": "https://raw.githubusercontent.com/sabnzbd/sabnzbd/develop/icons/logo-arrow.svg", - "config_path": "", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/sabnzbd.svg", + "config_path": "/.sabnzbd/sabnzbd.ini", "description": "SABnzbd is a free, open-source software program for downloading binary files from Usenet newsgroups. It is designed to be easy to use, and provides a number of features to simplify the downloading process, such as automatic error detection and repair, download scheduling, and integration with other applications. SABnzbd is a binary newsreader, which means it is specifically designed for downloading binary files, such as images, music, and video, from Usenet newsgroups. With its user-friendly interface and powerful features, SABnzbd makes it easy to manage your Usenet downloads and keep your download queue organized.", "install_methods": [ { @@ -20,8 +20,8 @@ "script": "ct/sabnzbd.sh", "resources": { "cpu": 2, - "ram": 4096, - "hdd": 8, + "ram": 2048, + "hdd": 5, "os": "debian", "version": "12" } diff --git a/frontend/public/json/seafile.json b/frontend/public/json/seafile.json deleted file mode 100644 index 8cda3235b..000000000 --- a/frontend/public/json/seafile.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Seafile", - "slug": "seafile", - "categories": [ - 12 - ], - "date_created": "2025-03-11", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8000, - "documentation": "https://manual.seafile.com/11.0/deploy", - "website": "https://seafile.com", - "logo": "https://manual.seafile.com/11.0/media/seafile-transparent-1024.png", - "config_path": "/opt/seafile/conf/seahub_settings.py", - "description": "Seafile is an open source file sync and share platform, focusing on reliability and performance.", - "install_methods": [ - { - "type": "default", - "script": "ct/seafile.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 20, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Application credentials: `cat ~/seafile.creds`", - "type": "info" - }, - { - "text": "Change STORAGE_DIR value in `external-storage.sh` and run `bash external-storage.sh` to use your defined storage instead of internal.", - "type": "info" - }, - { - "text": "Execute `~/domain.sh ` to enable access to Seafile via your domain. Example: ~/domain.sh https://seafile.example.com", - "type": "info" - } - ] -} - diff --git a/frontend/public/json/sftpgo.json b/frontend/public/json/sftpgo.json index 278869999..deb77e185 100644 --- a/frontend/public/json/sftpgo.json +++ b/frontend/public/json/sftpgo.json @@ -1,35 +1,35 @@ { - "name": "SFTPGo", - "slug": "sftpgo", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8080, - "documentation": null, - "website": "https://github.com/drakkan/sftpgo", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/sftpgo.webp", - "config_path": "", - "description": "SFTPGo is a fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support. Several storage backends are supported: local filesystem, encrypted local filesystem, S3 (compatible) Object Storage, Google Cloud Storage, Azure Blob Storage, SFTP.", - "install_methods": [ - { - "type": "default", - "script": "ct/sftpgo.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "SFTPGo", + "slug": "sftpgo", + "categories": [ + 11 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://docs.sftpgo.com/latest/", + "website": "https://github.com/drakkan/sftpgo", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/sftpgo.webp", + "config_path": "/etc/sftpgo/sftpgo.json", + "description": "SFTPGo is a fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support. Several storage backends are supported: local filesystem, encrypted local filesystem, S3 (compatible) Object Storage, Google Cloud Storage, Azure Blob Storage, SFTP.", + "install_methods": [ + { + "type": "default", + "script": "ct/sftpgo.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/streamlink-webui.json b/frontend/public/json/streamlink-webui.json new file mode 100644 index 000000000..1275e7e40 --- /dev/null +++ b/frontend/public/json/streamlink-webui.json @@ -0,0 +1,40 @@ +{ + "name": "Streamlink WebUI", + "slug": "streamlink-webui", + "categories": [ + 11 + ], + "date_created": "2025-05-06", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://github.com/CrazyWolf13/streamlink-webui", + "config_path": "/opt/streamlink-webui.env", + "website": "https://github.com/CrazyWolf13/streamlink-webui", + "logo": null, + "description": "a simple web-ui to the well-known streamlink cli application, which allows you to save twitch streams to your local disk.", + "install_methods": [ + { + "type": "default", + "script": "ct/streamlink-webui.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 5, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "null", + "password": "null" + }, + "notes": [ + { + "text": "This app requires a Twitch cliend_ID and client_secret, set it in the config file. Look in the application documentation on how to obtain it.", + "type": "info" + } + ] +} diff --git a/frontend/public/json/suwayomi-server.json b/frontend/public/json/suwayomi-server.json deleted file mode 100644 index f5a171acc..000000000 --- a/frontend/public/json/suwayomi-server.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "Suwayomi-Server", - "slug": "suwayomi-server", - "categories": [ - 13 - ], - "date_created": "2025-02-07", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 4567, - "documentation": "https://github.com/Suwayomi/Suwayomi-Server/wiki", - "website": "https://github.com/Suwayomi/Suwayomi-Server", - "logo": "https://github.com/Suwayomi/Suwayomi-Server/raw/master/server/src/main/resources/icon/faviconlogo.png", - "config_path": "", - "description": "A free and open source manga reader server that runs extensions built for Mihon (Tachiyomi).", - "install_methods": [ - { - "type": "default", - "script": "ct/suwayomiserver.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "This application is conflicting with Kaspersky products. You need to disable Kaspersky in order to use this application.", - "type": "info" - } - ] -} diff --git a/frontend/public/json/technitiumdns.json b/frontend/public/json/technitiumdns.json index 46142ddbe..5ebf6d075 100644 --- a/frontend/public/json/technitiumdns.json +++ b/frontend/public/json/technitiumdns.json @@ -1,40 +1,40 @@ { - "name": "Technitium DNS", - "slug": "technitiumdns", - "categories": [ - 5 - ], - "date_created": "2024-04-28", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5380, - "documentation": null, - "website": "https://technitium.com/dns/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/technitium.svg", - "config_path": "", - "description": "Technitium DNS Server is a free, open-source and privacy-focused DNS (Domain Name System) server software for Windows, Linux, and macOS. It is designed to provide a secure, fast, and reliable DNS resolution service to its users. The server can be configured through a web-based interface, and it supports a variety of advanced features, such as automatic IP updates, IPv6 support, caching of DNS queries, and the ability to block unwanted domains. It is also designed to be highly secure, with built-in measures to prevent common types of DNS attacks and data leaks. Technitium DNS Server is aimed at providing an alternative to traditional DNS servers, which often have privacy and security concerns associated with them, and it is ideal for users who are looking for a more secure and private DNS resolution service.", - "install_methods": [ - { - "type": "default", - "script": "ct/technitiumdns.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", - "type": "warning" - } - ] + "name": "Technitium DNS", + "slug": "technitiumdns", + "categories": [ + 5 + ], + "date_created": "2024-04-28", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5380, + "documentation": "https://blog.technitium.com/2017/11/running-dns-server-on-ubuntu-linux.html", + "website": "https://technitium.com/dns/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/technitium.svg", + "config_path": "", + "description": "Technitium DNS Server is a free, open-source and privacy-focused DNS (Domain Name System) server software for Windows, Linux, and macOS. It is designed to provide a secure, fast, and reliable DNS resolution service to its users. The server can be configured through a web-based interface, and it supports a variety of advanced features, such as automatic IP updates, IPv6 support, caching of DNS queries, and the ability to block unwanted domains. It is also designed to be highly secure, with built-in measures to prevent common types of DNS attacks and data leaks. Technitium DNS Server is aimed at providing an alternative to traditional DNS servers, which often have privacy and security concerns associated with them, and it is ideal for users who are looking for a more secure and private DNS resolution service.", + "install_methods": [ + { + "type": "default", + "script": "ct/technitiumdns.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", + "type": "warning" + } + ] } diff --git a/frontend/public/json/the-lounge.json b/frontend/public/json/the-lounge.json index 60cf5dd20..056b23a5c 100644 --- a/frontend/public/json/the-lounge.json +++ b/frontend/public/json/the-lounge.json @@ -1,41 +1,40 @@ { - "name": "The Lounge", - "slug": "the-lounge", - "categories": [ - 22 - ], - "date_created": "2024-11-28", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9000, - "documentation": "https://thelounge.chat/docs", - "website": "https://thelounge.chat/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/the-lounge.svg", - "config_path": "", - "description": "Modern web IRC client designed for self-hosting ", - "install_methods": [ - { - "type": "default", - "script": "ct/the-lounge.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "ubuntu", - "version": "24.04" - } + "name": "The Lounge", + "slug": "the-lounge", + "categories": [ + 22 + ], + "date_created": "2024-11-28", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9000, + "documentation": "https://thelounge.chat/docs", + "website": "https://thelounge.chat/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/the-lounge.svg", + "config_path": "/etc/thelounge/config.js", + "description": "Modern web IRC client designed for self-hosting ", + "install_methods": [ + { + "type": "default", + "script": "ct/the-lounge.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "ubuntu", + "version": "24.04" } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "The Lounge is running in private mode. Use `runuser -u thelounge -- thelounge add usernamehere` to create users.", - "type": "info" - } - ] - } - + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "The Lounge is running in private mode. Use `runuser -u thelounge -- thelounge add usernamehere` to create users.", + "type": "info" + } + ] +} diff --git a/frontend/public/json/traccar.json b/frontend/public/json/traccar.json index 90adbc5ca..397e4d89c 100644 --- a/frontend/public/json/traccar.json +++ b/frontend/public/json/traccar.json @@ -1,35 +1,35 @@ { - "name": "Traccar", - "slug": "traccar", - "categories": [ - 0 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 8082, - "documentation": null, - "website": "https://www.traccar.org/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/traccar.svg", - "config_path": "", - "description": "Traccar is an open source GPS tracking system. It supports more than 200 GPS protocols and more than 2000 models of GPS tracking devices.", - "install_methods": [ - { - "type": "default", - "script": "ct/traccar.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Traccar", + "slug": "traccar", + "categories": [ + 0 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8082, + "documentation": null, + "website": "https://www.traccar.org/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/traccar.svg", + "config_path": "/opt/traccar/conf/traccar.xml", + "description": "Traccar is an open source GPS tracking system. It supports more than 200 GPS protocols and more than 2000 models of GPS tracking devices.", + "install_methods": [ + { + "type": "default", + "script": "ct/traccar.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/frontend/public/json/transmission.json b/frontend/public/json/transmission.json index a73588759..44e2a99fe 100644 --- a/frontend/public/json/transmission.json +++ b/frontend/public/json/transmission.json @@ -1,35 +1,55 @@ { - "name": "Transmission", - "slug": "transmission", - "categories": [ - 11 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 9091, - "documentation": null, - "website": "https://transmissionbt.com/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/transmission.svg", - "config_path": "/etc/transmission-daemon/settings.json", - "description": "Transmission is a free, open-source BitTorrent client known for its fast download speeds and ease of use. It supports various platforms such as Windows, Linux, and macOS and has features like web interface, peer exchange, and encrypted transfers.", - "install_methods": [ - { - "type": "default", - "script": "ct/transmission.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "transmission", - "password": "transmission" + "name": "Transmission", + "slug": "transmission", + "categories": [ + 11 + ], + "date_created": "2025-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9091, + "documentation": "https://github.com/transmission/transmission/blob/main/docs/README.md", + "website": "https://transmissionbt.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/transmission.svg", + "config_path": "Debian `/etc/transmission-daemon/settings.json` | Alpine `/var/lib/transmission/config/settings.json`", + "description": "Transmission is a free, open-source BitTorrent client known for its fast download speeds and ease of use. It supports various platforms such as Windows, Linux, and macOS and has features like web interface, peer exchange, and encrypted transfers.", + "install_methods": [ + { + "type": "default", + "script": "ct/transmission.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } }, - "notes": [] + { + "type": "alpine", + "script": "ct/alpine-transmission.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "type": "info", + "text": "Script disables whitelisting by default. Change config to suit your needs." + }, + { + "type": "info", + "text": "Alpine script sets initial disk size to 1GB. Please adjust for your needs after installation ends." + } + ] } diff --git a/frontend/public/json/trilium.json b/frontend/public/json/trilium.json index 85a6e0bd7..67d5a6a00 100644 --- a/frontend/public/json/trilium.json +++ b/frontend/public/json/trilium.json @@ -1,36 +1,35 @@ { - "name": "TriliumNext", - "slug": "trilium", - "categories": [ - 12 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": null, - "website": "https://github.com/TriliumNext/Notes", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/triliumnext.svg", - "config_path": "", - "description": "TriliumNext is an newer Fork of Trilium. TriliumNext is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.", - "install_methods": [ - { - "type": "default", - "script": "ct/trilium.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "TriliumNext", + "slug": "trilium", + "categories": [ + 12 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://triliumnext.github.io/Docs/", + "website": "https://github.com/TriliumNext/Notes", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/triliumnext.svg", + "config_path": "/root/trilium-data/config.ini", + "description": "TriliumNext is an newer Fork of Trilium. TriliumNext is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.", + "install_methods": [ + { + "type": "default", + "script": "ct/trilium.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } - diff --git a/frontend/public/json/umlautadaptarr.json b/frontend/public/json/umlautadaptarr.json new file mode 100644 index 000000000..459080f5c --- /dev/null +++ b/frontend/public/json/umlautadaptarr.json @@ -0,0 +1,35 @@ +{ + "name": "UmlautAdaptarr", + "slug": "umlautadaptarr", + "categories": [ + 14 + ], + "date_created": "2025-04-28", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5005, + "documentation": null, + "website": "https://github.com/PCJones/UmlautAdaptarr", + "logo": null, + "config_path": "/opt/UmlautAdaptarr/appsettings.json", + "description": "UmlautAdaptarr is a tool that fixes issues with how Sonarr, Radarr, Lidarr, and Readarr handle foreign languages. It sits between these apps and the indexers, changing searches and results, and renaming releases so the apps recognize them correctly.", + "install_methods": [ + { + "type": "default", + "script": "ct/umlautadaptarr.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/vaultwarden.json b/frontend/public/json/vaultwarden.json index eae430f72..7b046d5fe 100644 --- a/frontend/public/json/vaultwarden.json +++ b/frontend/public/json/vaultwarden.json @@ -1,56 +1,55 @@ { - "name": "Vaultwarden", - "slug": "vaultwarden", - "categories": [ - 6 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8000, - "documentation": null, - "website": "https://github.com/dani-garcia/vaultwarden/", - "logo": "https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg", - "config_path": "/opt/vaultwarden/.env", - "description": "Vaultwarden is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.", - "install_methods": [ - { - "type": "default", - "script": "ct/vaultwarden.sh", - "resources": { - "cpu": 4, - "ram": 6144, - "hdd": 6, - "os": "debian", - "version": "12" - } - }, - { - "type": "alpine", - "script": "ct/alpine-vaultwarden.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 0.5, - "os": "alpine", - "version": "3.21" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Vaultwarden", + "slug": "vaultwarden", + "categories": [ + 6 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://github.com/dani-garcia/vaultwarden/wiki", + "website": "https://github.com/dani-garcia/vaultwarden/", + "logo": "https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg", + "config_path": "/opt/vaultwarden/.env", + "description": "Vaultwarden is a self-hosted password manager which provides secure and encrypted password storage. It uses client-side encryption and provides access to passwords through a web interface and mobile apps.", + "install_methods": [ + { + "type": "default", + "script": "ct/vaultwarden.sh", + "resources": { + "cpu": 4, + "ram": 6144, + "hdd": 6, + "os": "debian", + "version": "12" + } }, - "notes": [ - { - "text": "Vaultwarden needs to be behind a proxy (Nginx Proxy Manager, Caddy, etc) to obtain HTTPS and to allow clients to connect. If you try to open the web page directly on the new container, the web site will not load", - "type": "warning" - }, - { - "text": "To set the Admin Token, run the command below (or type update) in the LXC Console.", - "type": "info" - } - ] + { + "type": "alpine", + "script": "ct/alpine-vaultwarden.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 0.5, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Application uses self-signed certificate for HTTPS to work and is enabled by default. If you need a different setup, please read the documentation.", + "type": "warning" + }, + { + "text": "To set the Admin Token, run the command below (or type update) in the LXC Console.", + "type": "info" + } + ] } - diff --git a/frontend/public/json/versions.json b/frontend/public/json/versions.json index 05071934e..772f7699a 100644 --- a/frontend/public/json/versions.json +++ b/frontend/public/json/versions.json @@ -1,63 +1,88 @@ [ { - "name": "fhem/fhem-mirror", - "version": "6.2", - "date": "2025-04-24T10:35:55Z" + "name": "mattermost/mattermost", + "version": "v10.7.2", + "date": "2025-05-12T10:42:32Z" }, { - "name": "glpi-project/glpi", - "version": "10.0.18", - "date": "2025-02-12T11:07:02Z" + "name": "VictoriaMetrics/VictoriaMetrics", + "version": "v1.102.20", + "date": "2025-05-12T10:23:03Z" }, { - "name": "zwave-js/zwave-js-ui", - "version": "v10.3.1", - "date": "2025-04-24T08:47:43Z" + "name": "nzbgetcom/nzbget", + "version": "v25.0", + "date": "2025-05-12T09:12:04Z" }, { - "name": "NLnetLabs/unbound", - "version": "release-1.23.0", - "date": "2025-04-24T08:07:21Z" + "name": "dgtlmoon/changedetection.io", + "version": "0.49.17", + "date": "2025-05-12T08:48:30Z" + }, + { + "name": "stackblitz-labs/bolt.diy", + "version": "1.0.0", + "date": "2025-05-12T07:39:23Z" + }, + { + "name": "firefly-iii/firefly-iii", + "version": "v6.2.12", + "date": "2025-04-20T19:22:17Z" + }, + { + "name": "umami-software/umami", + "version": "v2.18.1", + "date": "2025-05-12T07:16:12Z" + }, + { + "name": "runtipi/runtipi", + "version": "v4.1.0", + "date": "2025-05-12T07:13:15Z" }, { "name": "Jackett/Jackett", - "version": "v0.22.1822", - "date": "2025-04-24T06:06:38Z" + "version": "v0.22.1891", + "date": "2025-05-12T05:53:07Z" }, { - "name": "inventree/InvenTree", - "version": "0.17.11", - "date": "2025-04-24T05:25:55Z" + "name": "esphome/esphome", + "version": "2025.4.2", + "date": "2025-05-11T22:18:43Z" }, { - "name": "openobserve/openobserve", - "version": "v0.14.6-rc7", - "date": "2025-04-24T04:02:56Z" + "name": "morpheus65535/bazarr", + "version": "v1.5.2", + "date": "2025-05-11T16:40:55Z" }, { - "name": "rogerfar/rdt-client", - "version": "v2.0.109", - "date": "2025-04-24T03:55:08Z" + "name": "outline/outline", + "version": "v0.84.0", + "date": "2025-05-11T15:50:48Z" }, { - "name": "syncthing/syncthing", - "version": "v2.0.0-beta.9", - "date": "2025-04-12T13:58:29Z" + "name": "Kozea/Radicale", + "version": "v3.5.3", + "date": "2025-05-11T15:17:13Z" }, { - "name": "immich-app/immich", - "version": "v1.132.1", - "date": "2025-04-23T22:08:21Z" + "name": "Prowlarr/Prowlarr", + "version": "v1.35.1.5034", + "date": "2025-04-30T11:02:36Z" }, { - "name": "keycloak/keycloak", - "version": "26.2.1", - "date": "2025-04-23T12:17:17Z" + "name": "cross-seed/cross-seed", + "version": "v6.12.4", + "date": "2025-05-11T11:41:32Z" }, { - "name": "mongodb/mongo", - "version": "r6.0.22", - "date": "2025-04-23T19:53:55Z" + "name": "authelia/authelia", + "version": "v4.39.3", + "date": "2025-05-11T11:12:15Z" + }, + { + "name": "theonedev/onedev", + "version": "v11.9.5", + "date": "2025-05-11T10:50:37Z" }, { "name": "Radarr/Radarr", @@ -65,89 +90,559 @@ "date": "2025-04-23T18:51:12Z" }, { - "name": "netbox-community/netbox", - "version": "v4.2.8", - "date": "2025-04-22T19:44:49Z" + "name": "pocketbase/pocketbase", + "version": "v0.28.0", + "date": "2025-05-11T06:25:22Z" }, { - "name": "Kozea/Radicale", - "version": "v3.5.2", - "date": "2025-04-23T18:41:46Z" + "name": "owncast/owncast", + "version": "v0.2.3", + "date": "2025-05-10T21:14:45Z" }, { - "name": "runtipi/runtipi", - "version": "v3.10.0-beta.9", - "date": "2025-04-17T11:46:08Z" + "name": "open-webui/open-webui", + "version": "v0.6.9", + "date": "2025-05-10T19:05:02Z" + }, + { + "name": "ollama/ollama", + "version": "v0.6.9-rc0", + "date": "2025-05-10T18:57:30Z" + }, + { + "name": "Stirling-Tools/Stirling-PDF", + "version": "v0.46.1", + "date": "2025-05-10T15:39:10Z" + }, + { + "name": "juanfont/headscale", + "version": "v0.25.1", + "date": "2025-02-25T17:30:48Z" + }, + { + "name": "pelican-dev/wings", + "version": "v1.0.0-beta13", + "date": "2025-05-09T23:14:41Z" + }, + { + "name": "pelican-dev/panel", + "version": "v1.0.0-beta21", + "date": "2025-05-09T23:14:23Z" + }, + { + "name": "homarr-labs/homarr", + "version": "v1.19.1", + "date": "2025-05-09T19:15:10Z" + }, + { + "name": "MediaBrowser/Emby.Releases", + "version": "4.8.11.0", + "date": "2025-03-10T06:39:11Z" + }, + { + "name": "home-assistant/core", + "version": "2025.5.1", + "date": "2025-05-09T15:05:54Z" + }, + { + "name": "keycloak/keycloak", + "version": "26.2.4", + "date": "2025-05-08T09:10:10Z" + }, + { + "name": "crowdsecurity/crowdsec", + "version": "v1.6.8", + "date": "2025-03-25T13:33:10Z" + }, + { + "name": "zitadel/zitadel", + "version": "v3.0.4", + "date": "2025-05-09T11:38:33Z" + }, + { + "name": "coder/code-server", + "version": "v4.99.4", + "date": "2025-05-02T18:33:09Z" + }, + { + "name": "pocket-id/pocket-id", + "version": "v0.53.0", + "date": "2025-05-08T19:56:55Z" + }, + { + "name": "ellite/Wallos", + "version": "v3.1.0", + "date": "2025-05-08T15:33:17Z" + }, + { + "name": "BookStackApp/BookStack", + "version": "v25.02.4", + "date": "2025-05-08T15:03:17Z" + }, + { + "name": "wazuh/wazuh", + "version": "v4.12.0", + "date": "2025-05-08T13:27:46Z" + }, + { + "name": "apache/tomcat", + "version": "10.1.41", + "date": "2025-05-08T12:45:44Z" + }, + { + "name": "n8n-io/n8n", + "version": "n8n@1.91.3", + "date": "2025-05-08T12:25:10Z" + }, + { + "name": "zwave-js/zwave-js-ui", + "version": "v10.4.2", + "date": "2025-05-08T08:11:27Z" + }, + { + "name": "semaphoreui/semaphore", + "version": "v2.14.10", + "date": "2025-05-07T20:23:29Z" + }, + { + "name": "readeck/readeck", + "version": "0.18.2", + "date": "2025-05-07T19:22:22Z" + }, + { + "name": "HabitRPG/habitica", + "version": "v5.36.3", + "date": "2025-05-07T17:22:07Z" + }, + { + "name": "ipfs/kubo", + "version": "v0.34.1", + "date": "2025-03-25T18:11:12Z" }, { "name": "NodeBB/NodeBB", - "version": "v4.2.2", - "date": "2025-04-22T16:33:53Z" - }, - { - "name": "grafana/grafana", - "version": "v11.6.1", - "date": "2025-04-23T17:04:02Z" - }, - { - "name": "nzbgetcom/nzbget", - "version": "v24.8", - "date": "2025-03-18T07:33:51Z" - }, - { - "name": "docmost/docmost", - "version": "v0.20.1", - "date": "2025-04-23T13:44:12Z" - }, - { - "name": "Checkmk/checkmk", - "version": "v2.3.0p31-rc1", - "date": "2025-04-23T13:16:47Z" - }, - { - "name": "redis/redis", - "version": "7.4.3", - "date": "2025-04-23T12:00:04Z" + "version": "v4.3.1", + "date": "2025-05-07T15:38:20Z" }, { "name": "donaldzou/WGDashboard", - "version": "v4.2.1", - "date": "2025-04-23T11:42:05Z" + "version": "v4.2.3", + "date": "2025-05-07T15:35:04Z" + }, + { + "name": "stonith404/pingvin-share", + "version": "v1.12.0", + "date": "2025-05-07T14:12:11Z" + }, + { + "name": "Brandawg93/PeaNUT", + "version": "v5.7.5", + "date": "2025-05-07T14:01:45Z" }, { "name": "Graylog2/graylog2-server", - "version": "6.3.0-alpha.1", - "date": "2025-04-23T11:25:55Z" + "version": "6.3.0-alpha.3", + "date": "2025-05-07T13:58:36Z" + }, + { + "name": "glpi-project/glpi", + "version": "10.0.18", + "date": "2025-02-12T11:07:02Z" + }, + { + "name": "ZoeyVid/NPMplus", + "version": "2025-05-07-r1", + "date": "2025-05-07T12:18:42Z" + }, + { + "name": "docker/compose", + "version": "v2.36.0", + "date": "2025-05-07T11:54:14Z" + }, + { + "name": "Checkmk/checkmk", + "version": "v2.2.0p42-rc1", + "date": "2025-05-07T11:50:30Z" + }, + { + "name": "openobserve/openobserve", + "version": "v0.14.7", + "date": "2025-05-07T11:32:23Z" + }, + { + "name": "grokability/snipe-it", + "version": "v8.1.3", + "date": "2025-05-07T11:09:21Z" }, { "name": "cockpit-project/cockpit", - "version": "337", - "date": "2025-04-23T08:26:31Z" - }, - { - "name": "mattermost/mattermost", - "version": "v10.6.2", - "date": "2025-04-15T08:14:23Z" + "version": "338", + "date": "2025-05-07T10:43:29Z" }, { "name": "zabbix/zabbix", - "version": "7.2.6", - "date": "2025-04-23T08:06:23Z" + "version": "7.4.0beta2", + "date": "2025-05-07T10:39:21Z" }, { "name": "jupyter/notebook", - "version": "v7.4.1", - "date": "2025-04-23T06:40:34Z" + "version": "@jupyter-notebook/ui-components@7.5.0-alpha.0", + "date": "2025-05-07T09:12:08Z" + }, + { + "name": "influxdata/influxdb", + "version": "v1.12.1rc0", + "date": "2025-05-06T20:56:30Z" + }, + { + "name": "redis/redis", + "version": "8.0.1-int", + "date": "2025-05-06T18:40:34Z" + }, + { + "name": "Athou/commafeed", + "version": "5.8.0", + "date": "2025-05-06T18:33:07Z" + }, + { + "name": "sysadminsmedia/homebox", + "version": "v0.19.0", + "date": "2025-05-06T18:05:42Z" + }, + { + "name": "jenkinsci/jenkins", + "version": "jenkins-2.509", + "date": "2025-05-06T15:37:10Z" + }, + { + "name": "MariaDB/server", + "version": "mariadb-11.4.6", + "date": "2025-05-06T15:30:49Z" + }, + { + "name": "bluenviron/mediamtx", + "version": "v1.12.2", + "date": "2025-05-06T15:30:10Z" + }, + { + "name": "AdguardTeam/AdGuardHome", + "version": "v0.107.61", + "date": "2025-04-22T12:42:26Z" + }, + { + "name": "element-hq/synapse", + "version": "v1.129.0", + "date": "2025-05-06T12:28:54Z" + }, + { + "name": "Luligu/matterbridge", + "version": "3.0.1", + "date": "2025-05-06T10:24:43Z" + }, + { + "name": "syncthing/syncthing", + "version": "v1.29.6", + "date": "2025-05-06T07:57:02Z" + }, + { + "name": "linkwarden/linkwarden", + "version": "v2.10.2", + "date": "2025-05-06T03:12:53Z" + }, + { + "name": "fallenbagel/jellyseerr", + "version": "preview-tvdb", + "date": "2025-05-06T01:32:52Z" + }, + { + "name": "autobrr/autobrr", + "version": "v1.62.0", + "date": "2025-05-05T20:35:18Z" + }, + { + "name": "postgres/postgres", + "version": "REL_13_21", + "date": "2025-05-05T20:34:49Z" + }, + { + "name": "msgbyte/tianji", + "version": "v1.20.9", + "date": "2025-05-05T19:24:09Z" + }, + { + "name": "grafana/grafana", + "version": "v12.0.0", + "date": "2025-05-05T18:28:19Z" + }, + { + "name": "apache/couchdb", + "version": "3.5.0", + "date": "2025-05-05T16:28:24Z" + }, + { + "name": "icereed/paperless-gpt", + "version": "v0.18.0", + "date": "2025-05-05T15:34:40Z" + }, + { + "name": "apache/tika", + "version": "2.9.4", + "date": "2025-05-05T15:17:27Z" + }, + { + "name": "neo4j/neo4j", + "version": "5.26.6", + "date": "2025-05-05T13:59:36Z" + }, + { + "name": "traefik/traefik", + "version": "v3.4.0", + "date": "2025-05-05T13:59:23Z" + }, + { + "name": "evcc-io/evcc", + "version": "0.203.5", + "date": "2025-05-05T06:41:02Z" + }, + { + "name": "moghtech/komodo", + "version": "v1.17.5", + "date": "2025-05-04T22:17:06Z" + }, + { + "name": "YunoHost/yunohost", + "version": "debian/12.0.16", + "date": "2025-05-04T22:06:15Z" + }, + { + "name": "Lidarr/Lidarr", + "version": "v2.11.2.4629", + "date": "2025-04-28T11:59:37Z" + }, + { + "name": "Readarr/Readarr", + "version": "v2.0.0.4645", + "date": "2017-03-07T18:56:06Z" + }, + { + "name": "bastienwirtz/homer", + "version": "v25.05.1", + "date": "2025-05-04T12:17:00Z" + }, + { + "name": "FreshRSS/FreshRSS", + "version": "1.26.2", + "date": "2025-05-03T20:23:27Z" + }, + { + "name": "actualbudget/actual", + "version": "v25.5.0", + "date": "2025-05-03T19:03:17Z" + }, + { + "name": "rogerfar/rdt-client", + "version": "v2.0.111", + "date": "2025-05-03T16:25:30Z" + }, + { + "name": "blakeblackshear/frigate", + "version": "v0.14.1", + "date": "2024-08-29T22:32:51Z" + }, + { + "name": "kimai/kimai", + "version": "2.33.0", + "date": "2025-05-03T10:33:49Z" + }, + { + "name": "documenso/documenso", + "version": "v1.10.3", + "date": "2025-05-02T23:23:25Z" + }, + { + "name": "prometheus/prometheus", + "version": "v0.304.0-rc.0", + "date": "2025-05-02T17:29:18Z" + }, + { + "name": "forgejo/forgejo", + "version": "v11.0.1", + "date": "2025-05-02T17:10:30Z" }, { "name": "jhuckaby/Cronicle", - "version": "v0.9.78", - "date": "2025-04-23T01:38:28Z" + "version": "v0.9.80", + "date": "2025-05-02T16:48:15Z" }, { - "name": "cross-seed/cross-seed", - "version": "v6.11.2", - "date": "2025-02-26T14:54:49Z" + "name": "prometheus-pve/prometheus-pve-exporter", + "version": "v3.5.4", + "date": "2025-05-02T13:42:06Z" + }, + { + "name": "motioneye-project/motioneye", + "version": "0.42.1", + "date": "2020-06-07T07:27:04Z" + }, + { + "name": "emqx/emqx", + "version": "e5.9.0", + "date": "2025-05-02T11:07:10Z" + }, + { + "name": "Koenkk/zigbee2mqtt", + "version": "2.3.0", + "date": "2025-05-01T18:24:31Z" + }, + { + "name": "netbox-community/netbox", + "version": "v4.3.0", + "date": "2025-05-01T16:46:17Z" + }, + { + "name": "WordPress/WordPress", + "version": "6.8.1", + "date": "2025-04-30T16:44:16Z" + }, + { + "name": "benjaminjonard/koillection", + "version": "1.6.13", + "date": "2025-04-30T16:38:35Z" + }, + { + "name": "cloudflare/cloudflared", + "version": "2025.4.2", + "date": "2025-04-30T14:16:11Z" + }, + { + "name": "docmost/docmost", + "version": "v0.20.4", + "date": "2025-04-30T14:15:16Z" + }, + { + "name": "goauthentik/authentik", + "version": "version/2025.4.0", + "date": "2025-04-30T12:34:14Z" + }, + { + "name": "go-gitea/gitea", + "version": "v1.25.0-dev", + "date": "2025-04-28T22:57:56Z" + }, + { + "name": "hivemq/hivemq-community-edition", + "version": "2025.3", + "date": "2025-04-30T02:52:28Z" + }, + { + "name": "gristlabs/grist-core", + "version": "v1.5.2", + "date": "2025-04-29T20:42:32Z" + }, + { + "name": "hargata/lubelog", + "version": "v1.4.7", + "date": "2025-04-29T15:00:18Z" + }, + { + "name": "henrygd/beszel", + "version": "v0.11.1", + "date": "2025-04-29T01:14:35Z" + }, + { + "name": "deluge-torrent/deluge", + "version": "deluge-2.2.0", + "date": "2025-04-28T21:31:06Z" + }, + { + "name": "gethomepage/homepage", + "version": "v1.2.0", + "date": "2025-04-28T17:55:01Z" + }, + { + "name": "immich-app/immich", + "version": "v1.132.3", + "date": "2025-04-28T14:11:06Z" + }, + { + "name": "FlowiseAI/Flowise", + "version": "flowise@2.2.8", + "date": "2025-04-28T08:27:00Z" + }, + { + "name": "karakeep-app/karakeep", + "version": "v0.24.1", + "date": "2025-04-28T08:21:37Z" + }, + { + "name": "advplyr/audiobookshelf", + "version": "v2.21.0", + "date": "2025-04-27T16:31:14Z" + }, + { + "name": "gotify/server", + "version": "v2.6.3", + "date": "2025-04-27T09:05:42Z" + }, + { + "name": "qbittorrent/qBittorrent", + "version": "release-5.1.0", + "date": "2025-04-27T08:53:48Z" + }, + { + "name": "tobychui/zoraxy", + "version": "v3.1.9", + "date": "2025-03-01T02:24:33Z" + }, + { + "name": "TandoorRecipes/recipes", + "version": "1.5.34", + "date": "2025-03-27T16:17:38Z" + }, + { + "name": "leiweibau/Pi.Alert", + "version": "v2025-04-26", + "date": "2025-04-26T14:16:12Z" + }, + { + "name": "openhab/openhab-core", + "version": "4.3.5", + "date": "2025-04-26T13:52:07Z" + }, + { + "name": "photoprism/photoprism", + "version": "250426-27ec7a128", + "date": "2025-04-26T11:51:39Z" + }, + { + "name": "TechnitiumSoftware/DnsServer", + "version": "v13.6.0", + "date": "2025-04-26T10:21:12Z" + }, + { + "name": "duplicati/duplicati", + "version": "v2.1.0.117-2.1.0.117_canary_2025-04-25", + "date": "2025-04-25T17:22:12Z" + }, + { + "name": "mongodb/mongo", + "version": "r7.0.19", + "date": "2025-04-24T20:59:43Z" + }, + { + "name": "dotnetfactory/fluid-calendar", + "version": "v1.4.0", + "date": "2025-04-24T16:20:17Z" + }, + { + "name": "NLnetLabs/unbound", + "version": "release-1.23.0", + "date": "2025-04-24T08:07:21Z" + }, + { + "name": "inventree/InvenTree", + "version": "0.17.11", + "date": "2025-04-24T05:25:55Z" }, { "name": "minio/minio", @@ -159,51 +654,16 @@ "version": "v0.7.13", "date": "2025-04-22T22:19:16Z" }, - { - "name": "n8n-io/n8n", - "version": "n8n@1.90.0", - "date": "2025-04-22T08:58:15Z" - }, - { - "name": "jenkinsci/jenkins", - "version": "jenkins-2.507", - "date": "2025-04-22T15:22:53Z" - }, - { - "name": "evcc-io/evcc", - "version": "0.203.2", - "date": "2025-04-22T15:07:28Z" - }, { "name": "OliveTin/OliveTin", "version": "2025.4.22", "date": "2025-04-22T14:18:11Z" }, - { - "name": "AdguardTeam/AdGuardHome", - "version": "v0.107.61", - "date": "2025-04-22T12:42:26Z" - }, - { - "name": "VictoriaMetrics/VictoriaMetrics", - "version": "v1.20.0-victorialogs", - "date": "2025-04-22T12:00:23Z" - }, { "name": "OctoPrint/OctoPrint", "version": "1.11.0", "date": "2025-04-22T09:33:46Z" }, - { - "name": "morpheus65535/bazarr", - "version": "v1.5.1", - "date": "2025-01-01T16:15:52Z" - }, - { - "name": "firefly-iii/firefly-iii", - "version": "v6.2.12", - "date": "2025-04-20T19:22:17Z" - }, { "name": "monicahq/monica", "version": "v4.1.2", @@ -219,141 +679,26 @@ "version": "v4.3.0", "date": "2025-04-21T17:44:40Z" }, - { - "name": "emqx/emqx", - "version": "e5.9.0-beta.4", - "date": "2025-04-21T17:08:59Z" - }, - { - "name": "Prowlarr/Prowlarr", - "version": "v1.34.1.5021", - "date": "2025-04-20T19:29:50Z" - }, - { - "name": "semaphoreui/semaphore", - "version": "v2.13.14", - "date": "2025-04-19T20:39:23Z" - }, - { - "name": "pocket-id/pocket-id", - "version": "v0.49.0", - "date": "2025-04-20T18:03:03Z" - }, - { - "name": "YunoHost/yunohost", - "version": "debian/12.0.14", - "date": "2025-04-09T10:09:00Z" - }, { "name": "Kareadita/Kavita", "version": "v0.8.6.2", "date": "2025-04-20T16:55:38Z" }, - { - "name": "openhab/openhab-core", - "version": "5.0.0.M2", - "date": "2025-04-20T13:16:29Z" - }, - { - "name": "pocketbase/pocketbase", - "version": "v0.27.1", - "date": "2025-04-20T11:26:50Z" - }, - { - "name": "karakeep-app/karakeep", - "version": "extension/v1.2.5", - "date": "2025-04-20T10:19:06Z" - }, - { - "name": "MediaBrowser/Emby.Releases", - "version": "4.8.11.0", - "date": "2025-03-10T06:39:11Z" - }, - { - "name": "Readarr/Readarr", - "version": "v2.0.0.4645", - "date": "2017-03-07T18:56:06Z" - }, { "name": "paperless-ngx/paperless-ngx", "version": "v2.15.3", "date": "2025-04-19T23:02:17Z" }, - { - "name": "ellite/Wallos", - "version": "v2.52.0", - "date": "2025-04-19T20:36:50Z" - }, - { - "name": "msgbyte/tianji", - "version": "v1.20.7", - "date": "2025-04-19T20:35:09Z" - }, - { - "name": "theonedev/onedev", - "version": "v11.8.7", - "date": "2025-04-19T11:19:29Z" - }, - { - "name": "home-assistant/core", - "version": "2025.4.3", - "date": "2025-04-19T10:23:38Z" - }, - { - "name": "moghtech/komodo", - "version": "v1.17.2", - "date": "2025-04-19T06:56:25Z" - }, - { - "name": "ollama/ollama", - "version": "v0.6.6", - "date": "2025-04-17T04:34:58Z" - }, { "name": "caddyserver/caddy", "version": "v2.10.0", "date": "2025-04-18T20:46:28Z" }, - { - "name": "homarr-labs/homarr", - "version": "v1.17.0", - "date": "2025-04-18T19:14:57Z" - }, { "name": "Paymenter/Paymenter", "version": "v1.0.4", "date": "2025-04-18T16:08:02Z" }, - { - "name": "prometheus/prometheus", - "version": "v3.3.0", - "date": "2025-04-18T13:46:38Z" - }, - { - "name": "dgtlmoon/changedetection.io", - "version": "0.49.15", - "date": "2025-04-18T12:58:26Z" - }, - { - "name": "traefik/traefik", - "version": "v3.3.6", - "date": "2025-04-18T09:28:22Z" - }, - { - "name": "TandoorRecipes/recipes", - "version": "1.5.34", - "date": "2025-03-27T16:17:38Z" - }, - { - "name": "Luligu/matterbridge", - "version": "2.2.9", - "date": "2025-04-18T10:05:52Z" - }, - { - "name": "HabitRPG/habitica", - "version": "v5.35.4", - "date": "2025-04-17T21:18:55Z" - }, { "name": "tailscale/tailscale", "version": "v1.82.5", @@ -364,141 +709,36 @@ "version": "v0.93.0", "date": "2025-04-17T20:05:25Z" }, - { - "name": "coder/code-server", - "version": "v4.99.3", - "date": "2025-04-17T18:33:11Z" - }, - { - "name": "duplicati/duplicati", - "version": "v2.1.0.116-2.1.0.116_canary_2025-04-17", - "date": "2025-04-17T17:52:31Z" - }, { "name": "benzino77/tasmocompiler", "version": "v12.6.1", "date": "2025-04-17T17:35:02Z" }, - { - "name": "docker/compose", - "version": "v2.35.1", - "date": "2025-04-17T14:29:11Z" - }, - { - "name": "influxdata/influxdb", - "version": "v3.0.1", - "date": "2025-04-17T14:06:09Z" - }, - { - "name": "documenso/documenso", - "version": "v1.10.0-rc.5", - "date": "2025-04-17T13:01:43Z" - }, - { - "name": "prometheus-pve/prometheus-pve-exporter", - "version": "v3.5.3", - "date": "2025-04-17T10:40:47Z" - }, { "name": "IceWhaleTech/CasaOS", "version": "v0.4.15", "date": "2024-12-19T03:19:49Z" }, - { - "name": "esphome/esphome", - "version": "2025.4.0", - "date": "2025-04-17T00:55:34Z" - }, - { - "name": "forgejo/forgejo", - "version": "v11.0.0", - "date": "2025-04-16T19:25:53Z" - }, - { - "name": "element-hq/synapse", - "version": "v1.129.0rc1", - "date": "2025-04-16T15:18:13Z" - }, - { - "name": "wazuh/wazuh", - "version": "coverity-w17-4.12.0", - "date": "2025-04-16T11:20:57Z" - }, - { - "name": "icereed/paperless-gpt", - "version": "v0.15.0", - "date": "2025-04-16T03:58:02Z" - }, { "name": "rabbitmq/rabbitmq-server", "version": "v4.1.0", "date": "2025-04-15T16:18:29Z" }, - { - "name": "Brandawg93/PeaNUT", - "version": "v5.7.2", - "date": "2025-04-15T15:44:49Z" - }, - { - "name": "WordPress/WordPress", - "version": "6.8", - "date": "2025-04-15T15:41:16Z" - }, - { - "name": "Stirling-Tools/Stirling-PDF", - "version": "v0.45.6", - "date": "2025-04-15T14:16:52Z" - }, { "name": "slskd/slskd", "version": "0.22.5", "date": "2025-04-15T02:52:26Z" }, - { - "name": "blakeblackshear/frigate", - "version": "v0.14.1", - "date": "2024-08-29T22:32:51Z" - }, { "name": "home-assistant/operating-system", "version": "15.2", "date": "2025-04-14T15:37:12Z" }, - { - "name": "stackblitz-labs/bolt.diy", - "version": "v0.0.7-hf1", - "date": "2025-03-10T20:49:39Z" - }, - { - "name": "bluenviron/mediamtx", - "version": "v1.12.0", - "date": "2025-04-14T10:36:04Z" - }, - { - "name": "open-webui/open-webui", - "version": "v0.6.5", - "date": "2025-04-14T09:13:36Z" - }, - { - "name": "autobrr/autobrr", - "version": "v1.61.0", - "date": "2025-04-13T21:14:40Z" - }, { "name": "Ombi-app/Ombi", "version": "v4.47.1", "date": "2025-01-05T21:14:23Z" }, - { - "name": "qbittorrent/qBittorrent", - "version": "release-5.0.5", - "date": "2025-04-13T07:55:55Z" - }, - { - "name": "Lidarr/Lidarr", - "version": "v2.10.3.4602", - "date": "2025-03-23T11:00:37Z" - }, { "name": "Tautulli/Tautulli", "version": "v2.15.2", @@ -509,11 +749,6 @@ "version": "v0.2.11", "date": "2025-04-12T21:13:08Z" }, - { - "name": "readeck/readeck", - "version": "0.18.0", - "date": "2025-04-12T08:55:32Z" - }, { "name": "Bubka/2FAuth", "version": "v5.5.2", @@ -524,91 +759,31 @@ "version": "4.5.1", "date": "2025-04-11T09:57:47Z" }, - { - "name": "outline/outline", - "version": "v0.83.0", - "date": "2025-04-11T03:53:10Z" - }, - { - "name": "gristlabs/grist-core", - "version": "v1.5.1", - "date": "2025-04-10T19:48:43Z" - }, { "name": "apache/cassandra", "version": "cassandra-5.0.4", "date": "2025-04-10T16:32:00Z" }, - { - "name": "zitadel/zitadel", - "version": "v2.69.10", - "date": "2025-04-09T12:16:51Z" - }, - { - "name": "goauthentik/authentik", - "version": "version/2025.2.4", - "date": "2025-04-08T18:39:57Z" - }, - { - "name": "linkwarden/linkwarden", - "version": "v2.10.0", - "date": "2025-04-08T12:33:57Z" - }, - { - "name": "pelican-dev/panel", - "version": "v1.0.0-beta19", - "date": "2025-04-07T23:06:29Z" - }, - { - "name": "pelican-dev/wings", - "version": "v1.0.0-beta11", - "date": "2025-04-07T23:02:00Z" - }, { "name": "Threadfin/Threadfin", "version": "1.2.32", "date": "2025-04-07T20:01:09Z" }, - { - "name": "go-gitea/gitea", - "version": "v1.23.7", - "date": "2025-04-07T19:27:52Z" - }, { "name": "thomiceli/opengist", "version": "v1.10.0", "date": "2025-04-07T14:32:15Z" }, - { - "name": "fallenbagel/jellyseerr", - "version": "preview-back-to-axios", - "date": "2025-04-07T09:23:08Z" - }, { "name": "Dolibarr/dolibarr", "version": "21.0.1", "date": "2025-04-06T19:22:59Z" }, - { - "name": "stonith404/pingvin-share", - "version": "v1.11.1", - "date": "2025-04-06T18:39:42Z" - }, { "name": "wavelog/wavelog", "version": "2.0.3", "date": "2025-04-06T17:35:41Z" }, - { - "name": "TechnitiumSoftware/DnsServer", - "version": "v13.5.0", - "date": "2025-04-06T11:24:50Z" - }, - { - "name": "kimai/kimai", - "version": "2.32.0", - "date": "2025-04-06T09:43:51Z" - }, { "name": "jellyfin/jellyfin", "version": "v10.10.7", @@ -624,61 +799,16 @@ "version": "2.3", "date": "2025-04-05T18:05:36Z" }, - { - "name": "bastienwirtz/homer", - "version": "v25.04.1", - "date": "2025-04-05T12:39:18Z" - }, { "name": "navidrome/navidrome", "version": "v0.55.2", "date": "2025-04-05T12:07:32Z" }, - { - "name": "actualbudget/actual", - "version": "v25.4.0", - "date": "2025-04-05T04:14:57Z" - }, - { - "name": "Koenkk/zigbee2mqtt", - "version": "2.2.1", - "date": "2025-04-04T20:15:48Z" - }, - { - "name": "Athou/commafeed", - "version": "5.7.0", - "date": "2025-04-04T18:10:16Z" - }, - { - "name": "apache/tomcat", - "version": "9.0.104", - "date": "2025-04-04T12:58:11Z" - }, - { - "name": "BookStackApp/BookStack", - "version": "v25.02.2", - "date": "2025-04-02T16:39:50Z" - }, - { - "name": "cloudflare/cloudflared", - "version": "2025.4.0", - "date": "2025-04-02T15:38:53Z" - }, - { - "name": "hargata/lubelog", - "version": "v1.4.6", - "date": "2025-04-02T14:07:12Z" - }, { "name": "MagicMirrorOrg/MagicMirror", "version": "v2.31.0", "date": "2025-04-01T18:12:45Z" }, - { - "name": "neo4j/neo4j", - "version": "5.26.5", - "date": "2025-04-01T09:32:48Z" - }, { "name": "diced/zipline", "version": "v4.0.2", @@ -714,11 +844,6 @@ "version": "2.1.2-alpine", "date": "2025-03-30T06:25:22Z" }, - { - "name": "tobychui/zoraxy", - "version": "v3.1.9", - "date": "2025-03-01T02:24:33Z" - }, { "name": "inspircd/inspircd", "version": "v4.7.0", @@ -744,46 +869,16 @@ "version": "5.2.1", "date": "2025-03-28T13:00:23Z" }, - { - "name": "gethomepage/homepage", - "version": "v1.1.1", - "date": "2025-03-28T04:12:31Z" - }, - { - "name": "hivemq/hivemq-community-edition", - "version": "2025.2", - "date": "2025-03-27T19:21:13Z" - }, { "name": "sct/overseerr", "version": "v1.34.0", "date": "2025-03-26T08:48:34Z" }, - { - "name": "ipfs/kubo", - "version": "v0.34.1", - "date": "2025-03-25T18:11:12Z" - }, - { - "name": "dotnetfactory/fluid-calendar", - "version": "v1.3.0", - "date": "2025-03-25T15:55:02Z" - }, { "name": "hansmi/prometheus-paperless-exporter", "version": "v0.0.7", "date": "2025-03-25T15:11:18Z" }, - { - "name": "crowdsecurity/crowdsec", - "version": "v1.6.8", - "date": "2025-03-25T13:33:10Z" - }, - { - "name": "ZoeyVid/NPMplus", - "version": "2025-03-24-r2", - "date": "2025-03-24T20:52:35Z" - }, { "name": "nextcloud/nextcloudpi", "version": "v1.55.4", @@ -804,21 +899,11 @@ "version": "v0.24.2", "date": "2025-03-23T04:01:50Z" }, - { - "name": "leiweibau/Pi.Alert", - "version": "v2025-03-21", - "date": "2025-03-21T19:50:46Z" - }, { "name": "clusterzx/paperless-ai", "version": "v2.7.6", "date": "2025-03-21T19:24:53Z" }, - { - "name": "photoprism/photoprism", - "version": "250321-57590c48b", - "date": "2025-03-21T11:48:16Z" - }, { "name": "seanmorley15/AdventureLog", "version": "v0.9.0", @@ -829,21 +914,6 @@ "version": "v0.22.1", "date": "2025-03-18T21:01:22Z" }, - { - "name": "apache/couchdb", - "version": "3.4.3.post1", - "date": "2025-03-18T09:44:59Z" - }, - { - "name": "authelia/authelia", - "version": "v4.39.1", - "date": "2025-03-18T03:57:41Z" - }, - { - "name": "advplyr/audiobookshelf", - "version": "v2.20.0", - "date": "2025-03-17T22:44:56Z" - }, { "name": "Sonarr/Sonarr", "version": "v4.0.14.2939", @@ -854,21 +924,6 @@ "version": "2.303", "date": "2025-03-17T04:54:50Z" }, - { - "name": "henrygd/beszel", - "version": "v0.10.2", - "date": "2025-03-15T07:14:54Z" - }, - { - "name": "FlowiseAI/Flowise", - "version": "flowise@2.2.7-patch.1", - "date": "2025-03-14T14:53:53Z" - }, - { - "name": "FreshRSS/FreshRSS", - "version": "1.26.1", - "date": "2025-03-13T21:34:25Z" - }, { "name": "transmission/transmission", "version": "4.0.1-beta.1", @@ -879,11 +934,6 @@ "version": "1.21.2", "date": "2025-03-12T04:19:30Z" }, - { - "name": "benjaminjonard/koillection", - "version": "1.6.12", - "date": "2025-03-11T15:04:43Z" - }, { "name": "excalidraw/excalidraw", "version": "v0.18.0", @@ -909,11 +959,6 @@ "version": "v2.4.2", "date": "2025-03-08T10:49:04Z" }, - { - "name": "umami-software/umami", - "version": "v2.17.0", - "date": "2025-03-08T06:08:04Z" - }, { "name": "prometheus/alertmanager", "version": "v0.28.1", @@ -929,21 +974,11 @@ "version": "3.0.0", "date": "2025-03-05T21:41:29Z" }, - { - "name": "grokability/snipe-it", - "version": "v8.0.4", - "date": "2025-03-05T17:12:03Z" - }, { "name": "toniebox-reverse-engineering/teddycloud", "version": "tc_v0.6.4", "date": "2025-03-05T15:43:40Z" }, - { - "name": "sysadminsmedia/homebox", - "version": "v0.18.0", - "date": "2025-03-04T15:35:27Z" - }, { "name": "heiher/hev-socks5-server", "version": "2.8.0", @@ -959,11 +994,6 @@ "version": "0.10.4", "date": "2025-02-25T18:13:42Z" }, - { - "name": "juanfont/headscale", - "version": "v0.25.1", - "date": "2025-02-25T17:30:48Z" - }, { "name": "schlagmichdoch/PairDrop", "version": "v1.11.2", @@ -989,11 +1019,6 @@ "version": "v28.0", "date": "2025-02-18T15:49:57Z" }, - { - "name": "postgres/postgres", - "version": "REL_13_20", - "date": "2025-02-17T21:17:13Z" - }, { "name": "sbondCo/Watcharr", "version": "v2.0.2", @@ -1019,11 +1044,6 @@ "version": "v1.27.0", "date": "2025-02-13T15:55:36Z" }, - { - "name": "MariaDB/server", - "version": "mariadb-11.7.2", - "date": "2025-02-13T04:13:46Z" - }, { "name": "homebridge/homebridge", "version": "v1.9.0", @@ -1034,11 +1054,6 @@ "version": "1.33.2", "date": "2025-02-09T17:54:59Z" }, - { - "name": "apache/tika", - "version": "2.9.3", - "date": "2025-02-07T00:15:40Z" - }, { "name": "actualbudget/actual-server", "version": "v25.2.1", @@ -1069,11 +1084,6 @@ "version": "v4.4.7", "date": "2025-01-20T15:45:06Z" }, - { - "name": "owncast/owncast", - "version": "v0.2.1", - "date": "2025-01-19T22:40:40Z" - }, { "name": "0xERR0R/blocky", "version": "v0.25", @@ -1124,11 +1134,6 @@ "version": "v0.6.1", "date": "2024-11-22T21:48:41Z" }, - { - "name": "gotify/server", - "version": "v2.6.1", - "date": "2024-11-16T08:44:53Z" - }, { "name": "janeczku/calibre-web", "version": "0.6.24", @@ -1204,11 +1209,6 @@ "version": "3.1.1", "date": "2024-05-30T17:20:53Z" }, - { - "name": "motioneye-project/motioneye", - "version": "0.42.1", - "date": "2020-06-07T07:27:04Z" - }, { "name": "gnmyt/MySpeed", "version": "v1.0.9", diff --git a/frontend/public/json/wireguard.json b/frontend/public/json/wireguard.json index 86ebdcef4..c24fa5584 100644 --- a/frontend/public/json/wireguard.json +++ b/frontend/public/json/wireguard.json @@ -1,47 +1,47 @@ { - "name": "WireGuard", - "slug": "wireguard", - "categories": [ - 4 - ], - "date_created": "2024-05-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 10086, - "documentation": "https://www.wireguard.com/quickstart/", - "website": "https://www.wireguard.com/", - "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/wireguard.svg", - "config_path": "", - "description": "WireGuard is a free and open-source virtual private network (VPN) software that uses modern cryptography to secure the data transmitted over a network. It is designed to be fast, secure, and easy to use. WireGuard supports various operating systems, including Linux, Windows, macOS, Android, and iOS. It operates at the network layer and is capable of being used with a wide range of protocols and configurations. Unlike other VPN protocols, WireGuard is designed to be simple and fast, with a focus on security and speed. It is known for its ease of setup and configuration, making it a popular choice for personal and commercial use.", - "install_methods": [ - { - "type": "default", - "script": "ct/wireguard.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "12" - } - }, - { - "type": "alpine", - "script": "ct/alpine-wireguard.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 1, - "os": "alpine", - "version": "3.21" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" + "name": "WireGuard", + "slug": "wireguard", + "categories": [ + 4 + ], + "date_created": "2024-05-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 10086, + "documentation": "https://www.wireguard.com/quickstart/", + "website": "https://www.wireguard.com/", + "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/wireguard.svg", + "config_path": "/etc/wireguard/wg0.conf", + "description": "WireGuard is a free and open-source virtual private network (VPN) software that uses modern cryptography to secure the data transmitted over a network. It is designed to be fast, secure, and easy to use. WireGuard supports various operating systems, including Linux, Windows, macOS, Android, and iOS. It operates at the network layer and is capable of being used with a wide range of protocols and configurations. Unlike other VPN protocols, WireGuard is designed to be simple and fast, with a focus on security and speed. It is known for its ease of setup and configuration, making it a popular choice for personal and commercial use.", + "install_methods": [ + { + "type": "default", + "script": "ct/wireguard.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "debian", + "version": "12" + } }, + { + "type": "alpine", + "script": "ct/alpine-wireguard.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "alpine", + "version": "3.21" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "admin" + }, "notes": [ { "text": "Wireguard and WGDashboard are not the same. More info: `https://donaldzou.github.io/WGDashboard-Documentation/what-is-wireguard-what-is-wgdashboard.html`", @@ -49,4 +49,3 @@ } ] } - diff --git a/frontend/src/app/scripts/_components/ScriptItems/Buttons.tsx b/frontend/src/app/scripts/_components/ScriptItems/Buttons.tsx index 431653370..fc004eab2 100644 --- a/frontend/src/app/scripts/_components/ScriptItems/Buttons.tsx +++ b/frontend/src/app/scripts/_components/ScriptItems/Buttons.tsx @@ -64,7 +64,7 @@ export default function Buttons({ item }: { item: Script }) { icon: , text: "Install Source", }, - updateSourceUrl && { + updateSourceUrl && item.updateable && { href: updateSourceUrl, icon: , text: "Update Source", diff --git a/frontend/src/components/CommandMenu.tsx b/frontend/src/components/CommandMenu.tsx index 166b87a57..d13a730c7 100644 --- a/frontend/src/components/CommandMenu.tsx +++ b/frontend/src/components/CommandMenu.tsx @@ -8,7 +8,7 @@ import { } from "@/components/ui/command"; import { basePath } from "@/config/siteConfig"; import { fetchCategories } from "@/lib/data"; -import { Category } from "@/lib/types"; +import { Category, Script } from "@/lib/types"; import { cn } from "@/lib/utils"; import Image from "next/image"; import { useRouter } from "next/navigation"; @@ -16,6 +16,10 @@ import React from "react"; import { Badge } from "./ui/badge"; import { Button } from "./ui/button"; import { DialogTitle } from "./ui/dialog"; +import { Sparkles } from "lucide-react"; +import { TooltipContent, TooltipProvider } from "./ui/tooltip"; +import { TooltipTrigger } from "./ui/tooltip"; +import { Tooltip } from "./ui/tooltip"; export const formattedBadge = (type: string) => { switch (type) { @@ -31,11 +35,19 @@ export const formattedBadge = (type: string) => { return null; }; +// random Script +function getRandomScript(categories: Category[]): Script | null { + const allScripts = categories.flatMap((cat) => cat.scripts || []); + if (allScripts.length === 0) return null; + const idx = Math.floor(Math.random() * allScripts.length); + return allScripts[idx]; +} + export default function CommandMenu() { const [open, setOpen] = React.useState(false); const [links, setLinks] = React.useState([]); - const router = useRouter(); const [isLoading, setIsLoading] = React.useState(false); + const router = useRouter(); React.useEffect(() => { const down = (e: KeyboardEvent) => { @@ -45,7 +57,6 @@ export default function CommandMenu() { setOpen((open) => !open); } }; - document.addEventListener("keydown", down); return () => document.removeEventListener("keydown", down); }, []); @@ -63,23 +74,61 @@ export default function CommandMenu() { }); }; + const openRandomScript = async () => { + if (links.length === 0) { + setIsLoading(true); + try { + const categories = await fetchCategories(); + setLinks(categories); + const randomScript = getRandomScript(categories); + if (randomScript) { + router.push(`/scripts?id=${randomScript.slug}`); + } + } finally { + setIsLoading(false); + } + } else { + const randomScript = getRandomScript(links); + if (randomScript) { + router.push(`/scripts?id=${randomScript.slug}`); + } + } + }; + return ( <> - +
+ + + + + + + + +

Open Random Script

+
+
+
+
+ Search scripts diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index d776c8150..23c68c90b 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -12,7 +12,7 @@ export default function Footer() {

Website built by the community. The source code is available on{" "} - -

+ +
{!isMobile && children ? children : "Copy install command"}