Compare commits

...

26 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
9a906d35e2 Update CHANGELOG.md (#3726)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-07 18:56:50 +02:00
CanbiZ
97674cfae7 Alpine-MariaDB: Fix Install Service startup (#3701) 2025-04-07 17:51:12 +01:00
John Sturgeon
89ae467364 Changed the category of Channels DVR and NextPVR (#3729)
This resolves #3727
2025-04-07 17:36:20 +02:00
CanbiZ
42a7c00bca Kimai: bump php to 8.4 (#3724) 2025-04-07 16:23:23 +02:00
community-scripts-pr-app[bot]
d28368b596 Update versions.json (#3725)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-07 14:25:14 +02:00
community-scripts-pr-app[bot]
9786bfb55e Update CHANGELOG.md (#3722)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-07 13:02:37 +02:00
CanbiZ
26ea046ba2 Redesign: Zabbix, get always latest version (#3720) 2025-04-07 12:50:37 +02:00
community-scripts-pr-app[bot]
061c7ebd2e Update CHANGELOG.md (#3710) 2025-04-07 11:41:56 +01:00
Slaviša Arežina
5313bb0103 Zitadel: Fix release tarball crawling (#3716) 2025-04-07 11:41:10 +01:00
CanbiZ
86577a0d0d Actual: Increase RAM and add heap-space var for nodejs (#3713)
* Actual: Increase RAM and add heap-space var for nodejs

* Update actualbudget.json

* increase hdd size

* node options
2025-04-07 09:06:46 +02:00
community-scripts-pr-app[bot]
4ae0352304 Update .app files (#3715)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-04-07 07:52:33 +02:00
community-scripts-pr-app[bot]
0c202066f5 Update versions.json (#3711)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-07 07:51:52 +02:00
community-scripts-pr-app[bot]
9bac1398b2 Update date in json (#3714)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-04-07 07:51:31 +02:00
CanbiZ
251f3c411d Breaking: Hoarder > Karakeep (#3699)
* Breaking: Hoarder > Karakeep

* json

* Update hoarder.sh

* formatting
2025-04-07 07:50:45 +02:00
community-scripts-pr-app[bot]
5b73662d9c Update CHANGELOG.md (#3697)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-06 22:42:25 +02:00
Bram Suurd
4ef88cd051 Implement FAQ component and integrate it into the main page (#3709)
* Implement FAQ component and integrate it into the main page; update package-lock.json for development dependencies.

* Adjust Footer component padding for improved layout consistency

* Update FAQ section div to include an ID for improved accessibility and navigation

* Adjust ScriptAccordion max height for improved layout consistency

* Remove default value from Accordion in FAQ component

* Refactor FAQ items for clarity and consistency; update titles and content for improved user understanding.

* Refactor FAQ component to use index as key for Accordion items; remove IDs from FAQ_Items for simplified mapping.
2025-04-06 22:28:04 +02:00
CanbiZ
427ce771d7 Actual: Add git dependency & change yarn commands (#3703) 2025-04-06 16:00:08 +02:00
CanbiZ
c08ebc48e8 Pelican-Panel: Fix PHP 8.4 Repository (#3700) 2025-04-06 15:48:27 +02:00
community-scripts-pr-app[bot]
421248ccf3 Update versions.json (#3702)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-06 14:07:16 +02:00
community-scripts-pr-app[bot]
b395a1846c Update CHANGELOG.md (#3686) 2025-04-06 10:17:23 +01:00
community-scripts-pr-app[bot]
c2893f3edf Update versions.json (#3693) 2025-04-06 10:17:05 +01:00
community-scripts-pr-app[bot]
00f91843ec Update CHANGELOG.md (#3677) 2025-04-05 17:01:57 +01:00
community-scripts-pr-app[bot]
5451047f44 Update versions.json (#3679) 2025-04-05 17:01:36 +01:00
dependabot[bot]
d8848464be Bump vite from 6.2.4 to 6.2.5 in /frontend (#3668) 2025-04-05 17:01:20 +01:00
community-scripts-pr-app[bot]
019e1ac8a0 Update versions.json (#3674)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-05 08:46:31 +02:00
community-scripts-pr-app[bot]
d4b67e0c7e Update CHANGELOG.md (#3673)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-05 08:45:54 +02:00
27 changed files with 870 additions and 623 deletions

View File

@@ -14,6 +14,56 @@ 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-04-07
### 🆕 New Scripts
- Breaking: Hoarder > Karakeep [@MickLesk](https://github.com/MickLesk) ([#3699](https://github.com/community-scripts/ProxmoxVE/pull/3699))
### 🚀 Updated Scripts
- Actual: Increase RAM and add heap-space var for nodejs [@MickLesk](https://github.com/MickLesk) ([#3713](https://github.com/community-scripts/ProxmoxVE/pull/3713))
- #### 🐞 Bug Fixes
- Alpine-MariaDB: Fix Install Service startup [@MickLesk](https://github.com/MickLesk) ([#3701](https://github.com/community-scripts/ProxmoxVE/pull/3701))
- Zitadel: Fix release tarball crawling [@tremor021](https://github.com/tremor021) ([#3716](https://github.com/community-scripts/ProxmoxVE/pull/3716))
- #### ✨ New Features
- Kimai: bump php to 8.4 [@MickLesk](https://github.com/MickLesk) ([#3724](https://github.com/community-scripts/ProxmoxVE/pull/3724))
- #### 🔧 Refactor
- Refactor: Zabbix, get always latest version [@MickLesk](https://github.com/MickLesk) ([#3720](https://github.com/community-scripts/ProxmoxVE/pull/3720))
### 🌐 Website
- #### 📝 Script Information
- Changed the category of Channels DVR and NextPVR [@johnsturgeon](https://github.com/johnsturgeon) ([#3729](https://github.com/community-scripts/ProxmoxVE/pull/3729))
## 2025-04-06
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Actual: Add git dependency & change yarn commands [@MickLesk](https://github.com/MickLesk) ([#3703](https://github.com/community-scripts/ProxmoxVE/pull/3703))
- Pelican-Panel: Fix PHP 8.4 Repository [@MickLesk](https://github.com/MickLesk) ([#3700](https://github.com/community-scripts/ProxmoxVE/pull/3700))
### 🌐 Website
- #### 🐞 Bug Fixes
- Implement FAQ component and integrate it into the main page [@BramSuurdje](https://github.com/BramSuurdje) ([#3709](https://github.com/community-scripts/ProxmoxVE/pull/3709))
## 2025-04-05
### 🌐 Website
- Bump vite from 6.2.4 to 6.2.5 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#3668](https://github.com/community-scripts/ProxmoxVE/pull/3668))
## 2025-04-04 ## 2025-04-04
### 🆕 New Scripts ### 🆕 New Scripts

View File

@@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Actual Budget" APP="Actual Budget"
var_tags="finance" var_tags="finance"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="8192"
var_disk="4" var_disk="7"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1" var_unprivileged="1"
@@ -35,6 +35,13 @@ function update_script() {
systemctl stop actualbudget systemctl stop actualbudget
msg_ok "${APP} Stopped" msg_ok "${APP} Stopped"
if ! command -v git &>/dev/null; then
msg_info "Installing git"
$STD apt-get update
$STD apt-get install -y git
msg_ok "Installed git"
fi
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
cd /tmp || exit cd /tmp || exit
curl -fsSL "https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz" -o "v${RELEASE}.tar.gz" curl -fsSL "https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz" -o "v${RELEASE}.tar.gz"
@@ -77,7 +84,10 @@ ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
EOF EOF
fi fi
cd /opt/actualbudget || exit cd /opt/actualbudget || exit
$STD yarn workspaces focus @actual-app/sync-server --production export NODE_OPTIONS="--max_old_space_size=4096"
$STD yarn install
$STD yarn run build:server
#$STD yarn workspaces focus @actual-app/sync-server --production
echo "${RELEASE}" >/opt/actualbudget_version.txt echo "${RELEASE}" >/opt/actualbudget_version.txt
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"

6
ct/headers/karakeep Normal file
View File

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

View File

@@ -40,23 +40,23 @@ function update_script() {
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
$STD apt-get install -y graphicsmagick ghostscript $STD apt-get install -y graphicsmagick ghostscript
fi fi
cd /opt cd /opt || exit
if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
mkdir -p /etc/hoarder mkdir -p /etc/hoarder
mv /opt/hoarder/.env /etc/hoarder/hoarder.env mv /opt/hoarder/.env /etc/hoarder/hoarder.env
fi fi
rm -rf /opt/hoarder rm -rf /opt/hoarder
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip") curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
unzip -q v${RELEASE}.zip unzip -q v"${RELEASE}".zip
mv hoarder-${RELEASE} /opt/hoarder mv karakeep-"${RELEASE}" /opt/hoarder
cd /opt/hoarder/apps/web cd /opt/hoarder/apps/web || exit
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm exec next build --experimental-build-mode compile $STD pnpm exec next build --experimental-build-mode compile
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
cd /opt/hoarder/apps/workers cd /opt/hoarder/apps/workers || exit
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
export DATA_DIR=/opt/hoarder_data export DATA_DIR=/opt/hoarder_data
cd /opt/hoarder/packages/db cd /opt/hoarder/packages/db || exit
$STD pnpm migrate $STD pnpm migrate
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
msg_ok "Updated ${APP} to v${RELEASE}" msg_ok "Updated ${APP} to v${RELEASE}"
@@ -65,7 +65,7 @@ function update_script() {
systemctl start hoarder-browser hoarder-workers hoarder-web systemctl start hoarder-browser hoarder-workers hoarder-web
msg_ok "Started Services" msg_ok "Started Services"
msg_info "Cleaning up" msg_info "Cleaning up"
rm -R /opt/v${RELEASE}.zip rm -R /opt/v"${RELEASE}".zip
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"

85
ct/karakeep.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz) & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://karakeep.app/
APP="karakeep"
var_tags="bookmark"
var_cpu="2"
var_ram="4096"
var_disk="10"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/karakeep ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
PREV_RELEASE=$(cat /opt/${APP}_version.txt)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "${PREV_RELEASE}" ]]; then
msg_info "Stopping Services"
systemctl stop karakeep-web karakeep-workers karakeep-browser
msg_ok "Stopped Services"
msg_info "Updating ${APP} to v${RELEASE}"
if [[ $(corepack -v) < "0.31.0" ]]; then
$STD npm install -g corepack@0.31.0
fi
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
$STD apt-get install -y graphicsmagick ghostscript
fi
cd /opt || exit
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
mkdir -p /etc/karakeep
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
fi
rm -rf /opt/karakeep
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
unzip -q "v${RELEASE}.zip"
mv karakeep-"${RELEASE}" /opt/karakeep
cd /opt/karakeep/apps/web || exit
$STD pnpm install --frozen-lockfile
$STD pnpm exec next build --experimental-build-mode compile
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
cd /opt/karakeep/apps/workers || exit
$STD pnpm install --frozen-lockfile
export DATA_DIR=/opt/karakeep_data
cd /opt/karakeep/packages/db || exit
$STD pnpm migrate
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Services"
systemctl start karakeep-browser karakeep-workers karakeep-web
msg_ok "Started Services"
msg_info "Cleaning up"
rm -R /opt/v"${RELEASE}".zip
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -27,6 +27,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
if [[ "$CURRENT_PHP" != "8.4" ]]; then
msg_info "Migrating PHP $CURRENT_PHP to 8.4"
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
$STD apt-get remove -y php"${CURRENT_PHP//./}"*
$STD apt-get install -y \
php8.4 \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl} \
libapache2-mod-php8.4
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
BACKUP_DIR="/opt/kimai_backup" BACKUP_DIR="/opt/kimai_backup"
@@ -45,13 +60,13 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
rm -rf /opt/kimai rm -rf /opt/kimai
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip") curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
unzip -q ${RELEASE}.zip unzip -q "${RELEASE}".zip
mv kimai-${RELEASE} /opt/kimai mv kimai-"${RELEASE}" /opt/kimai
[ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/ [ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/
[ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/ [ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
[ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/ [ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
rm -rf "$BACKUP_DIR" rm -rf "$BACKUP_DIR"
cd /opt/kimai cd /opt/kimai || exit
$STD composer install --no-dev --optimize-autoloader $STD composer install --no-dev --optimize-autoloader
$STD bin/console kimai:update $STD bin/console kimai:update
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
@@ -70,7 +85,7 @@ function update_script() {
msg_ok "Setup Permissions" msg_ok "Setup Permissions"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf ${RELEASE}.zip rm -rf "${RELEASE}".zip
rm -rf "$BACKUP_DIR" rm -rf "$BACKUP_DIR"
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -fsSL 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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.zabbix.com/ # Source: https://www.zabbix.com/
@@ -38,8 +38,11 @@ function update_script() {
cp -R /usr/share/zabbix/ /opt/zabbix-backup/ cp -R /usr/share/zabbix/ /opt/zabbix-backup/
#cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary #cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
rm -Rf /etc/apt/sources.list.d/zabbix.list rm -Rf /etc/apt/sources.list.d/zabbix.list
cd /tmp cd /tmp || exit
curl -fsSL "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb" -o $(basename "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb") curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
-o /tmp/zabbix-release_latest+debian12_all.deb
$STD dpkg -i zabbix-release_latest+debian12_all.deb $STD dpkg -i zabbix-release_latest+debian12_all.deb
$STD apt-get update $STD apt-get update
$STD apt-get install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-agent2 zabbix-agent2-plugin-* $STD apt-get install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-agent2 zabbix-agent2-plugin-*

View File

@@ -27,7 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
RELEASE=$(curl -fsSL https://github.com/zitadel/zitadel/releases/latest | grep location: | cut -d '/' -f 8 | tr -d '\r') RELEASE=$(curl -fsSL https://api.github.com/repos/zitadel/zitadel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt | grep -oP '\d+\.\d+\.\d+')" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt | grep -oP '\d+\.\d+\.\d+')" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP" msg_info "Stopping $APP"
systemctl stop zitadel systemctl stop zitadel
@@ -35,7 +35,7 @@ function update_script() {
msg_info "Updating $APP to ${RELEASE}" msg_info "Updating $APP to ${RELEASE}"
cd /tmp || exit cd /tmp || exit
curl -fsSL https://github.com/zitadel/zitadel/releases/download/"$RELEASE"/zitadel-linux-amd64.tar.gz | tar -xz curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
mv zitadel-linux-amd64/zitadel /usr/local/bin mv zitadel-linux-amd64/zitadel /usr/local/bin
$STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true $STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@@ -3255,7 +3255,7 @@
"version": "19.0.0-rc.1", "version": "19.0.0-rc.1",
"resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz", "resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz",
"integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==", "integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==",
"devOptional": true, "dev": true,
"dependencies": { "dependencies": {
"csstype": "^3.0.2" "csstype": "^3.0.2"
} }
@@ -3265,7 +3265,7 @@
"version": "19.0.0-rc.1", "version": "19.0.0-rc.1",
"resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz", "resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz",
"integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==", "integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==",
"devOptional": true, "dev": true,
"dependencies": { "dependencies": {
"@types/react": "*" "@types/react": "*"
} }
@@ -7851,6 +7851,7 @@
"version": "3.5.3", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
"prettier": "bin/prettier.cjs" "prettier": "bin/prettier.cjs"
@@ -9541,6 +9542,7 @@
"version": "5.8.2", "version": "5.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
"dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
@@ -9665,9 +9667,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "6.2.4", "version": "6.2.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.2.4.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz",
"integrity": "sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==", "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View File

@@ -19,8 +19,8 @@
"script": "ct/actualbudget.sh", "script": "ct/actualbudget.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 8192,
"hdd": 4, "hdd": 7,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }

View File

@@ -2,7 +2,7 @@
"name": "Channels DVR Server", "name": "Channels DVR Server",
"slug": "channels", "slug": "channels",
"categories": [ "categories": [
15 13
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",

View File

@@ -1,34 +0,0 @@
{
"name": "Hoarder",
"slug": "hoarder",
"categories": [
12
],
"date_created": "2024-12-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://docs.hoarder.app/",
"website": "https://hoarder.app/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/hoarder.svg",
"description": "Hoarder is an AI-powered bookmarking tool that helps you save and organize your digital content. It automatically tags your links, notes, and images, making them easy to find later. With features like auto-fetching, lists, and full-text search, Hoarder is the perfect tool for anyone who wants to keep track of their digital life.",
"install_methods": [
{
"type": "default",
"script": "ct/hoarder.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -0,0 +1,34 @@
{
"name": "karakeep",
"slug": "karakeep",
"categories": [
12
],
"date_created": "2025-04-07",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://docs.karakeep.app/",
"website": "https://karakeep.app/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/karakeep.svg",
"description": "karakeep (formerly: hoarder) is an AI-powered bookmarking tool that helps you save and organize your digital content. It automatically tags your links, notes, and images, making them easy to find later. With features like auto-fetching, lists, and full-text search, karakeep is the perfect tool for anyone who wants to keep track of their digital life.",
"install_methods": [
{
"type": "default",
"script": "ct/karakeep.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -2,7 +2,7 @@
"name": "NextPVR", "name": "NextPVR",
"slug": "nextpvr", "slug": "nextpvr",
"categories": [ "categories": [
15 13
], ],
"date_created": "2024-11-20", "date_created": "2024-11-20",
"type": "ct", "type": "ct",

View File

@@ -1,13 +1,68 @@
[ [
{
"name": "Graylog2/graylog2-server",
"version": "6.2.0-beta.4",
"date": "2025-04-07T11:28:13Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.115.0",
"date": "2025-04-07T11:15:53Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.13.10",
"date": "2025-04-07T11:05:41Z"
},
{ {
"name": "fhem/fhem-mirror", "name": "fhem/fhem-mirror",
"version": "6.2", "version": "6.2",
"date": "2025-04-04T10:34:30Z" "date": "2025-04-07T10:34:55Z"
}, },
{ {
"name": "dgtlmoon/changedetection.io", "name": "syncthing/syncthing",
"version": "0.49.12", "version": "v1.29.4",
"date": "2025-04-04T07:31:08Z" "date": "2025-04-01T08:45:07Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-back-to-axios",
"date": "2025-04-07T09:23:08Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.1.5",
"date": "2025-04-07T09:19:35Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0b4-rc1",
"date": "2025-04-07T09:13:56Z"
},
{
"name": "redis/redis",
"version": "8.0-rc1-int2",
"date": "2025-04-02T19:05:08Z"
},
{
"name": "zabbix/zabbix",
"version": "7.4.0beta1",
"date": "2025-04-07T08:14:13Z"
},
{
"name": "StarFleetCPTN/GoMFT",
"version": "v0.2.5",
"date": "2025-04-07T07:43:29Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v24.8",
"date": "2025-03-18T07:33:51Z"
},
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.11",
"date": "2025-03-28T14:04:31Z"
}, },
{ {
"name": "morpheus65535/bazarr", "name": "morpheus65535/bazarr",
@@ -16,38 +71,18 @@
}, },
{ {
"name": "Jackett/Jackett", "name": "Jackett/Jackett",
"version": "v0.22.1726", "version": "v0.22.1740",
"date": "2025-04-04T05:59:26Z" "date": "2025-04-07T05:56:22Z"
}, },
{ {
"name": "keycloak/keycloak", "name": "prometheus/prometheus",
"version": "26.1.4", "version": "v0.303.0-rc.1",
"date": "2025-03-13T15:41:42Z" "date": "2025-04-07T04:39:38Z"
}, },
{ {
"name": "minio/minio", "name": "open-webui/open-webui",
"version": "RELEASE.2025-04-03T14-56-28Z", "version": "v0.6.2",
"date": "2025-04-03T19:08:18Z" "date": "2025-04-07T03:41:23Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "v2.5.2",
"date": "2025-04-03T17:40:17Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.11.2",
"date": "2025-04-02T13:40:18Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.10.3",
"date": "2024-11-05T09:20:50Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.4",
"date": "2025-04-01T08:45:07Z"
}, },
{ {
"name": "firefly-iii/firefly-iii", "name": "firefly-iii/firefly-iii",
@@ -55,50 +90,220 @@
"date": "2025-03-22T13:02:26Z" "date": "2025-03-22T13:02:26Z"
}, },
{ {
"name": "Graylog2/graylog2-server", "name": "Luligu/matterbridge",
"version": "6.0.14", "version": "2.2.7",
"date": "2025-04-03T07:52:24Z" "date": "2025-04-06T20:00:53Z"
},
{
"name": "Dolibarr/dolibarr",
"version": "21.0.1",
"date": "2025-04-06T19:22:59Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta11",
"date": "2025-04-06T18:52:35Z"
},
{
"name": "stonith404/pingvin-share",
"version": "v1.11.1",
"date": "2025-04-06T18:39:42Z"
},
{
"name": "wavelog/wavelog",
"version": "2.0.3",
"date": "2025-04-06T17:35:41Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "1.5.34",
"date": "2025-03-27T16:17:38Z"
},
{
"name": "runtipi/runtipi",
"version": "v3.10.0",
"date": "2025-03-15T14:38:16Z"
},
{
"name": "stackblitz-labs/bolt.diy",
"version": "v0.0.7-hf1",
"date": "2025-03-10T20:49:39Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.19.7",
"date": "2025-04-06T14:22:44Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.32.2.4987",
"date": "2025-03-16T09:41:37Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.21.1.9799",
"date": "2025-03-24T15:52:12Z"
},
{
"name": "karakeep-app/karakeep",
"version": "extension/v1.2.4",
"date": "2025-04-06T11:56:18Z"
},
{
"name": "TechnitiumSoftware/DnsServer",
"version": "v13.5.0",
"date": "2025-04-06T11:24:50Z"
},
{
"name": "TriliumNext/Notes",
"version": "v0.92.6",
"date": "2025-04-06T10:38:54Z"
},
{
"name": "kimai/kimai",
"version": "2.32.0",
"date": "2025-04-06T09:43:51Z"
},
{
"name": "inventree/InvenTree",
"version": "0.17.10",
"date": "2025-04-06T05:31:49Z"
},
{
"name": "ollama/ollama",
"version": "v0.6.5-rc0",
"date": "2025-04-03T23:57:36Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.10.7",
"date": "2025-04-05T19:14:59Z"
},
{
"name": "azukaar/Cosmos-Server",
"version": "v0.18.4",
"date": "2025-04-05T19:12:57Z"
},
{
"name": "wger-project/wger",
"version": "2.3",
"date": "2025-04-05T18:05:36Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.0.2",
"date": "2025-04-05T17:40:25Z"
},
{
"name": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "bastienwirtz/homer",
"version": "v25.04.1",
"date": "2025-04-05T12:39:18Z"
},
{
"name": "navidrome/navidrome",
"version": "v0.55.2",
"date": "2025-04-05T12:07:32Z"
},
{
"name": "Kozea/Radicale",
"version": "v3.5.1",
"date": "2025-04-05T06:20:18Z"
},
{
"name": "actualbudget/actual",
"version": "v25.4.0",
"date": "2025-04-05T04:14:57Z"
},
{
"name": "home-assistant/core",
"version": "2025.4.1",
"date": "2025-04-04T20:59:57Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.2.1",
"date": "2025-04-04T20:15:48Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.0.13",
"date": "2025-04-04T20:05:45Z"
},
{
"name": "coder/code-server",
"version": "v4.98.2",
"date": "2025-03-15T02:11:28Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.14.0",
"date": "2025-04-04T19:15:59Z"
},
{
"name": "Athou/commafeed",
"version": "5.7.0",
"date": "2025-04-04T18:10:16Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.14.4",
"date": "2025-04-04T14:18:53Z"
},
{
"name": "apache/tomcat",
"version": "9.0.104",
"date": "2025-04-04T12:58:11Z"
},
{
"name": "sabnzbd/sabnzbd",
"version": "4.5.0",
"date": "2025-03-30T16:17:11Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.12",
"date": "2025-04-04T07:31:08Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w14-4.12.0",
"date": "2025-04-04T00:03:06Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-04-03T14-56-28Z",
"date": "2025-04-03T19:08:18Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.10.3",
"date": "2024-11-05T09:20:50Z"
}, },
{ {
"name": "jupyter/notebook", "name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.4.0-rc.0", "version": "@jupyter-notebook/ui-components@7.4.0-rc.0",
"date": "2025-04-03T06:49:38Z" "date": "2025-04-03T06:49:38Z"
}, },
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.11",
"date": "2025-03-28T14:04:31Z"
},
{ {
"name": "rabbitmq/rabbitmq-server", "name": "rabbitmq/rabbitmq-server",
"version": "v4.0.8", "version": "v4.0.8",
"date": "2025-04-03T05:11:15Z" "date": "2025-04-03T05:11:15Z"
}, },
{
"name": "ollama/ollama",
"version": "v0.6.4",
"date": "2025-04-02T22:14:24Z"
},
{ {
"name": "HabitRPG/habitica", "name": "HabitRPG/habitica",
"version": "v5.35.1", "version": "v5.35.1",
"date": "2025-04-02T21:49:00Z" "date": "2025-04-02T21:49:00Z"
}, },
{
"name": "redis/redis",
"version": "8.0-rc1-int2",
"date": "2025-04-02T19:05:08Z"
},
{ {
"name": "zitadel/zitadel", "name": "zitadel/zitadel",
"version": "v2.63.9", "version": "v2.63.9",
"date": "2025-03-31T12:47:21Z" "date": "2025-03-31T12:47:21Z"
}, },
{
"name": "home-assistant/core",
"version": "2025.4.0",
"date": "2025-04-02T17:01:41Z"
},
{ {
"name": "BookStackApp/BookStack", "name": "BookStackApp/BookStack",
"version": "v25.02.2", "version": "v25.02.2",
@@ -114,56 +319,21 @@
"version": "jenkins-2.503", "version": "jenkins-2.503",
"date": "2025-04-02T15:12:13Z" "date": "2025-04-02T15:12:13Z"
}, },
{
"name": "Checkmk/checkmk",
"version": "v2.4.0b3",
"date": "2025-04-02T14:39:56Z"
},
{ {
"name": "hargata/lubelog", "name": "hargata/lubelog",
"version": "v1.4.6", "version": "v1.4.6",
"date": "2025-04-02T14:07:12Z" "date": "2025-04-02T14:07:12Z"
}, },
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.1.4",
"date": "2025-04-02T09:38:52Z"
},
{
"name": "runtipi/runtipi",
"version": "v3.10.0",
"date": "2025-03-15T14:38:16Z"
},
{ {
"name": "immich-app/immich", "name": "immich-app/immich",
"version": "v1.131.3", "version": "v1.131.3",
"date": "2025-04-01T22:48:22Z" "date": "2025-04-01T22:48:22Z"
}, },
{
"name": "icereed/paperless-gpt",
"version": "v0.14.3",
"date": "2025-04-01T19:53:18Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.2.0",
"date": "2025-04-01T18:50:44Z"
},
{
"name": "apache/tomcat",
"version": "9.0.103",
"date": "2025-04-01T18:39:51Z"
},
{ {
"name": "MagicMirrorOrg/MagicMirror", "name": "MagicMirrorOrg/MagicMirror",
"version": "v2.31.0", "version": "v2.31.0",
"date": "2025-04-01T18:12:45Z" "date": "2025-04-01T18:12:45Z"
}, },
{
"name": "msgbyte/tianji",
"version": "v1.19.6",
"date": "2025-04-01T17:26:31Z"
},
{ {
"name": "influxdata/influxdb", "name": "influxdata/influxdb",
"version": "v3.0.0-0.beta.3", "version": "v3.0.0-0.beta.3",
@@ -174,21 +344,11 @@
"version": "v1.127.1", "version": "v1.127.1",
"date": "2025-03-26T21:44:28Z" "date": "2025-03-26T21:44:28Z"
}, },
{
"name": "Luligu/matterbridge",
"version": "2.2.6",
"date": "2025-04-01T14:01:36Z"
},
{ {
"name": "theonedev/onedev", "name": "theonedev/onedev",
"version": "v11.8.6", "version": "v11.8.6",
"date": "2025-04-01T13:52:03Z" "date": "2025-04-01T13:52:03Z"
}, },
{
"name": "semaphoreui/semaphore",
"version": "v2.13.7",
"date": "2025-04-01T09:41:55Z"
},
{ {
"name": "neo4j/neo4j", "name": "neo4j/neo4j",
"version": "5.26.5", "version": "5.26.5",
@@ -199,11 +359,6 @@
"version": "v4.0.2", "version": "v4.0.2",
"date": "2025-04-01T04:51:05Z" "date": "2025-04-01T04:51:05Z"
}, },
{
"name": "open-webui/open-webui",
"version": "v0.6.0",
"date": "2025-04-01T01:47:32Z"
},
{ {
"name": "outline/outline", "name": "outline/outline",
"version": "v0.82.1-18", "version": "v0.82.1-18",
@@ -249,16 +404,6 @@
"version": "4.8.11.0", "version": "4.8.11.0",
"date": "2025-03-10T06:39:11Z" "date": "2025-03-10T06:39:11Z"
}, },
{
"name": "TriliumNext/Notes",
"version": "v0.92.5",
"date": "2025-03-30T12:32:43Z"
},
{
"name": "StarFleetCPTN/GoMFT",
"version": "v0.2.4",
"date": "2025-03-30T19:46:08Z"
},
{ {
"name": "louislam/dockge", "name": "louislam/dockge",
"version": "1.5.0", "version": "1.5.0",
@@ -269,11 +414,6 @@
"version": "v6.0.6", "version": "v6.0.6",
"date": "2025-03-30T16:59:06Z" "date": "2025-03-30T16:59:06Z"
}, },
{
"name": "sabnzbd/sabnzbd",
"version": "4.5.0",
"date": "2025-03-30T16:17:11Z"
},
{ {
"name": "Part-DB/Part-DB-server", "name": "Part-DB/Part-DB-server",
"version": "v1.17.0", "version": "v1.17.0",
@@ -289,11 +429,6 @@
"version": "v0.26.6", "version": "v0.26.6",
"date": "2025-03-30T08:02:19Z" "date": "2025-03-30T08:02:19Z"
}, },
{
"name": "Prowlarr/Prowlarr",
"version": "v1.32.2.4987",
"date": "2025-03-16T09:41:37Z"
},
{ {
"name": "Readarr/Readarr", "name": "Readarr/Readarr",
"version": "v2.0.0.4645", "version": "v2.0.0.4645",
@@ -304,11 +439,6 @@
"version": "v2.10.3.4602", "version": "v2.10.3.4602",
"date": "2025-03-23T11:00:37Z" "date": "2025-03-23T11:00:37Z"
}, },
{
"name": "Radarr/Radarr",
"version": "v5.21.1.9799",
"date": "2025-03-24T15:52:12Z"
},
{ {
"name": "aceberg/WatchYourLAN", "name": "aceberg/WatchYourLAN",
"version": "2.1.2-alpine", "version": "2.1.2-alpine",
@@ -344,11 +474,6 @@
"version": "2025.3.28", "version": "2025.3.28",
"date": "2025-03-29T00:18:56Z" "date": "2025-03-29T00:18:56Z"
}, },
{
"name": "homarr-labs/homarr",
"version": "v1.13.1",
"date": "2025-03-28T21:58:30Z"
},
{ {
"name": "TasmoAdmin/TasmoAdmin", "name": "TasmoAdmin/TasmoAdmin",
"version": "v4.2.3", "version": "v4.2.3",
@@ -394,11 +519,6 @@
"version": "336.2", "version": "336.2",
"date": "2025-03-28T10:16:47Z" "date": "2025-03-28T10:16:47Z"
}, },
{
"name": "YunoHost/yunohost",
"version": "debian/12.0.12",
"date": "2025-03-16T11:59:24Z"
},
{ {
"name": "gethomepage/homepage", "name": "gethomepage/homepage",
"version": "v1.1.1", "version": "v1.1.1",
@@ -419,21 +539,11 @@
"version": "2025.2", "version": "2025.2",
"date": "2025-03-27T19:21:13Z" "date": "2025-03-27T19:21:13Z"
}, },
{
"name": "TandoorRecipes/recipes",
"version": "1.5.34",
"date": "2025-03-27T16:17:38Z"
},
{ {
"name": "tailscale/tailscale", "name": "tailscale/tailscale",
"version": "v1.82.0", "version": "v1.82.0",
"date": "2025-03-27T13:08:18Z" "date": "2025-03-27T13:08:18Z"
}, },
{
"name": "zabbix/zabbix",
"version": "7.2.5",
"date": "2025-03-27T11:06:48Z"
},
{ {
"name": "evcc-io/evcc", "name": "evcc-io/evcc",
"version": "0.202.1", "version": "0.202.1",
@@ -449,11 +559,6 @@
"version": "v2.1.0.112-2.1.0.112_canary_2025-03-26", "version": "v2.1.0.112-2.1.0.112_canary_2025-03-26",
"date": "2025-03-26T21:04:38Z" "date": "2025-03-26T21:04:38Z"
}, },
{
"name": "prometheus/prometheus",
"version": "v0.303.0-rc.0",
"date": "2025-03-26T12:48:46Z"
},
{ {
"name": "forgejo/forgejo", "name": "forgejo/forgejo",
"version": "v12.0.0-dev", "version": "v12.0.0-dev",
@@ -494,11 +599,6 @@
"version": "v1.6.8", "version": "v1.6.8",
"date": "2025-03-25T13:33:10Z" "date": "2025-03-25T13:33:10Z"
}, },
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.114.0",
"date": "2025-03-25T07:58:34Z"
},
{ {
"name": "caddyserver/caddy", "name": "caddyserver/caddy",
"version": "v2.9.1", "version": "v2.9.1",
@@ -519,16 +619,6 @@
"version": "v0.9.0", "version": "v0.9.0",
"date": "2025-03-24T18:25:37Z" "date": "2025-03-24T18:25:37Z"
}, },
{
"name": "wavelog/wavelog",
"version": "2.0.2",
"date": "2025-03-24T12:02:08Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v24.8",
"date": "2025-03-18T07:33:51Z"
},
{ {
"name": "requarks/wiki", "name": "requarks/wiki",
"version": "v2.5.307", "version": "v2.5.307",
@@ -549,11 +639,6 @@
"version": "v0.24.2", "version": "v0.24.2",
"date": "2025-03-23T04:01:50Z" "date": "2025-03-23T04:01:50Z"
}, },
{
"name": "hoarder-app/hoarder",
"version": "sdk/v0.23.0",
"date": "2025-03-22T17:26:10Z"
},
{ {
"name": "netbox-community/netbox", "name": "netbox-community/netbox",
"version": "v4.2.6", "version": "v4.2.6",
@@ -584,11 +669,6 @@
"version": "v0.9.77", "version": "v0.9.77",
"date": "2025-03-21T02:25:42Z" "date": "2025-03-21T02:25:42Z"
}, },
{
"name": "stonith404/pingvin-share",
"version": "v1.10.4",
"date": "2025-03-20T18:56:10Z"
},
{ {
"name": "seanmorley15/AdventureLog", "name": "seanmorley15/AdventureLog",
"version": "v0.9.0", "version": "v0.9.0",
@@ -614,11 +694,6 @@
"version": "v2.20.0", "version": "v2.20.0",
"date": "2025-03-17T22:44:56Z" "date": "2025-03-17T22:44:56Z"
}, },
{
"name": "bastienwirtz/homer",
"version": "v25.03.3",
"date": "2025-03-17T20:55:37Z"
},
{ {
"name": "Kareadita/Kavita", "name": "Kareadita/Kavita",
"version": "v0.8.5.11", "version": "v0.8.5.11",
@@ -629,11 +704,6 @@
"version": "v4.0.14.2939", "version": "v4.0.14.2939",
"date": "2025-03-17T19:12:37Z" "date": "2025-03-17T19:12:37Z"
}, },
{
"name": "inventree/InvenTree",
"version": "0.17.9",
"date": "2025-03-17T12:13:23Z"
},
{ {
"name": "webmin/webmin", "name": "webmin/webmin",
"version": "2.303", "version": "2.303",
@@ -644,16 +714,6 @@
"version": "v1.60.0", "version": "v1.60.0",
"date": "2025-03-16T18:39:49Z" "date": "2025-03-16T18:39:49Z"
}, },
{
"name": "Kozea/Radicale",
"version": "v3.5.0",
"date": "2025-03-16T06:05:55Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta10",
"date": "2025-03-15T20:24:34Z"
},
{ {
"name": "pelican-dev/panel", "name": "pelican-dev/panel",
"version": "v1.0.0-beta18", "version": "v1.0.0-beta18",
@@ -664,16 +724,6 @@
"version": "v0.10.2", "version": "v0.10.2",
"date": "2025-03-15T07:14:54Z" "date": "2025-03-15T07:14:54Z"
}, },
{
"name": "navidrome/navidrome",
"version": "v0.55.1",
"date": "2025-03-15T05:36:06Z"
},
{
"name": "coder/code-server",
"version": "v4.98.2",
"date": "2025-03-15T02:11:28Z"
},
{ {
"name": "Threadfin/Threadfin", "name": "Threadfin/Threadfin",
"version": "1.2.31", "version": "1.2.31",
@@ -699,11 +749,6 @@
"version": "1.26.1", "version": "1.26.1",
"date": "2025-03-13T21:34:25Z" "date": "2025-03-13T21:34:25Z"
}, },
{
"name": "kimai/kimai",
"version": "2.31.0",
"date": "2025-03-13T17:13:47Z"
},
{ {
"name": "transmission/transmission", "name": "transmission/transmission",
"version": "4.0.1-beta.1", "version": "4.0.1-beta.1",
@@ -734,11 +779,6 @@
"version": "v0.8.2", "version": "v0.8.2",
"date": "2025-03-11T05:20:22Z" "date": "2025-03-11T05:20:22Z"
}, },
{
"name": "stackblitz-labs/bolt.diy",
"version": "v0.0.7-hf1",
"date": "2025-03-10T20:49:39Z"
},
{ {
"name": "AlexxIT/go2rtc", "name": "AlexxIT/go2rtc",
"version": "v1.9.9", "version": "v1.9.9",
@@ -774,11 +814,6 @@
"version": "v2.0.21", "version": "v2.0.21",
"date": "2025-03-06T16:24:56Z" "date": "2025-03-06T16:24:56Z"
}, },
{
"name": "Dolibarr/dolibarr",
"version": "21.0.0",
"date": "2025-03-06T16:20:45Z"
},
{ {
"name": "matze/wastebin", "name": "matze/wastebin",
"version": "3.0.0", "version": "3.0.0",
@@ -799,11 +834,6 @@
"version": "v0.18.0", "version": "v0.18.0",
"date": "2025-03-04T15:35:27Z" "date": "2025-03-04T15:35:27Z"
}, },
{
"name": "actualbudget/actual",
"version": "v25.3.1",
"date": "2025-03-03T02:05:36Z"
},
{ {
"name": "heiher/hev-socks5-server", "name": "heiher/hev-socks5-server",
"version": "2.8.0", "version": "2.8.0",
@@ -854,21 +884,6 @@
"version": "v1.1.05", "version": "v1.1.05",
"date": "2025-02-24T11:53:12Z" "date": "2025-02-24T11:53:12Z"
}, },
{
"name": "Athou/commafeed",
"version": "5.6.1",
"date": "2025-02-23T20:39:48Z"
},
{
"name": "TechnitiumSoftware/DnsServer",
"version": "v13.4.3",
"date": "2025-02-23T11:08:26Z"
},
{
"name": "azukaar/Cosmos-Server",
"version": "v0.18.3",
"date": "2025-02-21T20:51:12Z"
},
{ {
"name": "prometheus-pve/prometheus-pve-exporter", "name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.2", "version": "v3.5.2",
@@ -889,11 +904,6 @@
"version": "REL_13_20", "version": "REL_13_20",
"date": "2025-02-17T21:17:13Z" "date": "2025-02-17T21:17:13Z"
}, },
{
"name": "jellyfin/jellyfin",
"version": "v10.10.6",
"date": "2025-02-16T21:55:45Z"
},
{ {
"name": "sbondCo/Watcharr", "name": "sbondCo/Watcharr",
"version": "v2.0.2", "version": "v2.0.2",
@@ -1164,11 +1174,6 @@
"version": "v0.8.13", "version": "v0.8.13",
"date": "2024-07-29T12:54:27Z" "date": "2024-07-29T12:54:27Z"
}, },
{
"name": "Paymenter/Paymenter",
"version": "v0.9.5",
"date": "2024-07-20T08:46:42Z"
},
{ {
"name": "hywax/mafl", "name": "hywax/mafl",
"version": "v0.15.4", "version": "v0.15.4",
@@ -1234,11 +1239,6 @@
"version": "2.0.16", "version": "2.0.16",
"date": "2024-01-18T16:11:07Z" "date": "2024-01-18T16:11:07Z"
}, },
{
"name": "wger-project/wger",
"version": "2.2",
"date": "2023-12-06T12:08:09Z"
},
{ {
"name": "deepch/RTSPtoWeb", "name": "deepch/RTSPtoWeb",
"version": "v2.4.3", "version": "v2.4.3",

View File

@@ -1,4 +1,5 @@
"use client"; "use client";
import FAQ from "@/components/FAQ";
import AnimatedGradientText from "@/components/ui/animated-gradient-text"; import AnimatedGradientText from "@/components/ui/animated-gradient-text";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { CardFooter } from "@/components/ui/card"; import { CardFooter } from "@/components/ui/card";
@@ -34,14 +35,9 @@ export default function Page() {
}, [theme]); }, [theme]);
return ( return (
<>
<div className="w-full mt-16"> <div className="w-full mt-16">
<Particles <Particles className="absolute inset-0 -z-40" quantity={100} ease={80} color={color} refresh />
className="absolute inset-0 -z-40"
quantity={100}
ease={80}
color={color}
refresh
/>
<div className="container mx-auto"> <div className="container mx-auto">
<div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40"> <div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40">
<Dialog> <Dialog>
@@ -70,9 +66,8 @@ export default function Page() {
<DialogHeader> <DialogHeader>
<DialogTitle>Thank You!</DialogTitle> <DialogTitle>Thank You!</DialogTitle>
<DialogDescription> <DialogDescription>
A big thank you to tteck and the many contributors who have A big thank you to tteck and the many contributors who have made this project possible. Your hard
made this project possible. Your hard work is truly work is truly appreciated by the entire Proxmox community!
appreciated by the entire Proxmox community!
</DialogDescription> </DialogDescription>
</DialogHeader> </DialogHeader>
<CardFooter className="flex flex-col gap-2"> <CardFooter className="flex flex-col gap-2">
@@ -93,8 +88,7 @@ export default function Page() {
rel="noopener noreferrer" rel="noopener noreferrer"
className="flex items-center justify-center" className="flex items-center justify-center"
> >
<ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper <ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper Scripts
Scripts
</a> </a>
</Button> </Button>
</CardFooter> </CardFooter>
@@ -107,12 +101,10 @@ export default function Page() {
</h1> </h1>
<div className="max-w-2xl gap-2 flex flex-col text-center sm:text-lg text-sm leading-relaxed tracking-tight text-muted-foreground md:text-xl"> <div className="max-w-2xl gap-2 flex flex-col text-center sm:text-lg text-sm leading-relaxed tracking-tight text-muted-foreground md:text-xl">
<p> <p>
We are a community-driven initiative that simplifies the setup We are a community-driven initiative that simplifies the setup of Proxmox Virtual Environment (VE).
of Proxmox Virtual Environment (VE).
</p> </p>
<p> <p>
With 300+ scripts to help you manage your{" "} With 300+ scripts to help you manage your <b>Proxmox VE environment</b>. Whether you&#39;re a seasoned
<b>Proxmox VE environment</b>. Whether you&#39;re a seasoned
user or a newcomer, we&#39;ve got you covered. user or a newcomer, we&#39;ve got you covered.
</p> </p>
</div> </div>
@@ -131,7 +123,21 @@ export default function Page() {
</Link> </Link>
</div> </div>
</div> </div>
{/* FAQ Section */}
<div className="py-20" id="faq">
<div className="max-w-4xl mx-auto px-4">
<div className="text-center mb-12">
<h2 className="text-3xl font-bold tracking-tighter md:text-5xl mb-4">Frequently Asked Questions</h2>
<p className="text-muted-foreground text-lg">
Find answers to common questions about our Proxmox VE scripts
</p>
</div>
<FAQ />
</div> </div>
</div> </div>
</div>
</div>
</>
); );
} }

View File

@@ -56,7 +56,7 @@ export default function ScriptAccordion({
value={expandedItem} value={expandedItem}
onValueChange={handleAccordionChange} onValueChange={handleAccordionChange}
collapsible collapsible
className="overflow-y-scroll max-h-[calc(100vh-220px)] overflow-x-hidden mt-3 p-2" className="overflow-y-scroll max-h-[calc(100vh-225px)] overflow-x-hidden mt-3 p-2"
> >
{items.map((category) => ( {items.map((category) => (
<AccordionItem <AccordionItem

View File

@@ -0,0 +1,29 @@
import * as AccordionPrimitive from "@radix-ui/react-accordion";
import { Plus } from "lucide-react";
import { FAQ_Items } from "../config/faqConfig";
import { Accordion, AccordionContent, AccordionItem } from "./ui/accordion";
export default function FAQ() {
return (
<div className="space-y-4">
<Accordion type="single" collapsible className="w-full">
{FAQ_Items.map((item, index) => (
<AccordionItem value={index.toString()} key={index} className="py-2">
<AccordionPrimitive.Header className="flex">
<AccordionPrimitive.Trigger className="flex flex-1 items-center gap-3 py-2 text-left text-[15px] font-semibold leading-6 transition-all [&>svg>path:last-child]:origin-center [&>svg>path:last-child]:transition-all [&>svg>path:last-child]:duration-200 [&>svg]:-order-1 [&[data-state=open]>svg>path:last-child]:rotate-90 [&[data-state=open]>svg>path:last-child]:opacity-0 [&[data-state=open]>svg]:rotate-180">
{item.title}
<Plus
size={16}
strokeWidth={2}
className="shrink-0 opacity-60 transition-transform duration-200"
aria-hidden="true"
/>
</AccordionPrimitive.Trigger>
</AccordionPrimitive.Header>
<AccordionContent className="pb-2 ps-7 text-muted-foreground">{item.content}</AccordionContent>
</AccordionItem>
))}
</Accordion>
</div>
);
}

View File

@@ -6,7 +6,7 @@ import { cn } from "@/lib/utils";
export default function Footer() { export default function Footer() {
return ( return (
<div className="supports-backdrop-blur:bg-background/90 mt-auto border-t w-full flex justify-between border-border bg-background/40 py-6 backdrop-blur-lg"> <div className="supports-backdrop-blur:bg-background/90 mt-auto border-t w-full flex justify-between border-border bg-background/40 py-4 backdrop-blur-lg">
<div className="mx-6 w-full flex justify-between text-xs sm:text-sm text-muted-foreground"> <div className="mx-6 w-full flex justify-between text-xs sm:text-sm text-muted-foreground">
<div className="flex items-center"> <div className="flex items-center">
<p> <p>

View File

@@ -0,0 +1,37 @@
export const FAQ_Items = [
{
title: "Why do you use tarballs instead of git pull for installation?",
content:
"Our LXC scripts install applications using release tarballs. Tarballs contain stable code versions tested for release. Using `git pull` directly fetches the latest development code, which might be unstable or contain bugs. Tarballs offer a more reliable installation.",
},
{
title: "Why do the scripts install applications using HTTP by default?",
content:
"Our LXC scripts install applications using HTTP by default. Setting up HTTPS often requires manual configuration specific to your setup, which our automated scripts cannot handle reliably. If an application requires HTTPS, the script will configure it. For others, you need to enable HTTPS yourself, often following the application's official documentation.",
},
{
title: "Where can I find documentation for the installed application?",
content:
"We link to the official documentation for each application whenever possible. You can usually find this link on the script's information page for the specific LXC script. If you notice a missing link for an application that has official docs, please report it so we can add it.",
},
{
title: "What should I do if I find a bug in an LXC script?",
content:
"Our LXC scripts are maintained by volunteers in their free time. Bugs can occur due to our errors or changes in the applications themselves. If you find a bug in one of our LXC scripts, please report it on our GitHub issues page. Your feedback helps us improve the scripts.",
},
{
title: "Why isn't the application updating to the very latest version?",
content:
"Updates via our LXC scripts might not pull the absolute latest version for a few reasons:\n- A bug in the application's release naming on GitHub.\n- A bug in our update script.\n- We intentionally pinned the version. This happens if a newer version has breaking changes or serious bugs that could affect your data or LXC stability. We wait for fixes before allowing the update.",
},
{
title: 'Why am I getting a "502 Bad Gateway" error?',
content:
'A "502 Bad Gateway" error usually means the application inside the LXC is not running or responding correctly. Check the application\'s logs first. If you use a reverse proxy, check its logs too. If you still have problems after checking the logs, report the issue, providing details from the logs.',
},
{
title: "What should I do if a script fails during execution?",
content:
"If an LXC script fails, run it again using Verbose mode. Standard mode hides detailed output for neatness, showing only progress. Verbose mode displays all messages, which helps you (and us) diagnose the error. Include this verbose output if you report the issue.",
},
];

View File

@@ -17,7 +17,8 @@ msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
tini \ tini \
gpg \ gpg \
build-essential build-essential \
git
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository" msg_info "Setting up Node.js Repository"
@@ -33,11 +34,11 @@ $STD npm install --global yarn
msg_ok "Installed Node.js" msg_ok "Installed Node.js"
msg_info "Installing Actual Budget" msg_info "Installing Actual Budget"
cd /opt cd /opt || exit
RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz") curl -fsSL "https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz")
tar -xzf v${RELEASE}.tar.gz tar -xzf v"${RELEASE}".tar.gz
mv actual-${RELEASE} /opt/actualbudget mv actual-"${RELEASE}" /opt/actualbudget
mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config} mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
chown -R root:root /opt/actualbudget-data chown -R root:root /opt/actualbudget-data
@@ -53,8 +54,10 @@ ACTUAL_TRUSTED_PROXIES="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1/32,::1
ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
EOF EOF
cd /opt/actualbudget cd /opt/actualbudget || exit
$STD yarn workspaces focus @actual-app/sync-server --production export NODE_OPTIONS="--max_old_space_size=4096"
$STD yarn install
$STD yarn run build:server
$STD openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfhost.key -out selfhost.crt <<EOF $STD openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfhost.key -out selfhost.crt <<EOF
US US
California California
@@ -93,7 +96,7 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf /opt/v${RELEASE}.tar.gz rm -rf /opt/v"${RELEASE}".tar.gz
$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

@@ -22,12 +22,11 @@ msg_ok "Installed Dependencies"
msg_info "Installing MariaDB" msg_info "Installing MariaDB"
$STD apk add --no-cache mariadb mariadb-client $STD apk add --no-cache mariadb mariadb-client
$STD rc-update add mariadb default $STD rc-update add mariadb default
$STD rc-service mariadb start
msg_ok "Installed MariaDB" msg_ok "Installed MariaDB"
msg_info "Configuring MariaDB" msg_info "Configuring MariaDB"
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql >/dev/null 2>&1 mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql >/dev/null 2>&1
$STD rc-service mariadb restart $STD rc-service mariadb start
msg_ok "MariaDB Configured" msg_ok "MariaDB Configured"
read -r -p "Would you like to install Adminer with lighthttpd? <y/N>: " prompt read -r -p "Would you like to install Adminer with lighthttpd? <y/N>: " prompt
@@ -36,8 +35,8 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
$STD apk add --no-cache lighttpd php php-cgi php-mysqli php-mbstring php-zip php-gd php-json php-curl jq $STD apk add --no-cache lighttpd php php-cgi php-mysqli php-mbstring php-zip php-gd php-json php-curl jq
sed -i 's|server.modules += ( "mod_cgi" )|server.modules += ( "mod_cgi", "mod_fastcgi" )|' /etc/lighttpd/lighttpd.conf sed -i 's|server.modules += ( "mod_cgi" )|server.modules += ( "mod_cgi", "mod_fastcgi" )|' /etc/lighttpd/lighttpd.conf
echo 'fastcgi.server += ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/php-cgi.sock" )))' >>/etc/lighttpd/lighttpd.conf echo 'fastcgi.server += ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/php-cgi.sock" )))' >>/etc/lighttpd/lighttpd.conf
ADMINER_VERSION=$(curl -s https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/v//') ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/v//')
wget -q -O /var/www/adminer.php "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/adminer.php
chown lighttpd:lighttpd /var/www/adminer.php chown lighttpd:lighttpd /var/www/adminer.php
chmod 755 /var/www/adminer.php chmod 755 /var/www/adminer.php
msg_ok "Adminer Installed" msg_ok "Adminer Installed"

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz) & vhsdream # Author: MickLesk (Canbiz) & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://hoarder.app/ # Source: https://karakeep.app/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
@@ -34,8 +34,8 @@ chmod +x /usr/bin/yt-dlp
msg_ok "Installed Additional Tools" msg_ok "Installed Additional Tools"
msg_info "Installing Meilisearch" msg_info "Installing Meilisearch"
cd /tmp cd /tmp || exit
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o $(basename "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb") curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
$STD dpkg -i meilisearch.deb $STD dpkg -i meilisearch.deb
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml" curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
MASTER_KEY=$(openssl rand -base64 12) MASTER_KEY=$(openssl rand -base64 12)
@@ -58,30 +58,30 @@ $STD apt-get install -y nodejs
$STD npm install -g corepack@0.31.0 $STD npm install -g corepack@0.31.0
msg_ok "Installed Node.js" msg_ok "Installed Node.js"
msg_info "Installing Hoarder" msg_info "Installing karakeep"
cd /opt cd /opt || exit
RELEASE=$(curl -fsSL https://api.github.com/repos/hoarder-app/hoarder/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip") curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
unzip -q v${RELEASE}.zip unzip -q "v${RELEASE}.zip"
mv hoarder-${RELEASE} /opt/hoarder mv karakeep-"${RELEASE}" /opt/karakeep
cd /opt/hoarder cd /opt/karakeep || exit
corepack enable corepack enable
export PUPPETEER_SKIP_DOWNLOAD="true" export PUPPETEER_SKIP_DOWNLOAD="true"
export NEXT_TELEMETRY_DISABLED=1 export NEXT_TELEMETRY_DISABLED=1
export CI="true" export CI="true"
cd /opt/hoarder/apps/web cd /opt/karakeep/apps/web || exit
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
$STD pnpm exec next build --experimental-build-mode compile $STD pnpm exec next build --experimental-build-mode compile
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
cd /opt/hoarder/apps/workers cd /opt/karakeep/apps/workers || exit
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
export DATA_DIR=/opt/hoarder_data export DATA_DIR=/opt/karakeep_data
HOARDER_SECRET=$(openssl rand -base64 36 | cut -c1-24) karakeep_SECRET=$(openssl rand -base64 36 | cut -c1-24)
mkdir -p /etc/hoarder mkdir -p /etc/karakeep
cat <<EOF >/etc/hoarder/hoarder.env cat <<EOF >/etc/karakeep/karakeep.env
SERVER_VERSION=$RELEASE SERVER_VERSION=$RELEASE
NEXTAUTH_SECRET="$HOARDER_SECRET" NEXTAUTH_SECRET="$karakeep_SECRET"
NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_URL="http://localhost:3000"
DATA_DIR="$DATA_DIR" DATA_DIR="$DATA_DIR"
MEILI_ADDR="http://127.0.0.1:7700" MEILI_ADDR="http://127.0.0.1:7700"
@@ -99,11 +99,11 @@ BROWSER_WEB_URL="http://127.0.0.1:9222"
# INFERENCE_IMAGE_MODEL="gpt-4o-mini" # INFERENCE_IMAGE_MODEL="gpt-4o-mini"
EOF EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Hoarder" msg_ok "Installed karakeep"
msg_info "Running Database Migration" msg_info "Running Database Migration"
mkdir -p ${DATA_DIR} mkdir -p ${DATA_DIR}
cd /opt/hoarder/packages/db cd /opt/karakeep/packages/db || exit
$STD pnpm migrate $STD pnpm migrate
msg_ok "Database Migration Completed" msg_ok "Database Migration Completed"
@@ -121,25 +121,25 @@ Restart=always
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
cat <<EOF >/etc/systemd/system/hoarder-web.service cat <<EOF >/etc/systemd/system/karakeep-web.service
[Unit] [Unit]
Description=Hoarder Web Description=karakeep Web
Wants=network.target hoarder-workers.service Wants=network.target karakeep-workers.service
After=network.target hoarder-workers.service After=network.target karakeep-workers.service
[Service] [Service]
ExecStart=pnpm start ExecStart=pnpm start
WorkingDirectory=/opt/hoarder/apps/web WorkingDirectory=/opt/karakeep/apps/web
EnvironmentFile=/etc/hoarder/hoarder.env EnvironmentFile=/etc/karakeep/karakeep.env
Restart=always Restart=always
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
cat <<EOF >/etc/systemd/system/hoarder-browser.service cat <<EOF >/etc/systemd/system/karakeep-browser.service
[Unit] [Unit]
Description=Hoarder Headless Browser Description=karakeep Headless Browser
After=network.target After=network.target
[Service] [Service]
@@ -151,16 +151,16 @@ Restart=always
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
cat <<EOF >/etc/systemd/system/hoarder-workers.service cat <<EOF >/etc/systemd/system/karakeep-workers.service
[Unit] [Unit]
Description=Hoarder Workers Description=karakeep Workers
Wants=network.target hoarder-browser.service meilisearch.service Wants=network.target karakeep-browser.service meilisearch.service
After=network.target hoarder-browser.service meilisearch.service After=network.target karakeep-browser.service meilisearch.service
[Service] [Service]
ExecStart=pnpm start:prod ExecStart=pnpm start:prod
WorkingDirectory=/opt/hoarder/apps/workers WorkingDirectory=/opt/karakeep/apps/workers
EnvironmentFile=/etc/hoarder/hoarder.env EnvironmentFile=/etc/karakeep/karakeep.env
Restart=always Restart=always
TimeoutStopSec=5 TimeoutStopSec=5
@@ -168,7 +168,7 @@ TimeoutStopSec=5
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl enable -q --now meilisearch hoarder-browser hoarder-workers hoarder-web systemctl enable -q --now meilisearch karakeep-browser karakeep-workers karakeep-web
msg_ok "Created Services" msg_ok "Created Services"
motd_ssh motd_ssh
@@ -176,7 +176,7 @@ customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf /tmp/meilisearch.deb rm -rf /tmp/meilisearch.deb
rm -f /opt/v${RELEASE}.zip rm -f /opt/v"${RELEASE}".zip
$STD apt-get autoremove -y $STD apt-get autoremove -y
$STD apt-get autoclean -y $STD apt-get autoclean -y
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -24,21 +24,20 @@ $STD apt-get install -y \
lsb-release lsb-release
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setup PHP8.4 Repository" msg_info "Adding PHP8.4 Repository"
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb $STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb $STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' $STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update $STD apt-get update
msg_ok "Setup PHP8.4 Repository" msg_ok "Added PHP8.4 Repository"
msg_info "Setup PHP" msg_info "Installing PHP"
$STD apt-get remove -y php8.2* $STD apt-get remove -y php8.2*
#$STD apt-get remove -y php8.3*
$STD apt-get install -y \ $STD apt-get install -y \
php8.3 \ php8.4 \
php8.3-{mbstring,gd,intl,common,mysql,zip,xml} \ php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl} \
libapache2-mod-php8.3 libapache2-mod-php8.4
msg_info "Setup PHP" msg_ok "Installed PHP"
msg_info "Setting up database" msg_info "Setting up database"
DB_NAME=kimai_db DB_NAME=kimai_db
@@ -59,9 +58,9 @@ msg_ok "Set up database"
msg_info "Installing Kimai (Patience)" msg_info "Installing Kimai (Patience)"
RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip") curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
unzip -q ${RELEASE}.zip unzip -q "${RELEASE}".zip
mv kimai-${RELEASE} /opt/kimai mv kimai-"${RELEASE}" /opt/kimai
cd /opt/kimai cd /opt/kimai || exit
echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc
source ~/.bashrc source ~/.bashrc
$STD composer install --no-dev --optimize-autoloader --no-interaction $STD composer install --no-dev --optimize-autoloader --no-interaction
@@ -130,7 +129,7 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf ${RELEASE}.zip rm -rf "${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

@@ -23,7 +23,7 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Adding PHP8.4 Repository" msg_info "Adding PHP8.4 Repository"
$STD curl -sSLo "https://packages.sury.org/debsuryorg-archive-keyring.deb" -o /tmp/debsuryorg-archive-keyring.deb $STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb $STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' $STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update $STD apt-get update

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) # Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.zabbix.com/ # Source: https://www.zabbix.com/
@@ -14,8 +14,11 @@ network_check
update_os update_os
msg_info "Installing Zabbix" msg_info "Installing Zabbix"
cd /tmp cd /tmp || exit
curl -fsSL "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb" -o $(basename "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb") curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
-o /tmp/zabbix-release_latest+debian12_all.deb
$STD dpkg -i /tmp/zabbix-release_latest+debian12_all.deb $STD dpkg -i /tmp/zabbix-release_latest+debian12_all.deb
$STD apt-get update $STD apt-get update
$STD apt-get install -y zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql zabbix-apache-conf zabbix-sql-scripts $STD apt-get install -y zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql zabbix-apache-conf zabbix-sql-scripts

View File

@@ -39,8 +39,8 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME OWNER $DB_ADMIN_USER;"
msg_ok "Installed PostgreSQL" msg_ok "Installed PostgreSQL"
msg_info "Installing Zitadel" msg_info "Installing Zitadel"
RELEASE=$(curl -fsSL https://github.com/zitadel/zitadel/releases/latest | grep location: | cut -d '/' -f 8 | tr -d '\r') RELEASE=$(curl -fsSL https://api.github.com/repos/zitadel/zitadel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL https://github.com/zitadel/zitadel/releases/download/$RELEASE/zitadel-linux-amd64.tar.gz | tar -xz curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
mv zitadel-linux-amd64/zitadel /usr/local/bin mv zitadel-linux-amd64/zitadel /usr/local/bin
msg_ok "Installed Zitadel" msg_ok "Installed Zitadel"