Compare commits

...

14 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
20 changed files with 538 additions and 397 deletions

View File

@@ -14,6 +14,35 @@ 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 ## 2025-04-06
### 🚀 Updated Scripts ### 🚀 Updated 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"
@@ -84,6 +84,7 @@ ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
EOF EOF
fi fi
cd /opt/actualbudget || exit cd /opt/actualbudget || exit
export NODE_OPTIONS="--max_old_space_size=4096"
$STD yarn install $STD yarn install
$STD yarn run build:server $STD yarn run build:server
#$STD yarn workspaces focus @actual-app/sync-server --production #$STD yarn workspaces focus @actual-app/sync-server --production

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

@@ -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,49 +1,174 @@
[ [
{ {
"name": "karakeep-app/karakeep", "name": "Graylog2/graylog2-server",
"version": "ios/v1.6.9-1", "version": "6.2.0-beta.4",
"date": "2025-04-06T10:51:57Z" "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",
"version": "6.2",
"date": "2025-04-07T10:34:55Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.4",
"date": "2025-04-01T08:45:07Z"
}, },
{ {
"name": "fallenbagel/jellyseerr", "name": "fallenbagel/jellyseerr",
"version": "preview-back-to-axios", "version": "preview-back-to-axios",
"date": "2025-04-06T10:39:06Z" "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",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1740",
"date": "2025-04-07T05:56:22Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.303.0-rc.1",
"date": "2025-04-07T04:39:38Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.2",
"date": "2025-04-07T03:41:23Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.10",
"date": "2025-03-22T13:02:26Z"
},
{
"name": "Luligu/matterbridge",
"version": "2.2.7",
"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", "name": "TriliumNext/Notes",
"version": "v0.92.6", "version": "v0.92.6",
"date": "2025-04-06T10:38:54Z" "date": "2025-04-06T10:38:54Z"
}, },
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-04-06T10:31:42Z"
},
{ {
"name": "kimai/kimai", "name": "kimai/kimai",
"version": "2.32.0", "version": "2.32.0",
"date": "2025-04-06T09:43:51Z" "date": "2025-04-06T09:43:51Z"
}, },
{
"name": "semaphoreui/semaphore",
"version": "v2.13.8-beta2",
"date": "2025-04-06T06:36:42Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1733",
"date": "2025-04-06T06:00:36Z"
},
{ {
"name": "inventree/InvenTree", "name": "inventree/InvenTree",
"version": "0.17.10", "version": "0.17.10",
"date": "2025-04-06T05:31:49Z" "date": "2025-04-06T05:31:49Z"
}, },
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.10",
"date": "2025-03-22T13:02:26Z"
},
{ {
"name": "ollama/ollama", "name": "ollama/ollama",
"version": "v0.6.5-rc0", "version": "v0.6.5-rc0",
@@ -69,21 +194,11 @@
"version": "v1.0.2", "version": "v1.0.2",
"date": "2025-04-05T17:40:25Z" "date": "2025-04-05T17:40:25Z"
}, },
{
"name": "open-webui/open-webui",
"version": "v0.6.1",
"date": "2025-04-05T17:15:47Z"
},
{ {
"name": "keycloak/keycloak", "name": "keycloak/keycloak",
"version": "26.1.4", "version": "26.1.4",
"date": "2025-03-13T15:41:42Z" "date": "2025-03-13T15:41:42Z"
}, },
{
"name": "stonith404/pingvin-share",
"version": "v1.11.0",
"date": "2025-04-05T14:56:47Z"
},
{ {
"name": "bastienwirtz/homer", "name": "bastienwirtz/homer",
"version": "v25.04.1", "version": "v25.04.1",
@@ -134,31 +249,16 @@
"version": "5.7.0", "version": "5.7.0",
"date": "2025-04-04T18:10:16Z" "date": "2025-04-04T18:10:16Z"
}, },
{
"name": "syncthing/syncthing",
"version": "v1.29.4",
"date": "2025-04-01T08:45:07Z"
},
{ {
"name": "icereed/paperless-gpt", "name": "icereed/paperless-gpt",
"version": "v0.14.4", "version": "v0.14.4",
"date": "2025-04-04T14:18:53Z" "date": "2025-04-04T14:18:53Z"
}, },
{
"name": "nzbgetcom/nzbget",
"version": "v24.8",
"date": "2025-03-18T07:33:51Z"
},
{ {
"name": "apache/tomcat", "name": "apache/tomcat",
"version": "9.0.104", "version": "9.0.104",
"date": "2025-04-04T12:58:11Z" "date": "2025-04-04T12:58:11Z"
}, },
{
"name": "Dolibarr/dolibarr",
"version": "21.0.1",
"date": "2025-04-04T12:56:35Z"
},
{ {
"name": "sabnzbd/sabnzbd", "name": "sabnzbd/sabnzbd",
"version": "4.5.0", "version": "4.5.0",
@@ -169,11 +269,6 @@
"version": "0.49.12", "version": "0.49.12",
"date": "2025-04-04T07:31:08Z" "date": "2025-04-04T07:31:08Z"
}, },
{
"name": "morpheus65535/bazarr",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
},
{ {
"name": "wazuh/wazuh", "name": "wazuh/wazuh",
"version": "coverity-w14-4.12.0", "version": "coverity-w14-4.12.0",
@@ -189,21 +284,11 @@
"version": "1.10.3", "version": "1.10.3",
"date": "2024-11-05T09:20:50Z" "date": "2024-11-05T09:20:50Z"
}, },
{
"name": "Graylog2/graylog2-server",
"version": "6.0.14",
"date": "2025-04-03T07:52:24Z"
},
{ {
"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",
@@ -214,11 +299,6 @@
"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",
@@ -239,26 +319,11 @@
"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",
@@ -269,11 +334,6 @@
"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",
@@ -284,11 +344,6 @@
"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",
@@ -349,11 +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": "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",
@@ -379,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",
@@ -394,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",
@@ -499,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",
@@ -529,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",
@@ -574,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",
@@ -599,11 +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": "requarks/wiki", "name": "requarks/wiki",
"version": "v2.5.307", "version": "v2.5.307",
@@ -699,11 +714,6 @@
"version": "v1.60.0", "version": "v1.60.0",
"date": "2025-03-16T18:39:49Z" "date": "2025-03-16T18:39:49Z"
}, },
{
"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",
@@ -769,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",
@@ -879,11 +884,6 @@
"version": "v1.1.05", "version": "v1.1.05",
"date": "2025-02-24T11:53:12Z" "date": "2025-02-24T11:53:12Z"
}, },
{
"name": "TechnitiumSoftware/DnsServer",
"version": "v13.4.3",
"date": "2025-02-23T11:08:26Z"
},
{ {
"name": "prometheus-pve/prometheus-pve-exporter", "name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.2", "version": "v3.5.2",

View File

@@ -55,6 +55,7 @@ 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 || exit cd /opt/actualbudget || exit
export NODE_OPTIONS="--max_old_space_size=4096"
$STD yarn install $STD yarn install
$STD yarn run build:server $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

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

@@ -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"