Compare commits

...

30 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
556e6a71f2 Update CHANGELOG.md (#10792)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 00:16:11 +00:00
community-scripts-pr-app[bot]
7df7a9741a Update versions.json (#10791)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 01:15:45 +01:00
community-scripts-pr-app[bot]
749cde5bab Update CHANGELOG.md (#10790)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 20:17:58 +00:00
Chris
a990d39812 Fix intel version check; install legacy packages (#10787) 2026-01-13 21:17:26 +01:00
community-scripts-pr-app[bot]
8551ad33f3 Update CHANGELOG.md (#10789)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 20:17:00 +00:00
Michel Roegl-Brunner
fb1d508182 Remove default VLAN for LAN (#10782) 2026-01-13 21:16:36 +01:00
Michel Roegl-Brunner
648829f51e update_lxcs.sh: Add the option to skip stopped LXC (#10783)
* Add the option to skip stopped LXC

* Fix issue where a script aborts when /usr/lib/python3.*/EXTERNALLY-MANAGED is not there
2026-01-13 21:16:12 +01:00
community-scripts-pr-app[bot]
12a3b4ecd2 Update .app files (#10786)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-01-13 20:05:15 +01:00
MickLesk
6e420c311b fix typo 2026-01-13 20:03:49 +01:00
community-scripts-pr-app[bot]
7da60f5ec0 Update versions.json (#10780)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 13:06:23 +01:00
community-scripts-pr-app[bot]
92380e9155 Update .app files (#10778)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-01-13 10:56:30 +01:00
community-scripts-pr-app[bot]
9d0c4f8a16 Update CHANGELOG.md (#10779)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 09:47:05 +00:00
community-scripts-pr-app[bot]
a09121bc49 Update CHANGELOG.md (#10777)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 09:46:45 +00:00
community-scripts-pr-app[bot]
e549378eb1 Update date in json (#10776)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-01-13 09:46:42 +00:00
push-app-to-main[bot]
186c0f6d09 Investbrain (#10774)
* Add investbrain (ct)

* Fix success message capitalization

* Fix installation script message and import local IP

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-01-13 10:46:23 +01:00
community-scripts-pr-app[bot]
7794b49a43 Update CHANGELOG.md (#10775)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 09:44:06 +00:00
Slaviša Arežina
002c6624f7 Refactor: Joplin Server (#10769) 2026-01-13 10:43:44 +01:00
community-scripts-pr-app[bot]
5044024a19 Update .app files (#10772)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-01-13 08:55:50 +01:00
community-scripts-pr-app[bot]
d8fc9e5c85 Update CHANGELOG.md (#10773)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 07:54:25 +00:00
community-scripts-pr-app[bot]
033688ab7d Update CHANGELOG.md (#10771)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 07:54:03 +00:00
community-scripts-pr-app[bot]
faaebca358 Update date in json (#10770)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-01-13 07:53:59 +00:00
push-app-to-main[bot]
9984ab9d07 Fladder (#10768) 2026-01-13 08:53:37 +01:00
community-scripts-pr-app[bot]
8f1b2b9ad2 Update CHANGELOG.md (#10767)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 07:10:27 +00:00
Slaviša Arežina
42a2739db6 Backrest: Bump to Trixie (#10758)
* Bump to trixie

* Update
2026-01-13 08:10:06 +01:00
community-scripts-pr-app[bot]
62ed362fbf Update CHANGELOG.md (#10766)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 07:10:01 +00:00
Slaviša Arežina
7c3d9d231a Refactor (#10759) 2026-01-13 08:09:39 +01:00
community-scripts-pr-app[bot]
8d53604ae3 Update CHANGELOG.md (#10765)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 07:05:19 +00:00
Slaviša Arežina
225eae4b27 Refactor (#10760) 2026-01-13 08:04:59 +01:00
community-scripts-pr-app[bot]
462e75e8f3 Update CHANGELOG.md (#10764)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-13 06:54:06 +00:00
Copilot
10024723b6 Fix Zammad nginx configuration causing installation failure (#10757)
* Initial plan

* Fix nginx configuration setup in zammad-install.sh

Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>
2026-01-13 07:53:43 +01:00
26 changed files with 755 additions and 273 deletions

View File

@@ -10,8 +10,36 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2026-01-14
## 2026-01-13
### 🆕 New Scripts
- Investbrain ([#10774](https://github.com/community-scripts/ProxmoxVE/pull/10774))
- Fladder ([#10768](https://github.com/community-scripts/ProxmoxVE/pull/10768))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: Fix Intel version check; install legacy Intel packages during new install [@vhsdream](https://github.com/vhsdream) ([#10787](https://github.com/community-scripts/ProxmoxVE/pull/10787))
- Openwrt: Remove default VLAN for LAN [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#10782](https://github.com/community-scripts/ProxmoxVE/pull/10782))
- Refactor: Joplin Server [@tremor021](https://github.com/tremor021) ([#10769](https://github.com/community-scripts/ProxmoxVE/pull/10769))
- Fix Zammad nginx configuration causing installation failure [@Copilot](https://github.com/Copilot) ([#10757](https://github.com/community-scripts/ProxmoxVE/pull/10757))
- #### 🔧 Refactor
- Backrest: Bump to Trixie [@tremor021](https://github.com/tremor021) ([#10758](https://github.com/community-scripts/ProxmoxVE/pull/10758))
- Refactor: Caddy [@tremor021](https://github.com/tremor021) ([#10759](https://github.com/community-scripts/ProxmoxVE/pull/10759))
- Refactor: Leantime [@tremor021](https://github.com/tremor021) ([#10760](https://github.com/community-scripts/ProxmoxVE/pull/10760))
### 🧰 Tools
- #### 🐞 Bug Fixes
- update_lxcs.sh: Add the option to skip stopped LXC [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#10783](https://github.com/community-scripts/ProxmoxVE/pull/10783))
## 2026-01-12
### 🆕 New Scripts

View File

@@ -5,7 +5,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://couchdb.apache.org/
APP="Apache CouchDB"
APP="Apache-CouchDB"
var_tags="${var_tags:-database}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -29,21 +29,19 @@ function update_script() {
fi
msg_info "Updating Caddy LXC"
$STD apt-get update
$STD apt-get -y upgrade
$STD apt update
$STD apt upgrade -y
msg_ok "Updated Caddy LXC"
if command -v xcaddy >/dev/null 2>&1; then
setup_go
msg_info "Updating xCaddy"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
VERSION="${RELEASE#v}"
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${VERSION}_linux_amd64.deb" -o "xcaddy_${VERSION}_linux_amd64.deb"
$STD dpkg -i "xcaddy_${VERSION}_linux_amd64.deb"
rm -f "xcaddy_${VERSION}_linux_amd64.deb"
$STD xcaddy build
msg_ok "Updated xCaddy"
if check_for_gh_release "xcaddy" "caddyserver/xcaddy"; then
setup_go
fetch_and_deploy_gh_release "xcaddy" "caddyserver/xcaddy" "binary"
msg_info "Updating xCaddy"
$STD xcaddy build
msg_ok "Updated xCaddy"
fi
fi
msg_ok "Updated successfully!"
exit

68
ct/fladder.sh Normal file
View File

@@ -0,0 +1,68 @@
#!/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: wendyliga
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/DonutWare/Fladder
APP="Fladder"
var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/fladder ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "Fladder" "DonutWare/Fladder"; then
msg_info "Stopping Service"
systemctl stop nginx
msg_ok "Stopped Service"
if [[ -f /opt/fladder/assets/config/config.json ]]; then
msg_info "Backing up configuration"
cp /opt/fladder/assets/config/config.json /tmp/fladder_config.json.bak
msg_ok "Configuration backed up"
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Fladder" "DonutWare/Fladder" "prebuild" "latest" "/opt/fladder" "Fladder-Web-*.zip"
if [[ -f /tmp/fladder_config.json.bak ]]; then
msg_info "Restoring configuration"
mkdir -p /opt/fladder/assets/config
cp /tmp/fladder_config.json.bak /opt/fladder/assets/config/config.json
rm -f /tmp/fladder_config.json.bak
msg_ok "Configuration restored"
fi
msg_info "Starting Service"
systemctl start nginx
msg_ok "Started Service"
msg_ok "Updated successfully!"
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 IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

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

6
ct/headers/fladder Normal file
View File

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

6
ct/headers/investbrain Normal file
View File

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

View File

@@ -93,6 +93,7 @@ EOF
$STD apt install -y ./*.deb
rm ./*.deb
$STD apt-mark hold libigdgmm12
dpkg -l | grep -m1 "intel-opencl-icd" | awk '{print $3}' >~/.intel_version
msg_ok "Intel iGPU dependencies updated"
fi
rm ./Dockerfile

90
ct/investbrain.sh Normal file
View File

@@ -0,0 +1,90 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Benito Rodríguez (b3ni)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/investbrainapp/investbrain
APP="Investbrain"
var_tags="${var_tags:-finance;portfolio;investing}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/investbrain ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "Investbrain" "investbrainapp/investbrain"; then
PHP_VERSION="8.4"
msg_info "Stopping Services"
systemctl stop nginx php${PHP_VERSION}-fpm
$STD supervisorctl stop all
msg_ok "Services Stopped"
setup_composer
NODE_VERSION="22" setup_nodejs
PG_VERSION="17" setup_postgresql
msg_info "Creating Backup"
rm -f /opt/.env.backup
rm -rf /opt/investbrain_backup
cp /opt/investbrain/.env /opt/.env.backup
cp -r /opt/investbrain/storage /opt/investbrain_backup
msg_ok "Created Backup"
fetch_and_deploy_gh_release "Investbrain" "investbrainapp/investbrain" "tarball" "latest" "/opt/investbrain"
msg_info "Updating Investbrain"
cd /opt/investbrain
rm -rf /opt/investbrain/storage
cp /opt/.env.backup /opt/investbrain/.env
cp -r /opt/investbrain_backup/ /opt/investbrain/storage
export COMPOSER_ALLOW_SUPERUSER=1
$STD /usr/local/bin/composer install --no-interaction --no-dev --optimize-autoloader
$STD npm install
$STD npm run build
$STD php artisan storage:link
$STD php artisan migrate --force
$STD php artisan cache:clear
$STD php artisan view:clear
$STD php artisan route:clear
$STD php artisan event:clear
$STD php artisan route:cache
$STD php artisan event:cache
chown -R www-data:www-data /opt/investbrain
chmod -R 775 /opt/investbrain/storage /opt/investbrain/bootstrap/cache
rm -rf /opt/.env.backup /opt/investbrain_backup
msg_ok "Updated Investbrain"
msg_info "Starting Services"
systemctl start php${PHP_VERSION}-fpm nginx
$STD supervisorctl start all
msg_ok "Services Started"
msg_ok "Updated successfully!"
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}:8000${CL}"

View File

@@ -35,10 +35,12 @@ function update_script() {
systemctl stop joplin-server
msg_ok "Stopped Services"
fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
cp /opt/joplin-server/.env /opt
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball"
mv /opt/.env /opt/joplin-server
msg_info "Updating Joplin-Server"
cd /opt/joplin-server
cd /opt/joplin-server
sed -i "/onenote-converter/d" packages/lib/package.json
$STD yarn config set --home enableTelemetry 0
export BUILD_SEQUENCIAL=1

View File

@@ -12,7 +12,7 @@
"documentation": "https://garethgeorge.github.io/backrest/introduction/getting-started",
"website": "https://garethgeorge.github.io/backrest",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/backrest.webp",
"config_path": "/opt/backrest/config/config.json",
"config_path": "/opt/backrest/config/config.json | /opt/backrest/.env",
"description": "Backrest is a web-accessible backup solution built on top of restic and providing a WebUI which wraps the restic CLI and makes it easy to create repos, browse snapshots, and restore files. Additionally, Backrest can run in the background and take an opinionated approach to scheduling snapshots and orchestrating repo health operations.",
"install_methods": [
{
@@ -23,7 +23,7 @@
"ram": 512,
"hdd": 8,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -23,7 +23,7 @@
"ram": 512,
"hdd": 6,
"os": "debian",
"version": "12"
"version": "13"
}
},
{

View File

@@ -0,0 +1,35 @@
{
"name": "Fladder",
"slug": "fladder",
"categories": [
13
],
"date_created": "2026-01-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://github.com/DonutWare/Fladder/blob/develop/INSTALL.md#ubuntudebian",
"website": "https://github.com/DonutWare/Fladder",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/fladder.webp",
"config_path": "/opt/fladder/assets/config/config.json",
"description": "Fladder is a simple Jellyfin frontend built on top of Flutter. It provides a modern interface to stream and sync content locally, manage libraries, support multiple profiles, and offers direct, transcode and offline playback with media segments skipping.",
"install_methods": [
{
"type": "default",
"script": "ct/fladder.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -0,0 +1,40 @@
{
"name": "Investbrain",
"slug": "investbrain",
"categories": [
23
],
"date_created": "2026-01-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": "https://github.com/investbrainapp/investbrain",
"website": "https://investbra.in",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/investbrain.webp",
"config_path": "/opt/investbrain/.env",
"description": "Investbrain is a smart open-source investment tracker that helps you manage, track, and make informed decisions about your investments.",
"install_methods": [
{
"type": "default",
"script": "ct/investbrain.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Database credentials: `cat ~/investbrain.creds`",
"type": "info"
}
]
}

View File

@@ -1,18 +1,53 @@
[
{
"name": "henrygd/beszel",
"version": "v0.18.2",
"date": "2026-01-12T23:58:00Z"
"name": "ZoeyVid/NPMplus",
"version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.1.1-stable",
"date": "2026-01-12T23:25:10Z"
"name": "goauthentik/authentik",
"version": "version/2025.12.0",
"date": "2026-01-13T23:04:04Z"
},
{
"name": "librenms/librenms",
"version": "26.1.1",
"date": "2026-01-12T23:12:41Z"
"name": "Dispatcharr/Dispatcharr",
"version": "v0.17.0",
"date": "2026-01-13T22:51:49Z"
},
{
"name": "seerr-team/seerr",
"version": "preview-plex-4k-debug-logs",
"date": "2026-01-13T22:38:07Z"
},
{
"name": "C4illin/ConvertX",
"version": "v0.17.0",
"date": "2026-01-13T20:47:26Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.35.1",
"date": "2026-01-10T09:23:24Z"
},
{
"name": "pterodactyl/wings",
"version": "v1.12.1",
"date": "2026-01-13T20:39:22Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.15",
"date": "2026-01-06T20:05:54Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.50.0-rc2",
"date": "2026-01-13T19:27:24Z"
},
{
"name": "ollama/ollama",
"version": "v0.14.0-rc10",
"date": "2026-01-13T19:25:31Z"
},
{
"name": "azukaar/Cosmos-Server",
@@ -20,14 +55,134 @@
"date": "2026-01-12T20:20:08Z"
},
{
"name": "ollama/ollama",
"version": "v0.14.0-rc1",
"date": "2026-01-10T05:09:46Z"
"name": "paperless-ngx/paperless-ngx",
"version": "v2.20.4",
"date": "2026-01-13T18:52:08Z"
},
{
"name": "metabase/metabase",
"version": "v0.57.x",
"date": "2026-01-13T18:13:09Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@2.3.4",
"date": "2026-01-13T16:37:15Z"
},
{
"name": "community-scripts/ProxmoxVE-Local",
"version": "v0.5.5",
"date": "2026-01-13T17:03:32Z"
},
{
"name": "esphome/esphome",
"version": "2025.12.6",
"date": "2026-01-13T16:55:47Z"
},
{
"name": "element-hq/synapse",
"version": "v1.145.0",
"date": "2026-01-13T16:49:51Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.30.1-greedy-semantic-search.4",
"date": "2026-01-13T16:18:53Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.31.7",
"date": "2026-01-13T16:12:12Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.52.2",
"date": "2026-01-13T15:43:10Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.17.0-rc2",
"date": "2026-01-13T12:08:49Z"
},
{
"name": "LimeSurvey/LimeSurvey",
"version": "6.16.3+251215",
"date": "2026-01-13T10:36:10Z"
},
{
"name": "endurain-project/endurain",
"version": "v0.16.6",
"date": "2026-01-13T10:28:14Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.546",
"date": "2026-01-13T10:08:09Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.80.16-nightly",
"date": "2026-01-13T09:09:32Z"
},
{
"name": "Comfy-Org/ComfyUI",
"version": "v0.9.1",
"date": "2026-01-13T07:33:55Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.4.7",
"date": "2026-01-13T07:28:02Z"
},
{
"name": "Whisparr/Whisparr",
"version": "v3.1.0.2111",
"date": "2026-01-13T06:11:13Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.834",
"date": "2026-01-13T06:00:41Z"
},
{
"name": "Infisical/infisical",
"version": "v0.155.2",
"date": "2026-01-12T21:52:20Z"
"version": "v0.155.3",
"date": "2026-01-13T01:38:42Z"
},
{
"name": "jeedom/core",
"version": "4.5.2",
"date": "2026-01-13T00:27:06Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "henrygd/beszel",
"version": "v0.18.2",
"date": "2026-01-12T23:58:00Z"
},
{
"name": "prometheus/alertmanager",
"version": "v0.30.1",
"date": "2026-01-12T23:30:06Z"
},
{
"name": "librenms/librenms",
"version": "26.1.1",
"date": "2026-01-12T23:26:02Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.1.1-stable",
"date": "2026-01-12T23:25:10Z"
},
{
"name": "influxdata/influxdb",
"version": "v2.8.0",
"date": "2025-12-12T20:25:00Z"
},
{
"name": "fccview/jotty",
@@ -44,11 +199,6 @@
"version": "v1.1.0-dev.1",
"date": "2026-01-12T21:02:34Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.831",
"date": "2026-01-12T20:54:11Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.7.10",
@@ -60,14 +210,9 @@
"date": "2026-01-12T20:18:34Z"
},
{
"name": "Whisparr/Whisparr",
"version": "v3.1.0.2109",
"date": "2026-01-12T20:09:42Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.80.15.dev1",
"date": "2026-01-12T19:58:30Z"
"name": "keycloak/keycloak",
"version": "26.5.0",
"date": "2026-01-06T07:42:32Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
@@ -79,11 +224,6 @@
"version": "v4.108.0",
"date": "2026-01-12T19:24:55Z"
},
{
"name": "metabase/metabase",
"version": "v0.58.x",
"date": "2026-01-12T19:00:57Z"
},
{
"name": "release-argus/Argus",
"version": "0.29.2",
@@ -94,21 +234,6 @@
"version": "@jupyter-notebook/ui-components@7.6.0-alpha.1",
"date": "2026-01-12T17:53:14Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.52.1",
"date": "2026-01-12T16:54:03Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.31.6",
"date": "2026-01-12T16:47:36Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.51",
"date": "2026-01-12T16:26:38Z"
},
{
"name": "slskd/slskd",
"version": "0.24.2",
@@ -119,16 +244,6 @@
"version": "server-v3.5.2",
"date": "2025-12-19T21:28:55Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@2.2.6",
"date": "2026-01-09T13:53:10Z"
},
{
"name": "meilisearch/meilisearch",
"version": "latest",
"date": "2026-01-12T13:26:02Z"
},
{
"name": "TuroYT/snowshare",
"version": "v1.2.8",
@@ -149,11 +264,6 @@
"version": "v1.6.7",
"date": "2026-01-12T09:54:36Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.15",
"date": "2026-01-06T20:05:54Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.4",
@@ -161,24 +271,14 @@
},
{
"name": "rustdesk/rustdesk-server",
"version": "1.1.14",
"date": "2025-01-25T12:48:28Z"
"version": "1.1.15",
"date": "2026-01-12T05:38:30Z"
},
{
"name": "OliveTin/OliveTin",
"version": "3000.9.0",
"date": "2026-01-12T00:37:54Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "jeedom/core",
"version": "4.5.2",
"date": "2026-01-12T00:27:04Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.7",
@@ -194,11 +294,6 @@
"version": "2026.01.11",
"date": "2026-01-11T18:43:56Z"
},
{
"name": "keycloak/keycloak",
"version": "26.5.0",
"date": "2026-01-06T07:42:32Z"
},
{
"name": "ghostfolio/ghostfolio",
"version": "2.229.0",
@@ -259,11 +354,6 @@
"version": "v14.0.7",
"date": "2026-01-10T15:10:54Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.35.1",
"date": "2026-01-10T09:23:24Z"
},
{
"name": "Kozea/Radicale",
"version": "v3.6.0",
@@ -276,13 +366,8 @@
},
{
"name": "livebook-dev/livebook",
"version": "v0.18.2",
"date": "2025-12-15T19:17:42Z"
},
{
"name": "endurain-project/endurain",
"version": "v0.16.5",
"date": "2026-01-09T22:06:11Z"
"version": "nightly",
"date": "2026-01-09T22:07:03Z"
},
{
"name": "runtipi/runtipi",
@@ -309,11 +394,6 @@
"version": "v3007.11",
"date": "2026-01-09T17:23:23Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.50.0-rc1",
"date": "2026-01-09T17:04:30Z"
},
{
"name": "mongodb/mongo",
"version": "r8.2.4-alpha1",
@@ -334,11 +414,6 @@
"version": "0.300.3",
"date": "2026-01-09T10:40:48Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.545",
"date": "2026-01-06T16:19:17Z"
},
{
"name": "9001/copyparty",
"version": "v1.20.1",
@@ -359,11 +434,6 @@
"version": "v26.1.1",
"date": "2026-01-08T22:02:15Z"
},
{
"name": "element-hq/synapse",
"version": "v1.144.0",
"date": "2025-12-09T16:29:00Z"
},
{
"name": "wazuh/wazuh",
"version": "v5.0.0-alpha0",
@@ -414,11 +484,6 @@
"version": "v11.1.2",
"date": "2025-12-17T09:26:24Z"
},
{
"name": "Comfy-Org/ComfyUI",
"version": "v0.8.2",
"date": "2026-01-08T06:00:20Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.20.1",
@@ -429,11 +494,6 @@
"version": "5.2.7",
"date": "2026-01-07T23:48:00Z"
},
{
"name": "community-scripts/ProxmoxVE-Local",
"version": "v0.5.3",
"date": "2026-01-07T19:52:09Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.309.1",
@@ -509,11 +569,6 @@
"version": "v4.5.0",
"date": "2026-01-06T21:14:27Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.10.3",
"date": "2025-12-16T18:00:53Z"
},
{
"name": "caddyserver/caddy",
"version": "v2.10.2",
@@ -524,11 +579,6 @@
"version": "v22.0.0.0beta1",
"date": "2026-01-06T16:28:03Z"
},
{
"name": "esphome/esphome",
"version": "2025.12.5",
"date": "2026-01-06T15:22:51Z"
},
{
"name": "SonarSource/sonarqube",
"version": "26.1.0.118079",
@@ -554,21 +604,11 @@
"version": "1.14.1-s.2",
"date": "2026-01-06T02:46:38Z"
},
{
"name": "pterodactyl/wings",
"version": "v1.12.0",
"date": "2026-01-06T00:10:54Z"
},
{
"name": "pterodactyl/panel",
"version": "v1.12.0",
"date": "2026-01-06T00:10:39Z"
},
{
"name": "ZoeyVid/NPMplus",
"version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.133.0",
@@ -604,11 +644,6 @@
"version": "v3.3.1-rc1",
"date": "2026-01-04T04:38:01Z"
},
{
"name": "Dispatcharr/Dispatcharr",
"version": "v0.16.0",
"date": "2026-01-04T01:18:19Z"
},
{
"name": "TwiN/gatus",
"version": "v5.34.0",
@@ -619,15 +654,10 @@
"version": "android/v1.8.5-0",
"date": "2026-01-02T22:35:27Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.4.6",
"date": "2026-01-02T22:20:47Z"
},
{
"name": "mealie-recipes/mealie",
"version": "v3.9.2",
"date": "2026-01-02T19:40:09Z"
"date": "2026-01-02T19:40:19Z"
},
{
"name": "Dokploy/dokploy",
@@ -714,11 +744,6 @@
"version": "v0.22.3",
"date": "2025-12-26T22:31:20Z"
},
{
"name": "seerr-team/seerr",
"version": "preview-music-support",
"date": "2025-12-26T22:24:19Z"
},
{
"name": "HydroshieldMKII/Guardian",
"version": "v1.3.3",
@@ -879,11 +904,6 @@
"version": "2025.11.2",
"date": "2025-12-18T17:08:34Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.20.3",
"date": "2025-12-18T16:10:13Z"
},
{
"name": "docker/compose",
"version": "v5.0.1",
@@ -899,11 +919,6 @@
"version": "7.4.6",
"date": "2025-12-18T07:00:26Z"
},
{
"name": "influxdata/influxdb",
"version": "v2.8.0",
"date": "2025-12-12T20:25:00Z"
},
{
"name": "grafana/grafana",
"version": "v12.3.1",
@@ -924,16 +939,6 @@
"version": "v4.2.2",
"date": "2025-12-15T18:25:36Z"
},
{
"name": "prometheus/alertmanager",
"version": "v0.30.0",
"date": "2025-12-15T17:23:59Z"
},
{
"name": "LimeSurvey/LimeSurvey",
"version": "6.16.2+251209",
"date": "2025-12-15T12:05:26Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.11.5",
@@ -949,11 +954,6 @@
"version": "v0.24.1",
"date": "2025-12-14T13:49:16Z"
},
{
"name": "C4illin/ConvertX",
"version": "v0.16.1",
"date": "2025-12-14T13:21:05Z"
},
{
"name": "globaleaks/globaleaks-whistleblowing-software",
"version": "v5.0.87",

View File

@@ -16,6 +16,13 @@ update_os
fetch_and_deploy_gh_release "backrest" "garethgeorge/backrest" "prebuild" "latest" "/opt/backrest/bin" "backrest_Linux_x86_64.tar.gz"
msg_info "Creating Service"
cat <<EOF >/opt/backrest/.env
BACKREST_PORT=9898
BACKREST_CONFIG=/opt/backrest/config/config.json
BACKREST_DATA=/opt/backrest/data
XDG_CACHE_HOME=/opt/backrest/cache
EOF
cat <<EOF >/etc/systemd/system/backrest.service
[Unit]
Description=Backrest
@@ -24,10 +31,7 @@ After=network.target
[Service]
Type=simple
ExecStart=/opt/backrest/bin/backrest
Environment="BACKREST_PORT=9898"
Environment="BACKREST_CONFIG=/opt/backrest/config/config.json"
Environment="BACKREST_DATA=/opt/backrest/data"
Environment="XDG_CACHE_HOME=/opt/backrest/cache"
EnvironmentFile=/opt/backrest/.env
[Install]
WantedBy=multi-user.target

View File

@@ -14,29 +14,28 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
$STD apt install -y \
debian-keyring \
debian-archive-keyring \
apt-transport-https
msg_ok "Installed Dependencies"
msg_info "Installing Caddy"
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' >/etc/apt/sources.list.d/caddy-stable.list
$STD apt-get update
$STD apt-get install -y caddy
setup_deb822_repo \
"caddy" \
"https://dl.cloudsmith.io/public/caddy/stable/gpg.key" \
"https://dl.cloudsmith.io/public/caddy/stable/deb/debian" \
"any-version"
$STD apt install -y caddy
msg_ok "Installed Caddy"
read -r -p "${TAB3}Would you like to install xCaddy Addon? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
setup_go
fetch_and_deploy_gh_release "xcaddy" "caddyserver/xcaddy" "binary"
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 "xcaddy_${RELEASE:1}_linux_amd64.deb"
$STD dpkg -i xcaddy_"${RELEASE:1}"_linux_amd64.deb
rm -rf /opt/xcaddy*
$STD apt install -y git
$STD xcaddy build
msg_ok "Setup xCaddy"
fi

View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: wendyliga
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/DonutWare/Fladder
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y nginx
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "Fladder" "DonutWare/Fladder" "prebuild" "latest" "/opt/fladder" "Fladder-Web-*.zip"
msg_info "Configuring Nginx"
cat <<EOF >/etc/nginx/conf.d/fladder.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /opt/fladder;
index index.html;
location / {
try_files \$uri \$uri/ /index.html;
}
}
EOF
rm -f /etc/nginx/sites-enabled/default
rm -f /etc/nginx/sites-available/default
systemctl enable -q --now nginx
systemctl reload nginx
msg_ok "Configured Nginx"
motd_ssh
customize
cleanup_lxc

View File

@@ -99,20 +99,21 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
$STD apt install -y --no-install-recommends patchelf
tmp_dir=$(mktemp -d)
$STD pushd "$tmp_dir"
curl -fsSLZ -O "https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17537.24/intel-igc-core_1.0.17537.24_amd64.deb" \
-O "https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17537.24/intel-igc-opencl_1.0.17537.24_amd64.deb" \
-O "https://github.com/intel/compute-runtime/releases/download/24.35.30872.36/intel-opencl-icd-legacy1_24.35.30872.36_amd64.deb" \
-O "https://github.com/intel/intel-graphics-compiler/releases/download/v2.22.2/intel-igc-core-2_2.22.2+20121_amd64.deb" \
-O "https://github.com/intel/intel-graphics-compiler/releases/download/v2.22.2/intel-igc-opencl-2_2.22.2+20121_amd64.deb" \
-O "https://github.com/intel/compute-runtime/releases/download/25.44.36015.5/intel-opencl-icd_25.44.36015.5-0_amd64.deb" \
-O "https://github.com/intel/compute-runtime/releases/download/25.44.36015.5/libigdgmm12_22.8.2_amd64.deb"
curl -fsSLO https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/Dockerfile
readarray -t INTEL_URLS < <(
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $2}'
sed -n "/libigdgmm12/p" ./Dockerfile | awk '{print $3}'
)
for url in "${INTEL_URLS[@]}"; do
curl -fsSLO "$url"
done
$STD apt install -y ./libigdgmm12*.deb
rm ./libigdgmm12*.deb
$STD apt install -y ./*.deb
$STD apt-mark hold libigdgmm12
$STD popd
rm -rf "$tmp_dir"
dpkg -l | grep "intel-opencl-icd" | awk '{print $3}' >~/.intel_version
dpkg -l | grep -m1 "intel-opencl-icd" | awk '{print $3}' >~/.intel_version
msg_ok "Installed OpenVINO dependencies"
fi

View File

@@ -0,0 +1,182 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Benito Rodríguez (b3ni)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/investbrainapp/investbrain
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
nginx \
supervisor \
redis-server \
libfreetype-dev \
libjpeg62-turbo-dev \
libpng-dev \
zlib1g-dev \
libzip-dev \
libicu-dev \
libpq-dev
msg_ok "Installed Dependencies"
export PHP_VERSION="8.4"
PHP_FPM=YES PHP_MODULE="gd,zip,intl,pdo,pgsql,pdo-pgsql,bcmath,opcache,mbstring,redis" setup_php
setup_composer
NODE_VERSION="22" setup_nodejs
PG_VERSION="17" setup_postgresql
PG_DB_NAME="investbrain" PG_DB_USER="investbrain" setup_postgresql_db
import_local_ip
fetch_and_deploy_gh_release "Investbrain" "investbrainapp/investbrain" "tarball" "latest" "/opt/investbrain"
msg_info "Installing Investbrain"
APP_KEY=$(openssl rand -base64 32)
cd /opt/investbrain
cat <<EOF >/opt/investbrain/.env
APP_KEY=base64:${APP_KEY}
APP_PORT=8000
APP_URL=http://${LOCAL_IP}:8000
ASSET_URL=http://${LOCAL_IP}:8000
LOG_CHANNEL=daily
LOG_LEVEL=warning
REGISTRATION_ENABLED=true
AI_CHAT_ENABLED=false
OPENAI_API_KEY=
OPENAI_ORGANIZATION=
MARKET_DATA_PROVIDER=yahoo
ALPHAVANTAGE_API_KEY=
FINNHUB_API_KEY=
ALPACA_API_KEY=
ALPACA_API_SECRET=
TWELVEDATA_API_SECRET=
MARKET_DATA_REFRESH=30
DAILY_CHANGE_TIME=
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=${PG_DB_NAME}
DB_USERNAME=${PG_DB_USER}
DB_PASSWORD=${PG_DB_PASS}
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
CACHE_STORE=redis
CACHE_PREFIX=
SESSION_DRIVER=redis
SESSION_LIFETIME=120
QUEUE_CONNECTION=redis
MAIL_MAILER=log
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_FROM_ADDRESS="investbrain@${LOCAL_IP}"
VITE_APP_NAME=Investbrain
EOF
export COMPOSER_ALLOW_SUPERUSER=1
$STD /usr/local/bin/composer install --no-interaction --no-dev --optimize-autoloader
$STD npm install
$STD npm run build
mkdir -p /opt/investbrain/storage/{framework/cache,framework/sessions,framework/views,app,logs}
$STD php artisan migrate --force
$STD php artisan storage:link
$STD php artisan cache:clear
$STD php artisan view:clear
$STD php artisan route:clear
$STD php artisan event:clear
$STD php artisan route:cache
$STD php artisan event:cache
chown -R www-data:www-data /opt/investbrain
chmod -R 775 /opt/investbrain/bootstrap/cache
msg_ok "Installed Investbrain"
msg_info "Configuring Nginx"
cat <<EOF >/etc/nginx/sites-available/investbrain.conf
server {
listen 8000 default_server;
listen [::]:8000 default_server;
server_name _;
root /opt/investbrain/public;
index index.php;
client_max_body_size 50M;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
location ~ \.php\$ {
fastcgi_pass unix:/var/run/php/php${PHP_VERSION}-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
fastcgi_read_timeout 300;
}
location ~ /\.(?!well-known).* {
deny all;
}
error_log /var/log/nginx/investbrain_error.log;
access_log /var/log/nginx/investbrain_access.log;
}
EOF
ln -sf /etc/nginx/sites-available/investbrain.conf /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
$STD systemctl reload nginx
msg_ok "Configured Nginx"
msg_info "Setting up Supervisor"
cat <<EOF >/etc/supervisor/conf.d/investbrain.conf
[program:investbrain-queue]
process_name=%%(program_name)s_%%(process_num)02d
command=php /opt/investbrain/artisan queue:work --sleep=3 --tries=1 --memory=256 --timeout=3600
user=www-data
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/opt/investbrain/storage/logs/queue.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
numprocs=1
EOF
$STD supervisorctl reread
$STD supervisorctl update
$STD supervisorctl start all
msg_ok "Setup Supervisor"
msg_info "Setting up Cron for Scheduler"
cat <<EOF >/etc/cron.d/investbrain-scheduler
* * * * * www-data php /opt/investbrain/artisan schedule:run >> /dev/null 2>&1
EOF
chmod 644 /etc/cron.d/investbrain-scheduler
$STD systemctl restart cron
msg_ok "Setup Cron for Scheduler"
motd_ssh
customize
cleanup_lxc

View File

@@ -20,6 +20,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
PG_DB_NAME="joplin" PG_DB_USER="joplin" setup_postgresql_db
NODE_VERSION=24 NODE_MODULE="yarn,npm,pm2" setup_nodejs
mkdir -p /opt/pm2
export PM2_HOME=/opt/pm2
@@ -27,28 +28,10 @@ $STD pm2 install pm2-logrotate
$STD pm2 set pm2-logrotate:max_size 100MB
$STD pm2 set pm2-logrotate:retain 5
$STD pm2 set pm2-logrotate:compress tr
msg_info "Setting up PostgreSQL Database"
DB_NAME=joplin
DB_USER=joplin
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
{
echo "Joplin-Credentials"
echo "Joplin Database User: $DB_USER"
echo "Joplin Database Password: $DB_PASS"
echo "Joplin Database Name: $DB_NAME"
} >>~/joplin.creds
msg_ok "Set up PostgreSQL Database"
fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball"
import_local_ip
msg_info "Setting up Joplin Server (Patience)"
LOCAL_IP=$(hostname -I | awk '{print $1}')
cd /opt/joplin-server
sed -i "/onenote-converter/d" packages/lib/package.json
$STD yarn config set --home enableTelemetry 0
@@ -61,9 +44,9 @@ NODE_ENV=production
APP_BASE_URL=http://$LOCAL_IP:22300
APP_PORT=22300
DB_CLIENT=pg
POSTGRES_PASSWORD=$DB_PASS
POSTGRES_DATABASE=$DB_NAME
POSTGRES_USER=$DB_USER
POSTGRES_PASSWORD=$PG_DB_PASS
POSTGRES_DATABASE=$PG_DB_NAME
POSTGRES_USER=$PG_DB_USER
POSTGRES_PORT=5432
POSTGRES_HOST=localhost
EOF

View File

@@ -15,22 +15,7 @@ update_os
PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" PHP_FPM="YES" setup_php
setup_mariadb
msg_info "Setting up Database"
DB_NAME=leantime
DB_USER=leantime
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "Leantime Credentials"
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME"
} >>~/leantime.creds
msg_ok "Set up Database"
MARIADB_DB_NAME="leantime" MARIADB_DB_USER="leantime" setup_mariadb_db
fetch_and_deploy_gh_release "leantime" "Leantime/leantime" "prebuild" "latest" "/opt/leantime" Leantime*.tar.gz
msg_info "Setup Leantime"
@@ -58,9 +43,9 @@ cat <<EOF >/etc/apache2/sites-enabled/000-default.conf
</VirtualHost>
EOF
mv "/opt/leantime/config/sample.env" "/opt/leantime/config/.env"
sed -i -e "s|^LEAN_DB_DATABASE.*|LEAN_DB_DATABASE = '$DB_NAME'|" \
-e "s|^LEAN_DB_USER.*|LEAN_DB_USER = '$DB_USER'|" \
-e "s|^LEAN_DB_PASSWORD.*|LEAN_DB_PASSWORD = '$DB_PASS'|" \
sed -i -e "s|^LEAN_DB_DATABASE.*|LEAN_DB_DATABASE = '$MARIADB_DB_NAME'|" \
-e "s|^LEAN_DB_USER.*|LEAN_DB_USER = '$MARIADB_DB_USER'|" \
-e "s|^LEAN_DB_PASSWORD.*|LEAN_DB_PASSWORD = '$MARIADB_DB_PASS'|" \
-e "s|^LEAN_SESSION_PASSWORD.*|LEAN_SESSION_PASSWORD = '$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)'|" \
"/opt/leantime/config/.env"
$STD a2enmod -q proxy_fcgi setenvif rewrite

View File

@@ -52,7 +52,8 @@ msg_ok "Installed Zammad"
msg_info "Setup Services"
cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/sites-available/zammad.conf
sed -i "s/server_name localhost;/server_name $LOCAL_IP;/g" /etc/nginx/sites-available/zammad.conf
unlink /etc/nginx/sites-available/default
ln -s /etc/nginx/sites-available/zammad.conf /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
$STD systemctl reload nginx
msg_ok "Created Service"

View File

@@ -27,6 +27,7 @@ CL=$(echo "\033[m")
header_info
echo "Loading..."
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Updater" --yesno "This Will Update LXC Containers. Proceed?" 10 58
SKIP_STOPPED=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Skip Not-Running Containers" --yesno "Do you want to skip containers that are not currently running?" 10 58 && echo "yes" || echo "no")
NODE=$(hostname)
EXCLUDE_MENU=()
MSG_MAX_LENGTH=0
@@ -67,7 +68,7 @@ function update_container() {
alpine) pct exec "$container" -- ash -c "apk -U upgrade" ;;
archlinux) pct exec "$container" -- bash -c "pacman -Syyu --noconfirm" ;;
fedora | rocky | centos | alma) pct exec "$container" -- bash -c "dnf -y update && dnf -y upgrade" ;;
ubuntu | debian | devuan) pct exec "$container" -- bash -c "apt-get update 2>/dev/null | grep 'packages.*upgraded'; apt list --upgradable && apt-get -yq dist-upgrade 2>&1; rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED" ;;
ubuntu | debian | devuan) pct exec "$container" -- bash -c "apt-get update 2>/dev/null | grep 'packages.*upgraded'; apt list --upgradable && apt-get -yq dist-upgrade 2>&1; rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED || true" ;;
opensuse) pct exec "$container" -- bash -c "zypper ref && zypper --non-interactive dup" ;;
esac
}
@@ -81,6 +82,12 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
sleep 1
else
status=$(pct status $container)
if [ "$SKIP_STOPPED" == "yes" ] && [ "$status" == "status: stopped" ]; then
header_info
echo -e "${BL}[Info]${GN} Skipping ${BL}$container${CL}${GN} (not running)${CL}"
sleep 1
continue
fi
template=$(pct config $container | grep -q "template:" && echo "true" || echo "false")
if [ "$template" == "false" ] && [ "$status" == "status: stopped" ]; then
echo -e "${BL}[Info]${GN} Starting${BL} $container ${CL} \n"

View File

@@ -277,7 +277,7 @@ function default_settings() {
MAC=$GEN_MAC
LAN_MAC=$GEN_MAC_LAN
VLAN=""
LAN_VLAN=",tag=999"
LAN_VLAN=""
LAN_IP_ADDR="192.168.1.1"
LAN_NETMASK="255.255.255.0"
MTU=""
@@ -427,8 +427,8 @@ function advanced_settings() {
if VLAN2=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a LAN Vlan" 8 58 999 --title "LAN VLAN" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $VLAN2 ]; then
VLAN2="999"
LAN_VLAN=",tag=$VLAN2"
VLAN2="Default"
LAN_VLAN=""
else
LAN_VLAN=",tag=$VLAN2"
fi