Compare commits

...

63 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
f339b7df10 Update CHANGELOG.md (#4735)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-27 01:15:09 +01:00
community-scripts-pr-app[bot]
a23a6a3da1 Update versions.json (#4734)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-27 02:14:29 +02:00
community-scripts-pr-app[bot]
3c12773956 Update CHANGELOG.md (#4727)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-26 13:08:04 +01:00
community-scripts-pr-app[bot]
d79ac98a31 Update versions.json (#4726)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-26 14:07:14 +02:00
CanbiZ
17654c2006 quickfix: tag for argus 2025-05-26 10:54:47 +02:00
community-scripts-pr-app[bot]
575443fac5 Update CHANGELOG.md (#4723)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-26 09:49:43 +01:00
community-scripts-pr-app[bot]
f38225d52f Update date in json (#4722)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-26 10:48:51 +02:00
community-scripts-pr-app[bot]
cef451c42c Update date in json (#4724)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-26 09:43:54 +01:00
community-scripts-pr-app[bot]
2a5856db03 Update CHANGELOG.md (#4721)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-26 09:43:27 +01:00
push-app-to-main[bot]
47abe248d0 'Add new script' (#4717)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-05-26 10:43:11 +02:00
push-app-to-main[bot]
98c64ffae9 'Add new script' (#4716)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-05-26 10:42:50 +02:00
CanbiZ
c136133b7c Excalidraw: increase HDD to 10GB (#4718) 2025-05-26 10:42:40 +02:00
Slaviša Arežina
1e5395d21b InspIRCd: Fix release name in release url (#4720)
* Update inspircd-install.sh

* Update
2025-05-26 10:29:44 +02:00
community-scripts-pr-app[bot]
dfb98698f3 Update CHANGELOG.md (#4715)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-26 06:31:05 +01:00
Chris
ff5b793e1e BREAKING CHANGE: Fix PocketID for v1.0.0 (#4711) 2025-05-26 07:30:24 +02:00
community-scripts-pr-app[bot]
4044790e5e Update CHANGELOG.md (#4713)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-26 01:15:51 +01:00
community-scripts-pr-app[bot]
e64b10bf99 Update versions.json (#4712)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-26 02:15:07 +02:00
community-scripts-pr-app[bot]
bf2b36f095 Update versions.json (#4707)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-25 14:06:48 +02:00
community-scripts-pr-app[bot]
15b606c019 Update CHANGELOG.md (#4706)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-25 12:15:35 +01:00
community-scripts-pr-app[bot]
16740ece38 Update CHANGELOG.md (#4705)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-25 12:15:17 +01:00
Bas van den Berg
d2d9a59e35 Back-up database if using sqlite (#4700) 2025-05-25 13:14:46 +02:00
community-scripts-pr-app[bot]
7d7664f12a Update CHANGELOG.md (#4703)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-25 12:14:32 +01:00
Bas van den Berg
98c1136d8e Fix typo (#4701) 2025-05-25 13:14:09 +02:00
Slaviša Arežina
2f1f0393b6 Update grafana.json (#4696) 2025-05-25 12:25:23 +02:00
community-scripts-pr-app[bot]
0cdde92556 Update CHANGELOG.md (#4698)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-25 01:16:38 +01:00
community-scripts-pr-app[bot]
85b638169d Update versions.json (#4697)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-25 02:16:06 +02:00
community-scripts-pr-app[bot]
1c186b5087 Update versions.json (#4695)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-24 14:06:48 +02:00
Slaviša Arežina
21efb1a2ec Update cloudflare-ddns-install.sh (#4694) 2025-05-24 13:44:43 +02:00
community-scripts-pr-app[bot]
9de702c301 Update CHANGELOG.md (#4691)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-24 01:14:44 +01:00
community-scripts-pr-app[bot]
a47d6efe41 Update versions.json (#4690)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-24 02:14:11 +02:00
community-scripts-pr-app[bot]
36253b0045 Update CHANGELOG.md (#4687)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 20:23:57 +01:00
Michel Roegl-Brunner
34e7c33e05 Remove rtsptoweb (deprecated) (#4686)
* Delete ct/rtsptoweb.sh

* Delete install/rtsptoweb-install.sh

* Delete ct/headers/rtsptoweb
2025-05-23 21:23:21 +02:00
Slaviša Arežina
e0a47f0aa3 Update zammad.json (#4682) 2025-05-23 15:06:28 +02:00
community-scripts-pr-app[bot]
bce10d447e Update versions.json (#4683)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 14:07:25 +02:00
community-scripts-pr-app[bot]
0d9804fcfe Update CHANGELOG.md (#4681)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 12:07:39 +01:00
CanbiZ
3b7c63183b Update Icons to selfhst/icons (#4680)
FreePBX & Configarr
2025-05-23 13:07:10 +02:00
community-scripts-pr-app[bot]
2d323d94ec Update CHANGELOG.md (#4675)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 06:43:43 +01:00
Stoufiler
ab0ed91c4f TYPO: Fix nexcloud to nextcloud (#4670) 2025-05-23 07:43:15 +02:00
community-scripts-pr-app[bot]
31e99bc49b Update CHANGELOG.md (#4672)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 01:15:17 +01:00
community-scripts-pr-app[bot]
5b27942981 Update versions.json (#4671)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 02:14:43 +02:00
Slaviša Arežina
161bafa818 Paperless-AI: Upscale the resources (#4668)
* Upscale the resources

* Update

* Update
2025-05-22 20:17:03 +02:00
community-scripts-pr-app[bot]
a5241ef1c5 Update CHANGELOG.md (#4666)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 18:35:37 +01:00
diemade
bf3f7dc3b1 Update commafeed.json (#4665) 2025-05-22 19:34:59 +02:00
community-scripts-pr-app[bot]
7264934136 Update .app files (#4658)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-22 15:37:52 +02:00
community-scripts-pr-app[bot]
a0745de096 Update CHANGELOG.md (#4661)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 14:30:45 +01:00
community-scripts-pr-app[bot]
4f4ec7d477 Update CHANGELOG.md (#4660)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 14:29:10 +01:00
community-scripts-pr-app[bot]
ba3de8d080 Update date in json (#4659)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-22 14:28:33 +01:00
community-scripts-pr-app[bot]
0f8932b125 Update CHANGELOG.md (#4657)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 14:27:23 +01:00
push-app-to-main[bot]
348354079b 'Add new script' (#4648)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-05-22 15:27:18 +02:00
push-app-to-main[bot]
48db08192a cloudflare-ddns (#4647)
* 'Add new script'

* Update cloudflare-ddns.json

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-05-22 15:26:39 +02:00
community-scripts-pr-app[bot]
b6f410e895 Update CHANGELOG.md (#4656)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 13:34:12 +01:00
community-scripts-pr-app[bot]
1221fec5ab Update CHANGELOG.md (#4655)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 13:33:57 +01:00
community-scripts-pr-app[bot]
faa805547c Update CHANGELOG.md (#4654)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 13:33:38 +01:00
Chris
fe0ac37ff1 slskd: fix #4649 (#4651) 2025-05-22 14:33:20 +02:00
community-scripts-pr-app[bot]
eed391917c Update CHANGELOG.md (#4653)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 13:33:05 +01:00
community-scripts-pr-app[bot]
76da24386d Update CHANGELOG.md (#4652)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 13:32:47 +01:00
CanbiZ
8e7caf4cd9 enable FUSE and TUN Handling (#4644) 2025-05-22 14:32:27 +02:00
CanbiZ
7d3040ab76 [gh]: Feature: Header-Generation for vm | tools | addon (#4643) 2025-05-22 14:32:21 +02:00
community-scripts-pr-app[bot]
6a3bf770fb Update versions.json (#4650)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 14:07:25 +02:00
CanbiZ
6805b01df2 Update alpine-node-red-install.sh 2025-05-22 11:17:26 +02:00
community-scripts-pr-app[bot]
7520917dcc Update CHANGELOG.md (#4641)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 08:08:56 +01:00
Slaviša Arežina
ec186b0288 Paperless-AI: Add RAG chat (#4635)
* Add RAG

* Oops
2025-05-22 09:08:19 +02:00
CanbiZ
c7afd9c427 quickfix json babybuddy 2025-05-22 08:30:50 +02:00
50 changed files with 1240 additions and 600 deletions

View File

@@ -1,34 +1,50 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Base directory for headers # Function for generating Figlet headers
headers_dir="./ct/headers" generate_headers() {
local base_dir=$1
local target_subdir=$2
local search_pattern=$3
# Ensure the headers directory exists and clear it local headers_dir="${base_dir}/headers"
mkdir -p "$headers_dir" mkdir -p "$headers_dir"
rm -f "$headers_dir"/* rm -f "$headers_dir"/*
# Find all .sh files in ./ct directory, sorted alphabetically # Recursive or non-recursive search
find ./ct -type f -name "*.sh" | sort | while read -r script; do if [[ "$search_pattern" == "**" ]]; then
# Extract the APP name from the APP line shopt -s globstar nullglob
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null) file_list=("${base_dir}"/**/*.sh)
shopt -u globstar
if [[ -n "$app_name" ]]; then
# Define the output file name in the headers directory
output_file="${headers_dir}/$(basename "${script%.*}")"
# Generate figlet output
figlet_output=$(figlet -w 500 -f slant "$app_name")
# Check if figlet output is not empty
if [[ -n "$figlet_output" ]]; then
echo "$figlet_output" > "$output_file"
echo "Generated: $output_file"
else
echo "Figlet failed for $app_name in $script"
fi
else else
echo "No APP name found in $script, skipping." file_list=("${base_dir}"/*.sh)
fi fi
done
echo "Completed processing .sh files." for script in "${file_list[@]}"; do
[[ -f "$script" ]] || continue
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
if [[ -n "$app_name" ]]; then
output_file="${headers_dir}/$(basename "${script%.*}")"
figlet_output=$(figlet -w 500 -f slant "$app_name")
if [[ -n "$figlet_output" ]]; then
echo "$figlet_output" >"$output_file"
echo "Generated: $output_file"
else
echo "Figlet failed for $app_name in $script"
fi
else
echo "No APP name found in $script, skipping."
fi
done
}
# ct
generate_headers "./ct" "headers" "*"
# tools (addon, pve, ...)
generate_headers "./tools" "headers" "**"
# vm
generate_headers "./vm" "headers" "*"
echo "Completed processing all sections."

View File

@@ -14,8 +14,85 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment. All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-05-27
## 2025-05-26
### 🆕 New Scripts
- Argus ([#4717](https://github.com/community-scripts/ProxmoxVE/pull/4717))
- Kasm ([#4716](https://github.com/community-scripts/ProxmoxVE/pull/4716))
### 🚀 Updated Scripts
- Excalidraw: increase HDD to 10GB [@MickLesk](https://github.com/MickLesk) ([#4718](https://github.com/community-scripts/ProxmoxVE/pull/4718))
- #### 🐞 Bug Fixes
- BREAKING CHANGE: Fix PocketID for v1.0.0 [@vhsdream](https://github.com/vhsdream) ([#4711](https://github.com/community-scripts/ProxmoxVE/pull/4711))
- InspIRCd: Fix release name in release url [@tremor021](https://github.com/tremor021) ([#4720](https://github.com/community-scripts/ProxmoxVE/pull/4720))
## 2025-05-25
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Pelican-panel: back-up database if using sqlite [@bvdberg01](https://github.com/bvdberg01) ([#4700](https://github.com/community-scripts/ProxmoxVE/pull/4700))
- #### 🔧 Refactor
- Pterodactyl panel read typo [@bvdberg01](https://github.com/bvdberg01) ([#4701](https://github.com/community-scripts/ProxmoxVE/pull/4701))
## 2025-05-24
## 2025-05-23
### 🚀 Updated Scripts
- #### 🔧 Refactor
- TYPO: Fix nexcloud to nextcloud (VM) [@Stoufiler](https://github.com/Stoufiler) ([#4670](https://github.com/community-scripts/ProxmoxVE/pull/4670))
### 🌐 Website
- #### 📝 Script Information
- Update Icons to selfhst/icons (FreePBX & Configarr) [@MickLesk](https://github.com/MickLesk) ([#4680](https://github.com/community-scripts/ProxmoxVE/pull/4680))
### 💥 Breaking Changes
- Remove rtsptoweb (deprecated) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4686](https://github.com/community-scripts/ProxmoxVE/pull/4686))
## 2025-05-22 ## 2025-05-22
### 🆕 New Scripts
- FreePBX ([#4648](https://github.com/community-scripts/ProxmoxVE/pull/4648))
- cloudflare-ddns ([#4647](https://github.com/community-scripts/ProxmoxVE/pull/4647))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- slskd: fix #4649 [@vhsdream](https://github.com/vhsdream) ([#4651](https://github.com/community-scripts/ProxmoxVE/pull/4651))
- #### ✨ New Features
- Paperless-AI: Add RAG chat [@tremor021](https://github.com/tremor021) ([#4635](https://github.com/community-scripts/ProxmoxVE/pull/4635))
### 🧰 Maintenance
- #### 📂 Github
- [gh]: Feature: Header-Generation for vm | tools | addon [@MickLesk](https://github.com/MickLesk) ([#4643](https://github.com/community-scripts/ProxmoxVE/pull/4643))
### 🌐 Website
- #### 📝 Script Information
- Commafeed: move to Documents category [@diemade](https://github.com/diemade) ([#4665](https://github.com/community-scripts/ProxmoxVE/pull/4665))
## 2025-05-21 ## 2025-05-21
### 🆕 New Scripts ### 🆕 New Scripts

53
ct/argus.sh Normal file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://release-argus.io/
APP="Argus"
var_tags="${var_tags:-watcher}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-3}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/argus ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
rm -f /opt/argus/Argus
curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
chmod +x /opt/argus/Argus
systemctl restart argus
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
else
msg_ok "${APP} is already up to date (${RELEASE})"
fi
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

37
ct/cloudflare-ddns.sh Normal file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: edoardop13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/favonia/cloudflare-ddns
APP="Cloudflare-DDNS"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-3}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/cloudflare-ddns.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is no update function for ${APP}."
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"

View File

@@ -9,7 +9,7 @@ APP="Excalidraw"
TAGS="diagrams" TAGS="diagrams"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-3072}" var_ram="${var_ram:-3072}"
var_disk="${var_disk:-6}" var_disk="${var_disk:-10}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
@@ -20,46 +20,46 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/excalidraw ]]; then if [[ ! -d /opt/excalidraw ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop excalidraw
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cd /tmp
temp_file=$(mktemp)
curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar xzf $temp_file
rm -rf /opt/excalidraw
mv excalidraw-${RELEASE} /opt/excalidraw
cd /opt/excalidraw
$STD yarn
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start excalidraw
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf $temp_file
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/excalidraw_version.txt
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop excalidraw
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cd /tmp
temp_file=$(mktemp)
curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar xzf $temp_file
rm -rf /opt/excalidraw
mv excalidraw-${RELEASE} /opt/excalidraw
cd /opt/excalidraw
$STD yarn
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start excalidraw
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf $temp_file
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/excalidraw_version.txt
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
} }
start start
@@ -69,4 +69,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}"

View File

@@ -1,15 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -fsSL 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: Arian Nasr (arian-nasr)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/deepch/RTSPtoWeb # Source: https://www.freepbx.org/
APP="RTSPtoWeb" APP="FreePBX"
var_tags="${var_tags:-media}" var_tags="pbx;voip;telephony"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-10}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
@@ -23,14 +23,12 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /var ]]; then
if [[ ! -f /lib/systemd/system/freepbx.service ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating $APP LXC" msg_error "Currently we don't provide an update function for this ${APP}."
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit exit
} }
@@ -41,4 +39,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}:8083${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

6
ct/headers/argus Normal file
View File

@@ -0,0 +1,6 @@
___
/ | _________ ___ _______
/ /| | / ___/ __ `/ / / / ___/
/ ___ |/ / / /_/ / /_/ (__ )
/_/ |_/_/ \__, /\__,_/____/
/____/

View File

@@ -0,0 +1,6 @@
________ ________ ____ ____ _ _______
/ ____/ /___ __ ______/ / __/ /___ _________ / __ \/ __ \/ | / / ___/
/ / / / __ \/ / / / __ / /_/ / __ `/ ___/ _ \______/ / / / / / / |/ /\__ \
/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / / / __/_____/ /_/ / /_/ / /| /___/ /
\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/ \___/ /_____/_____/_/ |_//____/

6
ct/headers/freepbx Normal file
View File

@@ -0,0 +1,6 @@
______ ____ ____ _ __
/ ____/_______ ___ / __ \/ __ ) |/ /
/ /_ / ___/ _ \/ _ \/ /_/ / __ | /
/ __/ / / / __/ __/ ____/ /_/ / |
/_/ /_/ \___/\___/_/ /_____/_/|_|

6
ct/headers/kasm Normal file
View File

@@ -0,0 +1,6 @@
__ __
/ //_/___ __________ ___
/ ,< / __ `/ ___/ __ `__ \
/ /| / /_/ (__ ) / / / / /
/_/ |_\__,_/____/_/ /_/ /_/

View File

@@ -1,6 +0,0 @@
____ ___________ ____ __ _ __ __
/ __ \/_ __/ ___// __ \/ /_____| | / /__ / /_
/ /_/ / / / \__ \/ /_/ / __/ __ \ | /| / / _ \/ __ \
/ _, _/ / / ___/ / ____/ /_/ /_/ / |/ |/ / __/ /_/ /
/_/ |_| /_/ /____/_/ \__/\____/|__/|__/\___/_.___/

View File

@@ -35,8 +35,8 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}" msg_info "Updating ${APP} to v${RELEASE}"
cd /opt cd /opt
curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u1_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u1_amd64.deb") curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb")
$STD apt-get install "./inspircd_${RELEASE}.deb12u1_amd64.deb" -y $STD apt-get install "./inspircd_${RELEASE}.deb12u2_amd64.deb" -y
echo "${RELEASE}" >"/opt/${APP}_version.txt" echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${RELEASE}" msg_ok "Updated ${APP} to v${RELEASE}"
@@ -45,7 +45,7 @@ function update_script() {
msg_ok "Started Service" msg_ok "Started Service"
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf /opt/inspircd_${RELEASE}.deb12u1_amd64.deb rm -rf /opt/inspircd_${RELEASE}.deb12u2_amd64.deb
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else

46
ct/kasm.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.kasmweb.com/docs/latest/index.html
APP="Kasm"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4192}"
var_disk="${var_disk:-30}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
var_tun="${var_tun:-yes}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"

View File

@@ -9,7 +9,7 @@ APP="Paperless-AI"
var_tags="${var_tags:-ai;document}" var_tags="${var_tags:-ai;document}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-5}" var_disk="${var_disk:-12}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
@@ -27,6 +27,9 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if ! dpkg -s python3-pip >/dev/null 2>&1; then
$STD apt-get install -y python3-pip
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/clusterzx/paperless-ai/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/clusterzx/paperless-ai/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP" msg_info "Stopping $APP"
@@ -42,6 +45,25 @@ function update_script() {
mkdir -p /opt/paperless-ai/data mkdir -p /opt/paperless-ai/data
cp -a /opt/paperless-ai_bak/data/. /opt/paperless-ai/data/ cp -a /opt/paperless-ai_bak/data/. /opt/paperless-ai/data/
cd /opt/paperless-ai cd /opt/paperless-ai
if [[ ! -f /etc/systemd/system/paperless-rag.service ]]; then
cat <<EOF >/etc/systemd/system/paperless-rag.service
[Unit]
Description=PaperlessAI-RAG Service
After=network.target
[Service]
WorkingDirectory=/opt/paperless-ai
ExecStart=/usr/bin/python3 main.py --host 0.0.0.0 --port 8000 --initialize
Restart=always
[Install]
WantedBy=multi-user.target
EOF
echo "RAG_SERVICE_URL=http://localhost:8000" >>/opt/paperless-ai/data/.env
echo "RAG_SERVICE_ENABLED=true" >>/opt/paperless-ai/data/.env
fi
$STD pip install --no-cache-dir -r requirements.txt
mkdir -p data/chromadb
$STD npm install $STD npm install
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}" msg_ok "Updated $APP to v${RELEASE}"

View File

@@ -40,7 +40,6 @@ function update_script() {
php8.4 \ php8.4 \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \ php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
libapache2-mod-php8.4 libapache2-mod-php8.4
msg_ok "Migrated PHP $CURRENT_PHP to 8.4" msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
fi fi
@@ -53,10 +52,13 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}" msg_info "Updating ${APP} to v${RELEASE}"
cp -r /opt/pelican-panel/.env /opt/ cp -r /opt/pelican-panel/.env /opt/
SQLITE_INSTALL=$(ls /opt/pelican-panel/database/*.sqlite 1> /dev/null 2>&1 && echo "true" || echo "false")
$SQLITE_INSTALL && cp -r /opt/pelican-panel/database/*.sqlite /opt/
rm -rf * .* rm -rf * .*
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz") curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
tar -xzf "panel.tar.gz" tar -xzf "panel.tar.gz"
mv /opt/.env /opt/pelican-panel/ mv /opt/.env /opt/pelican-panel/
$SQLITE_INSTALL && mv /opt/*.sqlite /opt/pelican-panel/database/
$STD composer install --no-dev --optimize-autoloader --no-interaction $STD composer install --no-dev --optimize-autoloader --no-interaction
$STD php artisan p:environment:setup $STD php artisan p:environment:setup
$STD php artisan view:clear $STD php artisan view:clear

View File

@@ -20,63 +20,62 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/pocket-id ]]; then if [[ ! -d /opt/pocket-id ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/pocket-id/pocket-id/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating $APP"
msg_info "Stopping $APP"
systemctl stop pocketid-backend.service
systemctl stop pocketid-frontend.service
systemctl stop caddy.service
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cd /opt
cp -r /opt/pocket-id/backend/data /opt/data
cp /opt/pocket-id/backend/.env /opt/backend.env
cp /opt/pocket-id/frontend/.env /opt/frontend.env
rm -r /opt/pocket-id
curl -fsSL "https://github.com/pocket-id/pocket-id/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/pocket-id/pocket-id/archive/refs/tags/v${RELEASE}.zip")
unzip -q v${RELEASE}.zip
mv pocket-id-${RELEASE} /opt/pocket-id
mv /opt/data /opt/pocket-id/backend/data
mv /opt/backend.env /opt/pocket-id/backend/.env
mv /opt/frontend.env /opt/pocket-id/frontend/.env
cd /opt/pocket-id/backend/cmd
go build -o ../pocket-id-backend
cd ../../frontend
npm install
npm run build
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP"
systemctl start pocketid-backend.service
systemctl start pocketid-frontend.service
systemctl start caddy.service
sleep 2
msg_ok "Started $APP"
# Cleaning up
msg_info "Cleaning Up"
rm -f /opt/v${RELEASE}.zip
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/pocket-id/pocket-id/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ "$(cat /opt/${APP}_version.txt)" < "1.0.0" ]]; then
msg_info "Migrating ${APP} to v${RELEASE}"
systemctl -q disable --now pocketid-backend pocketid-frontend caddy
mv /etc/caddy/Caddyfile ~/Caddyfile.bak
$STD apt remove --purge caddy nodejs -y
$STD apt autoremove -y
rm /etc/apt/{keyrings/nodesource.gpg,sources.list.d/nodesource.list}
rm -r /usr/local/go
cp -r /opt/pocket-id/backend/data /opt/data
cp /opt/pocket-id/backend/.env /opt/env
sed -i -e 's/PUBLIC_//g' \
-e '/^SQLITE_DB_PATH/d' \
-e '/^POSTGRES/s/^/# /' \
-e '/^UPLOAD_PATH/d' \
-e 's/8080/1411/' /opt/env
rm -r /opt/pocket-id
rm /etc/systemd/system/pocketid-frontend.service
BACKEND="/etc/systemd/system/pocketid-backend.service"
sed -i -e 's/Backend/Service/' \
-e 's/\/backend\|-backend//g' "$BACKEND"
mv "$BACKEND" ${BACKEND//-backend/}
systemctl daemon-reload
systemctl -q enable pocketid
mkdir /opt/pocket-id
mv /opt/data /opt/pocket-id
msg_ok "Migration complete. The reverse proxy port has been changed to 1411."
else
msg_info "Updating $APP to v${RELEASE}"
systemctl stop pocketid
cp /opt/pocket-id/.env /opt/env
fi
curl -fsSL "https://github.com/pocket-id/pocket-id/releases/download/v${RELEASE}/pocket-id-linux-amd64" -o /opt/pocket-id/pocket-id
chmod u+x /opt/pocket-id/pocket-id
mv /opt/env /opt/pocket-id/.env
msg_info "Starting $APP"
systemctl start pocketid
msg_ok "Started $APP"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start
@@ -85,6 +84,6 @@ 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} Configure your reverse proxy to point to:${BGN} ${IP}:80${CL}" echo -e "${INFO}${YW} Configure your reverse proxy to point to:${BGN} ${IP}:1411${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}https://{PUBLIC_URL}/login/setup${CL}" echo -e "${TAB}${GATEWAY}${BGN}https://{PUBLIC_URL}/login/setup${CL}"

View File

@@ -0,0 +1,35 @@
{
"name": "Argus",
"slug": "argus",
"categories": [
11
],
"date_created": "2025-05-26",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://release-argus.io/docs/overview/",
"website": "https://release-argus.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/argus.webp",
"config_path": "/opt/argus/config.yml",
"description": "Argus will query websites at a user defined interval for new software releases and then trigger Gotify/Slack/Other notification(s) and/or WebHook(s) when one has been found. For example, you could set it to monitor the Argus repo (release-argus/argus). This will query the GitHub API and track the tag_name variable. When this variable changes from what it was on a previous query, a GitHub-style WebHook could be sent that triggers something (like AWX) to update Argus on your server.",
"install_methods": [
{
"type": "default",
"script": "ct/argus.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -12,7 +12,7 @@
"documentation": "https://docs.baby-buddy.net/", "documentation": "https://docs.baby-buddy.net/",
"website": "https://github.com/babybuddy/babybuddy", "website": "https://github.com/babybuddy/babybuddy",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/baby-buddy.svg", "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/baby-buddy.svg",
"config_path": "/opt/babybuddy/babybuddy/production.py", "config_path": "/opt/babybuddy/babybuddy/settings/production.py",
"description": "Baby Buddy is an open-source web application designed to assist caregivers in tracking various aspects of a baby's daily routine, including sleep, feedings, diaper changes, tummy time, and more. By recording this data, caregivers can better understand and anticipate their baby's needs, reducing guesswork in daily care. The application offers a user-friendly dashboard for data entry and visualization, supports multiple users, and provides features like timers and reminders. Additionally, Baby Buddy can be integrated with platforms like Home Assistant and Grafana for enhanced functionality.", "description": "Baby Buddy is an open-source web application designed to assist caregivers in tracking various aspects of a baby's daily routine, including sleep, feedings, diaper changes, tummy time, and more. By recording this data, caregivers can better understand and anticipate their baby's needs, reducing guesswork in daily care. The application offers a user-friendly dashboard for data entry and visualization, supports multiple users, and provides features like timers and reminders. Additionally, Baby Buddy can be integrated with platforms like Home Assistant and Grafana for enhanced functionality.",
"install_methods": [ "install_methods": [
{ {

View File

@@ -0,0 +1,44 @@
{
"name": "Cloudflare-DDNS",
"slug": "cloudflare-ddns",
"categories": [
4
],
"date_created": "2025-05-22",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": null,
"documentation": "https://github.com/favonia/cloudflare-ddns/blob/main/README.markdown",
"config_path": "/etc/systemd/system/cloudflare-ddns.service",
"website": "https://github.com/favonia/cloudflare-ddns",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/cloudflare.webp",
"description": "A feature-rich and robust Cloudflare DDNS updater with a small footprint. The program will detect your machines public IP addresses and update DNS records using the Cloudflare API",
"install_methods": [
{
"type": "default",
"script": "ct/cloudflare-ddns.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "To setup the updater you must have the Cloudflare Token and the domains, please read the Github documentation at `https://github.com/favonia/cloudflare-ddns?tab=readme-ov-file#-step-1-updating-the-compose-file` (only the expandable section)",
"type": "warning"
},
{
"text": "To update the configuration edit `/etc/systemd/system/cloudflare-ddns.service`. After edit please restard with `systemctl restart cloudflare-ddns`",
"type": "info"
}
]
}

View File

@@ -2,7 +2,7 @@
"name": "CommaFeed", "name": "CommaFeed",
"slug": "commafeed", "slug": "commafeed",
"categories": [ "categories": [
19 12
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",

View File

@@ -12,7 +12,7 @@
"documentation": "https://configarr.raydak.de/docs/intro", "documentation": "https://configarr.raydak.de/docs/intro",
"config_path": "/opt/configarr/config.yml", "config_path": "/opt/configarr/config.yml",
"website": "https://configarr.raydak.de/", "website": "https://configarr.raydak.de/",
"logo": "https://github.com/raydak-labs/configarr/blob/main/docs/static/img/logo.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/configarr.webp",
"description": "Configarr is an open-source tool designed to simplify configuration and synchronization for Sonarr and Radarr (and other experimental). It integrates with TRaSH Guides to automate updates of custom formats, quality profiles, and other settings, while also supporting user-defined configurations.", "description": "Configarr is an open-source tool designed to simplify configuration and synchronization for Sonarr and Radarr (and other experimental). It integrates with TRaSH Guides to automate updates of custom formats, quality profiles, and other settings, while also supporting user-defined configurations.",
"install_methods": [ "install_methods": [
{ {

View File

@@ -21,7 +21,7 @@
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 3072, "ram": 3072,
"hdd": 6, "hdd": 10,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }

View File

@@ -0,0 +1,40 @@
{
"name": "FreePBX",
"slug": "freepbx",
"categories": [
0
],
"date_created": "2025-05-22",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 80,
"documentation": "https://sangomakb.atlassian.net/wiki/spaces/FP/overview?homepageId=8454359",
"website": "https://www.freepbx.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/freepbx.webp",
"config_path": "",
"description": "FreePBX is a web-based open-source graphical user interface that manages Asterisk, a voice over IP and telephony server.",
"install_methods": [
{
"type": "default",
"script": "ct/freepbx.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "This script uses the official FreePBX install script. Check it here: https://github.com/FreePBX/sng_freepbx_debian_install",
"type": "info"
}
]
}

View File

@@ -12,7 +12,7 @@
"documentation": "https://grafana.com/docs/grafana/latest/", "documentation": "https://grafana.com/docs/grafana/latest/",
"website": "https://grafana.com/", "website": "https://grafana.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/grafana.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/grafana.webp",
"config_path": "/etc/grafana", "config_path": "Debian: /etc/grafana/grafana.ini | Alpine: /etc/grafana.ini",
"description": "Grafana is a data visualization and monitoring platform that enables users to query, visualize, alert on and understand metrics, logs, and other data sources. It integrates with various data sources, including Prometheus, InfluxDB, Elasticsearch, and many others, to present a unified view of the data and enable users to create insightful and interactive dashboards.", "description": "Grafana is a data visualization and monitoring platform that enables users to query, visualize, alert on and understand metrics, logs, and other data sources. It integrates with various data sources, including Prometheus, InfluxDB, Elasticsearch, and many others, to present a unified view of the data and enable users to create insightful and interactive dashboards.",
"install_methods": [ "install_methods": [
{ {

View File

@@ -0,0 +1,44 @@
{
"name": "Kasm",
"slug": "kasm",
"categories": [
9
],
"date_created": "2025-05-26",
"type": "ct",
"updateable": false,
"privileged": true,
"config_path": "",
"interface_port": 443,
"documentation": "https://www.kasmweb.com/docs/",
"website": "https://www.kasmweb.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/kasm-workspaces.webp",
"description": "Kasm Workspaces is a container streaming platform that delivers browser-based access to desktops, applications, and web services with enhanced security and scalability.",
"install_methods": [
{
"type": "default",
"script": "ct/kasm.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 50,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
},
{
"text": "Show password: `cat ~/kasm.creds`",
"type": "info"
}
]
}

View File

@@ -21,7 +21,7 @@
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 5, "hdd": 12,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }

View File

@@ -8,11 +8,11 @@
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 1411,
"documentation": "https://pocket-id.org/docs/", "documentation": "https://pocket-id.org/docs/",
"website": "https://github.com/pocket-id/pocket-id", "website": "https://github.com/pocket-id/pocket-id",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/pocket-id.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/pocket-id.webp",
"config_path": "/opt/pocket-id/backend/.env and /opt/pocket-id/frontend/.env", "config_path": "/opt/pocket-id/.env",
"description": "Pocket ID is a simple OIDC provider that allows users to authenticate with their passkeys to your services.", "description": "Pocket ID is a simple OIDC provider that allows users to authenticate with their passkeys to your services.",
"install_methods": [ "install_methods": [
{ {
@@ -35,10 +35,6 @@
{ {
"text": "Pocket ID requires https to work.", "text": "Pocket ID requires https to work.",
"type": "warning" "type": "warning"
},
{
"text": "Configuration Path: `/opt/pocket-id/backend/.env`, `/opt/pocket-id/frontend/.env`.",
"type": "info"
} }
] ]
} }

View File

@@ -1,29 +1,269 @@
[ [
{
"name": "open-webui/open-webui",
"version": "v0.6.11",
"date": "2025-05-26T22:27:26Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.25.0.10024",
"date": "2025-05-26T21:58:37Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.34.1",
"date": "2025-05-26T21:40:54Z"
},
{
"name": "home-assistant/core",
"version": "2025.5.3",
"date": "2025-05-23T15:10:33Z"
},
{
"name": "mattermost/mattermost",
"version": "mattermost-redux@10.8.0",
"date": "2025-05-26T19:17:13Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.14.12",
"date": "2025-05-26T19:08:26Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.18",
"date": "2025-05-26T18:36:33Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.15",
"date": "2025-05-25T05:11:31Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.8.11.0",
"date": "2025-03-10T06:39:11Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{
"name": "zitadel/zitadel",
"version": "v3.2.1",
"date": "2025-05-26T14:27:59Z"
},
{
"name": "jupyter/notebook",
"version": "v7.4.3",
"date": "2025-05-26T14:27:27Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.3.0p33",
"date": "2025-05-26T13:57:51Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.6",
"date": "2025-05-06T07:57:02Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.118.0",
"date": "2025-05-26T13:09:32Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.91.3",
"date": "2025-05-08T12:25:10Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-beta.3",
"date": "2025-05-26T12:40:56Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.61",
"date": "2025-04-22T12:42:26Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.5.26",
"date": "2025-05-26T11:30:11Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.0.4",
"date": "2025-05-26T08:33:33Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.2",
"date": "2025-05-11T16:40:55Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1951",
"date": "2025-05-26T05:51:18Z"
},
{
"name": "stonith404/pingvin-share",
"version": "v1.13.0",
"date": "2025-05-25T20:21:13Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.21.0",
"date": "2025-05-25T16:41:43Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.12.5",
"date": "2025-05-17T02:52:33Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.36.3.5071",
"date": "2025-05-25T13:59:43Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v2.11.2.4629",
"date": "2025-04-28T11:59:37Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-05-25T09:44:06Z"
},
{
"name": "Kozea/Radicale",
"version": "v3.5.4",
"date": "2025-05-25T06:53:34Z"
},
{
"name": "authelia/authelia",
"version": "v4.39.4",
"date": "2025-05-25T02:27:28Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.0.0",
"date": "2025-05-24T22:06:55Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-05-24T17-08-30Z",
"date": "2025-05-24T21:42:19Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.16.2",
"date": "2025-05-24T18:52:35Z"
},
{
"name": "ioBroker/ioBroker",
"version": "2025-05-24",
"date": "2025-05-24T13:56:54Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.28.2",
"date": "2025-05-24T07:59:15Z"
},
{
"name": "traccar/traccar",
"version": "v6.7.1",
"date": "2025-05-24T04:51:02Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.21.0",
"date": "2025-05-23T19:17:15Z"
},
{
"name": "immich-app/immich",
"version": "v1.133.1",
"date": "2025-05-23T18:14:44Z"
},
{
"name": "Threadfin/Threadfin",
"version": "1.2.33",
"date": "2025-05-23T15:59:05Z"
},
{
"name": "docker/compose",
"version": "v2.36.2",
"date": "2025-05-23T14:21:20Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.1.4",
"date": "2025-05-23T12:29:19Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.10.2",
"date": "2025-05-23T11:56:41Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.12",
"date": "2025-05-15T14:06:52Z"
},
{
"name": "ollama/ollama",
"version": "v0.7.1-rc2",
"date": "2025-05-23T01:53:31Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.113",
"date": "2025-05-23T01:47:35Z"
},
{
"name": "grafana/grafana",
"version": "v11.2.10",
"date": "2025-05-22T23:50:45Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
},
{
"name": "MariaDB/server",
"version": "mariadb-11.4.7",
"date": "2025-05-22T14:22:22Z"
},
{
"name": "neo4j/neo4j",
"version": "4.4.44",
"date": "2025-05-22T13:58:43Z"
},
{
"name": "apache/cassandra",
"version": "4.0.18-tentative",
"date": "2025-05-22T11:46:18Z"
},
{
"name": "0xERR0R/blocky",
"version": "v0.26.2",
"date": "2025-05-22T05:24:42Z"
},
{ {
"name": "tobychui/zoraxy", "name": "tobychui/zoraxy",
"version": "v3.1.9", "version": "v3.1.9",
"date": "2025-03-01T02:24:33Z" "date": "2025-03-01T02:24:33Z"
}, },
{
"name": "ollama/ollama",
"version": "v0.7.0",
"date": "2025-05-14T23:42:30Z"
},
{
"name": "immich-app/immich",
"version": "v1.133.0",
"date": "2025-05-21T20:17:38Z"
},
{ {
"name": "apache/tika", "name": "apache/tika",
"version": "3.2.0-rc2", "version": "3.2.0-rc2",
"date": "2025-05-21T20:09:07Z" "date": "2025-05-21T20:09:07Z"
}, },
{
"name": "0xERR0R/blocky",
"version": "v0.26.2",
"date": "2025-05-21T19:52:07Z"
},
{ {
"name": "tailscale/tailscale", "name": "tailscale/tailscale",
"version": "v1.84.0", "version": "v1.84.0",
@@ -44,26 +284,11 @@
"version": "v0.35.0", "version": "v0.35.0",
"date": "2025-05-21T18:00:32Z" "date": "2025-05-21T18:00:32Z"
}, },
{
"name": "msgbyte/tianji",
"version": "v1.20.10",
"date": "2025-05-21T17:22:32Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.12.5",
"date": "2025-05-17T02:52:33Z"
},
{ {
"name": "cockpit-project/cockpit", "name": "cockpit-project/cockpit",
"version": "339", "version": "339",
"date": "2025-05-21T14:49:36Z" "date": "2025-05-21T14:49:36Z"
}, },
{
"name": "mattermost/mattermost",
"version": "v9.11.16",
"date": "2025-05-21T13:57:13Z"
},
{ {
"name": "theonedev/onedev", "name": "theonedev/onedev",
"version": "v11.9.9", "version": "v11.9.9",
@@ -74,31 +299,11 @@
"version": "10.0.18", "version": "10.0.18",
"date": "2025-02-12T11:07:02Z" "date": "2025-02-12T11:07:02Z"
}, },
{
"name": "zitadel/zitadel",
"version": "v3.1.0",
"date": "2025-05-21T12:40:54Z"
},
{ {
"name": "esphome/esphome", "name": "esphome/esphome",
"version": "2025.5.0", "version": "2025.5.0",
"date": "2025-05-21T08:32:53Z" "date": "2025-05-21T08:32:53Z"
}, },
{
"name": "wazuh/wazuh",
"version": "coverity-w21-4.13.0",
"date": "2025-05-21T08:15:52Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.6",
"date": "2025-05-06T07:57:02Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1933",
"date": "2025-05-21T05:53:49Z"
},
{ {
"name": "inventree/InvenTree", "name": "inventree/InvenTree",
"version": "0.17.12", "version": "0.17.12",
@@ -119,16 +324,6 @@
"version": "3.1.0", "version": "3.1.0",
"date": "2025-05-20T19:20:03Z" "date": "2025-05-20T19:20:03Z"
}, },
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.8.11.0",
"date": "2025-03-10T06:39:11Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.12",
"date": "2025-05-15T14:06:52Z"
},
{ {
"name": "jenkinsci/jenkins", "name": "jenkinsci/jenkins",
"version": "jenkins-2.511", "version": "jenkins-2.511",
@@ -154,11 +349,6 @@
"version": "7.2.7", "version": "7.2.7",
"date": "2025-05-20T11:00:56Z" "date": "2025-05-20T11:00:56Z"
}, },
{
"name": "Luligu/matterbridge",
"version": "3.0.3",
"date": "2025-05-20T06:51:42Z"
},
{ {
"name": "crafty-controller/crafty-4", "name": "crafty-controller/crafty-4",
"version": "v4.4.9", "version": "v4.4.9",
@@ -169,16 +359,6 @@
"version": "v5.36.4", "version": "v5.36.4",
"date": "2025-05-19T22:28:11Z" "date": "2025-05-19T22:28:11Z"
}, },
{
"name": "apache/cassandra",
"version": "cassandra-4.1.9",
"date": "2025-05-19T21:37:07Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.16.1",
"date": "2025-05-19T21:26:44Z"
},
{ {
"name": "glanceapp/glance", "name": "glanceapp/glance",
"version": "v0.8.3", "version": "v0.8.3",
@@ -194,36 +374,6 @@
"version": "v1.9.6", "version": "v1.9.6",
"date": "2024-12-18T14:35:37Z" "date": "2024-12-18T14:35:37Z"
}, },
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p2",
"date": "2025-05-19T17:06:15Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.12",
"date": "2025-04-20T19:22:17Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.91.3",
"date": "2025-05-08T12:25:10Z"
},
{
"name": "docker/compose",
"version": "v2.36.1",
"date": "2025-05-19T12:26:41Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-beta.1",
"date": "2025-05-19T11:23:27Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.10",
"date": "2025-05-19T01:34:37Z"
},
{ {
"name": "Part-DB/Part-DB-server", "name": "Part-DB/Part-DB-server",
"version": "v1.17.1", "version": "v1.17.1",
@@ -234,11 +384,6 @@
"version": "v2.1.0", "version": "v2.1.0",
"date": "2025-05-18T18:20:43Z" "date": "2025-05-18T18:20:43Z"
}, },
{
"name": "rogerfar/rdt-client",
"version": "v2.0.112",
"date": "2025-05-18T17:44:52Z"
},
{ {
"name": "YunoHost/yunohost", "name": "YunoHost/yunohost",
"version": "debian/12.1.6.1", "version": "debian/12.1.6.1",
@@ -249,26 +394,11 @@
"version": "2.34.0", "version": "2.34.0",
"date": "2025-05-18T13:22:17Z" "date": "2025-05-18T13:22:17Z"
}, },
{
"name": "runtipi/runtipi",
"version": "v4.1.1",
"date": "2025-05-16T17:37:30Z"
},
{ {
"name": "hansmi/prometheus-paperless-exporter", "name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.8", "version": "v0.0.8",
"date": "2025-05-18T11:37:31Z" "date": "2025-05-18T11:37:31Z"
}, },
{
"name": "Prowlarr/Prowlarr",
"version": "v1.35.1.5034",
"date": "2025-04-30T11:02:36Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.23.3.9987",
"date": "2025-05-17T12:55:29Z"
},
{ {
"name": "bastienwirtz/homer", "name": "bastienwirtz/homer",
"version": "v25.05.2", "version": "v25.05.2",
@@ -299,16 +429,6 @@
"version": "v2.23.0", "version": "v2.23.0",
"date": "2025-05-16T22:13:53Z" "date": "2025-05-16T22:13:53Z"
}, },
{
"name": "home-assistant/core",
"version": "2025.5.2",
"date": "2025-05-16T21:09:45Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.20.0",
"date": "2025-05-16T19:18:10Z"
},
{ {
"name": "NodeBB/NodeBB", "name": "NodeBB/NodeBB",
"version": "v4.4.1", "version": "v4.4.1",
@@ -349,11 +469,6 @@
"version": "2025.5.0", "version": "2025.5.0",
"date": "2025-05-15T17:09:50Z" "date": "2025-05-15T17:09:50Z"
}, },
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.117.1",
"date": "2025-05-15T15:45:22Z"
},
{ {
"name": "ellite/Wallos", "name": "ellite/Wallos",
"version": "v3.1.1", "version": "v3.1.1",
@@ -364,11 +479,6 @@
"version": "v10.5.1", "version": "v10.5.1",
"date": "2025-05-15T09:59:28Z" "date": "2025-05-15T09:59:28Z"
}, },
{
"name": "morpheus65535/bazarr",
"version": "v1.5.2",
"date": "2025-05-11T16:40:55Z"
},
{ {
"name": "FlowiseAI/Flowise", "name": "FlowiseAI/Flowise",
"version": "flowise@3.0.0", "version": "flowise@3.0.0",
@@ -394,11 +504,6 @@
"version": "0.42.1", "version": "0.42.1",
"date": "2020-06-07T07:27:04Z" "date": "2020-06-07T07:27:04Z"
}, },
{
"name": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{ {
"name": "blakeblackshear/frigate", "name": "blakeblackshear/frigate",
"version": "v0.14.1", "version": "v0.14.1",
@@ -414,11 +519,6 @@
"version": "v4.3.1", "version": "v4.3.1",
"date": "2025-05-13T19:45:00Z" "date": "2025-05-13T19:45:00Z"
}, },
{
"name": "pocketbase/pocketbase",
"version": "v0.28.1",
"date": "2025-05-13T18:45:47Z"
},
{ {
"name": "OctoPrint/OctoPrint", "name": "OctoPrint/OctoPrint",
"version": "1.11.1", "version": "1.11.1",
@@ -444,21 +544,11 @@
"version": "v2.1.0.118-2.1.0.118_canary_2025-05-12", "version": "v2.1.0.118-2.1.0.118_canary_2025-05-12",
"date": "2025-05-12T18:50:44Z" "date": "2025-05-12T18:50:44Z"
}, },
{
"name": "neo4j/neo4j",
"version": "4.4.43",
"date": "2025-05-12T15:33:17Z"
},
{ {
"name": "usememos/memos", "name": "usememos/memos",
"version": "v0.24.3", "version": "v0.24.3",
"date": "2025-05-12T15:23:21Z" "date": "2025-05-12T15:23:21Z"
}, },
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.17",
"date": "2025-05-12T08:48:30Z"
},
{ {
"name": "stackblitz-labs/bolt.diy", "name": "stackblitz-labs/bolt.diy",
"version": "1.0.0", "version": "1.0.0",
@@ -474,16 +564,6 @@
"version": "v0.84.0", "version": "v0.84.0",
"date": "2025-05-11T15:50:48Z" "date": "2025-05-11T15:50:48Z"
}, },
{
"name": "Kozea/Radicale",
"version": "v3.5.3",
"date": "2025-05-11T15:17:13Z"
},
{
"name": "authelia/authelia",
"version": "v4.39.3",
"date": "2025-05-11T11:12:15Z"
},
{ {
"name": "owncast/owncast", "name": "owncast/owncast",
"version": "v0.2.3", "version": "v0.2.3",
@@ -499,46 +579,21 @@
"version": "v1.0.0-beta21", "version": "v1.0.0-beta21",
"date": "2025-05-09T23:14:23Z" "date": "2025-05-09T23:14:23Z"
}, },
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v0.53.0",
"date": "2025-05-08T19:56:55Z"
},
{ {
"name": "apache/tomcat", "name": "apache/tomcat",
"version": "10.1.41", "version": "10.1.41",
"date": "2025-05-08T12:45:44Z" "date": "2025-05-08T12:45:44Z"
}, },
{
"name": "semaphoreui/semaphore",
"version": "v2.14.10",
"date": "2025-05-07T20:23:29Z"
},
{ {
"name": "readeck/readeck", "name": "readeck/readeck",
"version": "0.18.2", "version": "0.18.2",
"date": "2025-05-07T19:22:22Z" "date": "2025-05-07T19:22:22Z"
}, },
{
"name": "grafana/grafana",
"version": "v12.0.0+security-01",
"date": "2025-05-07T18:03:17Z"
},
{ {
"name": "donaldzou/WGDashboard", "name": "donaldzou/WGDashboard",
"version": "v4.2.3", "version": "v4.2.3",
"date": "2025-05-07T15:35:04Z" "date": "2025-05-07T15:35:04Z"
}, },
{
"name": "stonith404/pingvin-share",
"version": "v1.12.0",
"date": "2025-05-07T14:12:11Z"
},
{ {
"name": "Brandawg93/PeaNUT", "name": "Brandawg93/PeaNUT",
"version": "v5.7.5", "version": "v5.7.5",
@@ -554,36 +609,16 @@
"version": "v0.14.7", "version": "v0.14.7",
"date": "2025-05-07T11:32:23Z" "date": "2025-05-07T11:32:23Z"
}, },
{
"name": "grokability/snipe-it",
"version": "v8.1.3",
"date": "2025-05-07T11:09:21Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-alpha.0",
"date": "2025-05-07T09:12:08Z"
},
{ {
"name": "sysadminsmedia/homebox", "name": "sysadminsmedia/homebox",
"version": "v0.19.0", "version": "v0.19.0",
"date": "2025-05-06T18:05:42Z" "date": "2025-05-06T18:05:42Z"
}, },
{
"name": "MariaDB/server",
"version": "mariadb-11.4.6",
"date": "2025-05-06T15:30:49Z"
},
{ {
"name": "bluenviron/mediamtx", "name": "bluenviron/mediamtx",
"version": "v1.12.2", "version": "v1.12.2",
"date": "2025-05-06T15:30:10Z" "date": "2025-05-06T15:30:10Z"
}, },
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.61",
"date": "2025-04-22T12:42:26Z"
},
{ {
"name": "linkwarden/linkwarden", "name": "linkwarden/linkwarden",
"version": "v2.10.2", "version": "v2.10.2",
@@ -619,11 +654,6 @@
"version": "v1.17.5", "version": "v1.17.5",
"date": "2025-05-04T22:17:06Z" "date": "2025-05-04T22:17:06Z"
}, },
{
"name": "Lidarr/Lidarr",
"version": "v2.11.2.4629",
"date": "2025-04-28T11:59:37Z"
},
{ {
"name": "Readarr/Readarr", "name": "Readarr/Readarr",
"version": "v2.0.0.4645", "version": "v2.0.0.4645",
@@ -744,16 +774,6 @@
"version": "release-1.23.0", "version": "release-1.23.0",
"date": "2025-04-24T08:07:21Z" "date": "2025-04-24T08:07:21Z"
}, },
{
"name": "minio/minio",
"version": "RELEASE.2025-04-22T22-12-26Z",
"date": "2025-04-22T22:44:34Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.4.22",
"date": "2025-04-22T14:18:11Z"
},
{ {
"name": "monicahq/monica", "name": "monicahq/monica",
"version": "v4.1.2", "version": "v4.1.2",
@@ -829,11 +849,6 @@
"version": "4.5.1", "version": "4.5.1",
"date": "2025-04-11T09:57:47Z" "date": "2025-04-11T09:57:47Z"
}, },
{
"name": "Threadfin/Threadfin",
"version": "1.2.32",
"date": "2025-04-07T20:01:09Z"
},
{ {
"name": "thomiceli/opengist", "name": "thomiceli/opengist",
"version": "v1.10.0", "version": "v1.10.0",
@@ -1024,11 +1039,6 @@
"version": "v2.6.6", "version": "v2.6.6",
"date": "2025-02-24T19:14:46Z" "date": "2025-02-24T19:14:46Z"
}, },
{
"name": "ioBroker/ioBroker",
"version": "2025-02-23",
"date": "2025-02-24T16:05:06Z"
},
{ {
"name": "ventoy/Ventoy", "name": "ventoy/Ventoy",
"version": "v1.1.05", "version": "v1.1.05",
@@ -1064,11 +1074,6 @@
"version": "v1.9.0", "version": "v1.9.0",
"date": "2025-02-11T13:26:42Z" "date": "2025-02-11T13:26:42Z"
}, },
{
"name": "dani-garcia/vaultwarden",
"version": "1.33.2",
"date": "2025-02-09T17:54:59Z"
},
{ {
"name": "actualbudget/actual-server", "name": "actualbudget/actual-server",
"version": "v25.2.1", "version": "v25.2.1",
@@ -1094,11 +1099,6 @@
"version": "v0.5.7", "version": "v0.5.7",
"date": "2025-01-17T15:57:17Z" "date": "2025-01-17T15:57:17Z"
}, },
{
"name": "traccar/traccar",
"version": "v6.6",
"date": "2025-01-11T17:26:49Z"
},
{ {
"name": "ErsatzTV/ErsatzTV", "name": "ErsatzTV/ErsatzTV",
"version": "v25.1.0", "version": "v25.1.0",

View File

@@ -10,7 +10,7 @@
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://docs.zammad.org/en/latest/", "documentation": "https://docs.zammad.org/en/latest/",
"website": "https://zammad.com/", "website": "https://zammad.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zammad.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zammad.webp",
"config_path": "/etc/nginx/sites-available/zammad.conf", "config_path": "/etc/nginx/sites-available/zammad.conf",
"description": "Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and emails. It is distributed under version 3 of the GNU AFFERO General Public License (GNU AGPLv3).", "description": "Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and emails. It is distributed under version 3 of the GNU AFFERO General Public License (GNU AGPLv3).",

View File

@@ -15,10 +15,10 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apk add --no-cache \ $STD apk add --no-cache \
gpg \ gpg \
git \ git \
nodejs \ nodejs \
npm npm
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Creating Node-RED User" msg_info "Creating Node-RED User"
@@ -26,7 +26,7 @@ adduser -D -H -s /sbin/nologin -G users nodered
msg_ok "Created Node-RED User" msg_ok "Created Node-RED User"
msg_info "Installing Node-RED" msg_info "Installing Node-RED"
npm install -g --unsafe-perm node-red $STD npm install -g --unsafe-perm node-red
msg_ok "Installed Node-RED" msg_ok "Installed Node-RED"
msg_info "Creating /home/nodered" msg_info "Creating /home/nodered"
@@ -55,7 +55,7 @@ $STD rc-update add nodered default
msg_ok "Created Node-RED Service" msg_ok "Created Node-RED Service"
msg_info "Starting Node-RED" msg_info "Starting Node-RED"
$STD service nodered start $STD rc-service nodered start
msg_ok "Started Node-RED" msg_ok "Started Node-RED"
motd_ssh motd_ssh

100
install/argus-install.sh Normal file
View File

@@ -0,0 +1,100 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://release-argus.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
jq
msg_ok "Installed Dependencies"
msg_info "Setup Argus"
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
mkdir -p /opt/argus
curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
chmod +x /opt/argus/Argus
msg_ok "Setup Argus"
msg_info "Setup Argus Config"
cat <<EOF >/opt/argus/config.yml
settings:
log:
level: INFO
timestamps: false
data:
database_file: data/argus.db
web:
listen_host: 0.0.0.0
listen_port: 8080
route_prefix: /
defaults:
service:
options:
interval: 30m
semantic_versioning: true
latest_version:
allow_invalid_certs: false
use_prerelease: false
dashboard:
auto_approve: true
webhook:
desired_status_code: 201
service:
release-argus/argus:
latest_version:
type: github
url: release-argus/argus
dashboard:
icon: https://raw.githubusercontent.com/release-argus/Argus/master/web/ui/react-app/public/favicon.svg
icon_link_to: https://release-argus.io
web_url: https://github.com/release-argus/Argus/blob/master/CHANGELOG.md
community-scripts/ProxmoxVE:
latest_version:
type: github
url: community-scripts/ProxmoxVE
use_prerelease: false
dashboard:
icon: https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/images/logo.png
icon_link_to: https://helper-scripts.com/
web_url: https://github.com/community-scripts/ProxmoxVE/releases
EOF
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup Config"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/argus.service
[Unit]
Description=Argus
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/argus
ExecStart=/opt/argus/Argus
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now argus
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -0,0 +1,87 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: edoardop13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/favonia/cloudflare-ddns
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
install_go
msg_info "Configure Application"
var_cf_api_token="default"
read -rp "Enter the Cloudflare API token: " var_cf_api_token
var_cf_domains="default"
read -rp "Enter the domains separated with a comma (*.example.org,www.example.org) " var_cf_domains
var_cf_proxied="false"
while true; do
read -rp "Proxied? (y/n): " answer
case "$answer" in
[Yy]*)
var_cf_proxied="true"
break
;;
[Nn]*)
var_cf_proxied="false"
break
;;
*) echo "Please answer y or n." ;;
esac
done
var_cf_ip6_provider="none"
while true; do
read -rp "Enable IPv6 support? (y/n): " answer
case "$answer" in
[Yy]*)
var_cf_ip6_provider="auto"
break
;;
[Nn]*)
var_cf_ip6_provider="none"
break
;;
*) echo "Please answer y or n." ;;
esac
done
msg_ok "Configured Application"
msg_info "Setting up service"
mkdir -p /root/go
cat <<EOF >/etc/systemd/system/cloudflare-ddns.service
[Unit]
Description=Cloudflare DDNS Service (Go run)
After=network.target
[Service]
Environment="CLOUDFLARE_API_TOKEN=${var_cf_api_token}"
Environment="DOMAINS=${var_cf_domains}"
Environment="PROXIED=${var_cf_proxied}"
Environment="IP6_PROVIDER=${var_cf_ip6_provider}"
Environment="GOPATH=/root/go"
Environment="GOCACHE=/tmp/go-build"
ExecStart=/usr/local/bin/go run github.com/favonia/cloudflare-ddns/cmd/ddns@latest
Restart=always
RestartSec=300
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now cloudflare-ddns
msg_ok "Setup Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Arian Nasr (arian-nasr)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.freepbx.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing FreePBX (Patience)"
curl -fsSL https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh -o /opt/sng_freepbx_debian_install.sh
$STD bash /opt/sng_freepbx_debian_install.sh
msg_ok "Installed FreePBX"
motd_ssh
customize
msg_info "Cleaning up"
rm /opt/sng_freepbx_debian_install.sh
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -16,8 +16,8 @@ update_os
msg_info "Installing InspIRCd" msg_info "Installing InspIRCd"
RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
cd /opt cd /opt
curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u1_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u1_amd64.deb") curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb")
$STD apt-get install "./inspircd_${RELEASE}.deb12u1_amd64.deb" -y &>/dev/null $STD apt-get install "./inspircd_${RELEASE}.deb12u2_amd64.deb" -y &>/dev/null
cat <<EOF >/etc/inspircd/inspircd.conf cat <<EOF >/etc/inspircd/inspircd.conf
<define name="networkDomain" value="helper-scripts.com"> <define name="networkDomain" value="helper-scripts.com">
<define name="networkName" value="Proxmox VE Helper-Scripts"> <define name="networkName" value="Proxmox VE Helper-Scripts">
@@ -40,7 +40,7 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf /opt/inspircd_${RELEASE}.deb12u1_amd64.deb rm -rf /opt/inspircd_${RELEASE}.deb12u2_amd64.deb
$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"

33
install/kasm-install.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.kasmweb.com/docs/latest/index.html
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Kasm Workspaces"
KASM_VERSION=$(curl -fsSL 'https://www.kasmweb.com/downloads' | grep -o 'https://kasm-static-content.s3.amazonaws.com/kasm_release_[^"]*\.tar\.gz' | head -n 1 | sed -E 's/.*release_(.*)\.tar\.gz/\1/')
curl -fsSL -o "/opt/kasm_release_${KASM_VERSION}.tar.gz" "https://kasm-static-content.s3.amazonaws.com/kasm_release_${KASM_VERSION}.tar.gz"
cd /opt
tar -xf "kasm_release_${KASM_VERSION}.tar.gz"
chmod +x /opt/kasm_release/install.sh
printf 'y\ny\ny\n4\n' | bash /opt/kasm_release/install.sh | tee ~/kasm-install.output
sed -n '/Kasm UI Login Credentials/,$p' ~/kasm-install.output >~/kasm.creds
msg_ok "Installed Kasm Workspaces"
motd_ssh
customize
msg_info "Cleaning up"
$STD rm -f /opt/kasm_release_${KASM_VERSION}.tar.gz
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -15,20 +15,15 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
gpg \
build-essential build-essential
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository" msg_info "Installing Python3"
mkdir -p /etc/apt/keyrings $STD apt-get install -y \
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg python3-pip
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 "Installed Python3"
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js" install_node_and_modules
$STD apt-get update
$STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Setup Paperless-AI" msg_info "Setup Paperless-AI"
cd /opt cd /opt
@@ -37,6 +32,8 @@ curl -fsSL "https://github.com/clusterzx/paperless-ai/archive/refs/tags/v${RELEA
unzip -q v${RELEASE}.zip unzip -q v${RELEASE}.zip
mv paperless-ai-${RELEASE} /opt/paperless-ai mv paperless-ai-${RELEASE} /opt/paperless-ai
cd /opt/paperless-ai cd /opt/paperless-ai
$STD pip install --no-cache-dir -r requirements.txt
mkdir -p data/chromadb
$STD npm install $STD npm install
mkdir -p /opt/paperless-ai/data mkdir -p /opt/paperless-ai/data
cat <<EOF >/opt/paperless-ai/data/.env cat <<EOF >/opt/paperless-ai/data/.env
@@ -61,6 +58,8 @@ API_KEY=
CUSTOM_API_KEY= CUSTOM_API_KEY=
CUSTOM_BASE_URL= CUSTOM_BASE_URL=
CUSTOM_MODEL= CUSTOM_MODEL=
RAG_SERVICE_URL=http://localhost:8000
RAG_SERVICE_ENABLED=true
EOF EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Setup Paperless-AI" msg_ok "Setup Paperless-AI"
@@ -69,7 +68,8 @@ msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/paperless-ai.service cat <<EOF >/etc/systemd/system/paperless-ai.service
[Unit] [Unit]
Description=PaperlessAI Service Description=PaperlessAI Service
After=network.target After=network.target paperless-rag.service
Requires=paperless-rag.service
[Service] [Service]
WorkingDirectory=/opt/paperless-ai WorkingDirectory=/opt/paperless-ai
@@ -79,6 +79,22 @@ Restart=always
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
cat <<EOF >/etc/systemd/system/paperless-rag.service
[Unit]
Description=PaperlessAI-RAG Service
After=network.target
[Service]
WorkingDirectory=/opt/paperless-ai
ExecStart=/usr/bin/python3 main.py --host 0.0.0.0 --port 8000 --initialize
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now paperless-rag
sleep 5
systemctl enable -q --now paperless-ai systemctl enable -q --now paperless-ai
msg_ok "Created Service" msg_ok "Created Service"

View File

@@ -13,94 +13,37 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
gpg \
caddy \
gcc
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
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_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
msg_ok "Installed Node.js"
msg_info "Installing Golang"
set +o pipefail
temp_file=$(mktemp)
golang_tarball=$(curl -fsSL https://go.dev/dl/ | grep -oP 'go[\d\.]+\.linux-amd64\.tar\.gz' | head -n 1)
curl -fsSL "https://golang.org/dl/${golang_tarball}" -o "$temp_file"
tar -C /usr/local -xzf "$temp_file"
ln -sf /usr/local/go/bin/go /usr/local/bin/go
rm -f "$temp_file"
set -o pipefail
msg_ok "Installed Golang"
read -r -p "${TAB3}What public URL do you want to use (e.g. pocketid.mydomain.com)? " public_url read -r -p "${TAB3}What public URL do you want to use (e.g. pocketid.mydomain.com)? " public_url
msg_info "Setup Pocket ID" msg_info "Setup Pocket ID"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/pocket-id/pocket-id/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/pocket-id/pocket-id/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/pocket-id/pocket-id/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/pocket-id/pocket-id/archive/refs/tags/v${RELEASE}.zip") mkdir -p /opt/pocket-id
unzip -q v${RELEASE}.zip curl -fsSL "https://github.com/pocket-id/pocket-id/releases/download/v${RELEASE}/pocket-id-linux-amd64" -o /opt/pocket-id/pocket-id
mv pocket-id-${RELEASE}/ /opt/pocket-id chmod u+x /opt/pocket-id/pocket-id
cd /opt/pocket-id/backend cat <<EOF >/opt/pocket-id/.env
cp .env.example .env APP_ENV=production
sed -i "s/PUBLIC_APP_URL=http:\/\/localhost/PUBLIC_APP_URL=https:\/\/${public_url}/" .env APP_URL=https://${public_url}
cd cmd TRUST_PROXY=false
CGO_ENABLED=1 # MAXMIND_LICENSE_KEY=
GOOS=linux PORT=1411
$STD go build -o ../pocket-id-backend HOST=0.0.0.0
EOF
cd ../../frontend
cp .env.example .env
sed -i "s/PUBLIC_APP_URL=http:\/\/localhost/PUBLIC_APP_URL=https:\/\/${public_url}/" .env
$STD npm install
$STD npm run build
cd ..
cp reverse-proxy/Caddyfile /etc/caddy/Caddyfile
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup Pocket ID" msg_ok "Setup Pocket ID"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/pocketid-backend.service cat <<EOF >/etc/systemd/system/pocketid.service
[Unit] [Unit]
Description=Pocket ID Backend Description=Pocket ID Service
After=network.target After=network.target
[Service] [Service]
Type=simple Type=simple
User=root User=root
Group=root Group=root
WorkingDirectory=/opt/pocket-id/backend WorkingDirectory=/opt/pocket-id
EnvironmentFile=/opt/pocket-id/backend/.env EnvironmentFile=/opt/pocket-id/.env
ExecStart=/opt/pocket-id/backend/pocket-id-backend ExecStart=/opt/pocket-id/pocket-id
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/pocketid-frontend.service
[Unit]
Description=Pocket ID Frontend
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/pocket-id/frontend
EnvironmentFile=/opt/pocket-id/frontend/.env
ExecStart=/usr/bin/node build/index.js
Restart=always Restart=always
RestartSec=10 RestartSec=10
@@ -109,17 +52,14 @@ WantedBy=multi-user.target
EOF EOF
msg_ok "Created Service" msg_ok "Created Service"
msg_info "Starting Services" msg_info "Starting Service"
systemctl enable -q --now pocketid-backend systemctl enable -q --now pocketid
systemctl enable -q --now pocketid-frontend
systemctl restart caddy
msg_ok "Started Services" msg_ok "Started Services"
motd_ssh motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f /opt/v${RELEASE}.zip
$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"

View File

@@ -54,7 +54,7 @@ $STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH
msg_ok "Set up MariaDB" msg_ok "Set up MariaDB"
read -p "${TAB3}Provide an email address for admin login, this should be a valid email address: " ADMIN_EMAIL read -p "${TAB3}Provide an email address for admin login, this should be a valid email address: " ADMIN_EMAIL
read -p "${TAB3}nter your First Name: " NAME_FIRST read -p "${TAB3}Enter your First Name: " NAME_FIRST
read -p "${TAB3}Enter your Last Name: " NAME_LAST read -p "${TAB3}Enter your Last Name: " NAME_LAST
msg_info "Installing pterodactyl Panel" msg_info "Installing pterodactyl Panel"

View File

@@ -1,62 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/deepch/RTSPtoWeb
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 git
msg_ok "Installed Dependencies"
msg_info "Installing Golang"
set +o pipefail
temp_file=$(mktemp)
golang_tarball=$(curl -fsSL https://go.dev/dl/ | grep -oP 'go[\d\.]+\.linux-amd64\.tar\.gz' | head -n 1)
curl -fsSL "https://golang.org/dl/${golang_tarball}" -o "$temp_file"
tar -C /usr/local -xzf "$temp_file"
ln -sf /usr/local/go/bin/go /usr/local/bin/go
rm -f "$temp_file"
set -o pipefail
msg_ok "Installed Golang"
msg_info "Installing RTSPtoWeb"
$STD git clone https://github.com/deepch/RTSPtoWeb /opt/rtsptoweb
cat <<EOF >>/opt/rtsptoweb/start
#!/bin/bash
cd /opt/rtsptoweb && GO111MODULE=on go run *.go
EOF
chmod +x /opt/rtsptoweb/start
msg_ok "Installed RTSPtoWeb"
msg_info "Creating Service"
service_path="/etc/systemd/system/rtsptoweb.service"
echo "[Unit]
Description=RTSP to Web Streaming Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/rtsptoweb/start
[Install]
WantedBy=multi-user.target" >$service_path
systemctl enable -q --now rtsptoweb
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/slskd/slskd/, https://soularr.net # Source: https://github.com/slskd/slskd/, https://soularr.net
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -28,14 +28,15 @@ JWT_KEY=$(openssl rand -base64 44)
SLSKD_API_KEY=$(openssl rand -base64 44) SLSKD_API_KEY=$(openssl rand -base64 44)
cp /opt/${APPLICATION}/config/slskd.example.yml /opt/${APPLICATION}/config/slskd.yml cp /opt/${APPLICATION}/config/slskd.example.yml /opt/${APPLICATION}/config/slskd.yml
sed -i \ sed -i \
-e "\|web:|,\|cidr|s|^#||" \ -e "\|web:|,\|cidr|s|^#||" \
-e "\|https:|,\|5031|s|false|true|" \ -e "\|https:|,\|5031|s|false|true|" \
-e "\|api_keys|,\|cidr|s|<some.*$|$SLSKD_API_KEY|; \ -e "\|api_keys|,\|cidr|s|<some.*$|$SLSKD_API_KEY|; \
s|role: readonly|role: readwrite|; \ s|role: readonly|role: readwrite|; \
s|0.0.0.0/0,::/0|& # Replace this with your subnet|" \ s|0.0.0.0/0,::/0|& # Replace this with your subnet|" \
-e "\|soulseek|,\|write_queue|s|^#||" \ -e "\|soulseek|,\|write_queue|s|^#||" \
-e "\|jwt:|,\|ttl|s|key: ~|key: $JWT_KEY|" \ -e "\|jwt:|,\|ttl|s|key: ~|key: $JWT_KEY|" \
/opt/${APPLICATION}/config/slskd.yml -e "s|^ picture|# picture|" \
/opt/${APPLICATION}/config/slskd.yml
msg_ok "Setup ${APPLICATION}" msg_ok "Setup ${APPLICATION}"
msg_info "Installing Soularr" msg_info "Installing Soularr"
@@ -47,15 +48,15 @@ mv soularr-main /opt/soularr
cd /opt/soularr cd /opt/soularr
$STD pip install -r requirements.txt $STD pip install -r requirements.txt
sed -i \ sed -i \
-e "\|[Slskd]|,\|host_url|s|yourslskdapikeygoeshere|$SLSKD_API_KEY|" \ -e "\|[Slskd]|,\|host_url|s|yourslskdapikeygoeshere|$SLSKD_API_KEY|" \
-e "/host_url/s/slskd/localhost/" \ -e "/host_url/s/slskd/localhost/" \
/opt/soularr/config.ini /opt/soularr/config.ini
sed -i \ sed -i \
-e "/#This\|#Default\|INTERVAL/{N;d;}" \ -e "/#This\|#Default\|INTERVAL/{N;d;}" \
-e "/while\|#Pass/d" \ -e "/while\|#Pass/d" \
-e "\|python|s|app|opt/soularr|; s|python|python3|" \ -e "\|python|s|app|opt/soularr|; s|python|python3|" \
-e "/dt/,+2d" \ -e "/dt/,+2d" \
/opt/soularr/run.sh /opt/soularr/run.sh
sed -i -E "/(soularr.py)/s/.{5}$//; /if/,/fi/s/.{4}//" /opt/soularr/run.sh sed -i -E "/(soularr.py)/s/.{5}$//; /if/,/fi/s/.{4}//" /opt/soularr/run.sh
chmod +x /opt/soularr/run.sh chmod +x /opt/soularr/run.sh
msg_ok "Installed Soularr" msg_ok "Installed Soularr"

View File

@@ -59,6 +59,7 @@ color() {
ROOTSSH="${TAB}🔑${TAB}${CL}" ROOTSSH="${TAB}🔑${TAB}${CL}"
CREATING="${TAB}🚀${TAB}${CL}" CREATING="${TAB}🚀${TAB}${CL}"
ADVANCED="${TAB}🧩${TAB}${CL}" ADVANCED="${TAB}🧩${TAB}${CL}"
FUSE="${TAB}🗂️${TAB}${CL}"
} }
# This function enables error handling in the script by setting options and defining a trap for the ERR signal. # This function enables error handling in the script by setting options and defining a trap for the ERR signal.
@@ -345,6 +346,8 @@ base_settings() {
SSH="no" SSH="no"
SSH_AUTHORIZED_KEY="" SSH_AUTHORIZED_KEY=""
TAGS="community-script;" TAGS="community-script;"
ENABLE_FUSE="no"
ENABLE_TUN="no"
# Override default settings with variables from ct script # Override default settings with variables from ct script
CT_TYPE=${var_unprivileged:-$CT_TYPE} CT_TYPE=${var_unprivileged:-$CT_TYPE}
@@ -353,6 +356,8 @@ base_settings() {
RAM_SIZE=${var_ram:-$RAM_SIZE} RAM_SIZE=${var_ram:-$RAM_SIZE}
VERB=${var_verbose:-$VERBOSE} VERB=${var_verbose:-$VERBOSE}
TAGS="${TAGS}${var_tags:-}" TAGS="${TAGS}${var_tags:-}"
ENABLE_FUSE="${var_fuse:-$ENABLE_FUSE}"
ENABLE_TUN="${var_tun:-$ENABLE_TUN}"
# Since these 2 are only defined outside of default_settings function, we add a temporary fallback. TODO: To align everything, we should add these as constant variables (e.g. OSTYPE and OSVERSION), but that would currently require updating the default_settings function for all existing scripts # Since these 2 are only defined outside of default_settings function, we add a temporary fallback. TODO: To align everything, we should add these as constant variables (e.g. OSTYPE and OSVERSION), but that would currently require updating the default_settings function for all existing scripts
if [ -z "$var_os" ]; then if [ -z "$var_os" ]; then
@@ -398,8 +403,8 @@ EOF
else else
echo -e "${INFO}${BOLD}${RD}Configuration file already exists at ${FILEPATH}${CL}" echo -e "${INFO}${BOLD}${RD}Configuration file already exists at ${FILEPATH}${CL}"
if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --defaultno --title "Overwrite configfile" --yesno "Do you want to overwrite the existing config file?" 10 60; then if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --defaultno --title "Overwrite configfile" --yesno "Do you want to overwrite the existing config file?" 10 60; then
rm -f "$FILEPATH" rm -f "$FILEPATH"
cat <<EOF >"$FILEPATH" cat <<EOF >"$FILEPATH"
# ${NSAPP} Configuration File # ${NSAPP} Configuration File
# Generated on $(date) # Generated on $(date)
@@ -433,7 +438,6 @@ EOF
fi fi
} }
# This function displays the default values for various settings. # This function displays the default values for various settings.
echo_default() { echo_default() {
# Convert CT_TYPE to description # Convert CT_TYPE to description
@@ -791,6 +795,12 @@ advanced_settings() {
echo -e "${ROOTSSH}${BOLD}${DGN}Root SSH Access: ${BGN}$SSH${CL}" echo -e "${ROOTSSH}${BOLD}${DGN}Root SSH Access: ${BGN}$SSH${CL}"
fi fi
if (whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --defaultno --title "FUSE Support" --yesno "Enable FUSE support?\nRequired for tools like rclone, mergerfs, AppImage, etc." 10 58); then
ENABLE_FUSE="yes"
else
ENABLE_FUSE="no"
fi
echo -e "${FUSE}${BOLD}${DGN}Enable FUSE Support: ${BGN}$ENABLE_FUSE${CL}"
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then
VERB="yes" VERB="yes"
@@ -878,7 +888,6 @@ EOF
} }
install_script() { install_script() {
pve_check pve_check
shell_check shell_check
@@ -1064,6 +1073,10 @@ build_container() {
FEATURES="nesting=1" FEATURES="nesting=1"
fi fi
if [ "$ENABLE_FUSE" == "yes" ]; then
FEATURES="$FEATURES,fuse=1"
fi
if [[ $DIAGNOSTICS == "yes" ]]; then if [[ $DIAGNOSTICS == "yes" ]]; then
post_to_api post_to_api
fi fi
@@ -1088,6 +1101,8 @@ build_container() {
export SSH_AUTHORIZED_KEY export SSH_AUTHORIZED_KEY
export CTID="$CT_ID" export CTID="$CT_ID"
export CTTYPE="$CT_TYPE" export CTTYPE="$CT_TYPE"
export ENABLE_FUSE="$ENABLE_FUSE"
export ENABLE_TUN="$ENABLE_TUN"
export PCT_OSTYPE="$var_os" export PCT_OSTYPE="$var_os"
export PCT_OSVERSION="$var_version" export PCT_OSVERSION="$var_version"
export PCT_DISK_SIZE="$DISK_SIZE" export PCT_DISK_SIZE="$DISK_SIZE"
@@ -1155,6 +1170,13 @@ EOF
fi fi
fi fi
if [ "$ENABLE_TUN" == "yes" ]; then
cat <<EOF >>"$LXC_CONFIG"
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
EOF
fi
# This starts the container and executes <app>-install.sh # This starts the container and executes <app>-install.sh
msg_info "Starting LXC Container" msg_info "Starting LXC Container"
pct start "$CTID" pct start "$CTID"

View File

@@ -0,0 +1,6 @@
__ _ ________ ________ ______
/ / | |/ / ____/ / _/ __ \ /_ __/___ _____ _
/ / | / / / // /_/ /_____/ / / __ `/ __ `/
/ /___/ / /___ _/ // ____/_____/ / / /_/ / /_/ /
/_____/_/|_\____/ /___/_/ /_/ \__,_/\__, /
/____/

View File

@@ -0,0 +1,6 @@
______ __ ______ __ _____
/ ____/___ ____/ /__ _____ / ____/___ ____/ /__ / ___/___ ______ _____ _____
/ / / __ \/ __ / _ \/ ___/ / / / __ \/ __ / _ \ \__ \/ _ \/ ___/ | / / _ \/ ___/
/ /___/ /_/ / /_/ / __/ / / /___/ /_/ / /_/ / __/ ___/ / __/ / | |/ / __/ /
\____/\____/\__,_/\___/_/ \____/\____/\__,_/\___/ /____/\___/_/ |___/\___/_/

View File

@@ -0,0 +1,6 @@
__ __ ___ _ __ __ ______ __ _
/ / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ / ____/___ ____ / /_____ _(_)___ ___ _____
/ /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ / / / __ \/ __ \/ __/ __ `/ / __ \/ _ \/ ___/
/ __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ / /___/ /_/ / / / / /_/ /_/ / / / / / __/ /
/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____/\____/_/ /_/\__/\__,_/_/_/ /_/\___/_/

View File

@@ -0,0 +1,6 @@
__ __ ___ _ __ __ ______
/ / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ / ____/___ ________
/ /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ / / / __ \/ ___/ _ \
/ __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ / /___/ /_/ / / / __/
/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____/\____/_/ \___/

6
tools/headers/crowdsec Normal file
View File

@@ -0,0 +1,6 @@
______ _______
/ ____/________ _ ______/ / ___/___ _____
/ / / ___/ __ \ | /| / / __ /\__ \/ _ \/ ___/
/ /___/ / / /_/ / |/ |/ / /_/ /___/ / __/ /__
\____/_/ \____/|__/|__/\__,_//____/\___/\___/

View File

@@ -0,0 +1,6 @@
_______ __ ____
/ ____(_) /__ / __ )_________ _ __________ _____
/ /_ / / / _ \/ __ / ___/ __ \ | /| / / ___/ _ \/ ___/
/ __/ / / / __/ /_/ / / / /_/ / |/ |/ (__ ) __/ /
/_/ /_/_/\___/_____/_/ \____/|__/|__/____/\___/_/

6
tools/headers/glances Normal file
View File

@@ -0,0 +1,6 @@
________
/ ____/ /___ _____ ________ _____
/ / __/ / __ `/ __ \/ ___/ _ \/ ___/
/ /_/ / / /_/ / / / / /__/ __(__ )
\____/_/\__,_/_/ /_/\___/\___/____/

6
tools/headers/olivetin Normal file
View File

@@ -0,0 +1,6 @@
____ ___ _______
/ __ \/ (_) _____/_ __(_)___
/ / / / / / | / / _ \/ / / / __ \
/ /_/ / / /| |/ / __/ / / / / / /
\____/_/_/ |___/\___/_/ /_/_/ /_/

View File

@@ -10,10 +10,10 @@ source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-sc
function header_info { function header_info {
clear clear
cat <<"EOF" cat <<"EOF"
______ __ __ _ __ __ __ _ ____ ___ ______ __ __ _ __ __ __ __ _ ____ ___
/_ __/_ _________ / //_/__ __ __ / |/ /____ ______/ /__ __ _____/ / | | / / |/ / /_ __/_ _________ / //_/__ __ __ / |/ /____ __/ /_____/ /__ __ _____/ / | | / / |/ /
/ / / // / __/ _ \/ ,< / -_) // / / / -_) \ / __/ / _ \/ // / _ / | |/ / /|_/ / / / / // / __/ _ \/ ,< / -_) // / / / -_) \ / __/ __/ / _ \/ // / _ / | |/ / /|_/ /
/_/ \_,_/_/ /_//_/_/|_|\__/\_, / /_/|_/\__/_\_\\__/_/\___/\_,_/\_,_/ |___/_/ /_/ /_/ \_,_/_/ /_//_/_/|_|\__/\_, / /_/|_/\__/_\_\\__/\__/_/\___/\_,_/\_,_/ |___/_/ /_/
/___/ /___/
EOF EOF
} }
@@ -26,7 +26,7 @@ var_os="turnkey-nextcloud"
var_version=" " var_version=" "
DISK_SIZE="12G" DISK_SIZE="12G"
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//') GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
NAME="TurnKey Nexcloud VM" NAME="TurnKey Nextcloud VM"
YW=$(echo "\033[33m") YW=$(echo "\033[33m")
BL=$(echo "\033[36m") BL=$(echo "\033[36m")
HA=$(echo "\033[1;34m") HA=$(echo "\033[1;34m")