mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-09-13 07:10:51 +02:00
Compare commits
134 Commits
2025-01-17
...
2025-01-22
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
704f2f3d9b | ||
|
|
022288ef8e | ||
|
|
3c68db9b3a | ||
|
|
2ba35bbee5 | ||
|
|
3b14ea76ad | ||
|
|
74d745441c | ||
|
|
afc66ebac5 | ||
|
|
18baa31178 | ||
|
|
ede5efb91b | ||
|
|
6b17c1a4a1 | ||
|
|
87256a39ce | ||
|
|
4c9a4e28a7 | ||
|
|
9e9838867a | ||
|
|
41514c1eb8 | ||
|
|
c8fe3c363b | ||
|
|
81c5f51a96 | ||
|
|
c5df1bbcea | ||
|
|
8303f61647 | ||
|
|
eefbbdf4df | ||
|
|
77c15f5a24 | ||
|
|
e2c329b9c7 | ||
|
|
223eecdd8e | ||
|
|
cf2942da9a | ||
|
|
7a66f9b42f | ||
|
|
6ecef0ef94 | ||
|
|
0e19ad2859 | ||
|
|
b93d7bd632 | ||
|
|
4b292c3b2a | ||
|
|
4340ccc15d | ||
|
|
621416698a | ||
|
|
e6404a9a4e | ||
|
|
83aff658c5 | ||
|
|
db061db17e | ||
|
|
e051e414a8 | ||
|
|
0a7d541261 | ||
|
|
ed8edcbf2d | ||
|
|
c3acbf09ed | ||
|
|
9c415ca3f4 | ||
|
|
c1b3d14068 | ||
|
|
2f2d1eeec3 | ||
|
|
e76e5ec4a0 | ||
|
|
7df2297be0 | ||
|
|
35a66c5f1f | ||
|
|
e7af6f31ad | ||
|
|
8337ca06fa | ||
|
|
dd0cdf5d25 | ||
|
|
3b37f6a5b7 | ||
|
|
5a93af33ba | ||
|
|
d73f8f224a | ||
|
|
0e04db089e | ||
|
|
b1b3d5b80a | ||
|
|
3bbeaa8a9d | ||
|
|
c5ba9493f8 | ||
|
|
6e0527dc19 | ||
|
|
f1e6e0ae56 | ||
|
|
804ea32190 | ||
|
|
038947416d | ||
|
|
4cf043675e | ||
|
|
9fd9ab00ff | ||
|
|
50b5a7d1cf | ||
|
|
58ba921fec | ||
|
|
1c8a0a53d2 | ||
|
|
46c7c0e9ca | ||
|
|
33d6f8b860 | ||
|
|
64e14fe982 | ||
|
|
a8f8ca65a0 | ||
|
|
c6c026e221 | ||
|
|
4dcf0dc0b8 | ||
|
|
81c327c317 | ||
|
|
c9eb13a20c | ||
|
|
c42438be11 | ||
|
|
dfc006271c | ||
|
|
e64ecb9773 | ||
|
|
85109ecf11 | ||
|
|
fb67025f3b | ||
|
|
f545c8ae5b | ||
|
|
70d75bf53e | ||
|
|
783e9b160d | ||
|
|
bdb2816e87 | ||
|
|
d9a4586eec | ||
|
|
3904fb1981 | ||
|
|
b8ed5e3987 | ||
|
|
723b8e8e0b | ||
|
|
e0d0bcd409 | ||
|
|
69f19ca652 | ||
|
|
76742e7910 | ||
|
|
17d06a51ae | ||
|
|
e8cd6497ef | ||
|
|
08131f881c | ||
|
|
b789d982d9 | ||
|
|
41d45eb4ec | ||
|
|
665014379e | ||
|
|
5a2a5b3885 | ||
|
|
4c5df518c7 | ||
|
|
d89ad6d293 | ||
|
|
0a00eb74f2 | ||
|
|
5dcfdc9607 | ||
|
|
b409c3ac72 | ||
|
|
6031f99b58 | ||
|
|
2a74f53b14 | ||
|
|
f2935e9f60 | ||
|
|
fe5f88f140 | ||
|
|
5d32260568 | ||
|
|
81e17c2137 | ||
|
|
5db657a668 | ||
|
|
bc135d70ab | ||
|
|
2173728316 | ||
|
|
76362f4ede | ||
|
|
0daca3a6ee | ||
|
|
029b57ea9e | ||
|
|
a94e28c5df | ||
|
|
3078d1a11a | ||
|
|
b9187d771a | ||
|
|
1d26b208ff | ||
|
|
7df8273654 | ||
|
|
dc0b432b69 | ||
|
|
79dfb7c001 | ||
|
|
5d69a62b47 | ||
|
|
ed0b16bf17 | ||
|
|
9843b46a94 | ||
|
|
c4580100a8 | ||
|
|
f8f166e26f | ||
|
|
b97d40bf5a | ||
|
|
0e443536cc | ||
|
|
0b73d9f689 | ||
|
|
5c11b67507 | ||
|
|
2f20db8a42 | ||
|
|
b04dc0261b | ||
|
|
81b271a9ef | ||
|
|
75590a8ff8 | ||
|
|
d1f5556ce3 | ||
|
|
e683fd900f | ||
|
|
643e0f5ac8 | ||
|
|
bd301942c5 |
1
.github/CONTRIBUTING.md
vendored
1
.github/CONTRIBUTING.md
vendored
@@ -2,6 +2,7 @@
|
|||||||
# Community Scripts Contribution Guide
|
# Community Scripts Contribution Guide
|
||||||
|
|
||||||
## **Welcome to the communty-scripts Repository!**
|
## **Welcome to the communty-scripts Repository!**
|
||||||
|
|
||||||
📜 These documents outline the essential coding standards for all our scripts and JSON files. Adhering to these standards ensures that our codebase remains consistent, readable, and maintainable. By following these guidelines, we can improve collaboration, reduce errors, and enhance the overall quality of our project.
|
📜 These documents outline the essential coding standards for all our scripts and JSON files. Adhering to these standards ensures that our codebase remains consistent, readable, and maintainable. By following these guidelines, we can improve collaboration, reduce errors, and enhance the overall quality of our project.
|
||||||
|
|
||||||
### Why Coding Standards Matter
|
### Why Coding Standards Matter
|
||||||
|
|||||||
94
CHANGELOG.md
94
CHANGELOG.md
@@ -16,10 +16,102 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||||
|
|
||||||
## 2025-01-17
|
|
||||||
|
## 2025-01-22
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Tweak: LubeLogger Script Upcoming Changes 1.4.3 [@JcMinarro](https://github.com/JcMinarro) ([#1656](https://github.com/community-scripts/ProxmoxVE/pull/1656))
|
||||||
|
- Fix: SQL Server 2022 Install [@MickLesk](https://github.com/MickLesk) ([#1669](https://github.com/community-scripts/ProxmoxVE/pull/1669))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Refactor Sidebar component to display unique scripts count [@BramSuurdje](https://github.com/BramSuurdje) ([#1681](https://github.com/community-scripts/ProxmoxVE/pull/1681))
|
||||||
|
- Refactor various components and configuration for mobile responsiveness. [@BramSuurdje](https://github.com/BramSuurdje) ([#1679](https://github.com/community-scripts/ProxmoxVE/pull/1679))
|
||||||
|
- Add Docker-VM to Containers & Docker Category [@thost96](https://github.com/thost96) ([#1667](https://github.com/community-scripts/ProxmoxVE/pull/1667))
|
||||||
|
- Moving SQL Server 2022 to database category [@CamronBorealis](https://github.com/CamronBorealis) ([#1659](https://github.com/community-scripts/ProxmoxVE/pull/1659))
|
||||||
|
|
||||||
|
## 2025-01-21
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- Add new Script: LXC Delete (Proxmox) [@MickLesk](https://github.com/MickLesk) ([#1636](https://github.com/community-scripts/ProxmoxVE/pull/1636))
|
||||||
|
- New script: ProjectSend [@bvdberg01](https://github.com/bvdberg01) ([#1616](https://github.com/community-scripts/ProxmoxVE/pull/1616))
|
||||||
|
- New Script: Beszel [@Sinofage](https://github.com/Sinofage) ([#1619](https://github.com/community-scripts/ProxmoxVE/pull/1619))
|
||||||
|
- New Script: Docker VM [@thost96](https://github.com/thost96) ([#1608](https://github.com/community-scripts/ProxmoxVE/pull/1608))
|
||||||
|
- New script: SQL Server 2022 [@kris701](https://github.com/kris701) ([#1482](https://github.com/community-scripts/ProxmoxVE/pull/1482))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: Teddycloud Script (install, clean up & update) [@MickLesk](https://github.com/MickLesk) ([#1652](https://github.com/community-scripts/ProxmoxVE/pull/1652))
|
||||||
|
- Fix: Docker VM deprecated gpg [@MickLesk](https://github.com/MickLesk) ([#1649](https://github.com/community-scripts/ProxmoxVE/pull/1649))
|
||||||
|
- ActualBudget: Fix Update-Function, Fix Wget Crawling, Add Versionscheck [@MickLesk](https://github.com/MickLesk) ([#1643](https://github.com/community-scripts/ProxmoxVE/pull/1643))
|
||||||
|
- Fix Photoprism missing folder & environments [@MickLesk](https://github.com/MickLesk) ([#1639](https://github.com/community-scripts/ProxmoxVE/pull/1639))
|
||||||
|
- Update MOTD: Add Dynamic IP with profile.d by @JcMinarro [@MickLesk](https://github.com/MickLesk) ([#1633](https://github.com/community-scripts/ProxmoxVE/pull/1633))
|
||||||
|
- PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bump vite from 6.0.1 to 6.0.11 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#1653](https://github.com/community-scripts/ProxmoxVE/pull/1653))
|
||||||
|
- Update glpi.json [@opastorello](https://github.com/opastorello) ([#1641](https://github.com/community-scripts/ProxmoxVE/pull/1641))
|
||||||
|
- Fix Docker-VM name on website [@Sinofage](https://github.com/Sinofage) ([#1630](https://github.com/community-scripts/ProxmoxVE/pull/1630))
|
||||||
|
|
||||||
|
## 2025-01-20
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: UrBackup Server [@kris701](https://github.com/kris701) ([#1569](https://github.com/community-scripts/ProxmoxVE/pull/1569))
|
||||||
|
- New Script: Proxmox Mail Gateway Post Installer [@thost96](https://github.com/thost96) ([#1559](https://github.com/community-scripts/ProxmoxVE/pull/1559))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update Kimai Dependency: Use PHP 8.3 [@MickLesk](https://github.com/MickLesk) ([#1609](https://github.com/community-scripts/ProxmoxVE/pull/1609))
|
||||||
|
- Feature: Add xCaddy for external Modules on Caddy-LXC [@MickLesk](https://github.com/MickLesk) ([#1613](https://github.com/community-scripts/ProxmoxVE/pull/1613))
|
||||||
|
- Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597))
|
||||||
|
- Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Update Website | Add new Categories [@MickLesk](https://github.com/MickLesk) ([#1606](https://github.com/community-scripts/ProxmoxVE/pull/1606))
|
||||||
|
- Grafana: Mark container as updateable [@andygrunwald](https://github.com/andygrunwald) ([#1603](https://github.com/community-scripts/ProxmoxVE/pull/1603))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [core] Update build.func: Add defaults to Advanced mode [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1548](https://github.com/community-scripts/ProxmoxVE/pull/1548))
|
||||||
|
- Update build.func: Fix Advanced Tags (Remove all if empty / overwrite if default cleared) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1612](https://github.com/community-scripts/ProxmoxVE/pull/1612))
|
||||||
|
- Add new Check for LXC MaxKeys by @cricalix [@MickLesk](https://github.com/MickLesk) ([#1602](https://github.com/community-scripts/ProxmoxVE/pull/1602))
|
||||||
|
|
||||||
|
## 2025-01-19
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update Opengist.sh: Fix broken backup function [@bvdberg01](https://github.com/bvdberg01) ([#1572](https://github.com/community-scripts/ProxmoxVE/pull/1572))
|
||||||
|
|
||||||
|
## 2025-01-18
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- **READ GUIDE FIRST** breaking change: Homeassistant-Core upgrade os and python3 [@MickLesk](https://github.com/MickLesk) ([#1550](https://github.com/community-scripts/ProxmoxVE/pull/1550))
|
||||||
|
- Update Openwrt: Delete lines that do WAN input and forward accept [@chackl1990](https://github.com/chackl1990) ([#1540](https://github.com/community-scripts/ProxmoxVE/pull/1540))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- added cifs support in ubuntu2404-vm.sh [@plonxyz](https://github.com/plonxyz) ([#1461](https://github.com/community-scripts/ProxmoxVE/pull/1461))
|
||||||
|
- Fix linkwarden update [@burgerga](https://github.com/burgerga) ([#1565](https://github.com/community-scripts/ProxmoxVE/pull/1565))
|
||||||
|
- [jellyseerr] Update nodejs if not up-to-date [@makstech](https://github.com/makstech) ([#1563](https://github.com/community-scripts/ProxmoxVE/pull/1563))
|
||||||
|
- Update VM Tags [@oOStroudyOo](https://github.com/oOStroudyOo) ([#1562](https://github.com/community-scripts/ProxmoxVE/pull/1562))
|
||||||
|
- Update apt-cacher-ng.sh: Typo/Missing $ [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1545](https://github.com/community-scripts/ProxmoxVE/pull/1545))
|
||||||
|
|
||||||
## 2025-01-16
|
## 2025-01-16
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
|
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
|
||||||
</a>
|
</a>
|
||||||
<a href="https://ko-fi.com/community_scripts">
|
<a href="https://ko-fi.com/community_scripts">
|
||||||
<img src="https://img.shields.io/badge/Donate-FF5F5F?style=for-the-badge&logo=ko-fi&logoColor=white" alt="Donate" />
|
<img src="https://img.shields.io/badge/Support-FF5F5F?style=for-the-badge&logo=ko-fi&logoColor=white" alt="Donate" />
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md">
|
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md">
|
||||||
<img src="https://img.shields.io/badge/Contribute-ff4785?style=for-the-badge&logo=git&logoColor=white" alt="Contribute" />
|
<img src="https://img.shields.io/badge/Contribute-ff4785?style=for-the-badge&logo=git&logoColor=white" alt="Contribute" />
|
||||||
|
|||||||
@@ -28,33 +28,48 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /opt/actualbudget ]]; then
|
if [[ ! -d /opt/actualbudget ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v jq >/dev/null 2>&1; then
|
if ! command -v jq >/dev/null 2>&1; then
|
||||||
echo "Installing jq..."
|
echo "Installing jq..."
|
||||||
apt-get install -y jq >/dev/null 2>&1
|
apt-get install -y jq >/dev/null 2>&1
|
||||||
echo "Installed jq..."
|
echo "Installed jq..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
systemctl stop actualbudget
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name')
|
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name')
|
||||||
TEMPD="$(mktemp -d)"
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
cd "${TEMPD}"
|
msg_info "Stopping ${APP}"
|
||||||
wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz
|
systemctl stop actualbudget
|
||||||
mv /opt/actualbudget /opt/actualbudget_bak
|
msg_ok "${APP} Stopped"
|
||||||
mkdir -p /opt/actualbudget/
|
|
||||||
mv actualbudget-actual-server-*/* /opt/actualbudget/
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
mv /opt/actualbudget_bak/.env /opt/actualbudget
|
wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz
|
||||||
mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
|
tar -xzvf actual-server.tar.gz >/dev/null 2>&1
|
||||||
cd /opt/actualbudget
|
mv /opt/actualbudget /opt/actualbudget_bak
|
||||||
yarn install &>/dev/null
|
mkdir -p /opt/actualbudget/
|
||||||
systemctl start actualbudget
|
mv actual-server-* /opt/actualbudget
|
||||||
msg_ok "Successfully Updated ${APP} to ${RELEASE}"
|
mv /opt/actualbudget_bak/.env /opt/actualbudget
|
||||||
rm -rf "${TEMPD}"
|
mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
|
||||||
rm -rf /opt/actualbudget_bak
|
cd /opt/actualbudget
|
||||||
|
yarn install &>/dev/null
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
|
systemctl start actualbudget
|
||||||
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/actualbudget_bak
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
47
ct/beszel.sh
Normal file
47
ct/beszel.sh
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) community-scripts ORG
|
||||||
|
# Author: Michelle Zitzerman (Sinofage)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://beszel.dev/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Beszel"
|
||||||
|
var_tags="monitoring"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="512"
|
||||||
|
var_disk="5"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/beszel ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
/opt/beszel/beszel update
|
||||||
|
msg_error "Ther is currently no automatic update function for ${APP}."
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
|
||||||
@@ -10,7 +10,7 @@ APP="Caddy"
|
|||||||
var_tags="webserver"
|
var_tags="webserver"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
var_disk="2"
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
var_unprivileged="1"
|
var_unprivileged="1"
|
||||||
@@ -46,4 +46,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | 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://www.home-assistant.io/
|
# Source: https://www.home-assistant.io/
|
||||||
|
|
||||||
@@ -9,10 +9,10 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
|
|||||||
APP="Home Assistant-Core"
|
APP="Home Assistant-Core"
|
||||||
var_tags="automation;smarthome"
|
var_tags="automation;smarthome"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="2048"
|
||||||
var_disk="8"
|
var_disk="10"
|
||||||
var_os="ubuntu"
|
var_os="ubuntu"
|
||||||
var_version="24.04"
|
var_version="24.10"
|
||||||
var_unprivileged="1"
|
var_unprivileged="1"
|
||||||
|
|
||||||
# App Output & Base Settings
|
# App Output & Base Settings
|
||||||
@@ -26,6 +26,13 @@ catch_errors
|
|||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
|
|
||||||
|
# OS Check
|
||||||
|
if ! lsb_release -d | grep -q "Ubuntu 24.10"; then
|
||||||
|
msg_error "Wrong OS detected. This script only supports Ubuntu 24.10."
|
||||||
|
msg_error "Read Guide: https://github.com/community-scripts/ProxmoxVE/discussions/1549"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /srv/homeassistant ]]; then
|
if [[ ! -d /srv/homeassistant ]]; then
|
||||||
@@ -51,17 +58,13 @@ function update_script() {
|
|||||||
echo -e "${GN}Updating to Stable Version${CL}"
|
echo -e "${GN}Updating to Stable Version${CL}"
|
||||||
BR=""
|
BR=""
|
||||||
fi
|
fi
|
||||||
if [[ "$PY" =~ ^python3\.(11|12)\.[0-9]+$ ]]; then
|
|
||||||
echo -e "⚠️ Home Assistant will soon require Python 3.13.x";
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Stopping Home Assistant"
|
msg_info "Stopping Home Assistant"
|
||||||
systemctl stop homeassistant
|
systemctl stop homeassistant
|
||||||
msg_ok "Stopped Home Assistant"
|
msg_ok "Stopped Home Assistant"
|
||||||
|
|
||||||
msg_info "Updating Home Assistant"
|
msg_info "Updating Home Assistant"
|
||||||
source /srv/homeassistant/bin/activate
|
source /srv/homeassistant/bin/activate
|
||||||
uv pip install ${BR}--upgrade homeassistant &>/dev/null
|
pip install ${BR}--upgrade homeassistant &>/dev/null
|
||||||
msg_ok "Updated Home Assistant"
|
msg_ok "Updated Home Assistant"
|
||||||
|
|
||||||
msg_info "Starting Home Assistant"
|
msg_info "Starting Home Assistant"
|
||||||
@@ -75,7 +78,7 @@ function update_script() {
|
|||||||
if [ "$UPD" == "2" ]; then
|
if [ "$UPD" == "2" ]; then
|
||||||
msg_info "Installing Home Assistant Community Store (HACS)"
|
msg_info "Installing Home Assistant Community Store (HACS)"
|
||||||
apt update &>/dev/null
|
apt update &>/dev/null
|
||||||
apt install unzip &>/dev/null
|
apt install -y unzip &>/dev/null
|
||||||
cd .homeassistant
|
cd .homeassistant
|
||||||
bash <(curl -fsSL https://get.hacs.xyz) &>/dev/null
|
bash <(curl -fsSL https://get.hacs.xyz) &>/dev/null
|
||||||
msg_ok "Installed Home Assistant Community Store (HACS)"
|
msg_ok "Installed Home Assistant Community Store (HACS)"
|
||||||
@@ -102,16 +105,19 @@ function update_script() {
|
|||||||
msg_ok "Installed FileBrowser"
|
msg_ok "Installed FileBrowser"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
service_path="/etc/systemd/system/filebrowser.service"
|
cat <<EOF > /etc/systemd/system/filebrowser.service
|
||||||
echo "[Unit]
|
[Unit]
|
||||||
Description=Filebrowser
|
Description=Filebrowser
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=root
|
User=root
|
||||||
WorkingDirectory=/root/
|
WorkingDirectory=/root/
|
||||||
ExecStart=/usr/local/bin/filebrowser -r /root/.homeassistant
|
ExecStart=/usr/local/bin/filebrowser -r /root/.homeassistant
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=default.target" >$service_path
|
WantedBy=default.target
|
||||||
|
EOF
|
||||||
|
|
||||||
systemctl enable --now -q filebrowser.service
|
systemctl enable --now -q filebrowser.service
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
@@ -130,4 +136,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
|
||||||
@@ -34,6 +34,22 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$(node -v | cut -c2-3)" -ne 22 ]; then
|
||||||
|
msg_info "Updating Node.js Repository"
|
||||||
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||||
|
msg_ok "Updating Node.js Repository"
|
||||||
|
|
||||||
|
msg_info "Updating Packages"
|
||||||
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updating Packages"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
apt-get -y autoremove
|
||||||
|
apt-get -y autoclean
|
||||||
|
msg_ok "Cleaning up"
|
||||||
|
fi
|
||||||
|
|
||||||
if ! command -v pnpm &> /dev/null; then
|
if ! command -v pnpm &> /dev/null; then
|
||||||
msg_error "pnpm not found. Installing..."
|
msg_error "pnpm not found. Installing..."
|
||||||
npm install -g pnpm &>/dev/null
|
npm install -g pnpm &>/dev/null
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ function update_script() {
|
|||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
cd /opt
|
cd /opt
|
||||||
mv /opt/linkwarden/.env /opt/.env
|
mv /opt/linkwarden/.env /opt/.env
|
||||||
|
rm -rf /opt/linkwarden
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -s https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
wget -q "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip"
|
wget -q "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip"
|
||||||
unzip -q ${RELEASE}.zip
|
unzip -q ${RELEASE}.zip
|
||||||
@@ -59,7 +60,6 @@ function update_script() {
|
|||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf /opt/${RELEASE}.zip
|
rm -rf /opt/${RELEASE}.zip
|
||||||
rm -rf /opt/linkwarden_bak
|
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
@@ -75,4 +75,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
|
|||||||
@@ -42,14 +42,17 @@ function update_script() {
|
|||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
cd /opt
|
cd /opt
|
||||||
wget -q https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
|
wget -q https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
|
||||||
mkdir -p /tmp/lubeloggerData/wwwroot
|
mkdir -p /tmp/lubeloggerData/data
|
||||||
cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json
|
cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json
|
||||||
cp -r /opt/lubelogger/config /tmp/lubeloggerData/
|
cp -r /opt/lubelogger/data/ /tmp/lubeloggerData/
|
||||||
cp -r /opt/lubelogger/data /tmp/lubeloggerData/
|
|
||||||
[[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/wwwroot/
|
# Lubelogger has moved multiples folders to the 'data' folder, and we need to move them before the update to keep the user data
|
||||||
[[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/wwwroot/
|
# Github Discussion: https://github.com/hargata/lubelog/discussions/787
|
||||||
[[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/wwwroot/
|
[[ -e /opt/lubelogger/config ]] && cp -r /opt/lubelogger/config /tmp/lubeloggerData/data/
|
||||||
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/wwwroot/
|
[[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/data/
|
||||||
|
[[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/data/
|
||||||
|
[[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/data/
|
||||||
|
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/data/
|
||||||
[[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
|
[[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
|
||||||
rm -rf /opt/lubelogger
|
rm -rf /opt/lubelogger
|
||||||
unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
|
unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
|
||||||
|
|||||||
@@ -32,29 +32,35 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_info "Stopping Service"
|
|
||||||
systemctl stop opengist.service
|
|
||||||
msg_ok "Stopped Service"
|
|
||||||
apt-get update &>/dev/null
|
|
||||||
apt-get upgrade &>/dev/null
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -s https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop opengist.service
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
cd /opt
|
cd /opt
|
||||||
wget -qO "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz"
|
mv /opt/opengist /opt/opengist-backup
|
||||||
rm -rf /opt/opengist
|
wget -q "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz"
|
||||||
tar -xzf opengist${RELEASE}-linux-amd64.tar.gz
|
tar -xzf opengist${RELEASE}-linux-amd64.tar.gz
|
||||||
|
mv /opt/opengist-backup/config.yml /opt/opengist/config.yml
|
||||||
chmod +x /opt/opengist/opengist
|
chmod +x /opt/opengist/opengist
|
||||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||||
rm -rf /opt/opengist${RELEASE}-linux-amd64.tar.gz
|
|
||||||
apt-get -y autoremove &>/dev/null
|
|
||||||
apt-get -y autoclean &>/dev/null
|
|
||||||
msg_ok "Updated ${APP} LXC"
|
msg_ok "Updated ${APP} LXC"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start opengist.service
|
systemctl start opengist.service
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/opengist${RELEASE}-linux-amd64.tar.gz
|
||||||
|
rm -rf /opt/opengist-backup
|
||||||
|
apt-get -y autoremove &>/dev/null
|
||||||
|
apt-get -y autoclean &>/dev/null
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -52,4 +52,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8007${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8007${CL}"
|
||||||
|
|||||||
@@ -54,4 +54,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/_${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/_/${CL}"
|
||||||
|
|||||||
71
ct/projectsend.sh
Normal file
71
ct/projectsend.sh
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: bvdberg01
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.projectsend.org/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="ProjectSend"
|
||||||
|
var_tags="media"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/projectsend ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop apache2
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
cd /opt
|
||||||
|
wget -q "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip"
|
||||||
|
unzip -o -q "projectsend-r${RELEASE}.zip" -d projectsend
|
||||||
|
chown -R www-data:www-data /opt/projectsend
|
||||||
|
chmod -R 775 /opt/projectsend
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start apache2
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf "/opt/projectsend-r${RELEASE}.zip"
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||||
49
ct/sqlserver2022.sh
Normal file
49
ct/sqlserver2022.sh
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/kris701/ProxmoxVE/refs/heads/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Kristian Skov
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.microsoft.com/en-us/sql-server/sql-server-2022
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="SQL Server 2022"
|
||||||
|
var_tags="sql"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="2048"
|
||||||
|
var_disk="10"
|
||||||
|
var_os="ubuntu"
|
||||||
|
var_version="22.04"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/mssql ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}${IP}:1433${CL}"
|
||||||
@@ -36,14 +36,12 @@ function update_script() {
|
|||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${VERSION}"
|
msg_info "Updating ${APP} to v${VERSION}"
|
||||||
PREVIOUS_VERSION="$(readlink -f /opt/teddycloud)"
|
cd /opt
|
||||||
|
mv /opt/teddycloud /opt_teddycloud_bak
|
||||||
wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip"
|
wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip"
|
||||||
unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip"
|
unzip -q -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip
|
||||||
ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud
|
cp -R /opt_teddycloud_bak/certs /opt_teddycloud_bak/config /opt_teddycloud_bak/data /opt/teddycloud
|
||||||
echo "${VERSION}" >"/opt/${APP}_version.txt"
|
echo "${VERSION}" >"/opt/${APP}_version.txt"
|
||||||
cp -R "${PREVIOUS_VERSION}/certs" /opt/teddycloud
|
|
||||||
cp -R "${PREVIOUS_VERSION}/config" /opt/teddycloud
|
|
||||||
cp -R "${PREVIOUS_VERSION}/data" /opt/teddycloud
|
|
||||||
msg_ok "Updated ${APP} to v${VERSION}"
|
msg_ok "Updated ${APP} to v${VERSION}"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
@@ -51,8 +49,8 @@ function update_script() {
|
|||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm "teddycloud.amd64.release_v${VERSION}.zip"
|
rm -rf /opt/teddycloud.amd64.release_v${VERSION}.zip
|
||||||
rm -rf "${PREVIOUS_VERSION}"
|
rm -rf /opt/teddycloud_bak
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${VERSION}"
|
msg_ok "No update required. ${APP} is already at v${VERSION}"
|
||||||
|
|||||||
@@ -46,4 +46,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8443${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8443${CL}"
|
||||||
|
|||||||
49
ct/urbackupserver.sh
Normal file
49
ct/urbackupserver.sh
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Kristian Skov
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.urbackup.org/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="UrBackup Server"
|
||||||
|
var_tags="web"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="1024"
|
||||||
|
var_disk="16"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /var/urbackup ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}${IP}:55414${CL}"
|
||||||
224
frontend/package-lock.json
generated
224
frontend/package-lock.json
generated
@@ -467,9 +467,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/aix-ppc64": {
|
"node_modules/@esbuild/aix-ppc64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz",
|
||||||
"integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==",
|
"integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ppc64"
|
"ppc64"
|
||||||
],
|
],
|
||||||
@@ -484,9 +484,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/android-arm": {
|
"node_modules/@esbuild/android-arm": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz",
|
||||||
"integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==",
|
"integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
@@ -501,9 +501,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/android-arm64": {
|
"node_modules/@esbuild/android-arm64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz",
|
||||||
"integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==",
|
"integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -518,9 +518,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/android-x64": {
|
"node_modules/@esbuild/android-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==",
|
"integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -535,9 +535,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/darwin-arm64": {
|
"node_modules/@esbuild/darwin-arm64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz",
|
||||||
"integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==",
|
"integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -552,9 +552,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/darwin-x64": {
|
"node_modules/@esbuild/darwin-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==",
|
"integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -569,9 +569,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/freebsd-arm64": {
|
"node_modules/@esbuild/freebsd-arm64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz",
|
||||||
"integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==",
|
"integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -586,9 +586,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/freebsd-x64": {
|
"node_modules/@esbuild/freebsd-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==",
|
"integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -603,9 +603,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-arm": {
|
"node_modules/@esbuild/linux-arm": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz",
|
||||||
"integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==",
|
"integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
@@ -620,9 +620,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-arm64": {
|
"node_modules/@esbuild/linux-arm64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz",
|
||||||
"integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==",
|
"integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -637,9 +637,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-ia32": {
|
"node_modules/@esbuild/linux-ia32": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz",
|
||||||
"integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==",
|
"integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ia32"
|
"ia32"
|
||||||
],
|
],
|
||||||
@@ -654,9 +654,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-loong64": {
|
"node_modules/@esbuild/linux-loong64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz",
|
||||||
"integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==",
|
"integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"loong64"
|
"loong64"
|
||||||
],
|
],
|
||||||
@@ -671,9 +671,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-mips64el": {
|
"node_modules/@esbuild/linux-mips64el": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz",
|
||||||
"integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==",
|
"integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"mips64el"
|
"mips64el"
|
||||||
],
|
],
|
||||||
@@ -688,9 +688,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-ppc64": {
|
"node_modules/@esbuild/linux-ppc64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz",
|
||||||
"integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==",
|
"integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ppc64"
|
"ppc64"
|
||||||
],
|
],
|
||||||
@@ -705,9 +705,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-riscv64": {
|
"node_modules/@esbuild/linux-riscv64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz",
|
||||||
"integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==",
|
"integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"riscv64"
|
"riscv64"
|
||||||
],
|
],
|
||||||
@@ -722,9 +722,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-s390x": {
|
"node_modules/@esbuild/linux-s390x": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz",
|
||||||
"integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==",
|
"integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"s390x"
|
"s390x"
|
||||||
],
|
],
|
||||||
@@ -739,9 +739,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/linux-x64": {
|
"node_modules/@esbuild/linux-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==",
|
"integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -755,10 +755,27 @@
|
|||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@esbuild/netbsd-arm64": {
|
||||||
|
"version": "0.24.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz",
|
||||||
|
"integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"netbsd"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@esbuild/netbsd-x64": {
|
"node_modules/@esbuild/netbsd-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==",
|
"integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -773,9 +790,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/openbsd-arm64": {
|
"node_modules/@esbuild/openbsd-arm64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz",
|
||||||
"integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==",
|
"integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -790,9 +807,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/openbsd-x64": {
|
"node_modules/@esbuild/openbsd-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==",
|
"integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -807,9 +824,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/sunos-x64": {
|
"node_modules/@esbuild/sunos-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==",
|
"integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -824,9 +841,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/win32-arm64": {
|
"node_modules/@esbuild/win32-arm64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz",
|
||||||
"integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==",
|
"integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -841,9 +858,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/win32-ia32": {
|
"node_modules/@esbuild/win32-ia32": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz",
|
||||||
"integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==",
|
"integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ia32"
|
"ia32"
|
||||||
],
|
],
|
||||||
@@ -858,9 +875,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@esbuild/win32-x64": {
|
"node_modules/@esbuild/win32-x64": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz",
|
||||||
"integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==",
|
"integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -4844,9 +4861,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/esbuild": {
|
"node_modules/esbuild": {
|
||||||
"version": "0.24.0",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz",
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz",
|
||||||
"integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
|
"integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -4857,30 +4874,31 @@
|
|||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@esbuild/aix-ppc64": "0.24.0",
|
"@esbuild/aix-ppc64": "0.24.2",
|
||||||
"@esbuild/android-arm": "0.24.0",
|
"@esbuild/android-arm": "0.24.2",
|
||||||
"@esbuild/android-arm64": "0.24.0",
|
"@esbuild/android-arm64": "0.24.2",
|
||||||
"@esbuild/android-x64": "0.24.0",
|
"@esbuild/android-x64": "0.24.2",
|
||||||
"@esbuild/darwin-arm64": "0.24.0",
|
"@esbuild/darwin-arm64": "0.24.2",
|
||||||
"@esbuild/darwin-x64": "0.24.0",
|
"@esbuild/darwin-x64": "0.24.2",
|
||||||
"@esbuild/freebsd-arm64": "0.24.0",
|
"@esbuild/freebsd-arm64": "0.24.2",
|
||||||
"@esbuild/freebsd-x64": "0.24.0",
|
"@esbuild/freebsd-x64": "0.24.2",
|
||||||
"@esbuild/linux-arm": "0.24.0",
|
"@esbuild/linux-arm": "0.24.2",
|
||||||
"@esbuild/linux-arm64": "0.24.0",
|
"@esbuild/linux-arm64": "0.24.2",
|
||||||
"@esbuild/linux-ia32": "0.24.0",
|
"@esbuild/linux-ia32": "0.24.2",
|
||||||
"@esbuild/linux-loong64": "0.24.0",
|
"@esbuild/linux-loong64": "0.24.2",
|
||||||
"@esbuild/linux-mips64el": "0.24.0",
|
"@esbuild/linux-mips64el": "0.24.2",
|
||||||
"@esbuild/linux-ppc64": "0.24.0",
|
"@esbuild/linux-ppc64": "0.24.2",
|
||||||
"@esbuild/linux-riscv64": "0.24.0",
|
"@esbuild/linux-riscv64": "0.24.2",
|
||||||
"@esbuild/linux-s390x": "0.24.0",
|
"@esbuild/linux-s390x": "0.24.2",
|
||||||
"@esbuild/linux-x64": "0.24.0",
|
"@esbuild/linux-x64": "0.24.2",
|
||||||
"@esbuild/netbsd-x64": "0.24.0",
|
"@esbuild/netbsd-arm64": "0.24.2",
|
||||||
"@esbuild/openbsd-arm64": "0.24.0",
|
"@esbuild/netbsd-x64": "0.24.2",
|
||||||
"@esbuild/openbsd-x64": "0.24.0",
|
"@esbuild/openbsd-arm64": "0.24.2",
|
||||||
"@esbuild/sunos-x64": "0.24.0",
|
"@esbuild/openbsd-x64": "0.24.2",
|
||||||
"@esbuild/win32-arm64": "0.24.0",
|
"@esbuild/sunos-x64": "0.24.2",
|
||||||
"@esbuild/win32-ia32": "0.24.0",
|
"@esbuild/win32-arm64": "0.24.2",
|
||||||
"@esbuild/win32-x64": "0.24.0"
|
"@esbuild/win32-ia32": "0.24.2",
|
||||||
|
"@esbuild/win32-x64": "0.24.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/escalade": {
|
"node_modules/escalade": {
|
||||||
@@ -9535,13 +9553,13 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "6.0.1",
|
"version": "6.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz",
|
||||||
"integrity": "sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==",
|
"integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.24.0",
|
"esbuild": "^0.24.2",
|
||||||
"postcss": "^8.4.49",
|
"postcss": "^8.4.49",
|
||||||
"rollup": "^4.23.0"
|
"rollup": "^4.23.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -34,113 +34,104 @@ export default function Page() {
|
|||||||
}, [theme]);
|
}, [theme]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full mt-16">
|
<div className="w-full mt-16">
|
||||||
<Particles
|
<Particles
|
||||||
className="absolute inset-0 -z-40"
|
className="absolute inset-0 -z-40"
|
||||||
quantity={100}
|
quantity={100}
|
||||||
ease={80}
|
ease={80}
|
||||||
color={color}
|
color={color}
|
||||||
refresh
|
refresh
|
||||||
/>
|
/>
|
||||||
<div className="container mx-auto">
|
<div className="container mx-auto">
|
||||||
<div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40">
|
<div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40">
|
||||||
<Dialog>
|
<Dialog>
|
||||||
<DialogTrigger>
|
<DialogTrigger>
|
||||||
<div>
|
<div>
|
||||||
<AnimatedGradientText>
|
<AnimatedGradientText>
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
`absolute inset-0 block size-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] [border-radius:inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`,
|
`absolute inset-0 block size-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] [border-radius:inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`,
|
||||||
`p-px ![mask-composite:subtract]`,
|
`p-px ![mask-composite:subtract]`,
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
❤️ <Separator className="mx-2 h-4" orientation="vertical" />
|
❤️ <Separator className="mx-2 h-4" orientation="vertical" />
|
||||||
<span
|
<span
|
||||||
className={cn(
|
className={cn(
|
||||||
`animate-gradient bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent`,
|
`animate-gradient bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent`,
|
||||||
`inline`,
|
`inline`,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
Scripts by Tteck
|
Scripts by tteck
|
||||||
</span>
|
</span>
|
||||||
</AnimatedGradientText>
|
</AnimatedGradientText>
|
||||||
</div>
|
</div>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>Thank You!</DialogTitle>
|
<DialogTitle>Thank You!</DialogTitle>
|
||||||
<DialogDescription>
|
<DialogDescription>
|
||||||
A big thank you to Tteck and the many contributors who have
|
A big thank you to tteck and the many contributors who have
|
||||||
made this project possible. Your hard work is truly
|
made this project possible. Your hard work is truly
|
||||||
appreciated by the entire Proxmox community!
|
appreciated by the entire Proxmox community!
|
||||||
</DialogDescription>
|
</DialogDescription>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<CardFooter className="flex flex-col gap-2">
|
<CardFooter className="flex flex-col gap-2">
|
||||||
<Button className="w-full" variant="outline" asChild>
|
<Button className="w-full" variant="outline" asChild>
|
||||||
<a
|
<a
|
||||||
href="https://github.com/tteck"
|
href="https://github.com/tteck"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="flex items-center justify-center"
|
className="flex items-center justify-center"
|
||||||
>
|
>
|
||||||
<FaGithub className="mr-2 h-4 w-4" /> Tteck's GitHub
|
<FaGithub className="mr-2 h-4 w-4" /> Tteck's GitHub
|
||||||
</a>
|
</a>
|
||||||
</Button>
|
</Button>
|
||||||
<Button className="w-full" asChild>
|
<Button className="w-full" asChild>
|
||||||
<a
|
<a
|
||||||
href={`https://github.com/community-scripts/${basePath}`}
|
href={`https://github.com/community-scripts/${basePath}`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="flex items-center justify-center"
|
className="flex items-center justify-center"
|
||||||
>
|
>
|
||||||
<ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper
|
<ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper
|
||||||
Scripts
|
Scripts
|
||||||
</a>
|
</a>
|
||||||
</Button>
|
</Button>
|
||||||
</CardFooter>
|
</CardFooter>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|
||||||
<div className="flex flex-col gap-4">
|
<div className="flex flex-col gap-4">
|
||||||
<h1 className="max-w-2xl text-center text-5xl font-semibold tracking-tighter md:text-7xl">
|
<h1 className="max-w-2xl text-center text-3xl font-semibold tracking-tighter md:text-7xl">
|
||||||
Make managing your Homelab a breeze
|
Make managing your Homelab a breeze
|
||||||
</h1>
|
</h1>
|
||||||
<p className="max-w-2xl text-center text-lg leading-relaxed tracking-tight text-muted-foreground md:text-xl">
|
<div className="max-w-2xl gap-2 flex flex-col text-center sm:text-lg text-sm leading-relaxed tracking-tight text-muted-foreground md:text-xl">
|
||||||
We are a community-driven initiative that simplifies the setup of
|
<p>
|
||||||
Proxmox Virtual Environment (VE).
|
We are a community-driven initiative that simplifies the setup
|
||||||
<br />
|
of Proxmox Virtual Environment (VE).
|
||||||
<br />
|
</p>
|
||||||
Originally created by{" "}
|
<p>
|
||||||
<a href="https://github.com/tteck" target="_blank">
|
With 200+ scripts to help you manage your{" "}
|
||||||
tteck
|
<b>Proxmox VE environment</b>. Whether you're a seasoned
|
||||||
</a>
|
user or a newcomer, we've got you covered.
|
||||||
, these scripts automate and streamline
|
</p>
|
||||||
<br />
|
</div>
|
||||||
the process of creating and configuring Linux containers (LXC) and
|
</div>
|
||||||
virtual machines (VMs) on Proxmox VE.
|
<div className="flex flex-row gap-3">
|
||||||
<br />
|
<Link href="/scripts">
|
||||||
<br />
|
<Button
|
||||||
With 200+ scripts to help you manage your{" "}
|
size="lg"
|
||||||
<b>Proxmox VE environment</b>.<br />
|
variant="expandIcon"
|
||||||
Whether you're a seasoned user or a newcomer, we've got
|
Icon={CustomArrowRightIcon}
|
||||||
you covered.
|
iconPlacement="right"
|
||||||
</p>
|
className="hover:"
|
||||||
</div>
|
>
|
||||||
<div className="flex flex-row gap-3">
|
View Scripts
|
||||||
<Link href="/scripts">
|
</Button>
|
||||||
<Button
|
</Link>
|
||||||
size="lg"
|
</div>
|
||||||
variant="expandIcon"
|
</div>
|
||||||
Icon={CustomArrowRightIcon}
|
</div>
|
||||||
iconPlacement="right"
|
</div>
|
||||||
className="hover:"
|
);
|
||||||
>
|
|
||||||
View Scripts
|
|
||||||
</Button>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,43 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { Category } from "@/lib/types";
|
import type { Category, Script } from "@/lib/types";
|
||||||
import ScriptAccordion from "./ScriptAccordion";
|
import ScriptAccordion from "./ScriptAccordion";
|
||||||
|
|
||||||
const Sidebar = ({
|
const Sidebar = ({
|
||||||
items,
|
items,
|
||||||
selectedScript,
|
selectedScript,
|
||||||
setSelectedScript,
|
setSelectedScript,
|
||||||
}: {
|
}: {
|
||||||
items: Category[];
|
items: Category[];
|
||||||
selectedScript: string | null;
|
selectedScript: string | null;
|
||||||
setSelectedScript: (script: string | null) => void;
|
setSelectedScript: (script: string | null) => void;
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
const uniqueScripts = items.reduce((acc, category) => {
|
||||||
<div className="flex min-w-72 flex-col sm:max-w-72">
|
for (const script of category.scripts) {
|
||||||
<div className="flex items-end justify-between pb-4">
|
if (!acc.some((s) => s.name === script.name)) {
|
||||||
<h1 className="text-xl font-bold">Categories</h1>
|
acc.push(script);
|
||||||
<p className="text-xs italic text-muted-foreground">
|
}
|
||||||
{items.reduce((acc, category) => acc + category.scripts.length, 0)}{" "}
|
}
|
||||||
Total scripts
|
return acc;
|
||||||
</p>
|
}, [] as Script[]);
|
||||||
</div>
|
|
||||||
<div className="rounded-lg">
|
return (
|
||||||
<ScriptAccordion
|
<div className="flex min-w-72 flex-col sm:max-w-72">
|
||||||
items={items}
|
<div className="flex items-end justify-between pb-4">
|
||||||
selectedScript={selectedScript}
|
<h1 className="text-xl font-bold">Categories</h1>
|
||||||
setSelectedScript={setSelectedScript}
|
<p className="text-xs italic text-muted-foreground">
|
||||||
/>
|
{uniqueScripts.length} Total scripts
|
||||||
</div>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
<div className="rounded-lg">
|
||||||
|
<ScriptAccordion
|
||||||
|
items={items}
|
||||||
|
selectedScript={selectedScript}
|
||||||
|
setSelectedScript={setSelectedScript}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Sidebar;
|
export default Sidebar;
|
||||||
@@ -5,7 +5,7 @@ export default function Footer() {
|
|||||||
return (
|
return (
|
||||||
<div className="supports-backdrop-blur:bg-background/90 mt-auto flex border-t border-border bg-background/40 py-6 backdrop-blur-lg">
|
<div className="supports-backdrop-blur:bg-background/90 mt-auto flex border-t border-border bg-background/40 py-6 backdrop-blur-lg">
|
||||||
<div className="flex w-full justify-between">
|
<div className="flex w-full justify-between">
|
||||||
<div className="mx-6 w-full max-w-7xl text-sm text-muted-foreground">
|
<div className="mx-6 w-full max-w-7xl text-xs sm:text-sm text-muted-foreground">
|
||||||
Website built by the community. The source code is avaliable on{" "}
|
Website built by the community. The source code is avaliable on{" "}
|
||||||
<Link
|
<Link
|
||||||
href={`https://github.com/community-scripts/${basePath}`}
|
href={`https://github.com/community-scripts/${basePath}`}
|
||||||
|
|||||||
@@ -9,12 +9,7 @@ import { navbarLinks } from "@/config/siteConfig";
|
|||||||
import CommandMenu from "./CommandMenu";
|
import CommandMenu from "./CommandMenu";
|
||||||
import StarOnGithubButton from "./ui/star-on-github-button";
|
import StarOnGithubButton from "./ui/star-on-github-button";
|
||||||
import { ThemeToggle } from "./ui/theme-toggle";
|
import { ThemeToggle } from "./ui/theme-toggle";
|
||||||
import {
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip";
|
||||||
Tooltip,
|
|
||||||
TooltipContent,
|
|
||||||
TooltipProvider,
|
|
||||||
TooltipTrigger,
|
|
||||||
} from "./ui/tooltip";
|
|
||||||
|
|
||||||
export const dynamic = "force-dynamic";
|
export const dynamic = "force-dynamic";
|
||||||
|
|
||||||
@@ -33,56 +28,59 @@ function Navbar() {
|
|||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
className={`fixed left-0 top-0 z-50 flex w-screen justify-center px-4 xl:px-0 ${
|
className={`fixed left-0 top-0 z-50 flex w-screen justify-center px-4 xl:px-0 ${
|
||||||
isScrolled ? "glass border-b bg-background/50" : ""
|
isScrolled ? "glass border-b bg-background/50" : ""
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<div className="flex h-20 w-full max-w-7xl flex-row-reverse items-center justify-between sm:flex-row">
|
<div className="flex h-20 w-full max-w-7xl items-center justify-between sm:flex-row">
|
||||||
<Link
|
<Link
|
||||||
href={"/"}
|
href={"/"}
|
||||||
className="flex cursor-pointer flex-row-reverse items-center gap-2 font-semibold sm:flex-row"
|
className="flex cursor-pointer w-full justify-center sm:justify-start flex-row-reverse items-center gap-2 font-semibold sm:flex-row"
|
||||||
>
|
>
|
||||||
<Image
|
<Image
|
||||||
height={18}
|
height={18}
|
||||||
unoptimized
|
unoptimized
|
||||||
width={18}
|
width={18}
|
||||||
alt="logo"
|
alt="logo"
|
||||||
src="logo.png"
|
src="/ProxmoxVE/logo.png"
|
||||||
/>
|
className=""
|
||||||
<span className="hidden lg:block">Proxmox VE Helper-Scripts</span>
|
/>
|
||||||
</Link>
|
<span className="hidden md:block">Proxmox VE Helper-Scripts</span>
|
||||||
<div className="flex gap-2">
|
</Link>
|
||||||
<CommandMenu />
|
<div className="flex gap-2">
|
||||||
<StarOnGithubButton />
|
<CommandMenu />
|
||||||
{navbarLinks.map(({ href, event, icon, text }) => (
|
<StarOnGithubButton />
|
||||||
<TooltipProvider key={event}>
|
{navbarLinks.map(({ href, event, icon, text, mobileHidden }) => (
|
||||||
<Tooltip delayDuration={100}>
|
<TooltipProvider key={event}>
|
||||||
<TooltipTrigger>
|
<Tooltip delayDuration={100}>
|
||||||
<Button variant="ghost" size={"icon"} asChild>
|
<TooltipTrigger
|
||||||
<Link
|
className={mobileHidden ? "hidden lg:block" : ""}
|
||||||
target="_blank"
|
>
|
||||||
href={href}
|
<Button variant="ghost" size={"icon"} asChild>
|
||||||
data-umami-event={event}
|
<Link
|
||||||
>
|
target="_blank"
|
||||||
{icon}
|
href={href}
|
||||||
<span className="sr-only">{text}</span>
|
data-umami-event={event}
|
||||||
</Link>
|
>
|
||||||
</Button>
|
{icon}
|
||||||
</TooltipTrigger>
|
<span className="sr-only">{text}</span>
|
||||||
<TooltipContent side="bottom" className="text-xs">
|
</Link>
|
||||||
{text}
|
</Button>
|
||||||
</TooltipContent>
|
</TooltipTrigger>
|
||||||
</Tooltip>
|
<TooltipContent side="bottom" className="text-xs">
|
||||||
</TooltipProvider>
|
{text}
|
||||||
))}
|
</TooltipContent>
|
||||||
<ThemeToggle />
|
</Tooltip>
|
||||||
</div>
|
</TooltipProvider>
|
||||||
</div>
|
))}
|
||||||
</div>
|
<ThemeToggle />
|
||||||
</>
|
</div>
|
||||||
);
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Navbar;
|
export default Navbar;
|
||||||
|
|||||||
@@ -1,45 +1,51 @@
|
|||||||
import { OperatingSystem } from "@/lib/types";
|
import { OperatingSystem } from "@/lib/types";
|
||||||
import { MessagesSquare, Scroll } from "lucide-react";
|
import { MessagesSquare, Scroll } from "lucide-react";
|
||||||
import { FaDiscord, FaGithub } from "react-icons/fa";
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
import { FaDiscord, FaGithub } from "react-icons/fa";
|
||||||
|
|
||||||
export const basePath = process.env.BASE_PATH;
|
export const basePath = process.env.BASE_PATH;
|
||||||
|
|
||||||
const isMobile = typeof window !== "undefined" && window.innerWidth < 640;
|
const isMobile = typeof window !== "undefined" && window.innerWidth < 640;
|
||||||
|
|
||||||
export const navbarLinks = [
|
export const navbarLinks = [
|
||||||
{
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}`,
|
href: `https://github.com/community-scripts/${basePath}`,
|
||||||
event: "Github",
|
event: "Github",
|
||||||
icon: <FaGithub className="h-4 w-4" />,
|
icon: <FaGithub className="h-4 w-4" />,
|
||||||
text: "Github",
|
text: "Github",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: `https://discord.gg/2wvnMDgdnU`,
|
href: `https://discord.gg/2wvnMDgdnU`,
|
||||||
event: "Discord",
|
event: "Discord",
|
||||||
icon: <FaDiscord className="h-4 w-4" />,
|
icon: <FaDiscord className="h-4 w-4" />,
|
||||||
text: "Discord",
|
text: "Discord",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`,
|
href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`,
|
||||||
event: "Change Log",
|
event: "Change Log",
|
||||||
icon: <Scroll className="h-4 w-4" />,
|
icon: <Scroll className="h-4 w-4" />,
|
||||||
text: "Change Log",
|
text: "Change Log",
|
||||||
},
|
mobileHidden: true,
|
||||||
!isMobile
|
},
|
||||||
? {
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}/discussions`,
|
href: `https://github.com/community-scripts/${basePath}/discussions`,
|
||||||
event: "Discussions",
|
event: "Discussions",
|
||||||
icon: <MessagesSquare className="h-4 w-4" />,
|
icon: <MessagesSquare className="h-4 w-4" />,
|
||||||
text: "Discussions",
|
text: "Discussions",
|
||||||
}
|
mobileHidden: true,
|
||||||
: null,
|
},
|
||||||
].filter(Boolean) as { href: string; event: string; icon: React.ReactNode; text: string }[];
|
].filter(Boolean) as {
|
||||||
|
href: string;
|
||||||
|
event: string;
|
||||||
|
icon: React.ReactNode;
|
||||||
|
text: string;
|
||||||
|
mobileHidden?: boolean;
|
||||||
|
}[];
|
||||||
|
|
||||||
export const mostPopularScripts = [
|
export const mostPopularScripts = [
|
||||||
"Proxmox VE Post Install",
|
"Proxmox VE Post Install",
|
||||||
"Docker",
|
"Docker",
|
||||||
"Home Assistant OS",
|
"Home Assistant OS",
|
||||||
];
|
];
|
||||||
|
|
||||||
export const analytics = {
|
export const analytics = {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ msg_ok "Installed Dependencies"
|
|||||||
msg_info "Setting up Node.js Repository"
|
msg_info "Setting up Node.js Repository"
|
||||||
mkdir -p /etc/apt/keyrings
|
mkdir -p /etc/apt/keyrings
|
||||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||||
msg_ok "Set up Node.js Repository"
|
msg_ok "Set up Node.js Repository"
|
||||||
|
|
||||||
msg_info "Installing Node.js"
|
msg_info "Installing Node.js"
|
||||||
@@ -36,10 +36,12 @@ $STD apt-get install -y nodejs
|
|||||||
$STD npm install --global yarn
|
$STD npm install --global yarn
|
||||||
msg_ok "Installed Node.js"
|
msg_ok "Installed Node.js"
|
||||||
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name')
|
msg_info "Installing Actual Budget"
|
||||||
msg_info "Installing Actual Budget $RELEASE"
|
cd /opt
|
||||||
wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz
|
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mv actualbudget-actual-server-* /opt/actualbudget
|
wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
|
||||||
|
tar -xzf v${RELEASE}.tar.gz
|
||||||
|
mv *ctual-server-* /opt/actualbudget
|
||||||
mkdir -p /opt/actualbudget/server-files
|
mkdir -p /opt/actualbudget/server-files
|
||||||
mkdir -p /opt/actualbudget-data
|
mkdir -p /opt/actualbudget-data
|
||||||
chown -R root:root /opt/actualbudget/server-files
|
chown -R root:root /opt/actualbudget/server-files
|
||||||
@@ -52,6 +54,7 @@ PORT=5006
|
|||||||
EOF
|
EOF
|
||||||
cd /opt/actualbudget
|
cd /opt/actualbudget
|
||||||
$STD yarn install
|
$STD yarn install
|
||||||
|
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||||
msg_ok "Installed Actual Budget"
|
msg_ok "Installed Actual Budget"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
|||||||
54
install/beszel-install.sh
Normal file
54
install/beszel-install.sh
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Michelle Zitzerman (Sinofage)
|
||||||
|
# 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 \
|
||||||
|
curl \
|
||||||
|
tar \
|
||||||
|
sudo \
|
||||||
|
mc
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Installing Beszel"
|
||||||
|
mkdir -p /opt/beszel
|
||||||
|
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/armv6l/arm/' -e 's/armv7l/arm/' -e 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee /opt/beszel/beszel >/dev/null
|
||||||
|
chmod +x /opt/beszel/beszel
|
||||||
|
msg_ok "Installed Beszel"
|
||||||
|
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<EOF >/etc/systemd/system/beszel-hub.service
|
||||||
|
[Unit]
|
||||||
|
Description=Beszel Hub Service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/opt/beszel/beszel serve --http "0.0.0.0:8090"
|
||||||
|
WorkingDirectory=/opt/beszel
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now beszel-hub.service
|
||||||
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||||
color
|
color
|
||||||
@@ -14,7 +13,14 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y {debian-keyring,debian-archive-keyring,apt-transport-https,gpg,curl,sudo,mc}
|
$STD apt-get install -y \
|
||||||
|
debian-keyring \
|
||||||
|
debian-archive-keyring \
|
||||||
|
apt-transport-https \
|
||||||
|
gpg \
|
||||||
|
curl \
|
||||||
|
sudo \
|
||||||
|
mc
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Caddy"
|
msg_info "Installing Caddy"
|
||||||
@@ -24,6 +30,29 @@ $STD apt-get update
|
|||||||
$STD apt-get install -y caddy
|
$STD apt-get install -y caddy
|
||||||
msg_ok "Installed Caddy"
|
msg_ok "Installed Caddy"
|
||||||
|
|
||||||
|
read -r -p "Would you like to install xCaddy Addon? <y/N> " prompt
|
||||||
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||||
|
msg_info "Installing Golang"
|
||||||
|
cd /opt
|
||||||
|
set +o pipefail
|
||||||
|
GOLANG=$(curl -s https://go.dev/dl/ | grep -o "go.*\linux-amd64.tar.gz" | head -n 1)
|
||||||
|
wget -q https://golang.org/dl/$GOLANG
|
||||||
|
tar -xzf $GOLANG -C /usr/local
|
||||||
|
ln -s /usr/local/go/bin/go /usr/local/bin/go
|
||||||
|
set -o pipefail
|
||||||
|
rm -rf /opt/go*
|
||||||
|
msg_ok "Installed Golang"
|
||||||
|
|
||||||
|
msg_info "Setup xCaddy"
|
||||||
|
cd /opt
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
wget -q https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb
|
||||||
|
$STD dpkg -i xcaddy_${RELEASE:1}_linux_amd64.deb
|
||||||
|
rm -rf /opt/xcaddy*
|
||||||
|
$STD xcaddy build
|
||||||
|
msg_ok "Setup xCaddy"
|
||||||
|
fi
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|
||||||
|
|||||||
@@ -44,34 +44,36 @@ $STD apt-get install -y \
|
|||||||
libavfilter-dev \
|
libavfilter-dev \
|
||||||
libmariadb-dev-compat \
|
libmariadb-dev-compat \
|
||||||
libatlas-base-dev \
|
libatlas-base-dev \
|
||||||
software-properties-common
|
software-properties-common \
|
||||||
|
libmariadb-dev \
|
||||||
|
pkg-config
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setup Python3"
|
msg_info "Setup Python3/pip"
|
||||||
$STD add-apt-repository -y ppa:deadsnakes/ppa
|
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
|
$STD rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||||
|
$STD apt-get remove --purge -y python3.12 python3.12-dev python3.12-venv
|
||||||
|
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
python3.13-* \
|
python3.13 \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
python3.13-dev \
|
python3.13-dev \
|
||||||
python3.13-venv
|
python3.13-venv
|
||||||
msg_ok "Setup Python3"
|
|
||||||
|
|
||||||
msg_info "Installing UV"
|
ln -sf /usr/bin/python3.13 /usr/bin/python3
|
||||||
$STD pip install uv
|
msg_ok "Setup Python3"
|
||||||
msg_ok "Installed UV"
|
|
||||||
|
|
||||||
msg_info "Setting up Home Assistant-Core environment"
|
msg_info "Setting up Home Assistant-Core environment"
|
||||||
mkdir /srv/homeassistant
|
mkdir /srv/homeassistant
|
||||||
cd /srv/homeassistant
|
cd /srv/homeassistant
|
||||||
uv venv . &>/dev/null
|
python3 -m venv .
|
||||||
source bin/activate
|
source bin/activate
|
||||||
msg_ok "Created virtual environment with UV"
|
msg_ok "Created virtual environment"
|
||||||
|
|
||||||
msg_info "Installing Home Assistant-Core and packages"
|
msg_info "Installing Home Assistant-Core"
|
||||||
$STD uv pip install webrtcvad wheel homeassistant mysqlclient psycopg2-binary isal
|
$STD python3 -m pip install webrtcvad wheel homeassistant mysqlclient psycopg2-binary isal
|
||||||
mkdir -p /root/.homeassistant
|
mkdir -p /root/.homeassistant
|
||||||
msg_ok "Installed Home Assistant-Core and required packages"
|
msg_ok "Installed Home Assistant-Core"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/homeassistant.service
|
cat <<EOF >/etc/systemd/system/homeassistant.service
|
||||||
@@ -97,4 +99,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 "Cleaned"
|
||||||
@@ -24,10 +24,25 @@ $STD apt-get install -y \
|
|||||||
expect \
|
expect \
|
||||||
composer \
|
composer \
|
||||||
mariadb-server \
|
mariadb-server \
|
||||||
libapache2-mod-php \
|
lsb-release
|
||||||
php8.2-{mbstring,gd,intl,pdo,mysql,tokenizer,zip,xml}
|
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Setup PHP8.4 Repository"
|
||||||
|
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
|
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||||
|
$STD apt-get update
|
||||||
|
msg_ok "Setup PHP8.4 Repository"
|
||||||
|
|
||||||
|
msg_info "Setup PHP"
|
||||||
|
$STD apt-get remove -y php8.2*
|
||||||
|
#$STD apt-get remove -y php8.3*
|
||||||
|
$STD apt-get install -y \
|
||||||
|
php8.3 \
|
||||||
|
php8.3-{mbstring,gd,intl,common,mysql,zip,xml} \
|
||||||
|
libapache2-mod-php8.3
|
||||||
|
msg_info "Setup PHP"
|
||||||
|
|
||||||
msg_info "Setting up database"
|
msg_info "Setting up database"
|
||||||
DB_NAME=kimai_db
|
DB_NAME=kimai_db
|
||||||
DB_USER=kimai
|
DB_USER=kimai
|
||||||
@@ -72,6 +87,7 @@ send "helper-scripts.com\r"
|
|||||||
|
|
||||||
expect eof
|
expect eof
|
||||||
EOF
|
EOF
|
||||||
|
$STD composer update --no-interaction
|
||||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||||
msg_ok "Installed Kimai"
|
msg_ok "Installed Kimai"
|
||||||
|
|
||||||
|
|||||||
@@ -14,33 +14,35 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies (Patience)"
|
msg_info "Installing Dependencies (Patience)"
|
||||||
$STD apt-get install -y curl
|
$STD apt-get install -y \
|
||||||
$STD apt-get install -y sudo
|
curl \
|
||||||
$STD apt-get install -y mc
|
sudo \
|
||||||
$STD apt-get install -y exiftool
|
mc \
|
||||||
$STD apt-get install -y ffmpeg
|
exiftool \
|
||||||
$STD apt-get install -y libheif1
|
ffmpeg \
|
||||||
$STD apt-get install -y libpng-dev
|
libheif1 \
|
||||||
$STD apt-get install -y libjpeg-dev
|
libpng-dev \
|
||||||
$STD apt-get install -y libtiff-dev
|
libjpeg-dev \
|
||||||
$STD apt-get install -y imagemagick
|
libtiff-dev \
|
||||||
$STD apt-get install -y darktable
|
imagemagick \
|
||||||
$STD apt-get install -y rawtherapee
|
darktable \
|
||||||
$STD apt-get install -y libvips42
|
rawtherapee \
|
||||||
|
libvips42 \
|
||||||
|
lsb-release
|
||||||
|
|
||||||
echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
|
echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
|
||||||
export PATH=/usr/local:$PATH
|
export PATH=/usr/local:$PATH
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing PhotoPrism (Patience)"
|
msg_info "Installing PhotoPrism (Patience)"
|
||||||
mkdir -p /opt/photoprism/{cache,config,photos/originals,photos/import,storage,temp}
|
mkdir -p /opt/photoprism/{cache,config,photos,storage,temp}
|
||||||
|
mkdir -p /opt/photoprism/photos/{originals,import}
|
||||||
|
mkdir -p /opt/photoprism_backups
|
||||||
wget -q -cO - https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1
|
wget -q -cO - https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1
|
||||||
if [[ ${PCT_OSTYPE} == "ubuntu" ]]; then
|
LIBHEIF_URL=$(wget -q -O - "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
|
||||||
wget -q -cO - https://dl.photoprism.app/dist/libheif/libheif-jammy-amd64-v1.17.1.tar.gz | tar -xzf - -C /usr/local --strip-components=1
|
wget -q -cO - "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" | tar -xzf - -C /usr/local --strip-components=1
|
||||||
else
|
|
||||||
wget -q -cO - https://dl.photoprism.app/dist/libheif/libheif-bookworm-amd64-v1.17.1.tar.gz | tar -xzf - -C /usr/local --strip-components=1
|
|
||||||
fi
|
|
||||||
ldconfig
|
ldconfig
|
||||||
|
chmod -R 755 /opt/photoprism/photos/originals
|
||||||
cat <<EOF >/opt/photoprism/config/.env
|
cat <<EOF >/opt/photoprism/config/.env
|
||||||
PHOTOPRISM_AUTH_MODE='password'
|
PHOTOPRISM_AUTH_MODE='password'
|
||||||
PHOTOPRISM_ADMIN_PASSWORD='changeme'
|
PHOTOPRISM_ADMIN_PASSWORD='changeme'
|
||||||
@@ -50,6 +52,14 @@ PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com'
|
|||||||
PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage'
|
PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage'
|
||||||
PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals'
|
PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals'
|
||||||
PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import'
|
PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import'
|
||||||
|
PHOTOPRISM_BACKUP_PATH='/opt/photoprism_backups'
|
||||||
|
PHOTOPRISM_DATABASE_DRIVER='sqlite'
|
||||||
|
PHOTOPRISM_DISABLE_WEBDAV='false'
|
||||||
|
PHOTOPRISM_DISABLE_FACES='false'
|
||||||
|
PHOTOPRISM_AUTO_INDEX='300'
|
||||||
|
PHOTOPRISM_AUTO_IMPORT='-1'
|
||||||
|
PHOTOPRISM_PUBLIC='false'
|
||||||
|
PHOTOPRISM_DEBUG='false'
|
||||||
EOF
|
EOF
|
||||||
ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism
|
ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism
|
||||||
msg_ok "Installed PhotoPrism"
|
msg_ok "Installed PhotoPrism"
|
||||||
|
|||||||
91
install/projectsend-install.sh
Normal file
91
install/projectsend-install.sh
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: bvdberg01
|
||||||
|
# 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 \
|
||||||
|
curl \
|
||||||
|
sudo \
|
||||||
|
mc \
|
||||||
|
mariadb-server \
|
||||||
|
apache2 \
|
||||||
|
libapache2-mod-php \
|
||||||
|
php8.2-{pdo,mysql,mbstring,gettext,fileinfo,gd,xml,zip}
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Setting up MariaDB"
|
||||||
|
DB_NAME=projectsend
|
||||||
|
DB_USER=projectsend
|
||||||
|
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
|
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
||||||
|
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
|
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
|
{
|
||||||
|
echo "projectsend-Credentials"
|
||||||
|
echo "projectsend Database User: $DB_USER"
|
||||||
|
echo "projectsend Database Password: $DB_PASS"
|
||||||
|
echo "projectsend Database Name: $DB_NAME"
|
||||||
|
} >> ~/projectsend.creds
|
||||||
|
msg_ok "Set up MariaDB"
|
||||||
|
|
||||||
|
msg_info "Installing projectsend"
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
cd /opt
|
||||||
|
wget -q "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip"
|
||||||
|
mkdir projectsend
|
||||||
|
unzip -q "projectsend-r${RELEASE}.zip" -d projectsend
|
||||||
|
mv /opt/projectsend/includes/sys.config.sample.php /opt/projectsend/includes/sys.config.php
|
||||||
|
chown -R www-data:www-data /opt/projectsend
|
||||||
|
chmod -R 775 /opt/projectsend
|
||||||
|
chmod 644 /opt/projectsend/includes/sys.config.php
|
||||||
|
sed -i -e "s/\(define('DB_NAME', \).*/\1'$DB_NAME');/" \
|
||||||
|
-e "s/\(define('DB_USER', \).*/\1'$DB_USER');/" \
|
||||||
|
-e "s/\(define('DB_PASSWORD', \).*/\1'$DB_PASS');/" \
|
||||||
|
/opt/projectsend/includes/sys.config.php
|
||||||
|
sed -i -e "s/^\(memory_limit = \).*/\1 256M/" \
|
||||||
|
-e "s/^\(post_max_size = \).*/\1 256M/" \
|
||||||
|
-e "s/^\(upload_max_filesize = \).*/\1 256M/" \
|
||||||
|
-e "s/^\(max_execution_time = \).*/\1 300/" \
|
||||||
|
/etc/php/8.2/apache2/php.ini
|
||||||
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
|
msg_ok "Installed projectsend"
|
||||||
|
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<EOF >/etc/apache2/sites-available/projectsend.conf
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName projectsend
|
||||||
|
DocumentRoot /opt/projectsend
|
||||||
|
<Directory /opt/projectsend>
|
||||||
|
Options FollowSymLinks
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ErrorLog /var/log/apache2/projectsend_error.log
|
||||||
|
CustomLog /var/log/apache2/projectsend_access.log combined
|
||||||
|
</VirtualHost>
|
||||||
|
EOF
|
||||||
|
$STD a2ensite projectsend
|
||||||
|
$STD a2enmod rewrite
|
||||||
|
$STD a2dissite 000-default.conf
|
||||||
|
$STD systemctl reload apache2
|
||||||
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf "/opt/projectsend-r${RELEASE}.zip"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
63
install/sqlserver2022-install.sh
Normal file
63
install/sqlserver2022-install.sh
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Kristian Skov
|
||||||
|
# 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 install -y \
|
||||||
|
curl \
|
||||||
|
mc \
|
||||||
|
sudo \
|
||||||
|
gpg \
|
||||||
|
coreutils
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Setup SQL Server 2022"
|
||||||
|
$STD curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
|
||||||
|
$STD curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
|
||||||
|
$STD curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list
|
||||||
|
$STD apt-get clean *
|
||||||
|
$STD apt-get update -y
|
||||||
|
$STD apt-get install -y mssql-server
|
||||||
|
msg_ok "Setup Server 2022"
|
||||||
|
|
||||||
|
msg_info "Installing SQL Server Tools"
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
|
||||||
|
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y -qq \
|
||||||
|
mssql-tools18 \
|
||||||
|
unixodbc-dev
|
||||||
|
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
|
||||||
|
source ~/.bash_profile
|
||||||
|
msg_ok "Installed SQL Server Tools"
|
||||||
|
|
||||||
|
read -r -p "Do you want to run the SQL server setup now? (Later is also possible) <y/N>" prompt
|
||||||
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||||
|
/opt/mssql/bin/mssql-conf setup
|
||||||
|
else
|
||||||
|
msg_ok "Skipping SQL Server setup. You can run it later with '/opt/mssql/bin/mssql-conf setup'."
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Start Service"
|
||||||
|
systemctl enable -q --now mssql-server
|
||||||
|
msg_ok "Service started"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
@@ -30,6 +30,7 @@ VERSION="${RELEASE#tc_v}"
|
|||||||
wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip"
|
wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip"
|
||||||
unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip"
|
unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip"
|
||||||
ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud
|
ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud
|
||||||
|
rm -rf teddycloud.amd64.release_v${VERSION}.zip
|
||||||
echo "${VERSION}" >"/opt/${APPLICATION}_version.txt"
|
echo "${VERSION}" >"/opt/${APPLICATION}_version.txt"
|
||||||
msg_ok "Installed TeddyCloud"
|
msg_ok "Installed TeddyCloud"
|
||||||
|
|
||||||
|
|||||||
37
install/urbackupserver-install.sh
Normal file
37
install/urbackupserver-install.sh
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Kristian Skov
|
||||||
|
# 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 \
|
||||||
|
curl \
|
||||||
|
sudo \
|
||||||
|
mc \
|
||||||
|
gnupg \
|
||||||
|
coreutils
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Installing UrBackup Server"
|
||||||
|
curl -fsSL https://download.opensuse.org/repositories/home:uroni/Debian_12/Release.key | gpg --dearmor >/etc/apt/trusted.gpg.d/home_uroni.gpg
|
||||||
|
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/home_uroni.gpg] http://download.opensuse.org/repositories/home:/uroni/Debian_12/ /' >/etc/apt/sources.list.d/home:uroni.list
|
||||||
|
$STD apt-get update -y
|
||||||
|
apt-get install -y -qq urbackup-server
|
||||||
|
msg_ok "Installed UrBackup Server"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "2FAuth",
|
"name": "2FAuth",
|
||||||
"slug": "2fauth",
|
"slug": "2fauth",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
6
|
||||||
],
|
],
|
||||||
"date_created": "2024-12-20",
|
"date_created": "2024-12-20",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "5etools",
|
"name": "5etools",
|
||||||
"slug": "5etools",
|
"slug": "5etools",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
24
|
||||||
],
|
],
|
||||||
"date_created": "2025-01-02",
|
"date_created": "2025-01-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Actual Budget",
|
"name": "Actual Budget",
|
||||||
"slug": "actualbudget",
|
"slug": "actualbudget",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
23
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "NetBird",
|
"name": "NetBird",
|
||||||
"slug": "add-netbird-lxc",
|
"slug": "add-netbird-lxc",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
1
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-19",
|
"date_created": "2024-05-19",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Tailscale",
|
"name": "Tailscale",
|
||||||
"slug": "add-tailscale-lxc",
|
"slug": "add-tailscale-lxc",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
1
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "AdGuard Home",
|
"name": "AdGuard Home",
|
||||||
"slug": "adguard",
|
"slug": "adguard",
|
||||||
"categories": [
|
"categories": [
|
||||||
13
|
5
|
||||||
],
|
],
|
||||||
"date_created": "2024-04-28",
|
"date_created": "2024-04-28",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "AdventureLog",
|
"name": "AdventureLog",
|
||||||
"slug": "adventurelog",
|
"slug": "adventurelog",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
24
|
||||||
],
|
],
|
||||||
"date_created": "2024-10-26",
|
"date_created": "2024-10-26",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "AgentDVR",
|
"name": "AgentDVR",
|
||||||
"slug": "agentdvr",
|
"slug": "agentdvr",
|
||||||
"categories": [
|
"categories": [
|
||||||
17
|
15
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "All Templates",
|
"name": "All Templates",
|
||||||
"slug": "all-templates",
|
"slug": "all-templates",
|
||||||
"categories": [
|
"categories": [
|
||||||
10
|
1
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Alpine",
|
"name": "Alpine",
|
||||||
"slug": "alpine",
|
"slug": "alpine",
|
||||||
"categories": [
|
"categories": [
|
||||||
9
|
2
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Apache-Cassandra",
|
"name": "Apache-Cassandra",
|
||||||
"slug": "apache-cassandra",
|
"slug": "apache-cassandra",
|
||||||
"categories": [
|
"categories": [
|
||||||
5
|
8
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Apache-CouchDB",
|
"name": "Apache-CouchDB",
|
||||||
"slug": "apache-couchdb",
|
"slug": "apache-couchdb",
|
||||||
"categories": [
|
"categories": [
|
||||||
5
|
8
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Apache Guacamole",
|
"name": "Apache Guacamole",
|
||||||
"slug": "apache-guacamole",
|
"slug": "apache-guacamole",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
0
|
||||||
],
|
],
|
||||||
"date_created": "2024-12-19",
|
"date_created": "2024-12-19",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Apt-Cacher-NG",
|
"name": "Apt-Cacher-NG",
|
||||||
"slug": "apt-cacher-ng",
|
"slug": "apt-cacher-ng",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
4
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "ArchiveBox",
|
"name": "ArchiveBox",
|
||||||
"slug": "archivebox",
|
"slug": "archivebox",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
12
|
||||||
],
|
],
|
||||||
"date_created": "2024-10-19",
|
"date_created": "2024-10-19",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Aria2",
|
"name": "Aria2",
|
||||||
"slug": "aria2",
|
"slug": "aria2",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
11
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "authentik",
|
"name": "authentik",
|
||||||
"slug": "authentik",
|
"slug": "authentik",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
6
|
||||||
],
|
],
|
||||||
"date_created": "2024-12-27",
|
"date_created": "2024-12-27",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Autobrr",
|
"name": "Autobrr",
|
||||||
"slug": "autobrr",
|
"slug": "autobrr",
|
||||||
"categories": [
|
"categories": [
|
||||||
18
|
14
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Bazarr",
|
"name": "Bazarr",
|
||||||
"slug": "bazarr",
|
"slug": "bazarr",
|
||||||
"categories": [
|
"categories": [
|
||||||
18
|
14
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
34
json/beszel.json
Normal file
34
json/beszel.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "Beszel",
|
||||||
|
"slug": "beszel",
|
||||||
|
"categories": [
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"date_created": "2025-01-20",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": false,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 8090,
|
||||||
|
"documentation": "https://beszel.dev/guide/what-is-beszel",
|
||||||
|
"website": "https://beszel.dev/",
|
||||||
|
"logo": "https://beszel.dev/icon.svg",
|
||||||
|
"description": "A lightweight server monitoring platform that provides Docker statistics, historical data, and alert functions\n ",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/beszel.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 512,
|
||||||
|
"hdd": 5,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Blocky",
|
"name": "Blocky",
|
||||||
"slug": "blocky",
|
"slug": "blocky",
|
||||||
"categories": [
|
"categories": [
|
||||||
13
|
5
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "BookStack",
|
"name": "BookStack",
|
||||||
"slug": "bookstack",
|
"slug": "bookstack",
|
||||||
"categories": [
|
"categories": [
|
||||||
14
|
12
|
||||||
],
|
],
|
||||||
"date_created": "2024-11-05",
|
"date_created": "2024-11-05",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "BunkerWeb",
|
"name": "BunkerWeb",
|
||||||
"slug": "bunkerweb",
|
"slug": "bunkerweb",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
6
|
||||||
],
|
],
|
||||||
"date_created": "2024-06-12",
|
"date_created": "2024-06-12",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Caddy",
|
"name": "Caddy",
|
||||||
"slug": "caddy",
|
"slug": "caddy",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
21
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-11",
|
"date_created": "2024-05-11",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 1,
|
"cpu": 1,
|
||||||
"ram": 512,
|
"ram": 512,
|
||||||
"hdd": 2,
|
"hdd": 4,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
@@ -30,5 +30,14 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [
|
||||||
}
|
{
|
||||||
|
"text": "if you need an internal module run: `caddy add-package PACKAGENAME`",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "if you need an external module run: `xcaddy build --with github.com/caddy-dns/cloudflare`",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Calibre-Web",
|
"name": "Calibre-Web",
|
||||||
"slug": "calibre-web",
|
"slug": "calibre-web",
|
||||||
"categories": [
|
"categories": [
|
||||||
12
|
11
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "CasaOS",
|
"name": "CasaOS",
|
||||||
"slug": "casaos",
|
"slug": "casaos",
|
||||||
"categories": [
|
"categories": [
|
||||||
8
|
2
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Change Detection",
|
"name": "Change Detection",
|
||||||
"slug": "changedetection",
|
"slug": "changedetection",
|
||||||
"categories": [
|
"categories": [
|
||||||
7
|
24
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Channels DVR Server",
|
"name": "Channels DVR Server",
|
||||||
"slug": "channels",
|
"slug": "channels",
|
||||||
"categories": [
|
"categories": [
|
||||||
17
|
15
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Checkmk",
|
"name": "Checkmk",
|
||||||
"slug": "checkmk",
|
"slug": "checkmk",
|
||||||
"categories": [
|
"categories": [
|
||||||
7
|
9
|
||||||
],
|
],
|
||||||
"date_created": "2024-12-19",
|
"date_created": "2024-12-19",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Cloudflared",
|
"name": "Cloudflared",
|
||||||
"slug": "cloudflared",
|
"slug": "cloudflared",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
4
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Cockpit",
|
"name": "Cockpit",
|
||||||
"slug": "cockpit",
|
"slug": "cockpit",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
10
|
||||||
],
|
],
|
||||||
"date_created": "2024-10-20",
|
"date_created": "2024-10-20",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
"name": "VS Code Server",
|
"name": "VS Code Server",
|
||||||
"slug": "code-server",
|
"slug": "code-server",
|
||||||
"categories": [
|
"categories": [
|
||||||
19
|
1,
|
||||||
|
20,
|
||||||
|
11
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
@@ -36,4 +38,4 @@
|
|||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "CommaFeed",
|
"name": "CommaFeed",
|
||||||
"slug": "commafeed",
|
"slug": "commafeed",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
19
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Cronicle Primary",
|
"name": "Cronicle Primary",
|
||||||
"slug": "cronicle",
|
"slug": "cronicle",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
19
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "CrowdSec",
|
"name": "CrowdSec",
|
||||||
"slug": "crowdsec",
|
"slug": "crowdsec",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
6
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Daemon Sync Server",
|
"name": "Daemon Sync Server",
|
||||||
"slug": "daemonsync",
|
"slug": "daemonsync",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
19
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Dashy",
|
"name": "Dashy",
|
||||||
"slug": "dashy",
|
"slug": "dashy",
|
||||||
"categories": [
|
"categories": [
|
||||||
15
|
10
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Debian 12",
|
"name": "Debian 12",
|
||||||
"slug": "debian-vm",
|
"slug": "debian-vm",
|
||||||
"categories": [
|
"categories": [
|
||||||
9
|
2
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Debian",
|
"name": "Debian",
|
||||||
"slug": "debian",
|
"slug": "debian",
|
||||||
"categories": [
|
"categories": [
|
||||||
9
|
2
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "deCONZ",
|
"name": "deCONZ",
|
||||||
"slug": "deconz",
|
"slug": "deconz",
|
||||||
"categories": [
|
"categories": [
|
||||||
6
|
17
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Deluge",
|
"name": "Deluge",
|
||||||
"slug": "deluge",
|
"slug": "deluge",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
11
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
43
json/docker-vm.json
Normal file
43
json/docker-vm.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"name": "Docker",
|
||||||
|
"slug": "docker-vm",
|
||||||
|
"categories": [
|
||||||
|
2, 3
|
||||||
|
],
|
||||||
|
"date_created": "2025-01-20",
|
||||||
|
"type": "vm",
|
||||||
|
"updateable": false,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": null,
|
||||||
|
"documentation": null,
|
||||||
|
"website": "https://www.docker.com/",
|
||||||
|
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg",
|
||||||
|
"description": "Docker is an open-source project for automating the deployment of applications as portable, self-sufficient containers. This Template includes Docker Engine and Docker Compose Plugin.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "vm/docker-vm.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 4096,
|
||||||
|
"hdd": 8,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": "root",
|
||||||
|
"password": "docker"
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "After the script completes, click on the VM, then on the Summary or Console tab to find the VM IP.",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "This Script works on amd64 and arm64 Architecture.",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Docker",
|
"name": "Docker",
|
||||||
"slug": "docker",
|
"slug": "docker",
|
||||||
"categories": [
|
"categories": [
|
||||||
8
|
3
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Dockge",
|
"name": "Dockge",
|
||||||
"slug": "dockge",
|
"slug": "dockge",
|
||||||
"categories": [
|
"categories": [
|
||||||
8
|
3
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name":"Dotnet ASP Web API",
|
"name":"Dotnet ASP Web API",
|
||||||
"slug":"dotnetaspwebapi",
|
"slug":"dotnetaspwebapi",
|
||||||
"categories":[
|
"categories":[
|
||||||
0
|
20
|
||||||
],
|
],
|
||||||
"date_created":"2025-01-15",
|
"date_created":"2025-01-15",
|
||||||
"type":"ct",
|
"type":"ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Emby Media Server",
|
"name": "Emby Media Server",
|
||||||
"slug": "emby",
|
"slug": "emby",
|
||||||
"categories": [
|
"categories": [
|
||||||
12
|
13
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "EMQX",
|
"name": "EMQX",
|
||||||
"slug": "emqx",
|
"slug": "emqx",
|
||||||
"categories": [
|
"categories": [
|
||||||
4
|
18
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "ErsatzTV",
|
"name": "ErsatzTV",
|
||||||
"slug": "ersatztv",
|
"slug": "ersatztv",
|
||||||
"categories": [
|
"categories": [
|
||||||
12
|
13
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "ESPHome",
|
"name": "ESPHome",
|
||||||
"slug": "esphome",
|
"slug": "esphome",
|
||||||
"categories": [
|
"categories": [
|
||||||
3
|
16
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "evcc",
|
"name": "evcc",
|
||||||
"slug": "evcc",
|
"slug": "evcc",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
16
|
||||||
],
|
],
|
||||||
"date_created": "2024-10-15",
|
"date_created": "2024-10-15",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Fenrus",
|
"name": "Fenrus",
|
||||||
"slug": "fenrus",
|
"slug": "fenrus",
|
||||||
"categories": [
|
"categories": [
|
||||||
15
|
10
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-05",
|
"date_created": "2024-05-05",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "FHEM",
|
"name": "FHEM",
|
||||||
"slug": "fhem",
|
"slug": "fhem",
|
||||||
"categories": [
|
"categories": [
|
||||||
3
|
16
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "File Browser",
|
"name": "File Browser",
|
||||||
"slug": "filebrowser",
|
"slug": "filebrowser",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
1
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
@@ -36,4 +36,4 @@
|
|||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Firefly III",
|
"name": "Firefly III",
|
||||||
"slug": "firefly",
|
"slug": "firefly",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
23
|
||||||
],
|
],
|
||||||
"date_created": "2025-01-01",
|
"date_created": "2025-01-01",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "FlareSolverr",
|
"name": "FlareSolverr",
|
||||||
"slug": "flaresolverr",
|
"slug": "flaresolverr",
|
||||||
"categories": [
|
"categories": [
|
||||||
11
|
14
|
||||||
],
|
],
|
||||||
"date_created": "2024-06-12",
|
"date_created": "2024-06-12",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "FlowiseAI",
|
"name": "FlowiseAI",
|
||||||
"slug": "flowiseai",
|
"slug": "flowiseai",
|
||||||
"categories": [
|
"categories": [
|
||||||
19
|
20
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Forgejo",
|
"name": "Forgejo",
|
||||||
"slug": "forgejo",
|
"slug": "forgejo",
|
||||||
"categories": [
|
"categories": [
|
||||||
19
|
20
|
||||||
],
|
],
|
||||||
"date_created": "2024-06-12",
|
"date_created": "2024-06-12",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Frigate",
|
"name": "Frigate",
|
||||||
"slug": "frigate",
|
"slug": "frigate",
|
||||||
"categories": [
|
"categories": [
|
||||||
17
|
15
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -40,4 +40,4 @@
|
|||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Ghost",
|
"name": "Ghost",
|
||||||
"slug": "ghost",
|
"slug": "ghost",
|
||||||
"categories": [
|
"categories": [
|
||||||
12
|
25
|
||||||
],
|
],
|
||||||
"date_created": "2025-01-10",
|
"date_created": "2025-01-10",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Gitea",
|
"name": "Gitea",
|
||||||
"slug": "gitea",
|
"slug": "gitea",
|
||||||
"categories": [
|
"categories": [
|
||||||
19
|
20
|
||||||
],
|
],
|
||||||
"date_created": "2024-07-26",
|
"date_created": "2024-07-26",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Glance",
|
"name": "Glance",
|
||||||
"slug": "glance",
|
"slug": "glance",
|
||||||
"categories": [
|
"categories": [
|
||||||
15
|
9
|
||||||
],
|
],
|
||||||
"date_created": "2024-12-02",
|
"date_created": "2024-12-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Glances",
|
"name": "Glances",
|
||||||
"slug": "glances",
|
"slug": "glances",
|
||||||
"categories": [
|
"categories": [
|
||||||
7
|
9
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "GLPI",
|
"name": "GLPI",
|
||||||
"slug": "glpi",
|
"slug": "glpi",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
25
|
||||||
],
|
],
|
||||||
"date_created": "2025-01-06",
|
"date_created": "2025-01-06",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "go2rtc",
|
"name": "go2rtc",
|
||||||
"slug": "go2rtc",
|
"slug": "go2rtc",
|
||||||
"categories": [
|
"categories": [
|
||||||
0
|
15
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Gokapi",
|
"name": "Gokapi",
|
||||||
"slug": "gokapi",
|
"slug": "gokapi",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
11
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user