Compare commits

..

54 Commits

Author SHA1 Message Date
3ab2ecc3ef Update CHANGELOG.md (#3754)
Some checks failed
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Build and Publish Docker Image / build (push) Has been cancelled
Create Daily Release / create-daily-release (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-08 17:05:37 +02:00
5413498759 Update CHANGELOG.md (#3752)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-08 17:05:03 +02:00
44a944f4b3 Update .app files (#3753)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-04-08 17:04:43 +02:00
bf1966f578 Alpine-PostgreSQL (#3751) 2025-04-08 17:03:21 +02:00
3504cda21c Update CHANGELOG.md (#3750)
Some checks failed
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-08 16:00:38 +02:00
6c1b5d3144 Update meilisearch.json (#3749) 2025-04-08 15:54:20 +02:00
146b0fcb3f Update CHANGELOG.md (#3747)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-08 15:52:02 +02:00
aa3d6f4f8b quickfix: remove wrong comma 2025-04-08 15:50:44 +02:00
542f93437a Alpine-Wireguard: Fix for sysctl and ip_forward (#3744)
* moved ip forwarding to wireguard install and removed silent before echo command, testing if this was a bug

* Adding $STD before echo command

* Update install/alpine-wireguard-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-04-08 15:41:27 +02:00
9ef7ad5d2a Update CHANGELOG.md (#3737)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-08 14:57:44 +02:00
7ab476e034 Update versions.json (#3742)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-08 14:56:25 +02:00
4ce9551f60 Updating to 4GB with higher old heap size (#3730) 2025-04-08 10:31:00 +02:00
efcd660e55 TriliumNext: fix dump-db (#3741) 2025-04-08 10:27:56 +02:00
125f843b19 Added logging to service file (#3738) 2025-04-08 09:35:17 +02:00
a5acfd25f6 Alpine-MariaDB: better handling of adminer installation (#3739)
* Update alpine-mariadb-install.sh

* remove spaces
2025-04-08 09:29:56 +02:00
895edccf28 quickfix: remove echo in alpine-mariadb 2025-04-08 08:44:10 +02:00
5a74f2970b Update versions.json (#3734)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-08 07:54:26 +02:00
9a906d35e2 Update CHANGELOG.md (#3726)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Auto Update .app-files / update-app-files (push) Has been cancelled
Build and Publish Docker Image / build (push) Has been cancelled
Create Daily Release / create-daily-release (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-07 18:56:50 +02:00
97674cfae7 Alpine-MariaDB: Fix Install Service startup (#3701) 2025-04-07 17:51:12 +01:00
89ae467364 Changed the category of Channels DVR and NextPVR (#3729)
This resolves #3727
2025-04-07 17:36:20 +02:00
42a7c00bca Kimai: bump php to 8.4 (#3724) 2025-04-07 16:23:23 +02:00
d28368b596 Update versions.json (#3725)
Some checks failed
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-07 14:25:14 +02:00
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
26ea046ba2 Redesign: Zabbix, get always latest version (#3720) 2025-04-07 12:50:37 +02:00
061c7ebd2e Update CHANGELOG.md (#3710) 2025-04-07 11:41:56 +01:00
5313bb0103 Zitadel: Fix release tarball crawling (#3716) 2025-04-07 11:41:10 +01:00
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
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
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
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
251f3c411d Breaking: Hoarder > Karakeep (#3699)
Some checks failed
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
* Breaking: Hoarder > Karakeep

* json

* Update hoarder.sh

* formatting
2025-04-07 07:50:45 +02:00
5b73662d9c Update CHANGELOG.md (#3697)
Some checks failed
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Build and Publish Docker Image / build (push) Has been cancelled
Create Daily Release / create-daily-release (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-06 22:42:25 +02:00
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
427ce771d7 Actual: Add git dependency & change yarn commands (#3703) 2025-04-06 16:00:08 +02:00
c08ebc48e8 Pelican-Panel: Fix PHP 8.4 Repository (#3700) 2025-04-06 15:48:27 +02:00
421248ccf3 Update versions.json (#3702)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-06 14:07:16 +02:00
b395a1846c Update CHANGELOG.md (#3686) 2025-04-06 10:17:23 +01:00
c2893f3edf Update versions.json (#3693) 2025-04-06 10:17:05 +01:00
00f91843ec Update CHANGELOG.md (#3677)
Some checks failed
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Build and Publish Docker Image / build (push) Has been cancelled
Create Daily Release / create-daily-release (push) Has been cancelled
2025-04-05 17:01:57 +01:00
5451047f44 Update versions.json (#3679) 2025-04-05 17:01:36 +01:00
d8848464be Bump vite from 6.2.4 to 6.2.5 in /frontend (#3668) 2025-04-05 17:01:20 +01:00
019e1ac8a0 Update versions.json (#3674)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-05 08:46:31 +02:00
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
112fa215fb Update CHANGELOG.md (#3670)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Auto Update .app-files / update-app-files (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-05 01:10:52 +02:00
f6a77ec41f Update .app files (#3671)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-04-05 01:10:38 +02:00
71a37368b0 Update date in json (#3672)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-04-05 01:10:26 +02:00
214d21f91e meilisearch (#3638)
* 'Add new script'

* change license

* change license

* Update install/meilisearch-install.sh

Co-authored-by: Bas van den Berg <74251551+bvdberg01@users.noreply.github.com>

* Update frontend/public/json/meilisearch.json

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Bas van den Berg <74251551+bvdberg01@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-04-05 00:22:49 +02:00
8b1cdd1f3f Pelican Panel: Bump php to 8.4 (#3669) 2025-04-04 22:48:15 +02:00
2a24d53b54 Update CHANGELOG.md (#3658)
Some checks failed
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Build and Publish Docker Image / build (push) Has been cancelled
Create Daily Release / create-daily-release (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-04 17:40:47 +02:00
51692da70f Pterodactyl: Pump Php to 8.4 (#3655) 2025-04-04 17:40:02 +02:00
481156275b Caddy: add git for xcaddy (#3657) 2025-04-04 17:39:37 +02:00
23c01141db core: fix raw path (#3656) 2025-04-04 16:05:12 +02:00
109235f720 Update versions.json (#3659)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-04 14:23:16 +02:00
4912f76bc5 Update versions.json (#3652)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-04 13:45:12 +02:00
58 changed files with 1576 additions and 835 deletions

View File

@ -14,6 +14,104 @@ 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.
## 2025-04-08
### 🆕 New Scripts
- Alpine-PostgreSQL [@MickLesk](https://github.com/MickLesk) ([#3751](https://github.com/community-scripts/ProxmoxVE/pull/3751))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Alpine-Wireguard: Fix for sysctl and ip_forward [@juronja](https://github.com/juronja) ([#3744](https://github.com/community-scripts/ProxmoxVE/pull/3744))
- TriliumNext: fix dump-db [@MickLesk](https://github.com/MickLesk) ([#3741](https://github.com/community-scripts/ProxmoxVE/pull/3741))
- Actual: Reduce RAM to 4GB and old space to 3072MB [@dannyellis](https://github.com/dannyellis) ([#3730](https://github.com/community-scripts/ProxmoxVE/pull/3730))
- #### ✨ New Features
- Alpine-MariaDB: better handling of adminer installation [@MickLesk](https://github.com/MickLesk) ([#3739](https://github.com/community-scripts/ProxmoxVE/pull/3739))
- Paperless-GPT: Add logging to service file [@tremor021](https://github.com/tremor021) ([#3738](https://github.com/community-scripts/ProxmoxVE/pull/3738))
### 🌐 Website
- #### 📝 Script Information
- Meilisearch: Fix Typo [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3749](https://github.com/community-scripts/ProxmoxVE/pull/3749))
## 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
### 🆕 New Scripts
- meilisearch [@MickLesk](https://github.com/MickLesk) ([#3638](https://github.com/community-scripts/ProxmoxVE/pull/3638))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Pelican Panel: Bump php to 8.4 [@bvdberg01](https://github.com/bvdberg01) ([#3669](https://github.com/community-scripts/ProxmoxVE/pull/3669))
- Pterodactyl: Bump php to 8.4 [@MickLesk](https://github.com/MickLesk) ([#3655](https://github.com/community-scripts/ProxmoxVE/pull/3655))
- #### ✨ New Features
- Caddy: add git for xcaddy [@MickLesk](https://github.com/MickLesk) ([#3657](https://github.com/community-scripts/ProxmoxVE/pull/3657))
### 🧰 Maintenance
- #### 💾 Core
- core: fix raw path [@MickLesk](https://github.com/MickLesk) ([#3656](https://github.com/community-scripts/ProxmoxVE/pull/3656))
## 2025-04-03
### 🚀 Updated Scripts

View File

@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Actual Budget"
var_tags="finance"
var_cpu="2"
var_ram="2048"
var_disk="4"
var_ram="4096"
var_disk="7"
var_os="debian"
var_version="12"
var_unprivileged="1"
@ -35,6 +35,13 @@ function update_script() {
systemctl stop actualbudget
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}"
cd /tmp || exit
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
fi
cd /opt/actualbudget || exit
$STD yarn workspaces focus @actual-app/sync-server --production
export NODE_OPTIONS="--max_old_space_size=3072"
$STD yarn install
$STD yarn run build:server
#$STD yarn workspaces focus @actual-app/sync-server --production
echo "${RELEASE}" >/opt/actualbudget_version.txt
msg_ok "Updated ${APP}"

46
ct/alpine-postgresql.sh Normal file
View File

@ -0,0 +1,46 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://postgresql.org/
APP="Alpine-PostgreSQL"
var_tags="${var_tags:-alpine;database}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
msg_info "Updating Alpine Packages"
$STD apk update
$STD apk upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating PostgreSQL"
$STD apk upgrade postgresql postgresql-contrib
msg_ok "Updated PostgreSQL"
msg_info "Restarting PostgreSQL"
$STD rc-service postgresql restart
msg_ok "Restarted PostgreSQL"
exit 0
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}:5432${CL}"

View File

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

6
ct/headers/karakeep Normal file
View File

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

6
ct/headers/meilisearch Normal file
View File

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

View File

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

@ -20,64 +20,79 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/kimai ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
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"
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Apache2"
systemctl stop apache2
msg_ok "Stopped Apache2"
msg_info "Backing up Kimai configuration and var directory"
mkdir -p "$BACKUP_DIR"
[ -d /opt/kimai/var ] && cp -r /opt/kimai/var "$BACKUP_DIR/"
[ -f /opt/kimai/.env ] && cp /opt/kimai/.env "$BACKUP_DIR/"
[ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/"
msg_ok "Backup completed"
msg_info "Updating ${APP} to ${RELEASE}"
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")
unzip -q ${RELEASE}.zip
mv kimai-${RELEASE} /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/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
rm -rf "$BACKUP_DIR"
cd /opt/kimai
$STD composer install --no-dev --optimize-autoloader
$STD bin/console kimai:update
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting Apache2"
systemctl start apache2
msg_ok "Started Apache2"
msg_info "Setup Permissions"
chown -R :www-data /opt/*
chmod -R g+r /opt/*
chmod -R g+rw /opt/*
chown -R www-data:www-data /opt/*
chmod -R 777 /opt/*
msg_ok "Setup Permissions"
msg_info "Cleaning Up"
rm -rf ${RELEASE}.zip
rm -rf "$BACKUP_DIR"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/kimai ]]; then
msg_error "No ${APP} Installation Found!"
exit
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) }')
BACKUP_DIR="/opt/kimai_backup"
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Apache2"
systemctl stop apache2
msg_ok "Stopped Apache2"
msg_info "Backing up Kimai configuration and var directory"
mkdir -p "$BACKUP_DIR"
[ -d /opt/kimai/var ] && cp -r /opt/kimai/var "$BACKUP_DIR/"
[ -f /opt/kimai/.env ] && cp /opt/kimai/.env "$BACKUP_DIR/"
[ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/"
msg_ok "Backup completed"
msg_info "Updating ${APP} to ${RELEASE}"
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")
unzip -q "${RELEASE}".zip
mv kimai-"${RELEASE}" /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/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
rm -rf "$BACKUP_DIR"
cd /opt/kimai || exit
$STD composer install --no-dev --optimize-autoloader
$STD bin/console kimai:update
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting Apache2"
systemctl start apache2
msg_ok "Started Apache2"
msg_info "Setup Permissions"
chown -R :www-data /opt/*
chmod -R g+r /opt/*
chmod -R g+rw /opt/*
chown -R www-data:www-data /opt/*
chmod -R 777 /opt/*
msg_ok "Setup Permissions"
msg_info "Cleaning Up"
rm -rf "${RELEASE}".zip
rm -rf "$BACKUP_DIR"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start

95
ct/meilisearch.sh Normal file
View File

@ -0,0 +1,95 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.meilisearch.com/
APP="Meilisearch"
var_tags="${var_tags:-full-text-search}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-7}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/Meilisearch_version.txt ]]; then
msg_error "No Meilisearch Installation Found!"
exit
fi
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Meilisearch Update" --radiolist --cancel-button Exit-Script "Spacebar = Select" 10 58 2 \
"1" "Update Meilisearch" ON \
"2" "Update Meilisearch-UI" OFF \
3>&1 1>&2 2>&3)
if [ "$UPD" == "1" ]; then
msg_info "Stopping Meilisearch"
systemctl stop meilisearch
msg_ok "Stopped Meilisearch"
msg_info "Updating Meilisearch"
tmp_file=$(mktemp)
RELEASE=$(curl -s https://api.github.com/repos/meilisearch/meilisearch/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb -o $tmp_file
$STD dpkg -i $tmp_file
echo "$RELEASE" >/opt/meilisearch_version.txt
msg_ok "Updated Meilisearch"
msg_info "Starting Meilisearch"
systemctl start meilisearch
msg_ok "Started Meilisearch"
exit
fi
if [ "$UPD" == "2" ]; then
if [[ ! -f /opt/Meilisearch-ui_version.txt ]]; then
msg_error "No Meilisearch-UI Installation Found!"
exit
fi
msg_info "Stopping Meilisearch-UI"
systemctl stop meilisearch-ui
msg_ok "Stopped Meilisearch-UI"
msg_info "Updating Meilisearch-UI"
tmp_file=$(mktemp)
tmp_dir=$(mktemp -d)
RELEASE_UI=$(curl -s https://api.github.com/repos/riccox/meilisearch-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
cp /opt/meilisearch-ui/.env.local /tmp/.env.local.bak
rm -rf /opt/meilisearch-ui
mkdir -p /opt/meilisearch-ui
curl -fsSL "https://github.com/riccox/meilisearch-ui/archive/refs/tags/${RELEASE_UI}.zip" -o $tmp_file
unzip -q "$tmp_file" -d "$tmp_dir"
mv "$tmp_dir"/*/* /opt/meilisearch-ui/
cd /opt/meilisearch-ui
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
mv /tmp/.env.local.bak /opt/meilisearch-ui/.env.local
$STD pnpm install
echo "$RELEASE_UI" >/opt/meilisearch-ui_version.txt
msg_ok "Updated Meilisearch-UI"
msg_info "Starting Meilisearch-UI"
systemctl start meilisearch-ui
msg_ok "Started Meilisearch-UI"
exit
fi
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}meilisearch: http://${IP}:7700$ | meilisearch-ui: http://${IP}:24900${CL}"

View File

@ -27,10 +27,27 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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,fpm} \
libapache2-mod-php8.4
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
cd /opt/pelican-panel
cd /opt/pelican-panel || exit
$STD php artisan down
msg_ok "Stopped Service"

View File

@ -27,10 +27,27 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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,fpm} \
libapache2-mod-php8.4
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
cd /opt/pterodactyl-panel
cd /opt/pterodactyl-panel || exit
$STD php artisan down
msg_ok "Stopped Service"

View File

@ -37,13 +37,13 @@ function update_script() {
msg_info "Updating to ${RELEASE}"
mkdir -p /opt/trilium_backup
mv /opt/trilium/{db,dump-db} /opt/trilium_backup/
mv /opt/trilium/db /opt/trilium_backup/
rm -rf /opt/trilium
cd /tmp
curl -fsSL "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o $(basename "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz")
tar -xf TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz
mv TriliumNextNotes-Server-$RELEASE-linux-x64 /opt/trilium
cp -r /opt/trilium_backup/{db,dump-db} /opt/trilium/
cp -r /opt/trilium_backup/db /opt/trilium/
echo "v${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated to ${RELEASE}"

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.zabbix.com/
@ -20,40 +20,43 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/zabbix/zabbix_server.conf ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP} Services"
systemctl stop zabbix-server zabbix-agent2
msg_ok "Stopped ${APP} Services"
msg_info "Updating $APP LXC"
mkdir -p /opt/zabbix-backup/
cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
#cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
rm -Rf /etc/apt/sources.list.d/zabbix.list
cd /tmp
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")
$STD dpkg -i zabbix-release_latest+debian12_all.deb
$STD apt-get update
$STD apt-get install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-agent2 zabbix-agent2-plugin-*
msg_info "Starting ${APP} Services"
systemctl start zabbix-server zabbix-agent2
systemctl restart apache2
msg_ok "Started ${APP} Services"
msg_info "Cleaning Up"
rm -rf /tmp/zabbix-release_latest+debian12_all.deb
msg_ok "Cleaned"
msg_ok "Updated Successfully"
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/zabbix/zabbix_server.conf ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP} Services"
systemctl stop zabbix-server zabbix-agent2
msg_ok "Stopped ${APP} Services"
msg_info "Updating $APP LXC"
mkdir -p /opt/zabbix-backup/
cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
#cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
rm -Rf /etc/apt/sources.list.d/zabbix.list
cd /tmp || exit
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 apt-get update
$STD apt-get install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-agent2 zabbix-agent2-plugin-*
msg_info "Starting ${APP} Services"
systemctl start zabbix-server zabbix-agent2
systemctl restart apache2
msg_ok "Started ${APP} Services"
msg_info "Cleaning Up"
rm -rf /tmp/zabbix-release_latest+debian12_all.deb
msg_ok "Cleaned"
msg_ok "Updated Successfully"
exit
}
start

View File

@ -20,39 +20,39 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/zitadel.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://github.com/zitadel/zitadel/releases/latest | grep location: | cut -d '/' -f 8 | tr -d '\r')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt | grep -oP '\d+\.\d+\.\d+')" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop zitadel
msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}"
cd /tmp || exit
curl -fsSL https://github.com/zitadel/zitadel/releases/download/"$RELEASE"/zitadel-linux-amd64.tar.gz | tar -xz
mv zitadel-linux-amd64/zitadel /usr/local/bin
$STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP"
systemctl start zitadel
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf /tmp/zitadel-linux-amd64
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/zitadel.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
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
msg_info "Stopping $APP"
systemctl stop zitadel
msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}"
cd /tmp || exit
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
$STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP"
systemctl start zitadel
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf /tmp/zitadel-linux-amd64
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start

View File

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

View File

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

View File

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

View File

@ -36,9 +36,9 @@
"type": "info"
},
{
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c '$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/update-lxcs-cron.sh)' -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c '$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/update-lxcs-cron.sh)' -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
"type": "info"
}
]
}
}

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

@ -0,0 +1,43 @@
{
"name": "Meilisearch",
"slug": "meilisearch",
"categories": [
8
],
"date_created": "2025-04-04",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 7700,
"documentation": "https://www.meilisearch.com/docs",
"website": "https://www.meilisearch.com/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/meilisearch.svg",
"description": "Meilisearch is a fast, open-source search engine designed for instant, full-text search with typo tolerance. It provides an API that allows developers to integrate powerful search features into applications. Meilisearch-UI is an optional web-based interface that provides a simple way to interact with Meilisearch, visualize indexed data, and test queries without needing to use the API directly.",
"install_methods": [
{
"type": "default",
"script": "ct/meilisearch.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 7,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Meilisearch-UI can optionally be installed for a web-based search interface",
"type": "info"
},
{
"text": "Meilisearch-UI has early development status and can cause performance issues",
"type": "warn"
}
]
}

View File

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

View File

@ -1,39 +1,48 @@
{
"name": "PostgreSQL",
"slug": "postgresql",
"categories": [
8
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 5432,
"documentation": null,
"website": "https://www.postgresql.org/",
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/postgresql.svg",
"description": "PostgreSQL (often referred to as Postgres) is an open-source relational database management system that is known for its extensibility and strict adherence to SQL standards. It is a free and powerful database solution, suitable for a wide range of applications, from small projects to large enterprise systems. PostgreSQL is widely used for its reliability, feature-richness, and robustness.",
"install_methods": [
{
"type": "default",
"script": "ct/postgresql.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
"name": "PostgreSQL",
"slug": "postgresql",
"categories": [8],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 5432,
"documentation": null,
"website": "https://www.postgresql.org/",
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/postgresql.svg",
"description": "PostgreSQL (often referred to as Postgres) is an open-source relational database management system that is known for its extensibility and strict adherence to SQL standards. It is a free and powerful database solution, suitable for a wide range of applications, from small projects to large enterprise systems. PostgreSQL is widely used for its reliability, feature-richness, and robustness.",
"install_methods": [
{
"type": "default",
"script": "ct/postgresql.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
},
"notes": [
{
"text": "Set a password after installation for postgres user by running `echo \"ALTER USER postgres with encrypted password 'your_password';\" | sudo -u postgres psql`",
"type": "info"
}
]
}
{
"type": "alpine",
"script": "ct/alpine-postgresql.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Set a password after installation for postgres user by running `echo \"ALTER USER postgres with encrypted password 'your_password';\" | sudo -u postgres psql`",
"type": "info"
}
]
}

View File

@ -1,78 +1,358 @@
[
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.10",
"date": "2025-04-03T09:17:54Z"
"name": "semaphoreui/semaphore",
"version": "v2.13.11-beta1",
"date": "2025-04-08T10:56:42Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.4",
"date": "2025-04-01T08:45:07Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.10",
"date": "2025-03-22T13:02:26Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.0.14",
"date": "2025-04-03T07:52:24Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.4.0-rc.0",
"date": "2025-04-03T06:49:38Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1722",
"date": "2025-04-03T05:51:10Z"
},
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.11",
"date": "2025-03-28T14:04:31Z"
},
{
"name": "rabbitmq/rabbitmq-server",
"version": "v4.0.8",
"date": "2025-04-03T05:11:15Z"
"name": "n8n-io/n8n",
"version": "n8n@1.84.3",
"date": "2025-03-27T11:54:33Z"
},
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-04-03T02:01:34Z"
"date": "2025-04-08T10:34:47Z"
},
{
"name": "ollama/ollama",
"version": "v0.6.3-rc1",
"date": "2025-03-26T20:39:01Z"
"name": "openobserve/openobserve",
"version": "v0.14.6-rc1",
"date": "2025-04-08T08:50:03Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.35.1",
"date": "2025-04-02T21:49:00Z"
"name": "prometheus/prometheus",
"version": "v0.303.0-rc.1",
"date": "2025-04-07T04:39:38Z"
},
{
"name": "NLnetLabs/unbound",
"version": "release-1.23.0rc1",
"date": "2025-04-08T06:39:46Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1744",
"date": "2025-04-08T06:09:14Z"
},
{
"name": "StarFleetCPTN/GoMFT",
"version": "v0.2.6",
"date": "2025-04-08T02:23:38Z"
},
{
"name": "coder/code-server",
"version": "v4.99.0",
"date": "2025-04-08T00:55:36Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta19",
"date": "2025-04-07T23:06:29Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta11",
"date": "2025-04-07T23:02:00Z"
},
{
"name": "Threadfin/Threadfin",
"version": "1.2.32",
"date": "2025-04-07T20:01:09Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.2.0",
"date": "2025-03-19T18:34:01Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.23.7",
"date": "2025-04-07T19:27:52Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0b4",
"date": "2025-04-07T19:14:53Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w15-4.12.0",
"date": "2025-04-07T17:50:14Z"
},
{
"name": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.7.0",
"date": "2025-04-07T16:14:10Z"
},
{
"name": "thomiceli/opengist",
"version": "v1.10.0",
"date": "2025-04-07T14:32:15Z"
},
{
"name": "apache/cassandra",
"version": "5.0.4-tentative",
"date": "2025-04-07T12:05:05Z"
},
{
"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": "syncthing/syncthing",
"version": "v1.29.4",
"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": "redis/redis",
"version": "8.0-rc1-int2",
"date": "2025-04-02T19:05:08Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.63.9",
"date": "2025-03-31T12:47:21Z"
"name": "zabbix/zabbix",
"version": "7.4.0beta1",
"date": "2025-04-07T08:14:13Z"
},
{
"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": "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": "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",
"date": "2025-04-06T00:15:39Z"
},
{
"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": "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.0",
"date": "2025-04-02T17:01:41Z"
"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": "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": "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",
"version": "@jupyter-notebook/ui-components@7.4.0-rc.0",
"date": "2025-04-03T06:49:38Z"
},
{
"name": "rabbitmq/rabbitmq-server",
"version": "v4.0.8",
"date": "2025-04-03T05:11:15Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.35.1",
"date": "2025-04-02T21:49:00Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.63.9",
"date": "2025-03-31T12:47:21Z"
},
{
"name": "BookStackApp/BookStack",
@ -89,66 +369,21 @@
"version": "jenkins-2.503",
"date": "2025-04-02T15:12:13Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0b3",
"date": "2025-04-02T14:39:56Z"
},
{
"name": "hargata/lubelog",
"version": "v1.4.6",
"date": "2025-04-02T14:07:12Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.11.2",
"date": "2025-04-02T13:40:18Z"
},
{
"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",
"version": "v1.131.3",
"date": "2025-04-01T22:48:22Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.14.3",
"date": "2025-04-01T19:53:18Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-music-support",
"date": "2025-04-01T19:04:25Z"
},
{
"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",
"version": "v2.31.0",
"date": "2025-04-01T18:12:45Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.19.6",
"date": "2025-04-01T17:26:31Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.0.0-0.beta.3",
@ -159,26 +394,11 @@
"version": "v1.127.1",
"date": "2025-03-26T21:44:28Z"
},
{
"name": "Luligu/matterbridge",
"version": "2.2.6",
"date": "2025-04-01T14:01:36Z"
},
{
"name": "theonedev/onedev",
"version": "v11.8.6",
"date": "2025-04-01T13:52:03Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.10.3",
"date": "2024-11-05T09:20:50Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.13.7",
"date": "2025-04-01T09:41:55Z"
},
{
"name": "neo4j/neo4j",
"version": "5.26.5",
@ -189,11 +409,6 @@
"version": "v4.0.2",
"date": "2025-04-01T04:51:05Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.0",
"date": "2025-04-01T01:47:32Z"
},
{
"name": "outline/outline",
"version": "v0.82.1-18",
@ -209,11 +424,6 @@
"version": "v2.2.0",
"date": "2025-03-31T21:31:48Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.2.0",
"date": "2025-03-19T18:34:01Z"
},
{
"name": "traefik/traefik",
"version": "v3.3.5",
@ -224,11 +434,6 @@
"version": "15.1",
"date": "2025-03-31T13:42:20Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.84.3",
"date": "2025-03-27T11:54:33Z"
},
{
"name": "documenso/documenso",
"version": "v1.10.0-rc.4",
@ -239,16 +444,6 @@
"version": "4.8.11.0",
"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",
"version": "1.5.0",
@ -259,11 +454,6 @@
"version": "v6.0.6",
"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",
"version": "v1.17.0",
@ -279,11 +469,6 @@
"version": "v0.26.6",
"date": "2025-03-30T08:02:19Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.32.2.4987",
"date": "2025-03-16T09:41:37Z"
},
{
"name": "Readarr/Readarr",
"version": "v2.0.0.4645",
@ -294,11 +479,6 @@
"version": "v2.10.3.4602",
"date": "2025-03-23T11:00:37Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.21.1.9799",
"date": "2025-03-24T15:52:12Z"
},
{
"name": "aceberg/WatchYourLAN",
"version": "2.1.2-alpine",
@ -334,11 +514,6 @@
"version": "2025.3.28",
"date": "2025-03-29T00:18:56Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.13.1",
"date": "2025-03-28T21:58:30Z"
},
{
"name": "TasmoAdmin/TasmoAdmin",
"version": "v4.2.3",
@ -354,11 +529,6 @@
"version": "v4.5.0",
"date": "2025-03-28T19:02:22Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.6.1",
"date": "2025-03-28T18:40:22Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.0-beta.2-temp",
@ -384,11 +554,6 @@
"version": "336.2",
"date": "2025-03-28T10:16:47Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.0.12",
"date": "2025-03-16T11:59:24Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.1.1",
@ -409,46 +574,21 @@
"version": "2025.2",
"date": "2025-03-27T19:21:13Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "1.5.34",
"date": "2025-03-27T16:17:38Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.82.0",
"date": "2025-03-27T13:08:18Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.5",
"date": "2025-03-27T11:06:48Z"
},
{
"name": "evcc-io/evcc",
"version": "0.202.1",
"date": "2025-03-27T08:24:55Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.14.5-rc6",
"date": "2025-03-27T05:15:49Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.1.0.112-2.1.0.112_canary_2025-03-26",
"date": "2025-03-26T21:04:38Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.303.0-rc.0",
"date": "2025-03-26T12:48:46Z"
},
{
"name": "forgejo/forgejo",
"version": "v12.0.0-dev",
@ -489,11 +629,6 @@
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.114.0",
"date": "2025-03-25T07:58:34Z"
},
{
"name": "caddyserver/caddy",
"version": "v2.9.1",
@ -504,26 +639,11 @@
"version": "2025-03-24-r2",
"date": "2025-03-24T20:52:35Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.23.6",
"date": "2025-03-24T20:38:45Z"
},
{
"name": "docmost/docmost",
"version": "v0.9.0",
"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",
"version": "v2.5.307",
@ -544,11 +664,6 @@
"version": "v0.24.2",
"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",
"version": "v4.2.6",
@ -579,11 +694,6 @@
"version": "v0.9.77",
"date": "2025-03-21T02:25:42Z"
},
{
"name": "stonith404/pingvin-share",
"version": "v1.10.4",
"date": "2025-03-20T18:56:10Z"
},
{
"name": "seanmorley15/AdventureLog",
"version": "v0.9.0",
@ -609,11 +719,6 @@
"version": "v2.20.0",
"date": "2025-03-17T22:44:56Z"
},
{
"name": "bastienwirtz/homer",
"version": "v25.03.3",
"date": "2025-03-17T20:55:37Z"
},
{
"name": "Kareadita/Kavita",
"version": "v0.8.5.11",
@ -624,11 +729,6 @@
"version": "v4.0.14.2939",
"date": "2025-03-17T19:12:37Z"
},
{
"name": "inventree/InvenTree",
"version": "0.17.9",
"date": "2025-03-17T12:13:23Z"
},
{
"name": "webmin/webmin",
"version": "2.303",
@ -639,41 +739,11 @@
"version": "v1.60.0",
"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",
"version": "v1.0.0-beta18",
"date": "2025-03-15T20:24:04Z"
},
{
"name": "henrygd/beszel",
"version": "v0.10.2",
"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",
"version": "1.2.31",
"date": "2025-03-14T22:04:10Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.15.0-beta",
@ -694,16 +764,6 @@
"version": "1.26.1",
"date": "2025-03-13T21:34:25Z"
},
{
"name": "kimai/kimai",
"version": "2.31.0",
"date": "2025-03-13T17:13:47Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-03-12T18-04-18Z",
"date": "2025-03-12T18:45:21Z"
},
{
"name": "transmission/transmission",
"version": "4.0.1-beta.1",
@ -734,11 +794,6 @@
"version": "v0.8.2",
"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",
"version": "v1.9.9",
@ -774,11 +829,6 @@
"version": "v2.0.21",
"date": "2025-03-06T16:24:56Z"
},
{
"name": "Dolibarr/dolibarr",
"version": "21.0.0",
"date": "2025-03-06T16:20:45Z"
},
{
"name": "matze/wastebin",
"version": "3.0.0",
@ -799,11 +849,6 @@
"version": "v0.18.0",
"date": "2025-03-04T15:35:27Z"
},
{
"name": "actualbudget/actual",
"version": "v25.3.1",
"date": "2025-03-03T02:05:36Z"
},
{
"name": "heiher/hev-socks5-server",
"version": "2.8.0",
@ -854,21 +899,6 @@
"version": "v1.1.05",
"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",
"version": "v3.5.2",
@ -889,11 +919,6 @@
"version": "REL_13_20",
"date": "2025-02-17T21:17:13Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.10.6",
"date": "2025-02-16T21:55:45Z"
},
{
"name": "sbondCo/Watcharr",
"version": "v2.0.2",
@ -959,11 +984,6 @@
"version": "v1.11.3",
"date": "2025-02-07T19:29:19Z"
},
{
"name": "apache/cassandra",
"version": "cassandra-4.0.17",
"date": "2025-02-07T10:38:54Z"
},
{
"name": "apache/tika",
"version": "2.9.3",
@ -984,11 +1004,6 @@
"version": "r8.0.5-rc1",
"date": "2025-02-04T20:35:23Z"
},
{
"name": "thomiceli/opengist",
"version": "v1.9.1",
"date": "2025-02-04T20:24:29Z"
},
{
"name": "Forceu/Gokapi",
"version": "v1.9.6",
@ -1139,11 +1154,6 @@
"version": "v2024.10.22-7ca5933",
"date": "2024-10-22T09:58:03Z"
},
{
"name": "NLnetLabs/unbound",
"version": "release-1.22.0",
"date": "2024-10-17T08:43:37Z"
},
{
"name": "Notifiarr/notifiarr",
"version": "v0.8.3",
@ -1164,11 +1174,6 @@
"version": "v0.8.13",
"date": "2024-07-29T12:54:27Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v0.9.5",
"date": "2024-07-20T08:46:42Z"
},
{
"name": "hywax/mafl",
"version": "v0.15.4",
@ -1234,11 +1239,6 @@
"version": "2.0.16",
"date": "2024-01-18T16:11:07Z"
},
{
"name": "wger-project/wger",
"version": "2.2",
"date": "2023-12-06T12:08:09Z"
},
{
"name": "deepch/RTSPtoWeb",
"version": "v2.4.3",

View File

@ -1,4 +1,5 @@
"use client";
import FAQ from "@/components/FAQ";
import AnimatedGradientText from "@/components/ui/animated-gradient-text";
import { Button } from "@/components/ui/button";
import { CardFooter } from "@/components/ui/card";
@ -34,104 +35,109 @@ export default function Page() {
}, [theme]);
return (
<div className="w-full mt-16">
<Particles
className="absolute inset-0 -z-40"
quantity={100}
ease={80}
color={color}
refresh
/>
<div className="container mx-auto">
<div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40">
<Dialog>
<DialogTrigger>
<div>
<AnimatedGradientText>
<div
className={cn(
`absolute inset-0 block size-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] [border-radius:inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`,
`p-px ![mask-composite:subtract]`,
)}
/>
<Separator className="mx-2 h-4" orientation="vertical" />
<span
className={cn(
`animate-gradient bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent`,
`inline`,
)}
>
Scripts by tteck
</span>
</AnimatedGradientText>
</div>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Thank You!</DialogTitle>
<DialogDescription>
A big thank you to tteck and the many contributors who have
made this project possible. Your hard work is truly
appreciated by the entire Proxmox community!
</DialogDescription>
</DialogHeader>
<CardFooter className="flex flex-col gap-2">
<Button className="w-full" variant="outline" asChild>
<a
href="https://github.com/tteck"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center"
>
<FaGithub className="mr-2 h-4 w-4" /> Tteck&apos;s GitHub
</a>
</Button>
<Button className="w-full" asChild>
<a
href={`https://github.com/community-scripts/${basePath}`}
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center"
>
<ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper
Scripts
</a>
</Button>
</CardFooter>
</DialogContent>
</Dialog>
<>
<div className="w-full mt-16">
<Particles className="absolute inset-0 -z-40" quantity={100} ease={80} color={color} refresh />
<div className="container mx-auto">
<div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40">
<Dialog>
<DialogTrigger>
<div>
<AnimatedGradientText>
<div
className={cn(
`absolute inset-0 block size-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] [border-radius:inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`,
`p-px ![mask-composite:subtract]`,
)}
/>
<Separator className="mx-2 h-4" orientation="vertical" />
<span
className={cn(
`animate-gradient bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent`,
`inline`,
)}
>
Scripts by tteck
</span>
</AnimatedGradientText>
</div>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Thank You!</DialogTitle>
<DialogDescription>
A big thank you to tteck and the many contributors who have made this project possible. Your hard
work is truly appreciated by the entire Proxmox community!
</DialogDescription>
</DialogHeader>
<CardFooter className="flex flex-col gap-2">
<Button className="w-full" variant="outline" asChild>
<a
href="https://github.com/tteck"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center"
>
<FaGithub className="mr-2 h-4 w-4" /> Tteck&apos;s GitHub
</a>
</Button>
<Button className="w-full" asChild>
<a
href={`https://github.com/community-scripts/${basePath}`}
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center"
>
<ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper Scripts
</a>
</Button>
</CardFooter>
</DialogContent>
</Dialog>
<div className="flex flex-col gap-4">
<h1 className="max-w-2xl text-center text-3xl font-semibold tracking-tighter md:text-7xl">
Make managing your Homelab a breeze
</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">
<p>
We are a community-driven initiative that simplifies the setup
of Proxmox Virtual Environment (VE).
</p>
<p>
With 300+ scripts to help you manage your{" "}
<b>Proxmox VE environment</b>. Whether you&#39;re a seasoned
user or a newcomer, we&#39;ve got you covered.
</p>
</div>
</div>
<div className="flex flex-row gap-3">
<Link href="/scripts">
<Button
size="lg"
variant="expandIcon"
Icon={CustomArrowRightIcon}
iconPlacement="right"
className="hover:"
>
View Scripts
</Button>
</Link>
</div>
</div>
</div>
</div>
);
<div className="flex flex-col gap-4">
<h1 className="max-w-2xl text-center text-3xl font-semibold tracking-tighter md:text-7xl">
Make managing your Homelab a breeze
</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">
<p>
We are a community-driven initiative that simplifies the setup of Proxmox Virtual Environment (VE).
</p>
<p>
With 300+ scripts to help you manage your <b>Proxmox VE environment</b>. Whether you&#39;re a seasoned
user or a newcomer, we&#39;ve got you covered.
</p>
</div>
</div>
<div className="flex flex-row gap-3">
<Link href="/scripts">
<Button
size="lg"
variant="expandIcon"
Icon={CustomArrowRightIcon}
iconPlacement="right"
className="hover:"
>
View Scripts
</Button>
</Link>
</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>
</>
);
}

View File

@ -56,7 +56,7 @@ export default function ScriptAccordion({
value={expandedItem}
onValueChange={handleAccordionChange}
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) => (
<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() {
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="flex items-center">
<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 \
tini \
gpg \
build-essential
build-essential \
git
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
@ -33,11 +34,11 @@ $STD npm install --global yarn
msg_ok "Installed Node.js"
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) }')
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
mv actual-${RELEASE} /opt/actualbudget
tar -xzf v"${RELEASE}".tar.gz
mv actual-"${RELEASE}" /opt/actualbudget
mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
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_CERT=/opt/actualbudget/selfhost.crt
EOF
cd /opt/actualbudget
$STD yarn workspaces focus @actual-app/sync-server --production
cd /opt/actualbudget || exit
export NODE_OPTIONS="--max_old_space_size=3072"
$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
US
California
@ -93,7 +96,7 @@ motd_ssh
customize
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 autoclean
msg_ok "Cleaned"

View File

@ -15,41 +15,51 @@ update_os
msg_info "Installing Dependencies"
$STD apk add \
gpg \
sudo
gpg \
sudo
msg_ok "Installed Dependencies"
msg_info "Installing MariaDB"
$STD apk add --no-cache mariadb mariadb-client
$STD rc-update add mariadb default
$STD rc-service mariadb start
msg_ok "Installed MariaDB"
msg_info "Configuring MariaDB"
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"
read -r -p "Would you like to install Adminer with lighthttpd? <y/N>: " prompt
read -r -p "Would you like to install Adminer with lighttpd? <y/N>: " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Adminer"
$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
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//')
wget -q -O /var/www/adminer.php "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php"
chown lighttpd:lighttpd /var/www/adminer.php
chmod 755 /var/www/adminer.php
msg_ok "Adminer Installed"
msg_info "Installing Adminer and dependencies"
$STD apk add --no-cache \
lighttpd \
lighttpd-openrc \
php83 \
php83-cgi \
php83-common \
php83-curl \
php83-gd \
php83-mbstring \
php83-mysqli \
php83-mysqlnd \
php83-openssl \
php83-zip \
php83-session \
jq
msg_info "Starting Lighttpd"
$STD rc-update add lighttpd default
$STD rc-service lighttpd restart
msg_ok "Lighttpd Started"
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
mkdir -p /var/www/localhost/htdocs
ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//')
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
chmod 755 /var/www/localhost/htdocs/adminer.php
msg_ok "Adminer Installed"
echo -e "Adminer is available at: ${BL}http://$(hostname -I | awk '{print $1}')/adminer${CL}"
else
echo -e "Skipped Adminer Installation..."
msg_info "Starting Lighttpd"
$STD rc-update add lighttpd default
$STD rc-service lighttpd restart
msg_ok "Lighttpd Started"
fi
motd_ssh

View File

@ -0,0 +1,70 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.postgresql.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing PostgreSQL"
$STD apk add --no-cache postgresql16 postgresql16-contrib postgresql16-openrc sudo
msg_ok "Installed PostgreSQL"
msg_info "Enabling PostgreSQL Service"
$STD rc-update add postgresql default
msg_ok "Enabled PostgreSQL Service"
msg_info "Starting PostgreSQL"
$STD rc-service postgresql start
msg_ok "Started PostgreSQL"
msg_info "Configuring PostgreSQL for External Access"
conf_file="/etc/postgresql16/postgresql.conf"
hba_file="/etc/postgresql16/pg_hba.conf"
sed -i 's/^#listen_addresses =.*/listen_addresses = '\''*'\''/' "$conf_file"
sed -i '/^host\s\+all\s\+all\s\+127.0.0.1\/32\s\+md5/ s/.*/host all all 0.0.0.0\/0 md5/' "$hba_file"
$STD rc-service postgresql restart
msg_ok "Configured and Restarted PostgreSQL"
read -r -p "Would you like to install Adminer with lighttpd? <y/N>: " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Adminer and dependencies"
$STD apk add --no-cache \
lighttpd \
lighttpd-openrc \
php83 \
php83-cgi \
php83-common \
php83-curl \
php83-gd \
php83-mbstring \
php83-pdo \
php83-pgsql \
php83-openssl \
php83-zip \
php83-session \
jq
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
mkdir -p /var/www/localhost/htdocs
ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//')
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
chmod 755 /var/www/localhost/htdocs/adminer.php
msg_ok "Adminer Installed"
msg_info "Starting Lighttpd"
$STD rc-update add lighttpd default
$STD rc-service lighttpd restart
msg_ok "Lighttpd Started"
fi
motd_ssh
customize

View File

@ -15,20 +15,20 @@ update_os
msg_info "Installing Dependencies"
$STD apk add \
newt \
curl \
openssh \
nano \
mc \
gpg \
iptables \
openrc
newt \
curl \
openssh \
nano \
mc \
gpg \
iptables \
openrc
msg_ok "Installed Dependencies"
msg_info "Installing WireGuard"
$STD apk add --no-cache wireguard-tools
if [[ ! -L /etc/init.d/wg-quick.wg0 ]]; then
ln -s /etc/init.d/wg-quick /etc/init.d/wg-quick.wg0
ln -s /etc/init.d/wg-quick /etc/init.d/wg-quick.wg0
fi
private_key=$(wg genkey)
@ -41,32 +41,33 @@ PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACC
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;
ListenPort = 51820
EOF
echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf
$STD rc-update add sysctl
$STD sysctl -p /etc/sysctl.conf
msg_ok "Installed WireGuard"
read -rp "Do you want to install WGDashboard? (y/N): " INSTALL_WGD
if [[ "$INSTALL_WGD" =~ ^[Yy]$ ]]; then
msg_info "Installing additional dependencies for WGDashboard"
$STD apk add --no-cache \
python3 \
py3-pip \
git \
sudo \
musl-dev \
linux-headers \
gcc \
python3-dev
msg_ok "Installed additional dependencies for WGDashboard"
msg_info "Installing WGDashboard"
git clone -q https://github.com/donaldzou/WGDashboard.git /etc/wgdashboard
cd /etc/wgdashboard/src || exit
chmod u+x wgd.sh
$STD ./wgd.sh install
$STD echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf
sysctl -p /etc/sysctl.conf
msg_ok "Installed WGDashboard"
msg_info "Installing additional dependencies for WGDashboard"
$STD apk add --no-cache \
python3 \
py3-pip \
git \
sudo \
musl-dev \
linux-headers \
gcc \
python3-dev
msg_ok "Installed additional dependencies for WGDashboard"
msg_info "Installing WGDashboard"
git clone -q https://github.com/donaldzou/WGDashboard.git /etc/wgdashboard
cd /etc/wgdashboard/src || exit
chmod u+x wgd.sh
$STD ./wgd.sh install
msg_ok "Installed WGDashboard"
msg_info "Creating Service for WGDashboard"
cat <<EOF >/etc/init.d/wg-dashboard
msg_info "Creating Service for WGDashboard"
cat <<EOF >/etc/init.d/wg-dashboard
#!/sbin/openrc-run
description="WireGuard Dashboard Service"
@ -89,10 +90,10 @@ stop() {
eend $?
}
EOF
chmod +x /etc/init.d/wg-dashboard
$STD rc-update add wg-dashboard default
$STD rc-service wg-dashboard start
msg_ok "Created Service for WGDashboard"
chmod +x /etc/init.d/wg-dashboard
$STD rc-update add wg-dashboard default
$STD rc-service wg-dashboard start
msg_ok "Created Service for WGDashboard"
fi

View File

@ -42,6 +42,7 @@ if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
msg_ok "Installed Golang"
msg_info "Setup xCaddy"
$STD apt-get install -y git
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb" -o $(basename "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb")

View File

@ -18,7 +18,7 @@ $STD apt-get install -y g++-multilib
msg_ok "Installed Dependencies"
msg_info "Installing Daemon Sync Server"
curl -fsSL "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/daemonsync_2.2.0.0059_amd64.deb" -o "daemonsync_2.2.0.0059_amd64.deb"
curl -fsSL "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/daemonsync_2.2.0.0059_amd64.deb" -o "daemonsync_2.2.0.0059_amd64.deb"
$STD dpkg -i daemonsync_2.2.0.0059_amd64.deb
msg_ok "Installed Daemon Sync Server"

View File

@ -1,9 +1,9 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz) & vhsdream
# 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"
color
@ -34,8 +34,8 @@ chmod +x /usr/bin/yt-dlp
msg_ok "Installed Additional Tools"
msg_info "Installing Meilisearch"
cd /tmp
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o $(basename "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb")
cd /tmp || exit
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
$STD dpkg -i meilisearch.deb
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
MASTER_KEY=$(openssl rand -base64 12)
@ -58,30 +58,30 @@ $STD apt-get install -y nodejs
$STD npm install -g corepack@0.31.0
msg_ok "Installed Node.js"
msg_info "Installing Hoarder"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/hoarder-app/hoarder/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")
unzip -q v${RELEASE}.zip
mv hoarder-${RELEASE} /opt/hoarder
cd /opt/hoarder
msg_info "Installing karakeep"
cd /opt || exit
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/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 || exit
corepack enable
export PUPPETEER_SKIP_DOWNLOAD="true"
export NEXT_TELEMETRY_DISABLED=1
export CI="true"
cd /opt/hoarder/apps/web
cd /opt/karakeep/apps/web || exit
$STD pnpm install --frozen-lockfile
$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
cd /opt/hoarder/apps/workers
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/hoarder_data
HOARDER_SECRET=$(openssl rand -base64 36 | cut -c1-24)
mkdir -p /etc/hoarder
cat <<EOF >/etc/hoarder/hoarder.env
export DATA_DIR=/opt/karakeep_data
karakeep_SECRET=$(openssl rand -base64 36 | cut -c1-24)
mkdir -p /etc/karakeep
cat <<EOF >/etc/karakeep/karakeep.env
SERVER_VERSION=$RELEASE
NEXTAUTH_SECRET="$HOARDER_SECRET"
NEXTAUTH_SECRET="$karakeep_SECRET"
NEXTAUTH_URL="http://localhost:3000"
DATA_DIR="$DATA_DIR"
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"
EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Hoarder"
msg_ok "Installed karakeep"
msg_info "Running Database Migration"
mkdir -p ${DATA_DIR}
cd /opt/hoarder/packages/db
cd /opt/karakeep/packages/db || exit
$STD pnpm migrate
msg_ok "Database Migration Completed"
@ -121,25 +121,25 @@ Restart=always
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/hoarder-web.service
cat <<EOF >/etc/systemd/system/karakeep-web.service
[Unit]
Description=Hoarder Web
Wants=network.target hoarder-workers.service
After=network.target hoarder-workers.service
Description=karakeep Web
Wants=network.target karakeep-workers.service
After=network.target karakeep-workers.service
[Service]
ExecStart=pnpm start
WorkingDirectory=/opt/hoarder/apps/web
EnvironmentFile=/etc/hoarder/hoarder.env
WorkingDirectory=/opt/karakeep/apps/web
EnvironmentFile=/etc/karakeep/karakeep.env
Restart=always
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/hoarder-browser.service
cat <<EOF >/etc/systemd/system/karakeep-browser.service
[Unit]
Description=Hoarder Headless Browser
Description=karakeep Headless Browser
After=network.target
[Service]
@ -151,16 +151,16 @@ Restart=always
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/hoarder-workers.service
cat <<EOF >/etc/systemd/system/karakeep-workers.service
[Unit]
Description=Hoarder Workers
Wants=network.target hoarder-browser.service meilisearch.service
After=network.target hoarder-browser.service meilisearch.service
Description=karakeep Workers
Wants=network.target karakeep-browser.service meilisearch.service
After=network.target karakeep-browser.service meilisearch.service
[Service]
ExecStart=pnpm start:prod
WorkingDirectory=/opt/hoarder/apps/workers
EnvironmentFile=/etc/hoarder/hoarder.env
WorkingDirectory=/opt/karakeep/apps/workers
EnvironmentFile=/etc/karakeep/karakeep.env
Restart=always
TimeoutStopSec=5
@ -168,7 +168,7 @@ TimeoutStopSec=5
WantedBy=multi-user.target
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"
motd_ssh
@ -176,7 +176,7 @@ customize
msg_info "Cleaning up"
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 autoclean -y
msg_ok "Cleaned"

View File

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

View File

@ -0,0 +1,122 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.meilisearch.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
gnupg
msg_ok "Installed Dependencies"
msg_info "Setup ${APPLICATION}"
tmp_file=$(mktemp)
RELEASE=$(curl -s https://api.github.com/repos/meilisearch/meilisearch/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb -o $tmp_file
$STD dpkg -i $tmp_file
curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml
MASTER_KEY=$(openssl rand -base64 12)
LOCAL_IP="$(hostname -I | awk '{print $1}')"
sed -i \
-e 's|^env =.*|env = "production"|' \
-e "s|^# master_key =.*|master_key = \"$MASTER_KEY\"|" \
-e 's|^db_path =.*|db_path = "/var/lib/meilisearch/data"|' \
-e 's|^dump_dir =.*|dump_dir = "/var/lib/meilisearch/dumps"|' \
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
-e 's|^# no_analytics = true|no_analytics = true|' \
-e 's|^http_addr =.*|http_addr = "0.0.0.0:7700"|' \
/etc/meilisearch.toml
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup ${APPLICATION}"
read -r -p "Do you want add meilisearch-ui? [y/n]: " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g pnpm
msg_ok "Installed Node.js"
msg_info "Setup ${APPLICATION}-ui"
tmp_file=$(mktemp)
tmp_dir=$(mktemp -d)
mkdir -p /opt/meilisearch-ui
RELEASE_UI=$(curl -s https://api.github.com/repos/riccox/meilisearch-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/riccox/meilisearch-ui/archive/refs/tags/${RELEASE_UI}.zip" -o $tmp_file
unzip -q "$tmp_file" -d "$tmp_dir"
mv "$tmp_dir"/*/* /opt/meilisearch-ui/
cd /opt/meilisearch-ui
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
$STD pnpm install
cat <<EOF > /opt/meilisearch-ui/.env.local
VITE_SINGLETON_MODE=true
VITE_SINGLETON_HOST=http://${LOCAL_IP}:7700
VITE_SINGLETON_API_KEY=${MASTER_KEY}
EOF
echo "${RELEASE_UI}" >/opt/${APPLICATION}-ui_version.txt
msg_ok "Setup ${APPLICATION}-ui"
fi
msg_info "Setting up Services"
cat <<EOF >/etc/systemd/system/meilisearch.service
[Unit]
Description=Meilisearch
After=network.target
[Service]
ExecStart=/usr/bin/meilisearch --config-file-path /etc/meilisearch.toml
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now meilisearch
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
cat <<EOF > /etc/systemd/system/meilisearch-ui.service
[Unit]
Description=Meilisearch UI Service
After=network.target meilisearch.service
Requires=meilisearch.service
[Service]
User=root
WorkingDirectory=/opt/meilisearch-ui
ExecStart=/usr/bin/pnpm start
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=meilisearch-ui
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now meilisearch-ui
fi
msg_ok "Set up Services"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -15,13 +15,13 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
gcc \
gnupg \
ca-certificates \
musl-dev \
mupdf \
libc6-dev \
musl-tools
gcc \
gnupg \
ca-certificates \
musl-dev \
mupdf \
libc6-dev \
musl-tools
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
@ -66,16 +66,16 @@ msg_ok "Setup Paperless-GPT"
mkdir -p /opt/paperless-gpt-data
read -p "Do you want to enter the Paperless local URL now? (y/n) " input_url
if [[ "$input_url" =~ ^[Yy]$ ]]; then
read -p "Enter your Paperless-NGX instance URL (e.g., http://192.168.1.100:8000): " PAPERLESS_BASE_URL
read -p "Enter your Paperless-NGX instance URL (e.g., http://192.168.1.100:8000): " PAPERLESS_BASE_URL
else
PAPERLESS_BASE_URL="http://your_paperless_ngx_url"
PAPERLESS_BASE_URL="http://your_paperless_ngx_url"
fi
read -p "Do you want to enter the Paperless API token now? (y/n) " input_token
if [[ "$input_token" =~ ^[Yy]$ ]]; then
read -p "Enter your Paperless API token: " PAPERLESS_API_TOKEN
read -p "Enter your Paperless API token: " PAPERLESS_API_TOKEN
else
PAPERLESS_API_TOKEN="your_paperless_api_token"
PAPERLESS_API_TOKEN="your_paperless_api_token"
fi
msg_info "Setup Environment"
@ -116,6 +116,8 @@ ExecStart=/opt/paperless-gpt/paperless-gpt
Restart=always
User=root
EnvironmentFile=/opt/paperless-gpt-data/.env
StandardOutput=append:/var/log/paperless-gpt.log
StandardError=append:/var/log/paperless-gpt.log
[Install]
WantedBy=multi-user.target
@ -130,4 +132,4 @@ msg_info "Cleaning up"
rm -f $temp_file
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
msg_ok "Cleaned"

View File

@ -22,19 +22,19 @@ $STD apt-get install -y \
composer
msg_ok "Installed Dependencies"
msg_info "Adding PHP8.3 Repository"
$STD curl -fsSL "https://packages.sury.org/debsuryorg-archive-keyring.deb" -o /tmp/debsuryorg-archive-keyring.deb
msg_info "Adding PHP8.4 Repository"
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
msg_ok "Added PHP8.3 Repository"
msg_ok "Added PHP8.4 Repository"
msg_info "Installing PHP"
$STD apt-get remove -y php8.2*
$STD apt-get install -y \
php8.3 \
php8.3-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm} \
libapache2-mod-php8.3
php8.4 \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm} \
libapache2-mod-php8.4
msg_info "Installed PHP"
msg_info "Setting up MariaDB"
@ -55,7 +55,7 @@ msg_ok "Set up MariaDB"
msg_info "Installing Pelican Panel"
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
mkdir /opt/pelican-panel
cd /opt/pelican-panel
cd /opt/pelican-panel || exit
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
tar -xzf "panel.tar.gz"
$STD composer install --no-dev --optimize-autoloader --no-interaction
@ -64,7 +64,7 @@ $STD php artisan p:environment:queue-service --no-interaction
echo "* * * * * php /opt/pelican-panel/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
chown -R www-data:www-data /opt/pelican-panel
chmod -R 755 /opt/pelican-panel/storage /opt/pelican-panel/bootstrap/cache/
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
msg_ok "Installed Pelican Panel"
msg_info "Creating Service"

View File

@ -23,19 +23,19 @@ $STD apt-get install -y \
composer
msg_ok "Installed Dependencies"
msg_info "Adding PHP8.3 Repository"
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
msg_info "Adding PHP8.4 Repository"
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
msg_ok "Added PHP8.3 Repository"
msg_ok "Added PHP8.4 Repository"
msg_info "Installing PHP"
$STD apt-get remove -y php8.2*
$STD apt-get install -y \
php8.3 \
php8.3-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
libapache2-mod-php8.3
php8.4 \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
libapache2-mod-php8.4
msg_ok "Installed PHP"
msg_info "Setting up MariaDB"
@ -60,7 +60,7 @@ read -p "Enter your Last Name: " NAME_LAST
msg_info "Installing pterodactyl Panel"
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
mkdir /opt/pterodactyl-panel
cd /opt/pterodactyl-panel
cd /opt/pterodactyl-panel || exit
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz")
tar -xzf "panel.tar.gz"
cp .env.example .env
@ -68,8 +68,8 @@ IP=$(hostname -I | awk '{print $1}')
ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD composer install --no-dev --optimize-autoloader --no-interaction
$STD php artisan key:generate --force
$STD php artisan p:environment:setup --no-interaction --author $ADMIN_EMAIL --url "http://$IP"
$STD php artisan p:environment:database --no-interaction --database $DB_NAME --username $DB_USER --password $DB_PASS
$STD php artisan p:environment:setup --no-interaction --author "$ADMIN_EMAIL" --url "http://$IP"
$STD php artisan p:environment:database --no-interaction --database $DB_NAME --username $DB_USER --password "$DB_PASS"
$STD php artisan migrate --seed --force --no-interaction
$STD php artisan p:user:make --no-interaction --admin=1 --email "$ADMIN_EMAIL" --password "$ADMIN_PASS" --name-first "$NAME_FIRST" --name-last "$NAME_LAST" --username "admin"
echo "* * * * * php /opt/pterodactyl-panel/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
@ -82,7 +82,7 @@ chmod -R 755 /opt/pterodactyl-panel/storage/* /opt/pterodactyl-panel/bootstrap/c
echo "pterodactyl Admin Password: $ADMIN_PASS"
} >>~/pterodactyl-panel.creds
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
msg_ok "Installed pterodactyl Panel"
msg_info "Creating Service"

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.zabbix.com/
@ -14,8 +14,11 @@ network_check
update_os
msg_info "Installing Zabbix"
cd /tmp
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")
cd /tmp || exit
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 apt-get update
$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_info "Installing Zitadel"
RELEASE=$(curl -fsSL https://github.com/zitadel/zitadel/releases/latest | grep location: | cut -d '/' -f 8 | tr -d '\r')
curl -fsSL https://github.com/zitadel/zitadel/releases/download/$RELEASE/zitadel-linux-amd64.tar.gz | tar -xz
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/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
mv zitadel-linux-amd64/zitadel /usr/local/bin
msg_ok "Installed Zitadel"

View File

@ -94,12 +94,12 @@ msg_error() {
# This function sets up the Container OS by generating the locale, setting the timezone, and checking the network connection
setting_up_container() {
msg_info "Setting up Container OS"
while [ $i -gt 0 ]; do
while [ "$i" -gt 0 ]; do
if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" != "" ]; then
break
fi
echo 1>&2 -en "${CROSS}${RD} No Network! "
sleep $RETRY_EVERY
sleep "$RETRY_EVERY"
i=$((i - 1))
done
@ -194,6 +194,6 @@ customize() {
msg_ok "Customized Container"
fi
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/ct/${app}.sh)\"" >/usr/bin/update
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/${app}.sh)\"" >/usr/bin/update
chmod +x /usr/bin/update
}

View File

@ -128,4 +128,4 @@ info "Successfully Transferred Data."
# Use to copy all data from one Home Assistant LXC to another
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-container.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-container.sh)"

View File

@ -124,4 +124,4 @@ info "Successfully Transferred Data."
# Use to copy all data from a Home Assistant Container LXC to a Home Assistant Core LXC
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-core.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-core.sh)"

View File

@ -129,4 +129,4 @@ info "Successfully Transferred Data."
# Use to copy all data from a Home Assistant LXC to a Podman Home Assistant LXC
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-container-copy-data-podman-home-assistant.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-container-copy-data-podman-home-assistant.sh)"

View File

@ -124,4 +124,4 @@ info "Successfully Transferred Data."
# Use to copy all data from a Home Assistant Core LXC to a Home Assistant Container LXC
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-container.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-container.sh)"

View File

@ -123,4 +123,4 @@ info "Successfully Transferred Data."
# Use to copy all data from a Home Assistant Core LXC to a Home Assistant Container LXC
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh)"

View File

@ -128,4 +128,4 @@ info "Successfully Transferred Data."
# Use to copy all data from one Plex Media Server LXC to another
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/plex-copy-data-plex.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/plex-copy-data-plex.sh)"

View File

@ -129,4 +129,4 @@ info "Successfully Transferred Data."
# Use to copy all data from a Podman Home Assistant LXC to a Docker Home Assistant LXC.
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/podman-home-assistant-copy-data-home-assistant-container.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/podman-home-assistant-copy-data-home-assistant-container.sh)"

View File

@ -128,4 +128,4 @@ info "Successfully Transferred Data."
# Use to copy all data from one Zigbee2MQTT LXC to another
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/z2m-copy-data-z2m.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/z2m-copy-data-z2m.sh)"

View File

@ -36,7 +36,7 @@ function error_exit() {
local REASON="\e[97m${1:-$DEFAULT}\e[39m"
local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
msg "$FLAG $REASON"
exit $EXIT
exit "$EXIT"
}
function warn() {
local REASON="\e[97m$1\e[39m"
@ -53,13 +53,13 @@ function msg() {
echo -e "$TEXT"
}
function cleanup() {
[ -d "${CTID_FROM_PATH:-}" ] && pct unmount $CTID_FROM
[ -d "${CTID_TO_PATH:-}" ] && pct unmount $CTID_TO
[ -d "${CTID_FROM_PATH:-}" ] && pct unmount "$CTID_FROM"
[ -d "${CTID_TO_PATH:-}" ] && pct unmount "$CTID_TO"
popd >/dev/null
rm -rf $TEMP_DIR
rm -rf "$TEMP_DIR"
}
TEMP_DIR=$(mktemp -d)
pushd $TEMP_DIR >/dev/null
pushd "$TEMP_DIR" >/dev/null
TITLE="Zigbee2MQTT to Z-wave JS UI Data Copy"
while read -r line; do
@ -85,27 +85,27 @@ while [ -z "${CTID_TO:+x}" ]; do
done
for i in ${!CTID_MENU[@]}; do
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
CTID_FROM_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<${CTID_MENU[$i + 1]})
CTID_FROM_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<"${CTID_MENU[$i + 1]}")
[ "${CTID_MENU[$i]}" == "$CTID_TO" ] &&
CTID_TO_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<${CTID_MENU[$i + 1]})
CTID_TO_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<"${CTID_MENU[$i + 1]}")
done
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
"Are you sure you want to copy data between the following LXCs?
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
Version: 2022.09.21" 13 50 || exit
info "Zwavejs2MQTT Data from '$CTID_FROM' to '$CTID_TO'"
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
if [ $(pct status "$CTID_TO" | sed 's/.* //') == 'running' ]; then
msg "Stopping '$CTID_TO'..."
pct stop $CTID_TO
pct stop "$CTID_TO"
fi
msg "Mounting Container Disks..."
DATA_PATH=/opt/zwavejs2mqtt/store/
DATA_PATH_NEW=/opt/zwave-js-ui/store/
CTID_FROM_PATH=$(pct mount $CTID_FROM | sed -n "s/.*'\(.*\)'/\1/p") ||
CTID_FROM_PATH=$(pct mount "$CTID_FROM" | sed -n "s/.*'\(.*\)'/\1/p") ||
die "There was a problem mounting the root disk of LXC '${CTID_FROM}'."
[ -d "${CTID_FROM_PATH}${DATA_PATH}" ] ||
die "Zwavejs2MQTT directories in '$CTID_FROM' not found."
CTID_TO_PATH=$(pct mount $CTID_TO | sed -n "s/.*'\(.*\)'/\1/p") ||
CTID_TO_PATH=$(pct mount "$CTID_TO" | sed -n "s/.*'\(.*\)'/\1/p") ||
die "There was a problem mounting the root disk of LXC '${CTID_TO}'."
[ -d "${CTID_TO_PATH}${DATA_PATH_NEW}" ] ||
die "Zwavejs2MQTT directories in '$CTID_TO' not found."
@ -123,11 +123,11 @@ RSYNC_OPTIONS=(
--info=progress2
)
msg "<======== Zwavejs Data ========>"
rsync ${RSYNC_OPTIONS[*]} ${CTID_FROM_PATH}${DATA_PATH} ${CTID_TO_PATH}${DATA_PATH_NEW}
rsync "${RSYNC_OPTIONS[*]}" "${CTID_FROM_PATH}"${DATA_PATH} "${CTID_TO_PATH}"${DATA_PATH_NEW}
echo -en "\e[1A\e[0K\e[1A\e[0K"
info "Successfully Transferred Data."
# Use to copy all data from a Zwavejs2MQTT LXC to a Z-wave JS UI LXC
# run from the Proxmox Shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/zwavejs2mqtt-copy-data-zwavejsui.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/zwavejs2mqtt-copy-data-zwavejsui.sh)"

View File

@ -4,7 +4,7 @@
# Author: tteck (tteckster)
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/cron-update-lxcs.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/cron-update-lxcs.sh)"
clear
cat <<"EOF"
@ -25,7 +25,7 @@ add() {
*) echo "Please answer yes or no." ;;
esac
done
sh -c '(crontab -l -u root 2>/dev/null; echo "0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/update-lxcs-cron.sh)\" >>/var/log/update-lxcs-cron.log 2>/dev/null") | crontab -u root -'
sh -c '(crontab -l -u root 2>/dev/null; echo "0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/update-lxcs-cron.sh)\" >>/var/log/update-lxcs-cron.log 2>/dev/null") | crontab -u root -'
clear
echo -e "\n To view Cron Update LXCs logs: cat /var/log/update-lxcs-cron.log"
}

View File

@ -89,5 +89,5 @@ EOF
echo -e "\e[1;33m \nFinished....Reboot ${CTID} LXC to apply the changes.\n \e[0m"
# In the Proxmox web shell run
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/frigate-support.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/frigate-support.sh)"
# Reboot the LXC to apply the changes

View File

@ -5,7 +5,7 @@
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Execute within the Proxmox shell
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/hw-acceleration.sh)"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/hw-acceleration.sh)"
set -e
function header_info {

View File

@ -69,7 +69,7 @@ catch_errors() {
# This function handles errors
error_handler() {
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
if [ -n "$SPINNER_PID" ] && ps -p "$SPINNER_PID" >/dev/null; then kill "$SPINNER_PID" >/dev/null; fi
printf "\e[?25h"
local exit_code="$?"
local line_number="$1"
@ -110,7 +110,7 @@ msg_info() {
# This function displays a success message with a green color.
msg_ok() {
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
if [ -n "$SPINNER_PID" ] && ps -p "$SPINNER_PID" >/dev/null; then kill "$SPINNER_PID" >/dev/null; fi
printf "\e[?25h"
local msg="$1"
echo -e "${BFR}${CM}${GN}${msg}${CL}"
@ -118,7 +118,7 @@ msg_ok() {
# This function displays a error message with a red color.
msg_error() {
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
if [ -n "$SPINNER_PID" ] && ps -p "$SPINNER_PID" >/dev/null; then kill "$SPINNER_PID" >/dev/null; fi
printf "\e[?25h"
local msg="$1"
echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
@ -132,14 +132,14 @@ setting_up_container() {
echo "LANG=${locale_line}" >/etc/default/locale
locale-gen >/dev/null
export LANG=${locale_line}
echo $tz >/etc/timezone
ln -sf /usr/share/zoneinfo/$tz /etc/localtime
echo "$tz" >/etc/timezone
ln -sf /usr/share/zoneinfo/"$tz" /etc/localtime
for ((i = RETRY_NUM; i > 0; i--)); do
if [ "$(hostname -I)" != "" ]; then
break
fi
echo 1>&2 -en "${CROSS}${RD} No Network! "
sleep $RETRY_EVERY
sleep "$RETRY_EVERY"
done
if [ "$(hostname -I)" = "" ]; then
echo 1>&2 -e "\n${CROSS}${RD} No Network After $RETRY_NUM Tries${CL}"
@ -265,7 +265,7 @@ EOF
systemctl restart $(basename $(dirname $GETTY_OVERRIDE) | sed 's/\.d//')
msg_ok "Customized Container"
fi
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/ct/${app}.sh)\"" >/usr/bin/update
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/${app}.sh)\"" >/usr/bin/update
chmod +x /usr/bin/update
if [[ -n "${SSH_AUTHORIZED_KEY}" ]]; then