mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-09-13 07:10:51 +02:00
Compare commits
56 Commits
2025-06-23
...
2025-06-25
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7289c68399 | ||
|
|
4a5ddc8410 | ||
|
|
93808fbd75 | ||
|
|
24394a0947 | ||
|
|
4676eb616c | ||
|
|
e9ae558c25 | ||
|
|
afee37794b | ||
|
|
72e7bda418 | ||
|
|
69e14c8fca | ||
|
|
6394c0cf17 | ||
|
|
d1deffb235 | ||
|
|
ac885f8adb | ||
|
|
8d91a5df5f | ||
|
|
5ad9323944 | ||
|
|
559bf61c31 | ||
|
|
3a391c34fc | ||
|
|
332a96ea03 | ||
|
|
454c574d38 | ||
|
|
2512c828e7 | ||
|
|
a99ecb60ef | ||
|
|
24f22dfecc | ||
|
|
8521e2389b | ||
|
|
ea60b9b5e4 | ||
|
|
c5cb6b2ade | ||
|
|
81eb020430 | ||
|
|
73f1816e49 | ||
|
|
d0f0efca37 | ||
|
|
1697ffa752 | ||
|
|
8130b83328 | ||
|
|
b384a387c3 | ||
|
|
8fd491460a | ||
|
|
f86f90b2e0 | ||
|
|
00575130f5 | ||
|
|
2a873d974c | ||
|
|
439fdbf071 | ||
|
|
8ccf3de8f7 | ||
|
|
5fc126b61c | ||
|
|
c75af3a750 | ||
|
|
5c768b54c0 | ||
|
|
e8848c1641 | ||
|
|
24c90699e6 | ||
|
|
e6ab47f341 | ||
|
|
f63a1d89a3 | ||
|
|
0c1aaedf6b | ||
|
|
5b35d537a8 | ||
|
|
1d06016ae1 | ||
|
|
15b36b4d16 | ||
|
|
6a285e1e19 | ||
|
|
f60d132b20 | ||
|
|
d73bc95d4a | ||
|
|
2faeb5255c | ||
|
|
b4c6f28e4e | ||
|
|
d95bfdb7dc | ||
|
|
99a0fb727b | ||
|
|
0efa83ff48 | ||
|
|
66ab254fb2 |
61
CHANGELOG.md
61
CHANGELOG.md
@@ -14,8 +14,69 @@ 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.
|
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-06-26
|
||||||
|
|
||||||
|
## 2025-06-25
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Docmost: Increase resources [@tremor021](https://github.com/tremor021) ([#5458](https://github.com/community-scripts/ProxmoxVE/pull/5458))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: new helper for imagemagick [@MickLesk](https://github.com/MickLesk) ([#5452](https://github.com/community-scripts/ProxmoxVE/pull/5452))
|
||||||
|
- YunoHost: add Update-Function [@MickLesk](https://github.com/MickLesk) ([#5450](https://github.com/community-scripts/ProxmoxVE/pull/5450))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Tailscale [@MickLesk](https://github.com/MickLesk) ([#5454](https://github.com/community-scripts/ProxmoxVE/pull/5454))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Update Tooltips component to conditionally display updateable status based on item type [@BramSuurdje](https://github.com/BramSuurdje) ([#5461](https://github.com/community-scripts/ProxmoxVE/pull/5461))
|
||||||
|
- Refactor CommandMenu to prevent duplicate scripts across categories [@BramSuurdje](https://github.com/BramSuurdje) ([#5463](https://github.com/community-scripts/ProxmoxVE/pull/5463))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Enhance InstallCommand component to support Gitea as an alternative source for installation scripts. [@BramSuurdje](https://github.com/BramSuurdje) ([#5464](https://github.com/community-scripts/ProxmoxVE/pull/5464))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Website: mark VM's and "OS"-LXC's as updatable [@MickLesk](https://github.com/MickLesk) ([#5453](https://github.com/community-scripts/ProxmoxVE/pull/5453))
|
||||||
|
|
||||||
## 2025-06-24
|
## 2025-06-24
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- ONLYOFFICE Docs ([#5420](https://github.com/community-scripts/ProxmoxVE/pull/5420))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- GoMFT: tmpl bugfix to work with current version until a new release pushed [@MickLesk](https://github.com/MickLesk) ([#5435](https://github.com/community-scripts/ProxmoxVE/pull/5435))
|
||||||
|
- Update all Alpine Scripts to atleast 1GB HDD [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5418](https://github.com/community-scripts/ProxmoxVE/pull/5418))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- general: update all alpine scripts to version 3.22 [@MickLesk](https://github.com/MickLesk) ([#5428](https://github.com/community-scripts/ProxmoxVE/pull/5428))
|
||||||
|
- Minio: use latest version or latest feature rich version [@MickLesk](https://github.com/MickLesk) ([#5423](https://github.com/community-scripts/ProxmoxVE/pull/5423))
|
||||||
|
- [core]: Improve GitHub release fetch robustness with split timeouts and retry logic [@MickLesk](https://github.com/MickLesk) ([#5422](https://github.com/community-scripts/ProxmoxVE/pull/5422))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- bump scripts (Installer) from Ubuntu 22.04 to Ubuntu 24.04 (agentdvr, emby, jellyfin, plex, shinobi) [@MickLesk](https://github.com/MickLesk) ([#5434](https://github.com/community-scripts/ProxmoxVE/pull/5434))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: MeTube to uv based install [@MickLesk](https://github.com/MickLesk) ([#5411](https://github.com/community-scripts/ProxmoxVE/pull/5411))
|
||||||
|
- Refactor: Prometheus PVE Exporter to uv based install [@MickLesk](https://github.com/MickLesk) ([#5412](https://github.com/community-scripts/ProxmoxVE/pull/5412))
|
||||||
|
- Refactor: ESPHome to uv based install [@MickLesk](https://github.com/MickLesk) ([#5413](https://github.com/community-scripts/ProxmoxVE/pull/5413))
|
||||||
|
|
||||||
## 2025-06-23
|
## 2025-06-23
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-22.04}"
|
var_version="${var_version:-24.04}"
|
||||||
var_unprivileged="${var_unprivileged:-0}"
|
var_unprivileged="${var_unprivileged:-0}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -20,15 +20,15 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/agentdvr ]]; then
|
if [[ ! -d /opt/agentdvr ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "Currently we don't provide an update function for this ${APP}."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-3}"
|
var_disk="${var_disk:-3}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-3}"
|
var_disk="${var_disk:-3}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ APP="Alpine-IT-Tools"
|
|||||||
var_tags="${var_tags:-alpine;development}"
|
var_tags="${var_tags:-alpine;development}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-0.5}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
var_fuse="${var_fuse:-yes}"
|
var_fuse="${var_fuse:-yes}"
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -37,7 +37,7 @@ function update_script() {
|
|||||||
rm -f /opt/tinyauth/tinyauth
|
rm -f /opt/tinyauth/tinyauth
|
||||||
curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
|
curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
|
||||||
chmod +x /opt/tinyauth/tinyauth
|
chmod +x /opt/tinyauth/tinyauth
|
||||||
echo "${RELEASE}" > /opt/tinyauth_version.txt
|
echo "${RELEASE}" >/opt/tinyauth_version.txt
|
||||||
msg_info "Restarting Tinyauth"
|
msg_info "Restarting Tinyauth"
|
||||||
$STD service tinyauth start
|
$STD service tinyauth start
|
||||||
msg_ok "Restarted Tinyauth"
|
msg_ok "Restarted Tinyauth"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-512}"
|
var_ram="${var_ram:-512}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
|
|
||||||
APP="Alpine-Zigbee2MQTT"
|
APP="Alpine-Zigbee2MQTT"
|
||||||
var_tags="${var_tags:-alpine;zigbee;mqtt;smarthome}"
|
var_tags="${var_tags:-alpine;zigbee;mqtt;smarthome}"
|
||||||
var_disk="${var_disk:-0.3}"
|
var_disk="${var_disk:-1}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-0}"
|
var_unprivileged="${var_unprivileged:-0}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-512}"
|
var_ram="${var_ram:-512}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
APP="Docmost"
|
APP="Docmost"
|
||||||
var_tags="${var_tags:-documents}"
|
var_tags="${var_tags:-documents}"
|
||||||
var_cpu="${var_cpu:-3}"
|
var_cpu="${var_cpu:-3}"
|
||||||
var_ram="${var_ram:-3072}"
|
var_ram="${var_ram:-4096}"
|
||||||
var_disk="${var_disk:-7}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-22.04}"
|
var_version="${var_version:-24.04}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -25,22 +25,57 @@ function update_script() {
|
|||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then
|
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit 1
|
||||||
fi
|
fi
|
||||||
msg_info "Stopping ESPHome"
|
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop esphomeDashboard
|
systemctl stop esphomeDashboard
|
||||||
msg_ok "Stopped ESPHome"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ESPHome"
|
VENV_PATH="/opt/esphome/.venv"
|
||||||
if [[ -d /srv/esphome ]]; then
|
ESPHOME_BIN="${VENV_PATH}/bin/esphome"
|
||||||
$STD source /srv/esphome/bin/activate
|
export PYTHON_VERSION="3.12"
|
||||||
|
|
||||||
|
if [[ ! -d "$VENV_PATH" || ! -x "$ESPHOME_BIN" ]]; then
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
msg_info "Migrating to uv/venv"
|
||||||
|
rm -rf "$VENV_PATH"
|
||||||
|
mkdir -p /opt/esphome
|
||||||
|
cd /opt/esphome
|
||||||
|
$STD uv venv "$VENV_PATH"
|
||||||
|
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||||
|
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
|
||||||
|
$STD "$VENV_PATH/bin/python" -m pip install esphome tornado esptool
|
||||||
|
msg_ok "Migrated to uv/venv"
|
||||||
|
else
|
||||||
|
msg_info "Updating ESPHome"
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
$STD "$VENV_PATH/bin/python" -m pip install --upgrade esphome tornado esptool
|
||||||
|
msg_ok "Updated ESPHome"
|
||||||
fi
|
fi
|
||||||
$STD pip3 install -U esphome
|
SERVICE_FILE="/etc/systemd/system/esphomeDashboard.service"
|
||||||
msg_ok "Updated ESPHome"
|
if ! grep -q "${VENV_PATH}/bin/esphome" "$SERVICE_FILE"; then
|
||||||
|
msg_info "Updating systemd service"
|
||||||
|
cat <<EOF >"$SERVICE_FILE"
|
||||||
|
[Unit]
|
||||||
|
Description=ESPHome Dashboard
|
||||||
|
After=network.target
|
||||||
|
|
||||||
msg_info "Starting ESPHome"
|
[Service]
|
||||||
|
ExecStart=${VENV_PATH}/bin/esphome dashboard /root/config/
|
||||||
|
Restart=always
|
||||||
|
User=root
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
$STD systemctl daemon-reload
|
||||||
|
msg_ok "Updated systemd service"
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
systemctl start esphomeDashboard
|
systemctl start esphomeDashboard
|
||||||
msg_ok "Started ESPHome"
|
msg_ok "Started ${APP}"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
40
ct/gomft.sh
40
ct/gomft.sh
@@ -45,6 +45,9 @@ function update_script() {
|
|||||||
msg_ok "Stopped $APP"
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
|
if ! command -v git >/dev/null 2>&1; then
|
||||||
|
$STD apt-get install -y git
|
||||||
|
fi
|
||||||
rm -f /opt/gomft/gomft
|
rm -f /opt/gomft/gomft
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
@@ -53,6 +56,43 @@ function update_script() {
|
|||||||
cd /opt/gomft
|
cd /opt/gomft
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
|
TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
|
||||||
|
$STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
|
||||||
|
# dirty hack to fix templ
|
||||||
|
cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ
|
||||||
|
package search
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/starfleetcptn/gomft/components/file_metadata"
|
||||||
|
"github.com/starfleetcptn/gomft/components/file_metadata/list"
|
||||||
|
)
|
||||||
|
|
||||||
|
templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) {
|
||||||
|
<!-- Search Results -->
|
||||||
|
<div id="search-results">
|
||||||
|
if len(data.Files) > 0 {
|
||||||
|
@list.FileMetadataListPartial(ctx, file_metadata.FileMetadataListData{
|
||||||
|
Files: data.Files,
|
||||||
|
Page: data.Page,
|
||||||
|
Limit: data.Limit,
|
||||||
|
TotalCount: data.TotalCount,
|
||||||
|
TotalPages: data.TotalPages,
|
||||||
|
Filter: data.Filter,
|
||||||
|
SortBy: data.SortBy,
|
||||||
|
SortDir: data.SortDir,
|
||||||
|
}, "/files/search/partial", "#search-results-container")
|
||||||
|
} else {
|
||||||
|
<div class="p-6 text-center text-gray-500 dark:text-gray-400">
|
||||||
|
<svg class="mx-auto mb-4 w-12 h-12 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
|
||||||
|
</svg>
|
||||||
|
<p>No files found matching your search criteria.</p>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
EOF
|
||||||
$STD "$HOME"/go/bin/templ generate
|
$STD "$HOME"/go/bin/templ generate
|
||||||
export CGO_ENABLED=1
|
export CGO_ENABLED=1
|
||||||
export GOOS=linux
|
export GOOS=linux
|
||||||
|
|||||||
6
ct/headers/onlyoffice
Normal file
6
ct/headers/onlyoffice
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
____ _ ______ ______ ____________________________
|
||||||
|
/ __ \/ | / / /\ \/ / __ \/ ____/ ____/ _/ ____/ ____/
|
||||||
|
/ / / / |/ / / \ / / / / /_ / /_ / // / / __/
|
||||||
|
/ /_/ / /| / /___/ / /_/ / __/ / __/ _/ // /___/ /___
|
||||||
|
\____/_/ |_/_____/_/\____/_/ /_/ /___/\____/_____/
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-22.04}"
|
var_version="${var_version:-24.04}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -20,19 +20,19 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /usr/lib/jellyfin ]]; then
|
if [[ ! -d /usr/lib/jellyfin ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get -y upgrade
|
$STD apt-get -y upgrade
|
||||||
$STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server
|
$STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server
|
||||||
msg_ok "Updated ${APP} LXC"
|
msg_ok "Updated ${APP} LXC"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
89
ct/metube.sh
89
ct/metube.sh
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
APP="MeTube"
|
APP="MeTube"
|
||||||
var_tags="${var_tags:-media;youtube}"
|
var_tags="${var_tags:-media;youtube}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
@@ -23,40 +23,97 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /opt/metube ]]; then
|
if [[ ! -d /opt/metube ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Stopping ${APP} Service"
|
msg_info "Stopping ${APP} Service"
|
||||||
systemctl stop metube
|
systemctl stop metube
|
||||||
msg_ok "Stopped ${APP} Service"
|
msg_ok "Stopped ${APP} Service"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to latest Git"
|
msg_info "Backing up Old Installation"
|
||||||
cd /opt
|
if [[ -d /opt/metube_bak ]]; then
|
||||||
if [ -d metube_bak ]; then
|
rm -rf /opt/metube_bak
|
||||||
rm -rf metube_bak
|
|
||||||
fi
|
fi
|
||||||
mv metube metube_bak
|
mv /opt/metube /opt/metube_bak
|
||||||
|
msg_ok "Backup created"
|
||||||
|
|
||||||
|
msg_info "Cloning Latest ${APP} Release"
|
||||||
$STD git clone https://github.com/alexta69/metube /opt/metube
|
$STD git clone https://github.com/alexta69/metube /opt/metube
|
||||||
|
msg_ok "Cloned ${APP}"
|
||||||
|
|
||||||
|
msg_info "Building Frontend"
|
||||||
cd /opt/metube/ui
|
cd /opt/metube/ui
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD node_modules/.bin/ng build
|
$STD node_modules/.bin/ng build
|
||||||
cd /opt/metube
|
msg_ok "Built Frontend"
|
||||||
cp /opt/metube_bak/.env /opt/metube/
|
|
||||||
$STD pip3 install pipenv
|
|
||||||
$STD pipenv install
|
|
||||||
|
|
||||||
if [ -d "/opt/metube_bak" ]; then
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
rm -rf /opt/metube_bak
|
|
||||||
|
msg_info "Setting up Python Environment (uv)"
|
||||||
|
$STD uv venv /opt/metube/.venv
|
||||||
|
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
|
||||||
|
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
|
||||||
|
$STD /opt/metube/.venv/bin/python -m pip install pipenv
|
||||||
|
msg_ok "Python Environment Ready"
|
||||||
|
|
||||||
|
msg_info "Installing Backend Requirements"
|
||||||
|
cd /opt/metube
|
||||||
|
$STD /opt/metube/.venv/bin/pipenv install
|
||||||
|
msg_ok "Installed Backend"
|
||||||
|
|
||||||
|
msg_info "Restoring Environment File"
|
||||||
|
if [[ -f /opt/metube_bak/.env ]]; then
|
||||||
|
cp /opt/metube_bak/.env /opt/metube/.env
|
||||||
fi
|
fi
|
||||||
msg_ok "Updated ${APP} to latest Git"
|
msg_ok "Restored .env"
|
||||||
|
|
||||||
|
if [[ ! -d /opt/metube/.venv ]]; then
|
||||||
|
msg_info "Migrating to uv-based environment"
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
|
$STD uv venv /opt/metube/.venv
|
||||||
|
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
|
||||||
|
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
|
||||||
|
$STD /opt/metube/.venv/bin/python -m pip install pipenv
|
||||||
|
$STD /opt/metube/.venv/bin/pipenv install
|
||||||
|
$STD /opt/metube/.venv/bin/pipenv update yt-dlp
|
||||||
|
|
||||||
|
msg_info "Patching systemd Service"
|
||||||
|
cat <<EOF >/etc/systemd/system/metube.service
|
||||||
|
[Unit]
|
||||||
|
Description=Metube - YouTube Downloader
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/opt/metube
|
||||||
|
EnvironmentFile=/opt/metube/.env
|
||||||
|
ExecStart=/opt/metube/.venv/bin/pipenv run python3 app/main.py
|
||||||
|
Restart=always
|
||||||
|
User=root
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
msg_ok "Patched systemd Service"
|
||||||
|
fi
|
||||||
|
$STD systemctl daemon-reload
|
||||||
|
msg_ok "Service Updated"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/metube_bak
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned Up"
|
||||||
|
|
||||||
msg_info "Starting ${APP} Service"
|
msg_info "Starting ${APP} Service"
|
||||||
systemctl start metube
|
systemctl enable -q --now metube
|
||||||
sleep 1
|
sleep 1
|
||||||
msg_ok "Started ${APP} Service"
|
msg_ok "Started ${APP} Service"
|
||||||
msg_ok "Updated Successfully!\n"
|
|
||||||
exit
|
msg_ok "Updated Successfully!"
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
23
ct/minio.sh
23
ct/minio.sh
@@ -27,16 +27,33 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
FEATURE_RICH_VERSION="2025-04-22T22-12-26Z"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
CURRENT_VERSION=""
|
||||||
|
[[ -f /opt/${APP}_version.txt ]] && CURRENT_VERSION=$(cat /opt/${APP}_version.txt)
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
|
||||||
|
|
||||||
|
if [[ "${CURRENT_VERSION}" == "${FEATURE_RICH_VERSION}" && "${RELEASE}" != "${FEATURE_RICH_VERSION}" ]]; then
|
||||||
|
echo
|
||||||
|
echo "You are currently running the last feature-rich community version: ${FEATURE_RICH_VERSION}"
|
||||||
|
echo "WARNING: Updating to the latest version will REMOVE most management features from the Console UI."
|
||||||
|
echo "Do you still want to upgrade to the latest version? [y/N]: "
|
||||||
|
read -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
msg_ok "No update performed. Staying on the feature-rich version."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${CURRENT_VERSION}" != "${RELEASE}" ]]; then
|
||||||
msg_info "Stopping ${APP}"
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop minio
|
systemctl stop minio
|
||||||
msg_ok "${APP} Stopped"
|
msg_ok "${APP} Stopped"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
mv /usr/local/bin/minio /usr/local/bin/minio_bak
|
mv /usr/local/bin/minio /usr/local/bin/minio_bak
|
||||||
curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o $(basename "https://dl.min.io/server/minio/release/linux-amd64/minio")
|
curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio
|
||||||
mv minio /usr/local/bin/
|
|
||||||
chmod +x /usr/local/bin/minio
|
chmod +x /usr/local/bin/minio
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-512}"
|
var_ram="${var_ram:-512}"
|
||||||
var_disk="${var_disk:-3}"
|
var_disk="${var_disk:-3}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.21}"
|
var_version="${var_version:-3.22}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
52
ct/onlyoffice.sh
Normal file
52
ct/onlyoffice.sh
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/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://www.onlyoffice.com/
|
||||||
|
|
||||||
|
APP="ONLYOFFICE"
|
||||||
|
var_tags="${var_tags:-word;excel;powerpoint;pdf}"
|
||||||
|
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 /var/www/onlyoffice ]]; then
|
||||||
|
msg_error "No valid ${APP} installation found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating $APP"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y --only-upgrade install onlyoffice-documentserver
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
|
if systemctl is-enabled --quiet onlyoffice-documentserver; then
|
||||||
|
msg_info "Restarting $APP"
|
||||||
|
$STD systemctl restart onlyoffice-documentserver
|
||||||
|
msg_ok "$APP restarted"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-22.04}"
|
var_version="${var_version:-24.04}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -20,26 +20,69 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/prometheus-pve-exporter.service ]]; then
|
if [[ ! -f /etc/systemd/system/prometheus-pve-exporter.service ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit 1
|
||||||
fi
|
fi
|
||||||
msg_info "Stopping ${APP}"
|
|
||||||
systemctl stop prometheus-pve-exporter
|
|
||||||
msg_ok "Stopped ${APP}"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Stopping ${APP}"
|
||||||
$STD pip install prometheus-pve-exporter --default-timeout=300 --upgrade --root-user-action=ignore
|
systemctl stop prometheus-pve-exporter
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
export PVE_VENV_PATH="/opt/prometheus-pve-exporter/.venv"
|
||||||
systemctl start prometheus-pve-exporter
|
export PVE_EXPORTER_BIN="${PVE_VENV_PATH}/bin/pve_exporter"
|
||||||
msg_ok "Started ${APP}"
|
|
||||||
msg_ok "Updated Successfully"
|
if [[ ! -d "$PVE_VENV_PATH" || ! -x "$PVE_EXPORTER_BIN" ]]; then
|
||||||
exit
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
msg_info "Migrating to uv/venv"
|
||||||
|
rm -rf "$PVE_VENV_PATH"
|
||||||
|
mkdir -p /opt/prometheus-pve-exporter
|
||||||
|
cd /opt/prometheus-pve-exporter
|
||||||
|
$STD uv venv "$PVE_VENV_PATH"
|
||||||
|
$STD "$PVE_VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||||
|
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade pip
|
||||||
|
$STD "$PVE_VENV_PATH/bin/python" -m pip install prometheus-pve-exporter
|
||||||
|
msg_ok "Migrated to uv/venv"
|
||||||
|
else
|
||||||
|
msg_info "Updating Prometheus Proxmox VE Exporter"
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade prometheus-pve-exporter
|
||||||
|
msg_ok "Updated Prometheus Proxmox VE Exporter"
|
||||||
|
fi
|
||||||
|
local service_file="/etc/systemd/system/prometheus-pve-exporter.service"
|
||||||
|
if ! grep -q "${PVE_VENV_PATH}/bin/pve_exporter" "$service_file"; then
|
||||||
|
msg_info "Updating systemd service"
|
||||||
|
cat <<EOF >"$service_file"
|
||||||
|
[Unit]
|
||||||
|
Description=Prometheus Proxmox VE Exporter
|
||||||
|
Documentation=https://github.com/znerol/prometheus-pve-exporter
|
||||||
|
After=syslog.target network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=root
|
||||||
|
Restart=always
|
||||||
|
Type=simple
|
||||||
|
ExecStart=${PVE_VENV_PATH}/bin/pve_exporter \\
|
||||||
|
--config.file=/opt/prometheus-pve-exporter/pve.yml \\
|
||||||
|
--web.listen-address=0.0.0.0:9221
|
||||||
|
ExecReload=/bin/kill -HUP \$MAINPID
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
$STD systemctl daemon-reload
|
||||||
|
msg_ok "Updated systemd service"
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
|
systemctl start prometheus-pve-exporter
|
||||||
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-22.04}"
|
var_version="${var_version:-24.04}"
|
||||||
var_unprivileged="${var_unprivileged:-0}"
|
var_unprivileged="${var_unprivileged:-0}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -20,18 +20,24 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/apt/trusted.gpg.d/php.gpg ]]; then
|
if [[ ! -f /etc/apt/trusted.gpg.d/php.gpg ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating $APP LXC"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated $APP LXC"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating OS"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated OS"
|
||||||
|
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD yunohost tools update
|
||||||
|
$STD yunohost tools upgrade system
|
||||||
|
$STD yunohost tools upgrade apps
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
4
frontend/public/json/add-tailscale-lxc.json
generated
4
frontend/public/json/add-tailscale-lxc.json
generated
@@ -32,10 +32,6 @@
|
|||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
|
||||||
"text": "Only supported on Debian 12 LXCs",
|
|
||||||
"type": "warning"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"text": "After the script finishes, reboot the LXC then run `tailscale up` in the LXC console",
|
"text": "After the script finishes, reboot the LXC then run `tailscale up` in the LXC console",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
|
|||||||
2
frontend/public/json/adguard.json
generated
2
frontend/public/json/adguard.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/agentdvr.json
generated
2
frontend/public/json/agentdvr.json
generated
@@ -23,7 +23,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 8,
|
"hdd": 8,
|
||||||
"os": "ubuntu",
|
"os": "ubuntu",
|
||||||
"version": "22.04"
|
"version": "24.04"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
8
frontend/public/json/alpine-it-tools.json
generated
8
frontend/public/json/alpine-it-tools.json
generated
@@ -21,9 +21,9 @@
|
|||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 0.5,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -32,9 +32,9 @@
|
|||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 0.5,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
4
frontend/public/json/alpine-tinyauth.json
generated
4
frontend/public/json/alpine-tinyauth.json
generated
@@ -23,7 +23,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 2,
|
"hdd": 2,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 2,
|
"hdd": 2,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
4
frontend/public/json/alpine.json
generated
4
frontend/public/json/alpine.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/archlinux-vm.json
generated
2
frontend/public/json/archlinux-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-01-27",
|
"date_created": "2025-01-27",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/bitmagnet.json
generated
2
frontend/public/json/bitmagnet.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 3,
|
"hdd": 3,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/debian-vm.json
generated
2
frontend/public/json/debian-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
66
frontend/public/json/debian.json
generated
66
frontend/public/json/debian.json
generated
@@ -1,35 +1,35 @@
|
|||||||
{
|
{
|
||||||
"name": "Debian",
|
"name": "Debian",
|
||||||
"slug": "debian",
|
"slug": "debian",
|
||||||
"categories": [
|
"categories": [
|
||||||
2
|
2
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://www.debian.org/",
|
"website": "https://www.debian.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/debian.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/debian.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
"description": "Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.",
|
"description": "Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/debian.sh",
|
"script": "ct/debian.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 2,
|
"hdd": 2,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": []
|
||||||
}
|
}
|
||||||
|
|||||||
2
frontend/public/json/docker-vm.json
generated
2
frontend/public/json/docker-vm.json
generated
@@ -7,7 +7,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-01-20",
|
"date_created": "2025-01-20",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/docker.json
generated
2
frontend/public/json/docker.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 2,
|
"hdd": 2,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
4
frontend/public/json/docmost.json
generated
4
frontend/public/json/docmost.json
generated
@@ -20,8 +20,8 @@
|
|||||||
"script": "ct/docmost.sh",
|
"script": "ct/docmost.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 3,
|
"cpu": 3,
|
||||||
"ram": 3072,
|
"ram": 4096,
|
||||||
"hdd": 7,
|
"hdd": 8,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
|
|||||||
2
frontend/public/json/emby.json
generated
2
frontend/public/json/emby.json
generated
@@ -23,7 +23,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 8,
|
"hdd": 8,
|
||||||
"os": "ubuntu",
|
"os": "ubuntu",
|
||||||
"version": "22.04"
|
"version": "24.04"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
4
frontend/public/json/forgejo.json
generated
4
frontend/public/json/forgejo.json
generated
@@ -34,10 +34,10 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
|
|||||||
2
frontend/public/json/gatus.json
generated
2
frontend/public/json/gatus.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 3,
|
"hdd": 3,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/gitea.json
generated
2
frontend/public/json/gitea.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/grafana.json
generated
2
frontend/public/json/grafana.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
82
frontend/public/json/haos-vm.json
generated
82
frontend/public/json/haos-vm.json
generated
@@ -1,44 +1,44 @@
|
|||||||
{
|
{
|
||||||
"name": "Home Assistant OS",
|
"name": "Home Assistant OS",
|
||||||
"slug": "haos-vm",
|
"slug": "haos-vm",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
16
|
||||||
],
|
],
|
||||||
"date_created": "2024-04-29",
|
"date_created": "2024-04-29",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8123,
|
"interface_port": 8123,
|
||||||
"documentation": "https://www.home-assistant.io/docs/",
|
"documentation": "https://www.home-assistant.io/docs/",
|
||||||
"website": "https://www.home-assistant.io/",
|
"website": "https://www.home-assistant.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
"description": "This script automates the process of creating a Virtual Machine (VM) using the official KVM (qcow2) disk image provided by the Home Assistant Team. It involves finding, downloading, and extracting the image, defining user-defined settings, importing and attaching the disk, setting the boot order, and starting the VM. It supports various storage types, and does not involve any hidden installations. After the script completes, click on the VM, then on the Summary tab to find the VM IP.",
|
"description": "This script automates the process of creating a Virtual Machine (VM) using the official KVM (qcow2) disk image provided by the Home Assistant Team. It involves finding, downloading, and extracting the image, defining user-defined settings, importing and attaching the disk, setting the boot order, and starting the VM. It supports various storage types, and does not involve any hidden installations. After the script completes, click on the VM, then on the Summary tab to find the VM IP.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "vm/haos-vm.sh",
|
"script": "vm/haos-vm.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 4096,
|
"ram": 4096,
|
||||||
"hdd": 32,
|
"hdd": 32,
|
||||||
"os": null,
|
"os": null,
|
||||||
"version": null
|
"version": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "The disk must have a minimum size of 32GB and its size cannot be changed during the creation of the VM.",
|
||||||
|
"type": "warning"
|
||||||
},
|
},
|
||||||
"notes": [
|
{
|
||||||
{
|
"text": "After the script completes, click on the VM, then on the Summary or Console tab to find the VM IP.",
|
||||||
"text": "The disk must have a minimum size of 32GB and its size cannot be changed during the creation of the VM.",
|
"type": "info"
|
||||||
"type": "warning"
|
}
|
||||||
},
|
]
|
||||||
{
|
|
||||||
"text": "After the script completes, click on the VM, then on the Summary or Console tab to find the VM IP.",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
2
frontend/public/json/jellyfin.json
generated
2
frontend/public/json/jellyfin.json
generated
@@ -23,7 +23,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 8,
|
"hdd": 8,
|
||||||
"os": "ubuntu",
|
"os": "ubuntu",
|
||||||
"version": "22.04"
|
"version": "24.04"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/komodo.json
generated
2
frontend/public/json/komodo.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 10,
|
"hdd": 10,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/mariadb.json
generated
2
frontend/public/json/mariadb.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
35
frontend/public/json/metube.json
generated
Normal file
35
frontend/public/json/metube.json
generated
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "MeTube",
|
||||||
|
"slug": "metube",
|
||||||
|
"categories": [
|
||||||
|
11
|
||||||
|
],
|
||||||
|
"date_created": "2025-06-24",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 8081,
|
||||||
|
"documentation": null,
|
||||||
|
"website": "https://github.com/alexta69/metube",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
|
||||||
|
"config_path": "/opt/metube/.env",
|
||||||
|
"description": "MeTube allows you to download videos from YouTube and dozens of other sites.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/metube.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 10,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "MeTube",
|
|
||||||
"slug": "metube",
|
|
||||||
"categories": [
|
|
||||||
11
|
|
||||||
],
|
|
||||||
"date_created": "2024-06-12",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 8081,
|
|
||||||
"documentation": null,
|
|
||||||
"website": "https://github.com/alexta69/metube",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
|
|
||||||
"config_path": "/opt/metube/.env",
|
|
||||||
"description": "MeTube allows you to download videos from YouTube and dozens of other sites.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/metube.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 1,
|
|
||||||
"ram": 1024,
|
|
||||||
"hdd": 10,
|
|
||||||
"os": "debian",
|
|
||||||
"version": "12"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": null,
|
|
||||||
"password": null
|
|
||||||
},
|
|
||||||
"notes": []
|
|
||||||
}
|
|
||||||
2
frontend/public/json/mikrotik-routeros.json
generated
2
frontend/public/json/mikrotik-routeros.json
generated
@@ -7,7 +7,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/nextcloud-vm.json
generated
2
frontend/public/json/nextcloud-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2023-11-14",
|
"date_created": "2023-11-14",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/nextcloudpi.json
generated
2
frontend/public/json/nextcloudpi.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 2,
|
"hdd": 2,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/node-red.json
generated
2
frontend/public/json/node-red.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
4
frontend/public/json/npmplus.json
generated
4
frontend/public/json/npmplus.json
generated
@@ -23,7 +23,7 @@
|
|||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 3,
|
"hdd": 3,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 3,
|
"hdd": 3,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
40
frontend/public/json/onlyoffice.json
generated
Normal file
40
frontend/public/json/onlyoffice.json
generated
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"name": "ONLYOFFICE Docs",
|
||||||
|
"slug": "onlyoffice",
|
||||||
|
"categories": [
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"date_created": "2025-06-24",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 80,
|
||||||
|
"documentation": "https://helpcenter.onlyoffice.com/docs",
|
||||||
|
"website": "https://onlyoffice.com/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/onlyoffice.webp",
|
||||||
|
"config_path": "/etc/onlyoffice/documentserver/local.json",
|
||||||
|
"description": "ONLYOFFICE Docs is an open-source online office suite that provides collaborative editors for text documents, spreadsheets, and presentations, fully compatible with Microsoft Office formats (DOCX, XLSX, PPTX).",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/onlyoffice.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 10,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": "admin",
|
||||||
|
"password": "admin"
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Database / RabbitMQ Credentials: `cat ~/onlyoffice.creds`",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
2
frontend/public/json/openwrt.json
generated
2
frontend/public/json/openwrt.json
generated
@@ -7,7 +7,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/opnsense-vm.json
generated
2
frontend/public/json/opnsense-vm.json
generated
@@ -7,7 +7,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-02-11",
|
"date_created": "2025-02-11",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 443,
|
"interface_port": 443,
|
||||||
"documentation": "https://docs.opnsense.org/",
|
"documentation": "https://docs.opnsense.org/",
|
||||||
|
|||||||
2
frontend/public/json/owncloud-vm.json
generated
2
frontend/public/json/owncloud-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
76
frontend/public/json/pimox-haos-vm.json
generated
76
frontend/public/json/pimox-haos-vm.json
generated
@@ -1,40 +1,40 @@
|
|||||||
{
|
{
|
||||||
"name": "PiMox HAOS",
|
"name": "PiMox HAOS",
|
||||||
"slug": "pimox-haos-vm",
|
"slug": "pimox-haos-vm",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
16
|
||||||
],
|
],
|
||||||
"date_created": "2024-04-29",
|
"date_created": "2024-04-29",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8123,
|
"interface_port": 8123,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://github.com/jiangcuo/Proxmox-Port",
|
"website": "https://github.com/jiangcuo/Proxmox-Port",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
"description": "The script automates the manual process of finding, downloading and extracting the aarch64 (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM.",
|
"description": "The script automates the manual process of finding, downloading and extracting the aarch64 (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "vm/pimox-haos-vm.sh",
|
"script": "vm/pimox-haos-vm.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 4096,
|
"ram": 4096,
|
||||||
"hdd": 32,
|
"hdd": 32,
|
||||||
"os": null,
|
"os": null,
|
||||||
"version": null
|
"version": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "After the script completes, click on the VM, then on the Summary or Console tab to find the VM IP.",
|
"text": "After the script completes, click on the VM, then on the Summary or Console tab to find the VM IP.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
2
frontend/public/json/plex.json
generated
2
frontend/public/json/plex.json
generated
@@ -23,7 +23,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 8,
|
"hdd": 8,
|
||||||
"os": "ubuntu",
|
"os": "ubuntu",
|
||||||
"version": "22.04"
|
"version": "24.04"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
4
frontend/public/json/postgresql.json
generated
4
frontend/public/json/postgresql.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5432,
|
"interface_port": 5432,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/prometheus.json
generated
2
frontend/public/json/prometheus.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
4
frontend/public/json/rclone.json
generated
4
frontend/public/json/rclone.json
generated
@@ -26,7 +26,7 @@
|
|||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "alpine",
|
"type": "alpine",
|
||||||
"script": "ct/alpine-rclone.sh",
|
"script": "ct/alpine-rclone.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/redis.json
generated
2
frontend/public/json/redis.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/shinobi.json
generated
2
frontend/public/json/shinobi.json
generated
@@ -23,7 +23,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 8,
|
"hdd": 8,
|
||||||
"os": "ubuntu",
|
"os": "ubuntu",
|
||||||
"version": "22.04"
|
"version": "24.04"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/traefik.json
generated
2
frontend/public/json/traefik.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
2
frontend/public/json/transmission.json
generated
2
frontend/public/json/transmission.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
66
frontend/public/json/ubuntu.json
generated
66
frontend/public/json/ubuntu.json
generated
@@ -1,35 +1,35 @@
|
|||||||
{
|
{
|
||||||
"name": "Ubuntu",
|
"name": "Ubuntu",
|
||||||
"slug": "ubuntu",
|
"slug": "ubuntu",
|
||||||
"categories": [
|
"categories": [
|
||||||
2
|
2
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://ubuntu.com/",
|
"website": "https://ubuntu.com/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/ubuntu.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/ubuntu.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
"description": "Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.",
|
"description": "Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/ubuntu.sh",
|
"script": "ct/ubuntu.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 2,
|
"hdd": 2,
|
||||||
"os": "ubuntu",
|
"os": "ubuntu",
|
||||||
"version": "22.04"
|
"version": "24.04"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": []
|
||||||
}
|
}
|
||||||
|
|||||||
2
frontend/public/json/ubuntu2204-vm.json
generated
2
frontend/public/json/ubuntu2204-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/ubuntu2404-vm.json
generated
2
frontend/public/json/ubuntu2404-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/ubuntu2410-vm.json
generated
2
frontend/public/json/ubuntu2410-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-01-24",
|
"date_created": "2025-01-24",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/ubuntu2504-vm.json
generated
2
frontend/public/json/ubuntu2504-vm.json
generated
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-06-19",
|
"date_created": "2025-06-19",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
2
frontend/public/json/vaultwarden.json
generated
2
frontend/public/json/vaultwarden.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
280
frontend/public/json/versions.json
generated
280
frontend/public/json/versions.json
generated
@@ -1,13 +1,148 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "mongodb/mongo",
|
||||||
|
"version": "r8.1.2-rc1",
|
||||||
|
"date": "2025-06-25T22:42:04Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "rcourtman/Pulse",
|
"name": "rcourtman/Pulse",
|
||||||
"version": "v3.31.1",
|
"version": "v3.32.0",
|
||||||
"date": "2025-06-23T23:13:13Z"
|
"date": "2025-06-25T22:27:01Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gristlabs/grist-core",
|
||||||
|
"version": "v1.6.1",
|
||||||
|
"date": "2025-06-25T21:19:25Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "coder/code-server",
|
||||||
|
"version": "v4.101.2",
|
||||||
|
"date": "2025-06-25T21:18:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "msgbyte/tianji",
|
||||||
|
"version": "v1.22.4",
|
||||||
|
"date": "2025-06-25T20:46:20Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "meilisearch/meilisearch",
|
"name": "meilisearch/meilisearch",
|
||||||
"version": "prototype-incremental-vector-store-1",
|
"version": "prototype-tmp-failing-upgrade-0",
|
||||||
"date": "2025-06-23T21:37:47Z"
|
"date": "2025-06-25T19:51:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "home-assistant/core",
|
||||||
|
"version": "2025.6.3",
|
||||||
|
"date": "2025-06-24T13:00:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "firefly-iii/firefly-iii",
|
||||||
|
"version": "v6.2.18",
|
||||||
|
"date": "2025-06-20T04:45:37Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ollama/ollama",
|
||||||
|
"version": "v0.9.4-citest0",
|
||||||
|
"date": "2025-06-25T17:44:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "influxdata/influxdb",
|
||||||
|
"version": "v3.2.0",
|
||||||
|
"date": "2025-06-25T17:31:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wavelog/wavelog",
|
||||||
|
"version": "2.0.5",
|
||||||
|
"date": "2025-06-25T14:53:31Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jenkinsci/jenkins",
|
||||||
|
"version": "jenkins-2.504.3",
|
||||||
|
"date": "2025-06-25T14:43:01Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bunkerity/bunkerweb",
|
||||||
|
"version": "testing",
|
||||||
|
"date": "2025-06-16T18:10:42Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cockpit-project/cockpit",
|
||||||
|
"version": "341",
|
||||||
|
"date": "2025-06-25T11:49:28Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "nzbgetcom/nzbget",
|
||||||
|
"version": "v25.0",
|
||||||
|
"date": "2025-05-12T09:12:04Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mattermost/mattermost",
|
||||||
|
"version": "v9.11.17",
|
||||||
|
"date": "2025-06-18T08:12:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "n8n-io/n8n",
|
||||||
|
"version": "n8n@1.100.0",
|
||||||
|
"date": "2025-06-23T12:48:35Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.22.2054",
|
||||||
|
"date": "2025-06-25T05:54:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "moghtech/komodo",
|
||||||
|
"version": "v1.18.4",
|
||||||
|
"date": "2025-06-25T00:06:56Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "duplicati/duplicati",
|
||||||
|
"version": "v2.1.0.120-2.1.0.120_canary_2025-06-24",
|
||||||
|
"date": "2025-06-24T22:39:50Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.2.5",
|
||||||
|
"date": "2025-05-28T06:49:43Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "evcc-io/evcc",
|
||||||
|
"version": "0.204.5",
|
||||||
|
"date": "2025-06-24T19:17:16Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ErsatzTV/ErsatzTV",
|
||||||
|
"version": "v25.2.0",
|
||||||
|
"date": "2025-06-24T17:06:31Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "arunavo4/gitea-mirror",
|
||||||
|
"version": "v2.18.0",
|
||||||
|
"date": "2025-06-24T08:29:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "element-hq/synapse",
|
||||||
|
"version": "v1.132.0",
|
||||||
|
"date": "2025-06-17T13:49:30Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "docker/compose",
|
||||||
|
"version": "v2.37.3",
|
||||||
|
"date": "2025-06-24T14:05:33Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Checkmk/checkmk",
|
||||||
|
"version": "v2.4.0p5",
|
||||||
|
"date": "2025-06-24T13:06:53Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fallenbagel/jellyseerr",
|
||||||
|
"version": "preview-fix-proxy-axios",
|
||||||
|
"date": "2025-06-24T08:50:22Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wazuh/wazuh",
|
||||||
|
"version": "coverity-w26-4.13.0",
|
||||||
|
"date": "2025-06-24T02:02:34Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "minio/minio",
|
"name": "minio/minio",
|
||||||
@@ -24,46 +159,16 @@
|
|||||||
"version": "v4.2.1",
|
"version": "v4.2.1",
|
||||||
"date": "2025-06-03T20:04:28Z"
|
"date": "2025-06-03T20:04:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "home-assistant/core",
|
|
||||||
"version": "2025.6.2",
|
|
||||||
"date": "2025-06-23T18:38:37Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Checkmk/checkmk",
|
|
||||||
"version": "v2.4.0p5-rc2",
|
|
||||||
"date": "2025-06-23T15:50:55Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "VictoriaMetrics/VictoriaMetrics",
|
"name": "VictoriaMetrics/VictoriaMetrics",
|
||||||
"version": "pmm-6401-v1.120.0",
|
"version": "pmm-6401-v1.120.0",
|
||||||
"date": "2025-06-23T15:12:12Z"
|
"date": "2025-06-23T15:12:12Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "n8n-io/n8n",
|
|
||||||
"version": "n8n@1.98.2",
|
|
||||||
"date": "2025-06-18T18:20:16Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Graylog2/graylog2-server",
|
"name": "Graylog2/graylog2-server",
|
||||||
"version": "6.3.0-rc.2",
|
"version": "6.3.0-rc.2",
|
||||||
"date": "2025-06-23T11:31:38Z"
|
"date": "2025-06-23T11:31:38Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mattermost/mattermost",
|
|
||||||
"version": "v9.11.17",
|
|
||||||
"date": "2025-06-18T08:12:05Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.2042",
|
|
||||||
"date": "2025-06-23T05:54:00Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "firefly-iii/firefly-iii",
|
|
||||||
"version": "v6.2.18",
|
|
||||||
"date": "2025-06-20T04:45:37Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "gotson/komga",
|
"name": "gotson/komga",
|
||||||
"version": "1.22.0",
|
"version": "1.22.0",
|
||||||
@@ -89,11 +194,6 @@
|
|||||||
"version": "v1.4.1",
|
"version": "v1.4.1",
|
||||||
"date": "2025-06-22T19:38:08Z"
|
"date": "2025-06-22T19:38:08Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "msgbyte/tianji",
|
|
||||||
"version": "v1.22.3",
|
|
||||||
"date": "2025-06-22T18:29:00Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "clusterzx/paperless-ai",
|
"name": "clusterzx/paperless-ai",
|
||||||
"version": "v3.0.7",
|
"version": "v3.0.7",
|
||||||
@@ -119,11 +219,6 @@
|
|||||||
"version": "v5.37.0",
|
"version": "v5.37.0",
|
||||||
"date": "2025-06-21T14:05:12Z"
|
"date": "2025-06-21T14:05:12Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fallenbagel/jellyseerr",
|
|
||||||
"version": "preview-fix-proxy-auth",
|
|
||||||
"date": "2025-06-21T13:43:58Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "rogerfar/rdt-client",
|
"name": "rogerfar/rdt-client",
|
||||||
"version": "v2.0.114",
|
"version": "v2.0.114",
|
||||||
@@ -137,7 +232,7 @@
|
|||||||
{
|
{
|
||||||
"name": "theonedev/onedev",
|
"name": "theonedev/onedev",
|
||||||
"version": "v11.11.1",
|
"version": "v11.11.1",
|
||||||
"date": "2025-06-21T07:32:15Z"
|
"date": "2025-06-21T09:23:39Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "pocketbase/pocketbase",
|
"name": "pocketbase/pocketbase",
|
||||||
@@ -149,11 +244,6 @@
|
|||||||
"version": "0.50.4",
|
"version": "0.50.4",
|
||||||
"date": "2025-06-21T07:47:02Z"
|
"date": "2025-06-21T07:47:02Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "coder/code-server",
|
|
||||||
"version": "v4.101.1",
|
|
||||||
"date": "2025-06-21T02:47:08Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "go-gitea/gitea",
|
"name": "go-gitea/gitea",
|
||||||
"version": "v1.24.2",
|
"version": "v1.24.2",
|
||||||
@@ -174,36 +264,11 @@
|
|||||||
"version": "v1.25.0",
|
"version": "v1.25.0",
|
||||||
"date": "2025-06-20T19:15:43Z"
|
"date": "2025-06-20T19:15:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mongodb/mongo",
|
|
||||||
"version": "r8.1.2-rc0",
|
|
||||||
"date": "2025-06-20T17:35:38Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "nzbgetcom/nzbget",
|
|
||||||
"version": "v25.0",
|
|
||||||
"date": "2025-05-12T09:12:04Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Sonarr/Sonarr",
|
"name": "Sonarr/Sonarr",
|
||||||
"version": "v4.0.15.2941",
|
"version": "v4.0.15.2941",
|
||||||
"date": "2025-06-20T17:20:54Z"
|
"date": "2025-06-20T17:20:54Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.2.5",
|
|
||||||
"date": "2025-05-28T06:49:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "bunkerity/bunkerweb",
|
|
||||||
"version": "testing",
|
|
||||||
"date": "2025-06-16T18:10:42Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "docker/compose",
|
|
||||||
"version": "v2.37.2",
|
|
||||||
"date": "2025-06-20T13:25:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "zabbix/zabbix",
|
"name": "zabbix/zabbix",
|
||||||
"version": "7.2.9",
|
"version": "7.2.9",
|
||||||
@@ -219,11 +284,6 @@
|
|||||||
"version": "v12.7.0",
|
"version": "v12.7.0",
|
||||||
"date": "2025-06-20T08:31:16Z"
|
"date": "2025-06-20T08:31:16Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "arunavo4/gitea-mirror",
|
|
||||||
"version": "v2.16.3",
|
|
||||||
"date": "2025-06-20T05:49:06Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "paperless-ngx/paperless-ngx",
|
"name": "paperless-ngx/paperless-ngx",
|
||||||
"version": "v2.17.1",
|
"version": "v2.17.1",
|
||||||
@@ -269,11 +329,6 @@
|
|||||||
"version": "v1.11.11",
|
"version": "v1.11.11",
|
||||||
"date": "2025-06-18T18:04:50Z"
|
"date": "2025-06-18T18:04:50Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ollama/ollama",
|
|
||||||
"version": "v0.9.2",
|
|
||||||
"date": "2025-06-18T14:29:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "NodeBB/NodeBB",
|
"name": "NodeBB/NodeBB",
|
||||||
"version": "v3.12.7",
|
"version": "v3.12.7",
|
||||||
@@ -299,11 +354,6 @@
|
|||||||
"version": "v11.0.2",
|
"version": "v11.0.2",
|
||||||
"date": "2025-06-18T09:38:19Z"
|
"date": "2025-06-18T09:38:19Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "evcc-io/evcc",
|
|
||||||
"version": "0.204.3",
|
|
||||||
"date": "2025-06-18T08:31:58Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "silverbulletmd/silverbullet",
|
"name": "silverbulletmd/silverbullet",
|
||||||
"version": "2.0.0-pre3",
|
"version": "2.0.0-pre3",
|
||||||
@@ -319,11 +369,6 @@
|
|||||||
"version": "v11.5.6",
|
"version": "v11.5.6",
|
||||||
"date": "2025-06-17T22:00:40Z"
|
"date": "2025-06-17T22:00:40Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jenkinsci/jenkins",
|
|
||||||
"version": "jenkins-2.515",
|
|
||||||
"date": "2025-06-17T19:17:56Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "project-zot/zot",
|
"name": "project-zot/zot",
|
||||||
"version": "v2.1.5",
|
"version": "v2.1.5",
|
||||||
@@ -334,11 +379,6 @@
|
|||||||
"version": "v25.05.1",
|
"version": "v25.05.1",
|
||||||
"date": "2025-06-17T14:38:04Z"
|
"date": "2025-06-17T14:38:04Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "element-hq/synapse",
|
|
||||||
"version": "v1.132.0",
|
|
||||||
"date": "2025-06-17T13:49:30Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cloudflare/cloudflared",
|
"name": "cloudflare/cloudflared",
|
||||||
"version": "2025.6.1",
|
"version": "2025.6.1",
|
||||||
@@ -404,11 +444,6 @@
|
|||||||
"version": "15.2",
|
"version": "15.2",
|
||||||
"date": "2025-04-14T15:37:12Z"
|
"date": "2025-04-14T15:37:12Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "moghtech/komodo",
|
|
||||||
"version": "v1.18.3",
|
|
||||||
"date": "2025-06-16T07:03:46Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jellyfin/jellyfin",
|
"name": "jellyfin/jellyfin",
|
||||||
"version": "v10.10.7",
|
"version": "v10.10.7",
|
||||||
@@ -479,11 +514,6 @@
|
|||||||
"version": "v3.3.25",
|
"version": "v3.3.25",
|
||||||
"date": "2025-06-14T02:52:44Z"
|
"date": "2025-06-14T02:52:44Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wazuh/wazuh",
|
|
||||||
"version": "coverity-w25-4.13.0",
|
|
||||||
"date": "2025-06-13T13:58:23Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "FlowiseAI/Flowise",
|
"name": "FlowiseAI/Flowise",
|
||||||
"version": "flowise@3.0.2",
|
"version": "flowise@3.0.2",
|
||||||
@@ -634,11 +664,6 @@
|
|||||||
"version": "v4.1.1",
|
"version": "v4.1.1",
|
||||||
"date": "2025-06-04T19:10:05Z"
|
"date": "2025-06-04T19:10:05Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "cockpit-project/cockpit",
|
|
||||||
"version": "340",
|
|
||||||
"date": "2025-06-04T16:41:44Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "intri-in/manage-my-damn-life-nextjs",
|
"name": "intri-in/manage-my-damn-life-nextjs",
|
||||||
"version": "v0.7.1",
|
"version": "v0.7.1",
|
||||||
@@ -649,11 +674,6 @@
|
|||||||
"version": "2.0.0-beta.2-temp",
|
"version": "2.0.0-beta.2-temp",
|
||||||
"date": "2025-03-28T08:45:58Z"
|
"date": "2025-03-28T08:45:58Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "influxdata/influxdb",
|
|
||||||
"version": "v1.12.1rc3",
|
|
||||||
"date": "2025-06-03T14:05:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Pf2eToolsOrg/Pf2eTools",
|
"name": "Pf2eToolsOrg/Pf2eTools",
|
||||||
"version": "v0.9.0",
|
"version": "v0.9.0",
|
||||||
@@ -704,11 +724,6 @@
|
|||||||
"version": "0.26.3",
|
"version": "0.26.3",
|
||||||
"date": "2025-05-29T21:18:15Z"
|
"date": "2025-05-29T21:18:15Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gristlabs/grist-core",
|
|
||||||
"version": "v1.6.0",
|
|
||||||
"date": "2025-05-29T19:11:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "navidrome/navidrome",
|
"name": "navidrome/navidrome",
|
||||||
"version": "v0.56.1",
|
"version": "v0.56.1",
|
||||||
@@ -719,11 +734,6 @@
|
|||||||
"version": "0.19.2",
|
"version": "0.19.2",
|
||||||
"date": "2025-05-29T14:39:17Z"
|
"date": "2025-05-29T14:39:17Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "duplicati/duplicati",
|
|
||||||
"version": "v2.1.0.119-2.1.0.119_canary_2025-05-29",
|
|
||||||
"date": "2025-05-29T06:14:27Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "apache/cassandra",
|
"name": "apache/cassandra",
|
||||||
"version": "cassandra-4.0.18",
|
"version": "cassandra-4.0.18",
|
||||||
@@ -819,11 +829,6 @@
|
|||||||
"version": "v1.1.1",
|
"version": "v1.1.1",
|
||||||
"date": "2025-05-17T10:10:36Z"
|
"date": "2025-05-17T10:10:36Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wavelog/wavelog",
|
|
||||||
"version": "2.0.4",
|
|
||||||
"date": "2025-05-16T15:09:53Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Dolibarr/dolibarr",
|
"name": "Dolibarr/dolibarr",
|
||||||
"version": "18.0.7",
|
"version": "18.0.7",
|
||||||
@@ -1229,11 +1234,6 @@
|
|||||||
"version": "0.7.2",
|
"version": "0.7.2",
|
||||||
"date": "2025-01-13T22:17:18Z"
|
"date": "2025-01-13T22:17:18Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ErsatzTV/ErsatzTV",
|
|
||||||
"version": "v25.1.0",
|
|
||||||
"date": "2025-01-10T18:14:54Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "go-vikunja/vikunja",
|
"name": "go-vikunja/vikunja",
|
||||||
"version": "v0.24.6",
|
"version": "v0.24.6",
|
||||||
|
|||||||
2
frontend/public/json/wireguard.json
generated
2
frontend/public/json/wireguard.json
generated
@@ -34,7 +34,7 @@
|
|||||||
"ram": 256,
|
"ram": 256,
|
||||||
"hdd": 1,
|
"hdd": 1,
|
||||||
"os": "alpine",
|
"os": "alpine",
|
||||||
"version": "3.21"
|
"version": "3.22"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
76
frontend/public/json/yunohost.json
generated
76
frontend/public/json/yunohost.json
generated
@@ -1,40 +1,40 @@
|
|||||||
{
|
{
|
||||||
"name": "YunoHost",
|
"name": "YunoHost",
|
||||||
"slug": "yunohost",
|
"slug": "yunohost",
|
||||||
"categories": [
|
"categories": [
|
||||||
2
|
2
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://yunohost.org/",
|
"website": "https://yunohost.org/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/yunohost.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/yunohost.webp",
|
||||||
"config_path": "",
|
"config_path": "",
|
||||||
"description": "YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight.",
|
"description": "YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/yunohost.sh",
|
"script": "ct/yunohost.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 20,
|
"hdd": 20,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
96
frontend/public/json/zigbee2mqtt.json
generated
96
frontend/public/json/zigbee2mqtt.json
generated
@@ -1,51 +1,51 @@
|
|||||||
{
|
{
|
||||||
"name": "Zigbee2MQTT",
|
"name": "Zigbee2MQTT",
|
||||||
"slug": "zigbee2mqtt",
|
"slug": "zigbee2mqtt",
|
||||||
"categories": [
|
"categories": [
|
||||||
17
|
17
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": true,
|
"privileged": true,
|
||||||
"interface_port": 9442,
|
"interface_port": 9442,
|
||||||
"documentation": "https://www.zigbee2mqtt.io/guide/getting-started/",
|
"documentation": "https://www.zigbee2mqtt.io/guide/getting-started/",
|
||||||
"website": "https://www.zigbee2mqtt.io/",
|
"website": "https://www.zigbee2mqtt.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zigbee2mqtt.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zigbee2mqtt.webp",
|
||||||
"config_path": "/opt/zigbee2mqtt/data/configuration.yaml",
|
"config_path": "/opt/zigbee2mqtt/data/configuration.yaml",
|
||||||
"description": "Zigbee2MQTT is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.",
|
"description": "Zigbee2MQTT is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/zigbee2mqtt.sh",
|
"script": "ct/zigbee2mqtt.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 4,
|
"hdd": 4,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "alpine",
|
|
||||||
"script": "ct/alpine-zigbee2mqtt.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 1,
|
|
||||||
"ram": 256,
|
|
||||||
"hdd": 0.3,
|
|
||||||
"os": "alpine",
|
|
||||||
"version": "3.21"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": null,
|
|
||||||
"password": null
|
|
||||||
},
|
},
|
||||||
"notes": [
|
{
|
||||||
{
|
"type": "alpine",
|
||||||
"text": "You can find the post-install guide here: `https://github.com/community-scripts/ProxmoxVE/discussions/410`",
|
"script": "ct/alpine-zigbee2mqtt.sh",
|
||||||
"type": "info"
|
"resources": {
|
||||||
}
|
"cpu": 1,
|
||||||
]
|
"ram": 256,
|
||||||
|
"hdd": 1,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.22"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "You can find the post-install guide here: `https://github.com/community-scripts/ProxmoxVE/discussions/410`",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,20 @@
|
|||||||
import CodeCopyButton from "@/components/ui/code-copy-button";
|
import CodeCopyButton from "@/components/ui/code-copy-button";
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
|
import { Alert, AlertDescription } from "@/components/ui/alert";
|
||||||
|
import { Info } from "lucide-react";
|
||||||
import { basePath } from "@/config/siteConfig";
|
import { basePath } from "@/config/siteConfig";
|
||||||
import { Script } from "@/lib/types";
|
import { Script } from "@/lib/types";
|
||||||
import { getDisplayValueFromType } from "../ScriptInfoBlocks";
|
import { getDisplayValueFromType } from "../ScriptInfoBlocks";
|
||||||
|
|
||||||
const getInstallCommand = (scriptPath = "", isAlpine = false) => {
|
const getInstallCommand = (scriptPath = "", isAlpine = false, useGitea = false) => {
|
||||||
const url = `https://raw.githubusercontent.com/community-scripts/${basePath}/main/${scriptPath}`;
|
const githubUrl = `https://raw.githubusercontent.com/community-scripts/${basePath}/main/${scriptPath}`;
|
||||||
return isAlpine ? `bash -c "$(curl -fsSL ${url})"` : `bash -c "$(curl -fsSL ${url})"`;
|
const giteaUrl = `https://git.community-scripts.org/community-scripts/${basePath}/raw/branch/main/${scriptPath}`;
|
||||||
|
const url = useGitea ? giteaUrl : githubUrl;
|
||||||
|
return `bash -c "$(curl -fsSL ${url})"`;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function InstallCommand({ item }: { item: Script }) {
|
export default function InstallCommand({ item }: { item: Script }) {
|
||||||
const alpineScript = item.install_methods.find((method) => method.type === "alpine");
|
const alpineScript = item.install_methods.find((method) => method.type === "alpine");
|
||||||
|
|
||||||
const defaultScript = item.install_methods.find((method) => method.type === "default");
|
const defaultScript = item.install_methods.find((method) => method.type === "default");
|
||||||
|
|
||||||
const renderInstructions = (isAlpine = false) => (
|
const renderInstructions = (isAlpine = false) => (
|
||||||
@@ -49,9 +52,20 @@ export default function InstallCommand({ item }: { item: Script }) {
|
|||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
const renderGiteaInfo = () => (
|
||||||
<div className="p-4">
|
<Alert className="mt-3 mb-3">
|
||||||
{alpineScript ? (
|
<Info className="h-4 w-4" />
|
||||||
|
<AlertDescription className="text-sm">
|
||||||
|
<strong>When to use Gitea:</strong> GitHub may have issues including slow connections, delayed updates after bug
|
||||||
|
fixes, no IPv6 support, API rate limits (60/hour). Use our Gitea mirror as a reliable alternative when
|
||||||
|
experiencing these issues.
|
||||||
|
</AlertDescription>
|
||||||
|
</Alert>
|
||||||
|
);
|
||||||
|
|
||||||
|
const renderScriptTabs = (useGitea = false) => {
|
||||||
|
if (alpineScript) {
|
||||||
|
return (
|
||||||
<Tabs defaultValue="default" className="mt-2 w-full max-w-4xl">
|
<Tabs defaultValue="default" className="mt-2 w-full max-w-4xl">
|
||||||
<TabsList>
|
<TabsList>
|
||||||
<TabsTrigger value="default">Default</TabsTrigger>
|
<TabsTrigger value="default">Default</TabsTrigger>
|
||||||
@@ -59,19 +73,40 @@ export default function InstallCommand({ item }: { item: Script }) {
|
|||||||
</TabsList>
|
</TabsList>
|
||||||
<TabsContent value="default">
|
<TabsContent value="default">
|
||||||
{renderInstructions()}
|
{renderInstructions()}
|
||||||
<CodeCopyButton>{getInstallCommand(defaultScript?.script)}</CodeCopyButton>
|
<CodeCopyButton>{getInstallCommand(defaultScript?.script, false, useGitea)}</CodeCopyButton>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
<TabsContent value="alpine">
|
<TabsContent value="alpine">
|
||||||
{renderInstructions(true)}
|
{renderInstructions(true)}
|
||||||
<CodeCopyButton>{getInstallCommand(alpineScript.script, true)}</CodeCopyButton>
|
<CodeCopyButton>{getInstallCommand(alpineScript.script, true, useGitea)}</CodeCopyButton>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
) : defaultScript?.script ? (
|
);
|
||||||
|
} else if (defaultScript?.script) {
|
||||||
|
return (
|
||||||
<>
|
<>
|
||||||
{renderInstructions()}
|
{renderInstructions()}
|
||||||
<CodeCopyButton>{getInstallCommand(defaultScript.script)}</CodeCopyButton>
|
<CodeCopyButton>{getInstallCommand(defaultScript.script, false, useGitea)}</CodeCopyButton>
|
||||||
</>
|
</>
|
||||||
) : null}
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="p-4">
|
||||||
|
<Tabs defaultValue="github" className="w-full max-w-4xl">
|
||||||
|
<TabsList>
|
||||||
|
<TabsTrigger value="github">GitHub</TabsTrigger>
|
||||||
|
<TabsTrigger value="gitea">Gitea</TabsTrigger>
|
||||||
|
</TabsList>
|
||||||
|
<TabsContent value="github">
|
||||||
|
{renderScriptTabs(false)}
|
||||||
|
</TabsContent>
|
||||||
|
<TabsContent value="gitea">
|
||||||
|
{renderGiteaInfo()}
|
||||||
|
{renderScriptTabs(true)}
|
||||||
|
</TabsContent>
|
||||||
|
</Tabs>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -34,14 +34,14 @@ export default function Tooltips({ item }: { item: Script }) {
|
|||||||
{item.privileged && (
|
{item.privileged && (
|
||||||
<TooltipBadge variant="warning" label="Privileged" content="This script will be run in a privileged LXC" />
|
<TooltipBadge variant="warning" label="Privileged" content="This script will be run in a privileged LXC" />
|
||||||
)}
|
)}
|
||||||
{item.updateable && (
|
{(item.updateable || item.type !== "pve") && (
|
||||||
<TooltipBadge
|
<TooltipBadge
|
||||||
variant="success"
|
variant="success"
|
||||||
label="Updateable"
|
label="Updateable"
|
||||||
content={`To Update ${item.name}, run the command below (or type update) in the LXC Console.`}
|
content={`To Update ${item.name}, run the command below (or type update) in the LXC Console.`}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{!item.updateable && <TooltipBadge variant="failure" label="Not Updateable" />}
|
{!item.updateable && item.type !== "pve" && <TooltipBadge variant="failure" label="Not Updateable" />}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,34 +134,54 @@ export default function CommandMenu() {
|
|||||||
<CommandInput placeholder="Search for a script..." />
|
<CommandInput placeholder="Search for a script..." />
|
||||||
<CommandList>
|
<CommandList>
|
||||||
<CommandEmpty>{isLoading ? "Loading..." : "No scripts found."}</CommandEmpty>
|
<CommandEmpty>{isLoading ? "Loading..." : "No scripts found."}</CommandEmpty>
|
||||||
{links.map((category) => (
|
{(() => {
|
||||||
<CommandGroup key={`category:${category.name}`} heading={category.name}>
|
// Track seen scripts globally to avoid duplicates across all categories
|
||||||
{category.scripts.map((script) => (
|
const globalSeenScripts = new Set<string>();
|
||||||
<CommandItem
|
|
||||||
key={`script:${script.slug}`}
|
return links.map((category) => {
|
||||||
value={`${script.slug}-${script.name}`}
|
const uniqueScripts = category.scripts.filter((script) => {
|
||||||
onSelect={() => {
|
if (globalSeenScripts.has(script.slug)) {
|
||||||
setOpen(false);
|
return false;
|
||||||
router.push(`/scripts?id=${script.slug}`);
|
}
|
||||||
}}
|
globalSeenScripts.add(script.slug);
|
||||||
>
|
return true;
|
||||||
<div className="flex gap-2" onClick={() => setOpen(false)}>
|
});
|
||||||
<Image
|
|
||||||
src={script.logo || `/${basePath}/logo.png`}
|
// Only render category if it has unique scripts
|
||||||
onError={(e) => ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)}
|
if (uniqueScripts.length === 0) {
|
||||||
unoptimized
|
return null;
|
||||||
width={16}
|
}
|
||||||
height={16}
|
|
||||||
alt=""
|
return (
|
||||||
className="h-5 w-5"
|
<CommandGroup key={`category:${category.name}`} heading={category.name}>
|
||||||
/>
|
{uniqueScripts.map((script) => (
|
||||||
<span>{script.name}</span>
|
<CommandItem
|
||||||
<span>{formattedBadge(script.type)}</span>
|
key={`script:${script.slug}`}
|
||||||
</div>
|
value={`${script.slug}-${script.name}`}
|
||||||
</CommandItem>
|
onSelect={() => {
|
||||||
))}
|
setOpen(false);
|
||||||
</CommandGroup>
|
router.push(`/scripts?id=${script.slug}`);
|
||||||
))}
|
}}
|
||||||
|
>
|
||||||
|
<div className="flex gap-2" onClick={() => setOpen(false)}>
|
||||||
|
<Image
|
||||||
|
src={script.logo || `/${basePath}/logo.png`}
|
||||||
|
onError={(e) => ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)}
|
||||||
|
unoptimized
|
||||||
|
width={16}
|
||||||
|
height={16}
|
||||||
|
alt=""
|
||||||
|
className="h-5 w-5"
|
||||||
|
/>
|
||||||
|
<span>{script.name}</span>
|
||||||
|
<span>{formattedBadge(script.type)}</span>
|
||||||
|
</div>
|
||||||
|
</CommandItem>
|
||||||
|
))}
|
||||||
|
</CommandGroup>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
})()}
|
||||||
</CommandList>
|
</CommandList>
|
||||||
</CommandDialog>
|
</CommandDialog>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -17,34 +17,34 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt-get install -y git
|
$STD apt-get install -y git
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setup Python3"
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
$STD apt-get install -y \
|
|
||||||
python3 \
|
|
||||||
python3-dev \
|
|
||||||
python3-pip \
|
|
||||||
python3-venv
|
|
||||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
|
||||||
msg_ok "Setup Python3"
|
|
||||||
|
|
||||||
msg_info "Installing ESPHome"
|
msg_info "Setting up Virtual Environment"
|
||||||
mkdir /root/config
|
mkdir -p /opt/esphome
|
||||||
$STD pip install esphome tornado esptool
|
mkdir -p /root/config
|
||||||
msg_ok "Installed ESPHome"
|
cd /opt/esphome
|
||||||
|
$STD uv venv /opt/esphome/.venv
|
||||||
|
$STD /opt/esphome/.venv/bin/python -m ensurepip --upgrade
|
||||||
|
$STD /opt/esphome/.venv/bin/python -m pip install --upgrade pip
|
||||||
|
$STD /opt/esphome/.venv/bin/python -m pip install esphome tornado esptool
|
||||||
|
msg_ok "Setup and Installed ESPHome"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
mkdir -p /root/config
|
||||||
cat <<EOF >/etc/systemd/system/esphomeDashboard.service
|
cat <<EOF >/etc/systemd/system/esphomeDashboard.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=ESPHome Dashboard
|
Description=ESPHome Dashboard
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/local/bin/esphome dashboard /root/config/
|
ExecStart=/opt/esphome/.venv/bin/esphome dashboard /root/config/
|
||||||
Restart=always
|
Restart=always
|
||||||
User=root
|
User=root
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl enable -q --now esphomeDashboard
|
systemctl enable -q --now esphomeDashboard
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ $STD apt-get install -y \
|
|||||||
rclone \
|
rclone \
|
||||||
tzdata \
|
tzdata \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
build-essential
|
build-essential \
|
||||||
|
git
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
setup_go
|
setup_go
|
||||||
@@ -32,7 +33,44 @@ curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}
|
|||||||
tar -xzf "$temp_file"
|
tar -xzf "$temp_file"
|
||||||
mv GoMFT-"${RELEASE}"/ /opt/gomft
|
mv GoMFT-"${RELEASE}"/ /opt/gomft
|
||||||
cd /opt/gomft
|
cd /opt/gomft
|
||||||
$STD go install github.com/a-h/templ/cmd/templ@latest
|
TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
|
||||||
|
$STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
|
||||||
|
cp /opt/gomft/components/file_metadata/search/file_metadata_search_content.templ{,.bak}
|
||||||
|
# dirty hack to fix templ
|
||||||
|
cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ
|
||||||
|
package search
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/starfleetcptn/gomft/components/file_metadata"
|
||||||
|
"github.com/starfleetcptn/gomft/components/file_metadata/list"
|
||||||
|
)
|
||||||
|
|
||||||
|
templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) {
|
||||||
|
<!-- Search Results -->
|
||||||
|
<div id="search-results">
|
||||||
|
if len(data.Files) > 0 {
|
||||||
|
@list.FileMetadataListPartial(ctx, file_metadata.FileMetadataListData{
|
||||||
|
Files: data.Files,
|
||||||
|
Page: data.Page,
|
||||||
|
Limit: data.Limit,
|
||||||
|
TotalCount: data.TotalCount,
|
||||||
|
TotalPages: data.TotalPages,
|
||||||
|
Filter: data.Filter,
|
||||||
|
SortBy: data.SortBy,
|
||||||
|
SortDir: data.SortDir,
|
||||||
|
}, "/files/search/partial", "#search-results-container")
|
||||||
|
} else {
|
||||||
|
<div class="p-6 text-center text-gray-500 dark:text-gray-400">
|
||||||
|
<svg class="mx-auto mb-4 w-12 h-12 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
|
||||||
|
</svg>
|
||||||
|
<p>No files found matching your search criteria.</p>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
EOF
|
||||||
$STD "$HOME"/go/bin/templ generate
|
$STD "$HOME"/go/bin/templ generate
|
||||||
$STD go build -o gomft main.go
|
$STD go build -o gomft main.go
|
||||||
chmod +x /opt/gomft/gomft
|
chmod +x /opt/gomft/gomft
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck
|
# Author: MickLesk (Canbiz)
|
||||||
# Co-Author: MickLesk (Canbiz)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://github.com/alexta69/metube
|
# Source: https://github.com/alexta69/metube
|
||||||
|
|
||||||
@@ -28,14 +27,7 @@ $STD apt-get install -y --no-install-recommends \
|
|||||||
ca-certificates
|
ca-certificates
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setup Python3"
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
$STD apt-get install -y \
|
|
||||||
python3 \
|
|
||||||
python3-dev \
|
|
||||||
python3-pip \
|
|
||||||
python3-venv
|
|
||||||
msg_ok "Setup Python3"
|
|
||||||
|
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
msg_info "Installing MeTube"
|
msg_info "Installing MeTube"
|
||||||
@@ -44,8 +36,13 @@ cd /opt/metube/ui
|
|||||||
$STD npm install
|
$STD npm install
|
||||||
$STD node_modules/.bin/ng build
|
$STD node_modules/.bin/ng build
|
||||||
cd /opt/metube
|
cd /opt/metube
|
||||||
$STD pip3 install pipenv
|
$STD uv venv /opt/metube/.venv
|
||||||
$STD pipenv install
|
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
|
||||||
|
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
|
||||||
|
$STD /opt/metube/.venv/bin/python -m pip install pipenv
|
||||||
|
$STD /opt/metube/.venv/bin/pipenv install
|
||||||
|
$STD /opt/metube/.venv/bin/pipenv update yt-dlp
|
||||||
|
|
||||||
mkdir -p /opt/metube_downloads /opt/metube_downloads/.metube /opt/metube_downloads/music /opt/metube_downloads/videos
|
mkdir -p /opt/metube_downloads /opt/metube_downloads/.metube /opt/metube_downloads/music /opt/metube_downloads/videos
|
||||||
cat <<EOF >/opt/metube/.env
|
cat <<EOF >/opt/metube/.env
|
||||||
DOWNLOAD_DIR=/opt/metube_downloads
|
DOWNLOAD_DIR=/opt/metube_downloads
|
||||||
@@ -65,7 +62,7 @@ After=network.target
|
|||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=/opt/metube
|
WorkingDirectory=/opt/metube
|
||||||
EnvironmentFile=/opt/metube/.env
|
EnvironmentFile=/opt/metube/.env
|
||||||
ExecStart=/usr/local/bin/pipenv run python3 app/main.py
|
ExecStart=/opt/metube/.venv/bin/pipenv run python3 app/main.py
|
||||||
Restart=always
|
Restart=always
|
||||||
User=root
|
User=root
|
||||||
|
|
||||||
|
|||||||
@@ -13,31 +13,60 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Setup MinIO"
|
FEATURE_RICH_VERSION="2025-04-22T22-12-26Z"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
|
|
||||||
curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio
|
echo
|
||||||
|
echo "MinIO recently removed many management features from the Console UI."
|
||||||
|
echo "The last feature-complete version is: $FEATURE_RICH_VERSION"
|
||||||
|
echo "Latest versions require the paid edition for full UI functionality."
|
||||||
|
echo
|
||||||
|
echo "Choose which version to install:"
|
||||||
|
echo " [N] Feature-rich community version ($FEATURE_RICH_VERSION) [Recommended]"
|
||||||
|
echo " [Y] Latest version (may lack UI features)"
|
||||||
|
echo
|
||||||
|
read -p "Install latest MinIO version? [y/N]: " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
USE_LATEST=true
|
||||||
|
else
|
||||||
|
USE_LATEST=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Setting up MinIO"
|
||||||
|
if [[ "$USE_LATEST" == "true" ]]; then
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
|
||||||
|
DOWNLOAD_URL="https://dl.min.io/server/minio/release/linux-amd64/minio"
|
||||||
|
else
|
||||||
|
RELEASE="$FEATURE_RICH_VERSION"
|
||||||
|
DOWNLOAD_URL="https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.${FEATURE_RICH_VERSION}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl -fsSL "$DOWNLOAD_URL" -o /usr/local/bin/minio
|
||||||
chmod +x /usr/local/bin/minio
|
chmod +x /usr/local/bin/minio
|
||||||
useradd -r minio-user -s /sbin/nologin
|
useradd -r minio-user -s /sbin/nologin
|
||||||
mkdir -p /home/minio-user
|
mkdir -p /home/minio-user
|
||||||
chown minio-user:minio-user /home/minio-user
|
chown minio-user:minio-user /home/minio-user
|
||||||
mkdir -p /data
|
mkdir -p /data
|
||||||
chown minio-user:minio-user /data
|
chown minio-user:minio-user /data
|
||||||
|
|
||||||
MINIO_ADMIN_USER="minioadmin"
|
MINIO_ADMIN_USER="minioadmin"
|
||||||
MINIO_ADMIN_PASSWORD="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
|
MINIO_ADMIN_PASSWORD="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
|
||||||
|
|
||||||
cat <<EOF >/etc/default/minio
|
cat <<EOF >/etc/default/minio
|
||||||
MINIO_ROOT_USER=${MINIO_ADMIN_USER}
|
MINIO_ROOT_USER=${MINIO_ADMIN_USER}
|
||||||
MINIO_ROOT_PASSWORD=${MINIO_ADMIN_PASSWORD}
|
MINIO_ROOT_PASSWORD=${MINIO_ADMIN_PASSWORD}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
{
|
{
|
||||||
echo ""
|
echo ""
|
||||||
echo "MinIO-Credentials"
|
echo "MinIO Credentials"
|
||||||
echo "MinIO Admin User: $MINIO_ADMIN_USER"
|
echo "MinIO Admin User: $MINIO_ADMIN_USER"
|
||||||
echo "MinIO Admin Password: $MINIO_ADMIN_PASSWORD"
|
echo "MinIO Admin Password: $MINIO_ADMIN_PASSWORD"
|
||||||
} >>~/minio.creds
|
} >>~/minio.creds
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/${APPLICATION,,}_version.txt
|
||||||
msg_ok "Setup MinIO"
|
msg_ok "Setup MinIO"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating service"
|
||||||
cat <<EOF >/etc/systemd/system/minio.service
|
cat <<EOF >/etc/systemd/system/minio.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=MinIO
|
Description=MinIO
|
||||||
@@ -57,8 +86,9 @@ LimitNOFILE=65536
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl enable -q --now minio
|
systemctl enable -q --now minio
|
||||||
msg_ok "Created Service"
|
msg_ok "Service created"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
@@ -66,4 +96,4 @@ customize
|
|||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleanup complete"
|
||||||
|
|||||||
103
install/onlyoffice-install.sh
Normal file
103
install/onlyoffice-install.sh
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get install -y \
|
||||||
|
nginx \
|
||||||
|
rabbitmq-server \
|
||||||
|
ca-certificates \
|
||||||
|
software-properties-common
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
PG_VERSION="16" setup_postgresql
|
||||||
|
|
||||||
|
msg_info "Setup Database"
|
||||||
|
DB_NAME=onlyoffice
|
||||||
|
DB_USER=onlyoffice_user
|
||||||
|
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
||||||
|
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
||||||
|
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
|
||||||
|
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
|
||||||
|
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
|
||||||
|
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
|
||||||
|
{
|
||||||
|
echo "ONLYOFFICE-Credentials"
|
||||||
|
echo "ONLYOFFICE Database User: $DB_USER"
|
||||||
|
echo "ONLYOFFICE Database Password: $DB_PASS"
|
||||||
|
echo "ONLYOFFICE Database Name: $DB_NAME"
|
||||||
|
} >>~/onlyoffice.creds
|
||||||
|
msg_ok "Set up Database"
|
||||||
|
|
||||||
|
msg_info "Adding ONLYOFFICE GPG Key"
|
||||||
|
GPG_TMP="/tmp/onlyoffice.gpg"
|
||||||
|
KEY_URL="https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE"
|
||||||
|
TMP_KEY_CONTENT=$(mktemp)
|
||||||
|
if curl -fsSL "$KEY_URL" -o "$TMP_KEY_CONTENT" && grep -q "BEGIN PGP PUBLIC KEY BLOCK" "$TMP_KEY_CONTENT"; then
|
||||||
|
gpg --quiet --batch --yes --no-default-keyring --keyring "gnupg-ring:$GPG_TMP" --import "$TMP_KEY_CONTENT" >/dev/null 2>&1
|
||||||
|
chmod 644 "$GPG_TMP"
|
||||||
|
chown root:root "$GPG_TMP"
|
||||||
|
mv "$GPG_TMP" /usr/share/keyrings/onlyoffice.gpg
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://download.onlyoffice.com/repo/debian squeeze main" >/etc/apt/sources.list.d/onlyoffice.list
|
||||||
|
$STD apt-get update
|
||||||
|
msg_ok "GPG Key Added"
|
||||||
|
else
|
||||||
|
msg_error "Failed to download or verify GPG key from $KEY_URL"
|
||||||
|
[[ -f "$TMP_KEY_CONTENT" ]] && rm -f "$TMP_KEY_CONTENT"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm -f "$TMP_KEY_CONTENT"
|
||||||
|
|
||||||
|
msg_info "Preconfiguring ONLYOFFICE Debconf Settings"
|
||||||
|
RMQ_USER=onlyoffice_rmq
|
||||||
|
RMQ_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
||||||
|
JWT_SECRET=$(openssl rand -hex 16)
|
||||||
|
|
||||||
|
echo onlyoffice-documentserver onlyoffice/db-host string localhost | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/db-user string $DB_USER | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/db-pwd password $DB_PASS | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/db-name string $DB_NAME | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/rabbitmq-host string localhost | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/rabbitmq-user string $RMQ_USER | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/rabbitmq-pwd password $RMQ_PASS | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/jwt-enabled boolean true | debconf-set-selections
|
||||||
|
echo onlyoffice-documentserver onlyoffice/jwt-secret password $JWT_SECRET | debconf-set-selections
|
||||||
|
|
||||||
|
echo "RabbitMQ User: $RMQ_USER" >>~/onlyoffice.creds
|
||||||
|
echo "RabbitMQ Password: $RMQ_PASS" >>~/onlyoffice.creds
|
||||||
|
echo "JWT Secret: $JWT_SECRET" >>~/onlyoffice.creds
|
||||||
|
{
|
||||||
|
echo ""
|
||||||
|
echo "ONLYOFFICE RabbitMQ Credentials"
|
||||||
|
echo "User: $RMQ_USER"
|
||||||
|
echo "Password: $RMQ_PASS"
|
||||||
|
echo "Secret: $JWT_SECRET"
|
||||||
|
} >>~/onlyoffice.creds
|
||||||
|
msg_ok "Debconf Preconfiguration Done"
|
||||||
|
|
||||||
|
msg_info "Installing ttf-mscorefonts-installer"
|
||||||
|
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
|
||||||
|
$STD apt-get install -y ttf-mscorefonts-installer
|
||||||
|
msg_ok "Installed Microsoft Core Fonts"
|
||||||
|
|
||||||
|
msg_info "Installing ONLYOFFICE Docs"
|
||||||
|
$STD apt-get install -y onlyoffice-documentserver
|
||||||
|
msg_ok "ONLYOFFICE Docs Installed"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user