Compare commits

..
Author SHA1 Message Date
push-app-to-main[bot] fcf67de6ec Add new-api (ct) 2026-11-13 07:41:51 +00:00
43 changed files with 3 additions and 3326 deletions

No files matched your search

+3 -26
View File
@@ -583,35 +583,12 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
## 2026-11-13
### 🆕 New Scripts
- SimpleLogin ([#18680](https://github.com/community-scripts/ProxmoxVE/pull/18680))
- Nightingale ([#18674](https://github.com/community-scripts/ProxmoxVE/pull/18674))
- Temporal ([#18670](https://github.com/community-scripts/ProxmoxVE/pull/18670))
- TrailBase ([#18669](https://github.com/community-scripts/ProxmoxVE/pull/18669))
- Weaviate ([#18671](https://github.com/community-scripts/ProxmoxVE/pull/18671))
- Spacebot ([#18668](https://github.com/community-scripts/ProxmoxVE/pull/18668))
- New-API ([#18667](https://github.com/community-scripts/ProxmoxVE/pull/18667))
- Martin ([#18666](https://github.com/community-scripts/ProxmoxVE/pull/18666))
- Langflow ([#18665](https://github.com/community-scripts/ProxmoxVE/pull/18665))
- Inngest ([#18664](https://github.com/community-scripts/ProxmoxVE/pull/18664))
- Hatchet ([#18663](https://github.com/community-scripts/ProxmoxVE/pull/18663))
- Engram ([#18661](https://github.com/community-scripts/ProxmoxVE/pull/18661))
- Euro-Office ([#18660](https://github.com/community-scripts/ProxmoxVE/pull/18660))
- Cypht ([#18659](https://github.com/community-scripts/ProxmoxVE/pull/18659))
- AirConnect ([#18653](https://github.com/community-scripts/ProxmoxVE/pull/18653))
- Bulwark ([#18656](https://github.com/community-scripts/ProxmoxVE/pull/18656))
- Convex ([#18658](https://github.com/community-scripts/ProxmoxVE/pull/18658))
- Chroma ([#18657](https://github.com/community-scripts/ProxmoxVE/pull/18657))
- Bugsink ([#18655](https://github.com/community-scripts/ProxmoxVE/pull/18655))
- 9Router ([#18654](https://github.com/community-scripts/ProxmoxVE/pull/18654))
### 💾 Core
- Shield pct start and the template check from a closed console [@MickLesk](https://github.com/MickLesk) ([core#239](https://github.com/community-scripts/core/pull/239))
- core: say why a container stopped by itself during its setup [@MickLesk](https://github.com/MickLesk) ([core#234](https://github.com/community-scripts/core/pull/234))
- fetch the install script before the container is created [@MickLesk](https://github.com/MickLesk) ([core#236](https://github.com/community-scripts/core/pull/236))
- Download a corrupt local template again instead of keeping it [@MickLesk](https://github.com/MickLesk) ([core#235](https://github.com/community-scripts/core/pull/235))
- fetch the install script before the container is created [@MickLesk](https://github.com/MickLesk) ([core#236](https://github.com/community-scripts/core/pull/236))
- core: say why a container stopped by itself during its setup [@MickLesk](https://github.com/MickLesk) ([core#234](https://github.com/community-scripts/core/pull/234))
- Shield pct start and the template check from a closed console [@MickLesk](https://github.com/MickLesk) ([core#239](https://github.com/community-scripts/core/pull/239))
## 2026-11-12
-66
View File
@@ -1,66 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/decolua/9router
APP="9Router"
var_tags="${var_tags:-ai;llm;gateway}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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 /usr/lib/node_modules/9router ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
CURRENT=$(jq -r '.version' /usr/lib/node_modules/9router/package.json)
RELEASE=$(npm view 9router version)
if [[ "$CURRENT" == "$RELEASE" ]]; then
msg_ok "No update available: 9Router (${CURRENT})"
exit
fi
NODE_VERSION="22" setup_nodejs
msg_info "Stopping 9Router"
systemctl stop 9router
msg_ok "Stopped 9Router"
msg_info "Updating 9Router to ${RELEASE}"
$STD npm install -g --ignore-scripts "9router@${RELEASE}"
msg_ok "Updated 9Router to ${RELEASE}"
msg_info "Starting 9Router"
systemctl start 9router
msg_ok "Started 9Router"
msg_ok "Updated successfully!"
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 "${GATEWAY}${BGN}http://${IP}:20128/dashboard${CL}"
echo -e "${INFO}${YW}Dashboard password: INITIAL_PASSWORD in /opt/9router_data/.env (inside the container)${CL}"
-66
View File
@@ -1,66 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Chris Moriarty (cwmoriarty)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/philippe44/AirConnect
APP="AirConnect"
var_tags="${var_tags:-airplay;audio;streaming}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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/airconnect ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "airconnect" "philippe44/AirConnect"; then
msg_info "Stopping AirConnect"
systemctl stop airupnp aircast
msg_ok "Stopped AirConnect"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="airupnp.xml aircast.xml" fetch_and_deploy_gh_release "airconnect" "philippe44/AirConnect" "prebuild" "latest" "/opt/airconnect" "AirConnect-*.zip"
msg_info "Configuring AirConnect"
chmod +x /opt/airconnect/airupnp-linux-$(arch_resolve x86_64 aarch64) /opt/airconnect/aircast-linux-$(arch_resolve x86_64 aarch64)
ln -sf /opt/airconnect/airupnp-linux-$(arch_resolve x86_64 aarch64) /opt/airconnect/airupnp
ln -sf /opt/airconnect/aircast-linux-$(arch_resolve x86_64 aarch64) /opt/airconnect/aircast
find /opt/airconnect -maxdepth 1 -type f ! -name "air*linux-$(arch_resolve x86_64 aarch64)*" ! -name "airupnp" ! -name "aircast" ! -name "*.xml" -delete
msg_ok "Configured AirConnect"
msg_info "Starting AirConnect"
systemctl start airupnp aircast
msg_ok "Started AirConnect"
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}AirConnect is running and bridging AirPlay to discovered players:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}airupnp${CL} ${YW}(UPnP / Sonos bridge)${CL}"
echo -e "${TAB}${GATEWAY}${BGN}aircast${CL} ${YW}(Chromecast bridge)${CL}"
echo -e "${INFO}${YW}Ensure your container is on the same LAN subnet as your devices.${CL}"
-70
View File
@@ -1,70 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bugsink/bugsink
APP="Bugsink"
var_tags="${var_tags:-monitoring;error-tracking;sentry}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
export var_admin_email="${var_admin_email:-}"
export var_admin_pass="${var_admin_pass:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/bugsink ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "bugsink" "bugsink/bugsink"; then
msg_info "Stopping Bugsink"
systemctl stop bugsink bugsink-snappea
msg_ok "Stopped Bugsink"
PYTHON_VERSION="3.12" setup_uv
msg_info "Updating Bugsink"
$STD uv pip install --upgrade --python /opt/bugsink/.venv/bin/python "bugsink==${CHECK_UPDATE_RELEASE}"
cd /opt/bugsink_data
$STD /opt/bugsink/.venv/bin/bugsink-manage migrate
$STD /opt/bugsink/.venv/bin/bugsink-manage migrate snappea --database=snappea
cat <<EOF >~/.bugsink
${CHECK_UPDATE_RELEASE}
EOF
msg_ok "Updated Bugsink"
msg_info "Starting Bugsink"
systemctl start bugsink bugsink-snappea
msg_ok "Started Bugsink"
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 "${GATEWAY}${BGN}http://${IP}:8000${CL}"
echo -e "${INFO}${YW}Admin login: /opt/bugsink_data/.env (inside the container)${CL}"
-60
View File
@@ -1,60 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bulwarkmail/webmail
APP="Bulwark"
var_tags="${var_tags:-mail;webmail;jmap}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
export var_jmap_url="${var_jmap_url:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/bulwark ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "bulwark" "bulwarkmail/webmail"; then
msg_info "Stopping Bulwark"
systemctl stop bulwark
msg_ok "Stopped Bulwark"
NODE_VERSION="24" setup_nodejs
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bulwark" "bulwarkmail/webmail" "prebuild" "latest" "/opt/bulwark" "bulwark-standalone-*-linux-$(arch_resolve).tar.gz"
msg_info "Starting Bulwark"
systemctl start bulwark
msg_ok "Started Bulwark"
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 "${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${INFO}${YW}Setup wizard token: journalctl -u bulwark (inside the container)${CL}"
-68
View File
@@ -1,68 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/chroma-core/chroma
APP="Chroma"
var_tags="${var_tags:-database;vector;ai}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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/chroma ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
CURRENT=$(cat ~/.chroma)
RELEASE=$(curl -fsSL https://pypi.org/pypi/chromadb/json | jq -r '.info.version')
if [[ "$CURRENT" == "$RELEASE" ]]; then
msg_ok "No update available: Chroma (${CURRENT})"
exit
fi
msg_info "Stopping Chroma"
systemctl stop chroma
msg_ok "Stopped Chroma"
PYTHON_VERSION="3.12" setup_uv
msg_info "Updating Chroma to ${RELEASE}"
$STD uv pip install --upgrade --python /opt/chroma/.venv/bin/python "chromadb==${RELEASE}"
cat <<EOF >~/.chroma
${RELEASE}
EOF
msg_ok "Updated Chroma to ${RELEASE}"
msg_info "Starting Chroma"
systemctl start chroma
msg_ok "Started Chroma"
msg_ok "Updated successfully!"
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 "${GATEWAY}${BGN}http://${IP}:8000/docs${CL}"
-79
View File
@@ -1,79 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://colanode.com/
APP="Colanode"
var_tags="${var_tags:-collaboration;notes;chat}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-16}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
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/colanode ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "colanode" "colanode/colanode"; then
msg_info "Stopping Services"
systemctl stop colanode-server
msg_ok "Stopped Services"
create_backup /opt/colanode/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "colanode" "colanode/colanode" "tarball"
msg_info "Rebuilding Application"
cd /opt/colanode
export NODE_OPTIONS="--max-old-space-size=4096"
$STD npm install
$STD npm run build -w @colanode/core
$STD npm run build -w @colanode/crdt
$STD npm run build -w @colanode/server
$STD npm run build -w @colanode/client
$STD npm run build -w @colanode/ui
$STD npm run build -w @colanode/web
cp -r /opt/colanode/apps/web/dist/. /var/www/colanode/
$STD npm prune --production
unset NODE_OPTIONS
msg_ok "Rebuilt Application"
restore_backup
msg_info "Starting Services"
systemctl start colanode-server
msg_ok "Started Services"
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 URLs:${CL}"
echo -e "${GATEWAY}${BGN}https://${IP}:4000${CL} (Web UI)"
echo -e "${INFO}${YW} Before using: import the self-signed cert into your browser:${CL}"
echo -e "${GATEWAY}${BGN}https://${IP}:4000/colanode.crt${CL}"
echo -e "${INFO}${YW} Server URL to use inside the app:${CL}"
echo -e "${GATEWAY}${BGN}https://${IP}:4000/config${CL}"
-58
View File
@@ -1,58 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/get-convex/convex-backend
APP="Convex"
var_tags="${var_tags:-backend;database;realtime}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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/convex ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "convex" "get-convex/convex-backend"; then
msg_info "Stopping Convex"
systemctl stop convex
msg_ok "Stopped Convex"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "convex" "get-convex/convex-backend" "prebuild" "latest" "/opt/convex" "convex-local-backend-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "convex-dashboard" "get-convex/convex-backend" "prebuild" "$(cat ~/.convex)" "/opt/convex-dashboard" "dashboard.zip"
msg_info "Starting Convex"
systemctl start convex
msg_ok "Started Convex"
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 the dashboard using the following URL:${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:6791${CL}"
echo -e "${INFO}${YW}Deployment URL: http://${IP}:3210, admin key in /opt/convex_data/.env${CL}"
-68
View File
@@ -1,68 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/cypht-org/cypht
APP="Cypht"
var_tags="${var_tags:-email;webmail}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
export var_admin_user="${var_admin_user:-}"
export var_admin_pass="${var_admin_pass:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/cypht ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "cypht" "cypht-org/cypht"; then
msg_info "Stopping Cypht"
systemctl stop nginx php8.4-fpm
msg_ok "Stopped Cypht"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cypht" "cypht-org/cypht" "prebuild" "latest" "/opt/cypht" "cypht.tar.gz"
msg_info "Updating Cypht"
ln -sf /opt/cypht_data/.env /opt/cypht/.env
cd /opt/cypht
$STD php scripts/setup_database.php
$STD php scripts/config_gen.php
chown -R www-data:www-data /opt/cypht_data/users /opt/cypht_data/attachments
msg_ok "Updated Cypht"
msg_info "Starting Cypht"
systemctl start php8.4-fpm nginx
msg_ok "Started Cypht"
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 "${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${INFO}${YW}Login: /opt/cypht_data/.env (inside the container)${CL}"
-61
View File
@@ -1,61 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Gentleman-Programming/engram
APP="Engram"
var_tags="${var_tags:-ai;mcp;memory}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
export var_cloud_token="${var_cloud_token:-}"
export var_admin_token="${var_admin_token:-}"
export var_allowed_projects="${var_allowed_projects:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/engram/engram ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "engram" "Gentleman-Programming/engram"; then
msg_info "Stopping Engram"
systemctl stop engram
msg_ok "Stopped Engram"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "engram" "Gentleman-Programming/engram" "prebuild" "latest" "/opt/engram" "engram_*_linux_$(arch_resolve).tar.gz"
msg_info "Starting Engram"
systemctl start engram
msg_ok "Started Engram"
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 "${GATEWAY}${BGN}https://${IP}/dashboard/${CL}"
echo -e "${INFO}${YW}Sync and admin tokens: /opt/engram_data/.env (inside the container)${CL}"
-62
View File
@@ -1,62 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Euro-Office/DocumentServer
APP="Euro-Office"
var_tags="${var_tags:-office;documents;collaboration}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
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 /var/www/euro-office/documentserver ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "euro-office" "Euro-Office/DocumentServer"; then
msg_info "Stopping Euro-Office"
$STD documentserver-prepare4shutdown.sh
systemctl stop ds-docservice ds-converter ds-metrics ds-example
msg_ok "Stopped Euro-Office"
fetch_and_deploy_gh_release "euro-office" "Euro-Office/DocumentServer" "binary" "latest" "" "euro-office-documentserver_*_$(arch_resolve).deb"
msg_info "Starting Euro-Office"
systemctl start ds-metrics ds-converter ds-docservice
if systemctl is-enabled -q ds-example; then
systemctl start ds-example
fi
systemctl reload nginx
msg_ok "Started Euro-Office"
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 "${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${INFO}${YW}JWT secret: documentserver-jwt-status.sh (inside the container)${CL}"
-76
View File
@@ -1,76 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/hatchet-dev/hatchet
APP="Hatchet"
var_tags="${var_tags:-workflow;queue;automation}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
var_unprivileged="${var_unprivileged:-1}"
export var_admin_email="${var_admin_email:-}"
export var_admin_pass="${var_admin_pass:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/hatchet ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "hatchet" "hatchet-dev/hatchet"; then
msg_info "Stopping Hatchet"
systemctl stop hatchet
msg_ok "Stopped Hatchet"
setup_go
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "hatchet" "hatchet-dev/hatchet" "tarball"
NODE_VERSION="24" NODE_MODULE="$(jq -r '.packageManager' /opt/hatchet/frontend/app/package.json)" setup_nodejs
msg_info "Building Hatchet"
cd /opt/hatchet/frontend/snippets
$STD python3 generate.py
cd /opt/hatchet/frontend/app
$STD pnpm install --frozen-lockfile
$STD pnpm run build
cd /opt/hatchet
for target in lite admin migrate; do
CGO_ENABLED=0 $STD go build -ldflags="-w -s -X main.Version=v$(cat ~/.hatchet)" -o "bin/hatchet-${target}" "./cmd/hatchet-${target}"
done
rm -rf /opt/hatchet/frontend/app/node_modules ~/.local/share/pnpm/store
$STD go clean -cache -modcache
msg_ok "Built Hatchet"
msg_info "Starting Hatchet"
systemctl start hatchet
msg_ok "Started Hatchet"
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 "${GATEWAY}${BGN}http://${IP}:8888${CL}"
echo -e "${INFO}${YW}Admin login: /opt/hatchet_data/.env (inside the container)${CL}"
-57
View File
@@ -1,57 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/inngest/inngest
APP="Inngest"
var_tags="${var_tags:-automation;queue;workflow}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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/inngest ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "inngest" "inngest/inngest"; then
msg_info "Stopping Inngest"
systemctl stop inngest
msg_ok "Stopped Inngest"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "inngest" "inngest/inngest" "prebuild" "latest" "/opt/inngest" "inngest_*_linux_$(arch_resolve).tar.gz"
msg_info "Starting Inngest"
systemctl start inngest
msg_ok "Started Inngest"
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 "${GATEWAY}${BGN}http://${IP}:8288${CL}"
echo -e "${INFO}${YW}Event and signing keys: /opt/inngest_data/.env (inside the container)${CL}"
-68
View File
@@ -1,68 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/langflow-ai/langflow
APP="Langflow"
var_tags="${var_tags:-ai;llm;agents}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
var_unprivileged="${var_unprivileged:-1}"
export var_admin_user="${var_admin_user:-}"
export var_admin_pass="${var_admin_pass:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/langflow ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "langflow" "langflow-ai/langflow"; then
msg_info "Stopping Langflow"
systemctl stop langflow
msg_ok "Stopped Langflow"
PYTHON_VERSION="3.14" USE_UVX="YES" setup_uv
msg_info "Updating Langflow"
$STD uv venv --clear --python 3.14 /opt/langflow/.venv
$STD uv pip install --python /opt/langflow/.venv/bin/python "langflow==${CHECK_UPDATE_RELEASE#v}"
cat <<EOF >~/.langflow
${CHECK_UPDATE_RELEASE#v}
EOF
msg_ok "Updated Langflow"
msg_info "Starting Langflow"
systemctl start langflow
msg_ok "Started Langflow"
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 "${GATEWAY}${BGN}http://${IP}:7860${CL}"
echo -e "${INFO}${YW}Login: LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD in /opt/langflow_data/.env (inside the container)${CL}"
-61
View File
@@ -1,61 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Yusuf Gundogdu (yusuf-gundogdu)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://libredb.org
APP="LibreDB Studio"
var_tags="${var_tags:-database;sql}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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 /usr/bin/libredb-studio ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "libredb-studio" "libredb/libredb-studio"; then
msg_info "Stopping Service"
systemctl stop libredb-studio
msg_ok "Stopped Service"
create_backup /etc/libredb-studio/env
DPKG_FORCE_CONFOLD=1 fetch_and_deploy_gh_release "libredb-studio" "libredb/libredb-studio" "binary" "latest" "" "libredb-studio_*_$(arch_resolve).deb"
restore_backup
msg_info "Starting Service"
systemctl start libredb-studio
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 URL:${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${INFO}${YW}Admin credentials: /etc/libredb-studio/env inside the container${CL}"
-56
View File
@@ -1,56 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/maplibre/martin
APP="Martin"
var_tags="${var_tags:-maps;gis;tiles}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -x /opt/martin/martin ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "martin" "maplibre/martin"; then
msg_info "Stopping Martin"
systemctl stop martin
msg_ok "Stopped Martin"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "martin" "maplibre/martin" "prebuild" "latest" "/opt/martin" "martin-$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.gz"
msg_info "Starting Martin"
systemctl start martin
msg_ok "Started Martin"
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 "${GATEWAY}${BGN}http://${IP}:3000${CL}"
-56
View File
@@ -1,56 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ccfos/nightingale
APP="Nightingale"
var_tags="${var_tags:-monitoring;alerting}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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/nightingale ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "nightingale" "ccfos/nightingale"; then
msg_info "Stopping Nightingale"
systemctl stop nightingale
msg_ok "Stopped Nightingale"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nightingale" "ccfos/nightingale" "prebuild" "latest" "/opt/nightingale" "n9e-v*-linux-$(arch_resolve).tar.gz"
msg_info "Starting Nightingale"
systemctl start nightingale
msg_ok "Started Nightingale"
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 "${GATEWAY}${BGN}http://${IP}:17000${CL}"
-84
View File
@@ -1,84 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/simple-login/app
APP="SimpleLogin"
var_tags="${var_tags:-email;privacy;alias}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
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/simplelogin ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "simplelogin" "simple-login/app"; then
msg_info "Stopping Services"
systemctl stop simplelogin-webapp simplelogin-email simplelogin-job
msg_ok "Stopped Services"
create_backup /opt/simplelogin/.env \
/opt/simplelogin/dkim \
/opt/simplelogin/openid-rsa.key \
/opt/simplelogin/openid-rsa.pub \
/opt/simplelogin/uploads \
/opt/simplelogin/.gnupg
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "simplelogin" "simple-login/app"
restore_backup
grep -q '^METRICS_BACKENDS=' /opt/simplelogin/.env || echo "METRICS_BACKENDS=noop" >>/opt/simplelogin/.env
msg_info "Installing Dependencies"
cd /opt/simplelogin
$STD uv venv
$STD uv pip install setuptools hatchling editables
export CMAKE_POLICY_VERSION_MINIMUM=3.5
$STD uv sync --locked --no-dev --no-build-isolation --no-install-package newrelic
if [[ -f /opt/simplelogin/static/package.json ]]; then
cd /opt/simplelogin/static
$STD npm ci
fi
msg_ok "Installed Dependencies"
msg_info "Running Database Migrations"
cd /opt/simplelogin
$STD .venv/bin/alembic upgrade head
msg_ok "Ran Database Migrations"
msg_info "Starting Services"
systemctl start simplelogin-webapp simplelogin-email simplelogin-job
msg_ok "Started Services"
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 "${GATEWAY}${BGN}http://${IP}${CL}"
-65
View File
@@ -1,65 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/spacedriveapp/spacebot
APP="Spacebot"
var_tags="${var_tags:-ai;agent;chatops}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
export var_llm_base_url="${var_llm_base_url:-}"
export var_llm_api_key="${var_llm_api_key:-}"
export var_llm_model="${var_llm_model:-}"
if [[ -n "$var_llm_base_url" && -z "$var_llm_model" ]]; then
msg_error "var_llm_model is required with var_llm_base_url."
exit 1
fi
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/spacebot ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "spacebot" "spacedriveapp/spacebot"; then
msg_info "Stopping Spacebot"
systemctl stop spacebot
msg_ok "Stopped Spacebot"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "spacebot" "spacedriveapp/spacebot" "prebuild" "latest" "/opt/spacebot" "spacebot-v*-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.tar.gz"
msg_info "Starting Spacebot"
systemctl start spacebot
msg_ok "Started Spacebot"
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 "${GATEWAY}${BGN}http://${IP}:19898${CL}"
-81
View File
@@ -1,81 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Renan Bastos (renanbastos93)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/temporalio/temporal
APP="Temporal"
var_tags="${var_tags:-workflow;automation}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}" # unset = ask the user; server, UI and CLI all ship linux_arm64 assets, but not yet run on arm64
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/temporal ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "temporal" "temporalio/temporal"; then
msg_info "Stopping Temporal"
systemctl stop temporal-ui temporal
msg_ok "Stopped Temporal"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "temporal" "temporalio/temporal" "prebuild" "latest" "/opt/temporal" "temporal_*_linux_$(arch_resolve).tar.gz"
msg_info "Migrating Temporal Database"
set -a && source /etc/temporal/temporal.env && set +a
$STD /opt/temporal/temporal-sql-tool --db temporal update-schema --schema-name postgresql/v12/temporal
$STD /opt/temporal/temporal-sql-tool --db temporal_visibility update-schema --schema-name postgresql/v12/visibility
msg_ok "Migrated Temporal Database"
msg_info "Starting Temporal"
systemctl start temporal temporal-ui
msg_ok "Started Temporal"
msg_ok "Updated Temporal successfully!"
fi
if check_for_gh_release "temporal-ui" "temporalio/ui-server"; then
msg_info "Stopping Temporal UI"
systemctl stop temporal-ui
msg_ok "Stopped Temporal UI"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "temporal-ui" "temporalio/ui-server" "prebuild" "latest" "/opt/temporal-ui" "ui-server_*_linux_$(arch_resolve).tar.gz"
msg_info "Starting Temporal UI"
systemctl start temporal-ui
msg_ok "Started Temporal UI"
msg_ok "Updated Temporal UI successfully!"
fi
if check_for_gh_release "temporal-cli" "temporalio/cli"; then
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "temporal-cli" "temporalio/cli" "prebuild" "latest" "/opt/temporal-cli" "temporal_cli_*_linux_$(arch_resolve).tar.gz"
msg_ok "Updated Temporal CLI 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 "${GATEWAY}${BGN}http://${IP}:8080${CL}"
echo -e "${INFO}${YW}gRPC endpoint for workers and SDKs: ${IP}:7233${CL}"
-60
View File
@@ -1,60 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/trailbaseio/trailbase
APP="TrailBase"
var_tags="${var_tags:-backend;database;api}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
export var_admin_email="${var_admin_email:-}"
export var_admin_pass="${var_admin_pass:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/trailbase ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "trailbase" "trailbaseio/trailbase"; then
msg_info "Stopping TrailBase"
systemctl stop trailbase
msg_ok "Stopped TrailBase"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "trailbase" "trailbaseio/trailbase" "prebuild" "latest" "/opt/trailbase" "trailbase_v*_$(arch_resolve "x86_64" "aarch64")_linux.zip"
msg_info "Starting TrailBase"
systemctl start trailbase
msg_ok "Started TrailBase"
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 "${GATEWAY}${BGN}http://${IP}:4000/_/admin/${CL}"
echo -e "${INFO}${YW}Admin login: /opt/trailbase_data/.env (inside the container)${CL}"
-59
View File
@@ -1,59 +0,0 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/weaviate/weaviate
APP="Weaviate"
var_tags="${var_tags:-database;vector;ai}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
export var_api_key="${var_api_key:-}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/weaviate ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "weaviate" "weaviate/weaviate"; then
msg_info "Stopping Weaviate"
systemctl stop weaviate
msg_ok "Stopped Weaviate"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "weaviate" "weaviate/weaviate" "prebuild" "latest" "/opt/weaviate" "weaviate-v*-linux-$(arch_resolve).tar.gz"
msg_info "Starting Weaviate"
systemctl start weaviate
msg_ok "Started Weaviate"
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 "${GATEWAY}${BGN}http://${IP}:8080${CL}"
echo -e "${INFO}${YW}API key (user admin): /opt/weaviate_data/.env (inside the container)${CL}"
-63
View File
@@ -1,63 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/decolua/9router
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="22" setup_nodejs
setup_ffmpeg
msg_info "Installing 9Router"
$STD npm install -g --ignore-scripts "9router@${var_appversion:-latest}"
msg_ok "Installed 9Router"
msg_info "Configuring 9Router"
mkdir -p /opt/9router_data
cat <<EOF >/opt/9router_data/.env
DATA_DIR=/opt/9router_data
PORT=20128
HOSTNAME=0.0.0.0
NODE_ENV=production
NEXT_TELEMETRY_DISABLED=1
BASE_URL=http://localhost:20128
INITIAL_PASSWORD=$(random_password)
JWT_SECRET=$(openssl rand -hex 32)
API_KEY_SECRET=$(openssl rand -hex 32)
MACHINE_ID_SALT=$(openssl rand -hex 16)
EOF
chmod 600 /opt/9router_data/.env
msg_ok "Configured 9Router"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/9router.service
[Unit]
Description=9Router
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/usr/lib/node_modules/9router/app
EnvironmentFile=/opt/9router_data/.env
ExecStart=/usr/bin/node /usr/lib/node_modules/9router/app/custom-server.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now 9router
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-67
View File
@@ -1,67 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Chris Moriarty (cwmoriarty)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/philippe44/AirConnect
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "airconnect" "philippe44/AirConnect" "prebuild" "latest" "/opt/airconnect" "AirConnect-*.zip"
msg_info "Configuring AirConnect"
chmod +x /opt/airconnect/airupnp-linux-$(arch_resolve x86_64 aarch64) /opt/airconnect/aircast-linux-$(arch_resolve x86_64 aarch64)
ln -sf /opt/airconnect/airupnp-linux-$(arch_resolve x86_64 aarch64) /opt/airconnect/airupnp
ln -sf /opt/airconnect/aircast-linux-$(arch_resolve x86_64 aarch64) /opt/airconnect/aircast
find /opt/airconnect -maxdepth 1 -type f ! -name "air*linux-$(arch_resolve x86_64 aarch64)*" ! -name "airupnp" ! -name "aircast" ! -name "*.xml" -delete
msg_ok "Configured AirConnect"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/airupnp.service
[Unit]
Description=AirUPnP bridge
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/airconnect
ExecStart=/opt/airconnect/airupnp -l 1000:2000 -Z -x /opt/airconnect/airupnp.xml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now airupnp
cat <<EOF >/etc/systemd/system/aircast.service
[Unit]
Description=AirCast bridge
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/airconnect
ExecStart=/opt/airconnect/aircast -Z -x /opt/airconnect/aircast.xml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now aircast
msg_ok "Created Services"
motd_ssh
customize
cleanup_lxc
-86
View File
@@ -1,86 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bugsink/bugsink
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Bugsink"
BUGSINK_VERSION="${var_appversion:-$(get_latest_github_release "bugsink/bugsink")}"
$STD uv venv --python 3.12 /opt/bugsink/.venv
$STD uv pip install --python /opt/bugsink/.venv/bin/python "bugsink==${BUGSINK_VERSION}"
cat <<EOF >~/.bugsink
${BUGSINK_VERSION}
EOF
msg_ok "Installed Bugsink"
msg_info "Configuring Bugsink"
ADMIN_EMAIL="${var_admin_email:-admin@localhost}"
ADMIN_PASS="${var_admin_pass:-$(random_password)}"
mkdir -p /opt/bugsink_data
cd /opt/bugsink_data
$STD /opt/bugsink/.venv/bin/bugsink-create-conf --template=singleserver --host="${LOCAL_IP}" --base-dir=/opt/bugsink_data
sed -i \
-e "s|\"BASE_URL\": \"https://${LOCAL_IP}\"|\"BASE_URL\": \"http://${LOCAL_IP}:8000\"|" \
-e 's|^SESSION_COOKIE_SECURE = True|SESSION_COOKIE_SECURE = False|' \
-e 's|^CSRF_COOKIE_SECURE = True|CSRF_COOKIE_SECURE = False|' \
-e 's|^USE_X_REAL_IP = True|USE_X_REAL_IP = False|' \
/opt/bugsink_data/bugsink_conf.py
$STD /opt/bugsink/.venv/bin/bugsink-manage migrate
$STD /opt/bugsink/.venv/bin/bugsink-manage migrate snappea --database=snappea
DJANGO_SUPERUSER_PASSWORD="$ADMIN_PASS" $STD /opt/bugsink/.venv/bin/bugsink-manage createsuperuser --noinput --username "$ADMIN_EMAIL" --email "$ADMIN_EMAIL"
cat <<EOF >/opt/bugsink_data/.env
BUGSINK_ADMIN_EMAIL=${ADMIN_EMAIL}
BUGSINK_ADMIN_PASSWORD=${ADMIN_PASS}
EOF
chmod 600 /opt/bugsink_data/.env /opt/bugsink_data/bugsink_conf.py
msg_ok "Configured Bugsink"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/bugsink.service
[Unit]
Description=Bugsink
After=network.target
[Service]
Type=notify
WorkingDirectory=/opt/bugsink_data
Environment=PYTHONUNBUFFERED=1
ExecStart=/opt/bugsink/.venv/bin/gunicorn --bind=0.0.0.0:8000 --workers=4 --max-requests=1000 --max-requests-jitter=100 --access-logfile - bugsink.wsgi
Restart=always
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/bugsink-snappea.service
[Unit]
Description=Bugsink Snappea
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/bugsink_data
Environment=PYTHONUNBUFFERED=1
ExecStart=/opt/bugsink/.venv/bin/bugsink-runsnappea
Restart=always
RuntimeMaxSec=1d
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now bugsink bugsink-snappea
msg_ok "Created Services"
motd_ssh
customize
cleanup_lxc
-60
View File
@@ -1,60 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bulwarkmail/webmail
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "bulwark" "bulwarkmail/webmail" "prebuild" "latest" "/opt/bulwark" "bulwark-standalone-*-linux-$(arch_resolve).tar.gz"
msg_info "Configuring Bulwark"
mkdir -p /opt/bulwark_data
cat <<EOF >/opt/bulwark_data/.env
NODE_ENV=production
HOSTNAME=0.0.0.0
PORT=3000
JMAP_SERVER_URL=${var_jmap_url:-}
COOKIE_SECURE=false
ADMIN_CONFIG_DIR=/opt/bulwark_data/admin
ADMIN_STATE_DIR=/opt/bulwark_data/admin-state
SETTINGS_DATA_DIR=/opt/bulwark_data/settings
PLUGIN_SECRETS_DIR=/opt/bulwark_data/plugin-secrets
TELEMETRY_DATA_DIR=/opt/bulwark_data/telemetry
VERSION_CHECK_DATA_DIR=/opt/bulwark_data/version-check
EOF
chmod 600 /opt/bulwark_data/.env
msg_ok "Configured Bulwark"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/bulwark.service
[Unit]
Description=Bulwark Webmail
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/bulwark
EnvironmentFile=/opt/bulwark_data/.env
ExecStart=/usr/bin/node /opt/bulwark/server.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now bulwark
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-57
View File
@@ -1,57 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/chroma-core/chroma
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
PYTHON_VERSION="3.12" setup_uv
CHROMA_VERSION="${var_appversion:-$(curl -fsSL https://pypi.org/pypi/chromadb/json | jq -r '.info.version')}"
msg_info "Installing Chroma ${CHROMA_VERSION}"
$STD uv venv --python 3.12 /opt/chroma/.venv
$STD uv pip install --python /opt/chroma/.venv/bin/python "chromadb==${CHROMA_VERSION}"
cat <<EOF >~/.chroma
${CHROMA_VERSION}
EOF
msg_ok "Installed Chroma ${CHROMA_VERSION}"
msg_info "Configuring Chroma"
mkdir -p /opt/chroma_data
cat <<EOF >/opt/chroma_data/config.yaml
persist_path: "/opt/chroma_data"
listen_address: "0.0.0.0"
port: 8000
EOF
msg_ok "Configured Chroma"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/chroma.service
[Unit]
Description=Chroma
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/chroma_data
ExecStart=/opt/chroma/.venv/bin/chroma run /opt/chroma_data/config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now chroma
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-122
View File
@@ -1,122 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://colanode.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 install -y \
build-essential \
redis-server \
nginx
msg_ok "Installed Dependencies"
PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="colanode_db" PG_DB_USER="colanode" PG_DB_EXTENSIONS="vector" setup_postgresql_db
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "colanode" "colanode/colanode" "tarball"
msg_info "Building Application"
cd /opt/colanode
export NODE_OPTIONS="--max-old-space-size=4096"
$STD npm install
$STD npm run build -w @colanode/core
$STD npm run build -w @colanode/crdt
$STD npm run build -w @colanode/server
$STD npm run build -w @colanode/client
$STD npm run build -w @colanode/ui
$STD npm run build -w @colanode/web
$STD npm prune --production
unset NODE_OPTIONS
msg_ok "Built Application"
msg_info "Configuring Application"
mkdir -p /var/lib/colanode/storage /var/www/colanode
cp -r /opt/colanode/apps/web/dist/. /var/www/colanode/
cat <<EOF >/opt/colanode/.env
POSTGRES_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@127.0.0.1:5432/${PG_DB_NAME}
REDIS_URL=redis://127.0.0.1:6379
NODE_ENV=production
EOF
msg_ok "Configured Application"
msg_info "Configuring Nginx"
create_self_signed_cert "colanode"
# Make cert available for browser import (required for Service Worker to work)
cp /etc/ssl/colanode/colanode.crt /var/www/colanode/colanode.crt
cat <<EOF >/etc/nginx/sites-available/colanode
server {
listen 4000 ssl;
server_name _;
root /var/www/colanode;
index index.html;
ssl_certificate /etc/ssl/colanode/colanode.crt;
ssl_certificate_key /etc/ssl/colanode/colanode.key;
# Required for SharedArrayBuffer / OPFS SQLite (WASM)
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Embedder-Policy "require-corp" always;
# Proxy API and WebSocket traffic to the Node.js server
location ~ ^/(config|client)(/.*)?$ {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Serve self-signed cert for browser import
location = /colanode.crt {
default_type application/x-x509-ca-cert;
}
location / {
try_files \$uri \$uri/ /index.html;
}
}
EOF
ln -sf /etc/nginx/sites-available/colanode /etc/nginx/sites-enabled/colanode
rm -f /etc/nginx/sites-enabled/default
systemctl reload nginx
msg_ok "Configured Nginx"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/colanode-server.service
[Unit]
Description=Colanode Server
After=network.target postgresql.service redis-server.service
Requires=postgresql.service redis-server.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/colanode
EnvironmentFile=/opt/colanode/.env
ExecStart=/usr/bin/node apps/server/dist/index.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now colanode-server
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-88
View File
@@ -1,88 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/get-convex/convex-backend
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"
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "convex" "get-convex/convex-backend" "prebuild" "latest" "/opt/convex" "convex-local-backend-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip"
fetch_and_deploy_gh_release "convex-dashboard" "get-convex/convex-backend" "prebuild" "$(cat ~/.convex)" "/opt/convex-dashboard" "dashboard.zip"
msg_info "Configuring Convex"
mkdir -p /opt/convex_data/storage /opt/convex_data/tmp
INSTANCE_SECRET=$(openssl rand -hex 32)
ADMIN_KEY=$(/opt/convex/convex-local-backend keygen admin-key --instance-name convex-self-hosted --instance-secret "$INSTANCE_SECRET")
cat <<EOF >/opt/convex_data/.env
INSTANCE_NAME=convex-self-hosted
INSTANCE_SECRET=${INSTANCE_SECRET}
CONVEX_SELF_HOSTED_ADMIN_KEY="${ADMIN_KEY}"
CONVEX_CLOUD_ORIGIN=http://${LOCAL_IP}:3210
CONVEX_SITE_ORIGIN=http://${LOCAL_IP}:3211
TMPDIR=/opt/convex_data/tmp
RUST_LOG=info
DOCUMENT_RETENTION_DELAY=172800
DISABLE_METRICS_ENDPOINT=true
APPLICATION_MAX_CONCURRENT_MUTATIONS=16
APPLICATION_MAX_CONCURRENT_QUERIES=16
APPLICATION_MAX_CONCURRENT_V8_ACTIONS=16
APPLICATION_MAX_CONCURRENT_NODE_ACTIONS=16
EOF
chmod 600 /opt/convex_data/.env
msg_ok "Configured Convex"
msg_info "Configuring Nginx"
cat <<EOF >/etc/nginx/sites-available/convex-dashboard
server {
listen 6791;
server_name _;
root /opt/convex-dashboard;
index index.html;
location / {
try_files \$uri \$uri.html \$uri/ =404;
}
}
EOF
nginx_enable_site "convex-dashboard"
msg_ok "Configured Nginx"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/convex.service
[Unit]
Description=Convex Backend
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/convex_data
EnvironmentFile=/opt/convex_data/.env
ExecStart=/opt/convex/convex-local-backend --instance-name \${INSTANCE_NAME} --instance-secret \${INSTANCE_SECRET} --port 3210 --site-proxy-port 3211 --convex-origin \${CONVEX_CLOUD_ORIGIN} --convex-site \${CONVEX_SITE_ORIGIN} --local-storage /opt/convex_data/storage /opt/convex_data/db.sqlite3
KillSignal=SIGINT
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now convex
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-84
View File
@@ -1,84 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/cypht-org/cypht
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"
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="soap,ldap" setup_php
fetch_and_deploy_gh_release "cypht" "cypht-org/cypht" "prebuild" "latest" "/opt/cypht" "cypht.tar.gz"
msg_info "Configuring Cypht"
var_admin_user="${var_admin_user:-admin}"
var_admin_pass="${var_admin_pass:-$(random_password)}"
mkdir -p /opt/cypht_data/{users,attachments}
cp /opt/cypht/.env /opt/cypht_data/.env
sed -i \
-e 's|^DB_DRIVER=.*|DB_DRIVER=sqlite|' \
-e 's|^DB_NAME=.*|DB_NAME=/opt/cypht_data/users/cypht.db|' \
-e 's|^SESSION_TYPE=.*|SESSION_TYPE=DB|' \
-e 's|^AUTH_TYPE=.*|AUTH_TYPE=DB|' \
-e 's|^USER_CONFIG_TYPE=.*|USER_CONFIG_TYPE=DB|' \
-e 's|^USER_SETTINGS_DIR=.*|USER_SETTINGS_DIR=/opt/cypht_data/users|' \
-e 's|^ATTACHMENT_DIR=.*|ATTACHMENT_DIR=/opt/cypht_data/attachments|' \
-e "s|^ADMIN_USERS=.*|ADMIN_USERS=${var_admin_user}|" \
-e 's|^ENABLE_REDIS=.*|ENABLE_REDIS=false|' \
-e 's|^ENABLE_MEMCACHED=.*|ENABLE_MEMCACHED=false|' \
/opt/cypht_data/.env
cat <<EOF >>/opt/cypht_data/.env
CYPHT_ADMIN_USER='${var_admin_user}'
CYPHT_ADMIN_PASS='${var_admin_pass}'
EOF
ln -sf /opt/cypht_data/.env /opt/cypht/.env
cd /opt/cypht
$STD php scripts/setup_database.php
$STD php scripts/create_account.php "$var_admin_user" "$var_admin_pass"
$STD php scripts/config_gen.php
chown -R www-data:www-data /opt/cypht_data/users /opt/cypht_data/attachments
chown root:www-data /opt/cypht_data/.env
chmod 640 /opt/cypht_data/.env
msg_ok "Configured Cypht"
msg_info "Configuring Nginx"
PHP_SOCK=$(get_php_fpm_socket)
cat <<EOF >/etc/nginx/sites-available/cypht
server {
listen 80;
server_name _;
root /opt/cypht/site;
index index.php;
client_max_body_size 60M;
location / {
try_files \$uri /index.php\$is_args\$args;
}
location ~ \.php\$ {
try_files \$uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)\$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass unix:${PHP_SOCK};
}
}
EOF
nginx_enable_site "cypht"
msg_ok "Configured Nginx"
motd_ssh
customize
cleanup_lxc
-96
View File
@@ -1,96 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Gentleman-Programming/engram
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"
PG_VERSION="16" setup_postgresql
PG_DB_NAME="engram" PG_DB_USER="engram" setup_postgresql_db
fetch_and_deploy_gh_release "engram" "Gentleman-Programming/engram" "prebuild" "latest" "/opt/engram" "engram_*_linux_$(arch_resolve).tar.gz"
msg_info "Configuring Engram Cloud"
ln -sf /opt/engram/engram /usr/local/bin/engram
mkdir -p /opt/engram_data
cat <<EOF >/opt/engram_data/.env
ENGRAM_DATABASE_URL=postgres://engram:${PG_DB_PASS}@127.0.0.1:5432/engram?sslmode=disable
ENGRAM_CLOUD_HOST=127.0.0.1
ENGRAM_PORT=18080
ENGRAM_CLOUD_TOKEN=${var_cloud_token:-$(random_password 48)}
ENGRAM_CLOUD_ADMIN=${var_admin_token:-$(random_password 48)}
ENGRAM_JWT_SECRET=$(random_password 64)
ENGRAM_CLOUD_TOKEN_PEPPER=$(random_password 64)
ENGRAM_CLOUD_ALLOWED_PROJECTS=${var_allowed_projects:-*}
EOF
chmod 600 /opt/engram_data/.env
msg_ok "Configured Engram Cloud"
create_self_signed_cert "engram"
msg_info "Configuring Nginx"
cat <<'EOF' >/etc/nginx/sites-available/engram
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl default_server;
server_name _;
client_max_body_size 32m;
ssl_certificate /etc/ssl/engram/engram.crt;
ssl_certificate_key /etc/ssl/engram/engram.key;
location / {
proxy_pass http://127.0.0.1:18080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 300s;
}
}
EOF
nginx_enable_site "engram"
msg_ok "Configured Nginx"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/engram.service
[Unit]
Description=Engram Cloud
After=network-online.target postgresql.service
Wants=network-online.target postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/engram_data
EnvironmentFile=/opt/engram_data/.env
ExecStart=/opt/engram/engram cloud serve
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now engram
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-62
View File
@@ -1,62 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Euro-Office/DocumentServer
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
setup_nonfree
msg_info "Installing Dependencies"
$STD apt install -y \
nginx-extras \
rabbitmq-server
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
PG_DB_NAME="euro_office" PG_DB_USER="euro_office" setup_postgresql_db
msg_info "Configuring RabbitMQ"
RMQ_PASS=$(random_password)
$STD rabbitmqctl add_user euro_office "$RMQ_PASS"
$STD rabbitmqctl set_permissions -p / euro_office ".*" ".*" ".*"
msg_ok "Configured RabbitMQ"
msg_info "Preseeding Euro-Office"
debconf-set-selections <<EOF
ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true
euro-office-documentserver ds/db-type string postgres
euro-office-documentserver ds/db-host string localhost
euro-office-documentserver ds/db-port string 5432
euro-office-documentserver ds/db-name string euro_office
euro-office-documentserver ds/db-user string euro_office
euro-office-documentserver ds/db-pwd password ${PG_DB_PASS}
euro-office-documentserver ds/rabbitmq-host string localhost
euro-office-documentserver ds/rabbitmq-user string euro_office
euro-office-documentserver ds/rabbitmq-pwd password ${RMQ_PASS}
euro-office-documentserver ds/jwt-enabled boolean true
euro-office-documentserver ds/jwt-secret string $(random_password 32)
EOF
msg_ok "Preseeded Euro-Office"
fetch_and_deploy_gh_release "euro-office" "Euro-Office/DocumentServer" "binary" "latest" "" "euro-office-documentserver_*_$(arch_resolve).deb"
msg_info "Starting Euro-Office"
systemctl restart ds-metrics ds-converter ds-docservice nginx
for _ in {1..60}; do
[[ "$(curl -fs http://127.0.0.1/healthcheck)" == "true" ]] && break
sleep 2
done
msg_ok "Started Euro-Office"
motd_ssh
customize
cleanup_lxc
-99
View File
@@ -1,99 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/hatchet-dev/hatchet
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
var_admin_email="${var_admin_email:-admin@example.com}"
var_admin_pass="${var_admin_pass:-}"
until [[ ${#var_admin_pass} -ge 8 && ${#var_admin_pass} -le 64 && "$var_admin_pass" =~ [A-Z] && "$var_admin_pass" =~ [a-z] && "$var_admin_pass" =~ [0-9] ]]; do
var_admin_pass=$(random_password)
done
msg_info "Installing Dependencies"
$STD apt install -y python3
msg_ok "Installed Dependencies"
setup_postgresql
PG_DB_NAME="hatchet" PG_DB_USER="hatchet" setup_postgresql_db
setup_go
fetch_and_deploy_gh_release "hatchet" "hatchet-dev/hatchet" "tarball"
NODE_VERSION="24" NODE_MODULE="$(jq -r '.packageManager' /opt/hatchet/frontend/app/package.json)" setup_nodejs
msg_info "Building Hatchet"
cd /opt/hatchet/frontend/snippets
$STD python3 generate.py
cd /opt/hatchet/frontend/app
$STD pnpm install --frozen-lockfile
$STD pnpm run build
cd /opt/hatchet
for target in lite admin migrate; do
CGO_ENABLED=0 $STD go build -ldflags="-w -s -X main.Version=v$(cat ~/.hatchet)" -o "bin/hatchet-${target}" "./cmd/hatchet-${target}"
done
rm -rf /opt/hatchet/frontend/app/node_modules ~/.local/share/pnpm/store
$STD go clean -cache -modcache
msg_ok "Built Hatchet"
msg_info "Configuring Hatchet"
mkdir -p /opt/hatchet_data/config
cat <<EOF >/opt/hatchet_data/.env
DATABASE_URL=postgresql://hatchet:${PG_DB_PASS}@localhost:5432/hatchet?sslmode=disable
SERVER_URL=http://${LOCAL_IP}:8888
SERVER_AUTH_COOKIE_DOMAIN=${LOCAL_IP}
SERVER_AUTH_COOKIE_INSECURE=t
SERVER_AUTH_SET_EMAIL_VERIFIED=t
SERVER_ALLOW_SIGNUP=f
SERVER_GRPC_BIND_ADDRESS=0.0.0.0
SERVER_GRPC_PORT=7077
SERVER_GRPC_INSECURE=t
SERVER_GRPC_BROADCAST_ADDRESS=${LOCAL_IP}:7077
SERVER_INTERNAL_CLIENT_INTERNAL_GRPC_BROADCAST_ADDRESS=localhost:7077
SERVER_MSGQUEUE_KIND=postgres
LITE_STATIC_ASSET_DIR=/opt/hatchet/frontend/app/dist
LITE_FRONTEND_BASE_PATH=/
LITE_FRONTEND_PORT=8081
LITE_RUNTIME_PORT=8888
ADMIN_EMAIL=${var_admin_email}
ADMIN_PASSWORD=${var_admin_pass}
EOF
chmod 600 /opt/hatchet_data/.env
cd /opt/hatchet_data
set -a && source /opt/hatchet_data/.env && set +a
$STD /opt/hatchet/bin/hatchet-migrate
$STD /opt/hatchet/bin/hatchet-admin quickstart --config /opt/hatchet_data/config --generated-config-dir /opt/hatchet_data/config --skip certs --overwrite=false
msg_ok "Configured Hatchet"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/hatchet.service
[Unit]
Description=Hatchet
After=network.target postgresql.service
Requires=postgresql.service
[Service]
Type=simple
WorkingDirectory=/opt/hatchet_data
EnvironmentFile=/opt/hatchet_data/.env
ExecStartPre=/opt/hatchet/bin/hatchet-migrate
ExecStart=/opt/hatchet/bin/hatchet-lite --config /opt/hatchet_data/config
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now hatchet
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-62
View File
@@ -1,62 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/inngest/inngest
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 redis-server
sed -i 's/^appendonly no/appendonly yes/' /etc/redis/redis.conf
systemctl restart redis-server
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
PG_DB_NAME="inngest" PG_DB_USER="inngest" setup_postgresql_db
fetch_and_deploy_gh_release "inngest" "inngest/inngest" "prebuild" "latest" "/opt/inngest" "inngest_*_linux_$(arch_resolve).tar.gz"
msg_info "Configuring Inngest"
mkdir -p /opt/inngest_data
cat <<EOF >/opt/inngest_data/.env
INNGEST_PORT=8288
INNGEST_POSTGRES_URI=postgres://inngest:${PG_DB_PASS}@127.0.0.1:5432/inngest?sslmode=disable
INNGEST_REDIS_URI=redis://127.0.0.1:6379
INNGEST_EVENT_KEY=$(openssl rand -hex 32)
INNGEST_SIGNING_KEY=$(openssl rand -hex 32)
DO_NOT_TRACK=1
EOF
chmod 600 /opt/inngest_data/.env
msg_ok "Configured Inngest"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/inngest.service
[Unit]
Description=Inngest
After=network.target postgresql.service redis-server.service
Requires=postgresql.service redis-server.service
[Service]
Type=simple
WorkingDirectory=/opt/inngest_data
EnvironmentFile=/opt/inngest_data/.env
ExecStart=/opt/inngest/inngest start
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now inngest
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-68
View File
@@ -1,68 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/langflow-ai/langflow
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="24" setup_nodejs
PYTHON_VERSION="3.14" USE_UVX="YES" setup_uv
LANGFLOW_VERSION="${var_appversion:-$(get_latest_github_release "langflow-ai/langflow")}"
msg_info "Installing Langflow ${LANGFLOW_VERSION#v}"
$STD uv venv --python 3.14 /opt/langflow/.venv
$STD uv pip install --python /opt/langflow/.venv/bin/python "langflow==${LANGFLOW_VERSION#v}"
cat <<EOF >~/.langflow
${LANGFLOW_VERSION#v}
EOF
msg_ok "Installed Langflow ${LANGFLOW_VERSION#v}"
msg_info "Configuring Langflow"
mkdir -p /opt/langflow_data/logs
cat <<EOF >/opt/langflow_data/.env
LANGFLOW_HOST=0.0.0.0
LANGFLOW_PORT=7860
LANGFLOW_CONFIG_DIR=/opt/langflow_data
LANGFLOW_DATABASE_URL=sqlite:////opt/langflow_data/langflow.db
LANGFLOW_KNOWLEDGE_BASES_DIR=/opt/langflow_data/knowledge_bases
LANGFLOW_LOG_FILE=/opt/langflow_data/logs/langflow.log
LANGFLOW_SECRET_KEY=$(/opt/langflow/.venv/bin/python -c "from secrets import token_urlsafe; print(token_urlsafe(32))")
LANGFLOW_AUTO_LOGIN=False
LANGFLOW_SUPERUSER='${var_admin_user:-langflow}'
LANGFLOW_SUPERUSER_PASSWORD='${var_admin_pass:-$(random_password)}'
EOF
chmod 600 /opt/langflow_data/.env
msg_ok "Configured Langflow"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/langflow.service
[Unit]
Description=Langflow
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/langflow_data
EnvironmentFile=/opt/langflow_data/.env
ExecStart=/opt/langflow/.venv/bin/langflow run
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now langflow
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-38
View File
@@ -1,38 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Yusuf Gundogdu (yusuf-gundogdu)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://libredb.org
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "libredb-studio" "libredb/libredb-studio" "binary" "latest" "" "libredb-studio_*_$(arch_resolve).deb"
msg_info "Configuring LibreDB Studio"
JWT_SECRET="$(openssl rand -hex 32)"
ADMIN_PASSWORD="$(openssl rand -base64 18 | tr -d '/+=' | cut -c1-16)"
mkdir -p /etc/libredb-studio
cat <<EOF >/etc/libredb-studio/env
HOSTNAME=0.0.0.0
PORT=3000
# Cookie is marked Secure on non-loopback hosts; plain-HTTP LXC login loops without this.
AUTH_COOKIE_SECURE=false
AUTH_BOOTSTRAP=off
JWT_SECRET=${JWT_SECRET}
ADMIN_EMAIL=admin@libredb.org
ADMIN_PASSWORD=${ADMIN_PASSWORD}
EOF
chmod 600 /etc/libredb-studio/env
systemctl enable -q --now libredb-studio
msg_ok "Configured LibreDB Studio"
motd_ssh
customize
cleanup_lxc
-58
View File
@@ -1,58 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/maplibre/martin
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "martin" "maplibre/martin" "prebuild" "latest" "/opt/martin" "martin-$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.gz"
msg_info "Configuring Martin"
mkdir -p /opt/martin_data/tiles
cat <<EOF >/opt/martin_data/config.yaml
listen_addresses: 0.0.0.0:3000
web_ui: enable-for-all
mbtiles:
paths:
- /opt/martin_data/tiles
pmtiles:
paths:
- /opt/martin_data/tiles
# postgres:
# connection_string: postgres://user:password@host:5432/database
EOF
msg_ok "Configured Martin"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/martin.service
[Unit]
Description=Martin Tile Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/martin_data
ExecStart=/opt/martin/martin --config /opt/martin_data/config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now martin
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-151
View File
@@ -1,151 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ccfos/nightingale
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 redis-server
msg_ok "Installed Dependencies"
setup_mariadb
MARIADB_DB_NAME="nightingale" MARIADB_DB_USER="nightingale" setup_mariadb_db
fetch_and_deploy_gh_release "nightingale" "ccfos/nightingale" "prebuild" "latest" "/opt/nightingale" "n9e-v*-linux-$(arch_resolve).tar.gz"
msg_info "Configuring Nightingale"
mkdir -p /opt/nightingale_data
cat <<EOF >/opt/nightingale_data/config.toml
[Global]
RunMode = "release"
[Log]
Dir = "/opt/nightingale_data/logs"
Level = "INFO"
Output = "stdout"
[HTTP]
Host = "0.0.0.0"
Port = 17000
CertFile = ""
KeyFile = ""
PrintAccessLog = false
PProf = false
ExposeMetrics = true
ShutdownTimeout = 30
MaxContentLength = 67108864
ReadTimeout = 20
WriteTimeout = 40
IdleTimeout = 120
[HTTP.ShowCaptcha]
Enable = false
[HTTP.APIForAgent]
Enable = true
[HTTP.APIForService]
Enable = false
[HTTP.JWTAuth]
AccessExpired = 1500
RefreshExpired = 10080
RedisKeyPrefix = "/jwt/"
[HTTP.ProxyAuth]
Enable = false
HeaderUserNameKey = "X-User-Name"
DefaultRoles = ["Standard"]
[HTTP.TokenAuth]
Enable = true
[HTTP.RSA]
OpenRSA = false
[DB]
DBType = "mysql"
DSN = "nightingale:${MARIADB_DB_PASS}@tcp(127.0.0.1:3306)/nightingale?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&loc=Local&allowNativePasswords=true"
Debug = false
MaxLifetime = 7200
MaxOpenConns = 150
MaxIdleConns = 50
[Redis]
Address = "127.0.0.1:6379"
RedisType = "standalone"
[Alert]
[Alert.Heartbeat]
IP = ""
Interval = 1000
EngineName = "default"
[Alert.EvalLog]
MaxDiskGB = 1
[Center]
MetricsYamlFile = "/opt/nightingale/etc/metrics.yaml"
I18NHeaderKey = "X-Language"
[Center.AnonymousAccess]
PromQuerier = false
AlertDetail = true
[EmbeddedTSDB]
Enable = true
Dir = "/opt/nightingale_data/tsdb"
RetentionDuration = "15d"
MaxBytes = "4GiB"
OutOfOrderTimeWindow = "10m"
QueryTimeout = "1m"
QueryMaxSamples = 50000000
LookbackDelta = "5m"
BasicAuthUser = ""
BasicAuthPass = ""
[Pushgw]
LabelRewrite = true
ForceUseServerTS = true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
EOF
chmod 600 /opt/nightingale_data/config.toml
msg_ok "Configured Nightingale"
msg_info "Creating Service"
# integrations/, agents/ and the AI skill cache resolve against the working directory, so it stays the release dir
cat <<EOF >/etc/systemd/system/nightingale.service
[Unit]
Description=Nightingale
After=network.target mariadb.service redis-server.service
Requires=mariadb.service redis-server.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/nightingale
ExecStart=/opt/nightingale/n9e --configs /opt/nightingale_data
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now nightingale
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-230
View File
@@ -1,230 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/simple-login/app
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
echo "postfix postfix/mailname string $(hostname -f)" | debconf-set-selections
echo "postfix postfix/main_mailer_type string Internet Site" | debconf-set-selections
$STD apt install -y \
build-essential \
libre2-dev \
pkg-config \
libpq-dev \
cmake \
ninja-build \
clang \
redis-server \
nginx \
postfix \
postfix-pgsql \
opendkim-tools
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
APPLICATION="simplelogin" PG_DB_NAME="simplelogin" PG_DB_USER="simplelogin" setup_postgresql_db
PYTHON_VERSION="3.12" setup_uv
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "simplelogin" "simple-login/app"
msg_info "Installing SimpleLogin (Patience)"
cd /opt/simplelogin
$STD uv venv
$STD uv pip install setuptools hatchling editables
export CMAKE_POLICY_VERSION_MINIMUM=3.5
$STD uv sync --locked --no-dev --no-build-isolation --no-install-package newrelic
if [[ -f /opt/simplelogin/static/package.json ]]; then
cd /opt/simplelogin/static
$STD npm ci
fi
msg_ok "Installed SimpleLogin"
msg_info "Configuring SimpleLogin"
FLASK_SECRET=$(openssl rand -hex 32)
mkdir -p /opt/simplelogin/dkim
$STD openssl genrsa -traditional -out /opt/simplelogin/dkim/dkim.private 2048
$STD openssl rsa -in /opt/simplelogin/dkim/dkim.private -pubout -out /opt/simplelogin/dkim/dkim.public.key
DKIM_PUB=$(openssl rsa -in /opt/simplelogin/dkim/dkim.private -pubout 2>/dev/null | grep -v '^-----' | tr -d '\n')
cat <<EOF >/opt/simplelogin/dkim/dkim.dns.txt
dkim._domainkey.EMAIL_DOMAIN. IN TXT ( "v=DKIM1; k=rsa; p=${DKIM_PUB}" )
EOF
$STD openssl genrsa -out /opt/simplelogin/openid-rsa.key 2048
$STD openssl rsa -in /opt/simplelogin/openid-rsa.key -pubout -out /opt/simplelogin/openid-rsa.pub
mkdir -p /opt/simplelogin/uploads /opt/simplelogin/.gnupg
chmod 700 /opt/simplelogin/.gnupg
{
echo "URL=http://${LOCAL_IP}"
echo "EMAIL_DOMAIN=example.com"
echo "SUPPORT_EMAIL=support@example.com"
echo 'EMAIL_SERVERS_WITH_PRIORITY=[(10, "localhost.")]'
echo "POSTFIX_SERVER=localhost"
echo "DB_URI=postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost/${PG_DB_NAME}"
echo "FLASK_SECRET=${FLASK_SECRET}"
echo "DKIM_PRIVATE_KEY_PATH=/opt/simplelogin/dkim/dkim.private"
echo "GNUPGHOME=/opt/simplelogin/.gnupg"
echo "LOCAL_FILE_UPLOAD=true"
echo "UPLOAD_DIR=/opt/simplelogin/uploads"
echo "DISABLE_ALIAS_SUFFIX=1"
echo "WORDS_FILE_PATH=/opt/simplelogin/local_data/words.txt"
echo "NAMESERVERS=1.1.1.1"
echo "MEM_STORE_URI=redis://localhost:6379/1"
echo "OPENID_PRIVATE_KEY_PATH=/opt/simplelogin/openid-rsa.key"
echo "OPENID_PUBLIC_KEY_PATH=/opt/simplelogin/openid-rsa.pub"
echo "METRICS_BACKENDS=noop"
} >/opt/simplelogin/.env
cd /opt/simplelogin
export FLASK_APP=server
export URL="http://${LOCAL_IP}"
export EMAIL_DOMAIN="example.com"
export SUPPORT_EMAIL="support@example.com"
export EMAIL_SERVERS_WITH_PRIORITY='[(10, "localhost.")]'
export POSTFIX_SERVER="localhost"
export DB_URI="postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost/${PG_DB_NAME}"
export FLASK_SECRET="${FLASK_SECRET}"
export DKIM_PRIVATE_KEY_PATH="/opt/simplelogin/dkim/dkim.private"
export GNUPGHOME="/opt/simplelogin/.gnupg"
export LOCAL_FILE_UPLOAD="true"
export UPLOAD_DIR="/opt/simplelogin/uploads"
export DISABLE_ALIAS_SUFFIX="1"
export WORDS_FILE_PATH="/opt/simplelogin/local_data/words.txt"
export NAMESERVERS="1.1.1.1"
export MEM_STORE_URI="redis://localhost:6379/1"
export OPENID_PRIVATE_KEY_PATH="/opt/simplelogin/openid-rsa.key"
export OPENID_PUBLIC_KEY_PATH="/opt/simplelogin/openid-rsa.pub"
export METRICS_BACKENDS="noop"
$STD .venv/bin/alembic upgrade head
$STD .venv/bin/python init_app.py
msg_ok "Configured SimpleLogin"
msg_info "Configuring Postfix"
cat <<EOF >/etc/postfix/pgsql-relay-domains.cf
hosts = localhost
dbname = ${PG_DB_NAME}
user = ${PG_DB_USER}
password = ${PG_DB_PASS}
query = SELECT domain FROM custom_domain WHERE domain='%s' AND verified=true
EOF
cat <<EOF >/etc/postfix/pgsql-transport-maps.cf
hosts = localhost
dbname = ${PG_DB_NAME}
user = ${PG_DB_USER}
password = ${PG_DB_PASS}
query = SELECT 'smtp:[127.0.0.1]:20381' FROM custom_domain WHERE domain='%s' AND verified=true
EOF
chmod 640 /etc/postfix/pgsql-*.cf
cat <<EOF >/etc/postfix/transport
example.com smtp:[127.0.0.1]:20381
EOF
$STD postmap /etc/postfix/transport
postconf -e "relay_domains = example.com, pgsql:/etc/postfix/pgsql-relay-domains.cf"
postconf -e "transport_maps = hash:/etc/postfix/transport, pgsql:/etc/postfix/pgsql-transport-maps.cf"
postconf -e "smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination"
postconf -e "inet_protocols = ipv4"
$STD systemctl restart postfix
msg_ok "Configured Postfix"
msg_info "Creating Services"
cat <<'EOF' >/etc/systemd/system/simplelogin-webapp.service
[Unit]
Description=SimpleLogin Web Application
After=network.target postgresql.service redis-server.service
Requires=postgresql.service redis-server.service
[Service]
Type=simple
WorkingDirectory=/opt/simplelogin
EnvironmentFile=/opt/simplelogin/.env
ExecStart=/opt/simplelogin/.venv/bin/gunicorn wsgi:app -b 127.0.0.1:7777 -w 2 --timeout 120
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
cat <<'EOF' >/etc/systemd/system/simplelogin-email.service
[Unit]
Description=SimpleLogin Email Handler
After=network.target postgresql.service redis-server.service postfix.service
Requires=postgresql.service redis-server.service
[Service]
Type=simple
WorkingDirectory=/opt/simplelogin
EnvironmentFile=/opt/simplelogin/.env
ExecStart=/opt/simplelogin/.venv/bin/python email_handler.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
cat <<'EOF' >/etc/systemd/system/simplelogin-job.service
[Unit]
Description=SimpleLogin Job Runner
After=network.target postgresql.service redis-server.service
Requires=postgresql.service redis-server.service
[Service]
Type=simple
WorkingDirectory=/opt/simplelogin
EnvironmentFile=/opt/simplelogin/.env
ExecStart=/opt/simplelogin/.venv/bin/python job_runner.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now redis-server simplelogin-webapp simplelogin-email simplelogin-job
msg_ok "Created Services"
msg_info "Configuring Nginx"
cat <<'EOF' >/etc/nginx/sites-available/simplelogin.conf
server {
listen 80 default_server;
server_name _;
client_max_body_size 10M;
location / {
proxy_pass http://127.0.0.1:7777;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
ln -sf /etc/nginx/sites-available/simplelogin.conf /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
$STD nginx -t
$STD systemctl enable --now nginx
$STD systemctl reload nginx
msg_ok "Configured Nginx"
motd_ssh
customize
cleanup_lxc
-99
View File
@@ -1,99 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/spacedriveapp/spacebot
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 \
bubblewrap \
fonts-liberation \
libnss3 \
libatk-bridge2.0-0t64 \
libdrm2 \
libxcomposite1 \
libxdamage1 \
libxrandr2 \
libgbm1 \
libasound2t64 \
libpango-1.0-0 \
libcairo2 \
libcups2t64 \
libxkbcommon0 \
libxss1 \
libxtst6 \
libxfixes3
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "spacebot" "spacedriveapp/spacebot" "prebuild" "latest" "/opt/spacebot" "spacebot-v*-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.tar.gz"
msg_info "Configuring Spacebot"
mkdir -p /opt/spacebot_data
cat <<EOF >/opt/spacebot_data/.env
SPACEBOT_DIR=/opt/spacebot_data
EOF
cat <<EOF >/opt/spacebot_data/config.toml
[api]
bind = "0.0.0.0"
port = 19898
[[agents]]
id = "main"
default = true
EOF
if [[ -n "${var_llm_base_url:-}" ]]; then
cat <<EOF >>/opt/spacebot_data/.env
LLM_API_KEY=${var_llm_api_key:-none}
EOF
cat <<EOF >>/opt/spacebot_data/config.toml
[llm.provider.custom]
api_type = "openai_chat_completions"
base_url = "${var_llm_base_url%/}"
api_key = "env:LLM_API_KEY"
name = "OpenAI-compatible"
[defaults.routing]
channel = "custom/${var_llm_model}"
branch = "custom/${var_llm_model}"
worker = "custom/${var_llm_model}"
compactor = "custom/${var_llm_model}"
cortex = "custom/${var_llm_model}"
EOF
fi
chmod 600 /opt/spacebot_data/.env /opt/spacebot_data/config.toml
msg_ok "Configured Spacebot"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/spacebot.service
[Unit]
Description=Spacebot
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/spacebot_data
EnvironmentFile=/opt/spacebot_data/.env
ExecStart=/opt/spacebot/spacebot start --foreground
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now spacebot
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-206
View File
@@ -1,206 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Renan Bastos (renanbastos93)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/temporalio/temporal
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
PG_VERSION="17" setup_postgresql
PG_DB_NAME="temporal" PG_DB_USER="temporal" PG_DB_SCHEMA_PERMS="true" setup_postgresql_db
fetch_and_deploy_gh_release "temporal" "temporalio/temporal" "prebuild" "latest" "/opt/temporal" "temporal_*_linux_$(arch_resolve).tar.gz"
fetch_and_deploy_gh_release "temporal-ui" "temporalio/ui-server" "prebuild" "latest" "/opt/temporal-ui" "ui-server_*_linux_$(arch_resolve).tar.gz"
fetch_and_deploy_gh_release "temporal-cli" "temporalio/cli" "prebuild" "latest" "/opt/temporal-cli" "temporal_cli_*_linux_$(arch_resolve).tar.gz"
msg_info "Configuring Temporal"
mkdir -p /etc/temporal/config/dynamicconfig /etc/temporal/ui
ln -sf /opt/temporal-cli/temporal /usr/bin/temporal
cat <<EOF >/etc/temporal/temporal.env
SQL_PLUGIN=postgres12
SQL_HOST=127.0.0.1
SQL_PORT=5432
SQL_USER=temporal
SQL_PASSWORD=${PG_DB_PASS}
EOF
chmod 600 /etc/temporal/temporal.env
cat <<'EOF' >/etc/temporal/config/production.yaml
# enable-template
log:
stdout: true
level: info
persistence:
defaultStore: postgres-default
visibilityStore: postgres-visibility
numHistoryShards: 4
datastores:
postgres-default:
sql:
pluginName: {{ env "SQL_PLUGIN" | quote }}
databaseName: "temporal"
connectAddr: {{ printf "%s:%s" (env "SQL_HOST") (env "SQL_PORT") | quote }}
connectProtocol: "tcp"
user: {{ env "SQL_USER" | quote }}
password: {{ env "SQL_PASSWORD" | quote }}
maxConns: 20
maxIdleConns: 20
maxConnLifetime: "1h"
postgres-visibility:
sql:
pluginName: {{ env "SQL_PLUGIN" | quote }}
databaseName: "temporal_visibility"
connectAddr: {{ printf "%s:%s" (env "SQL_HOST") (env "SQL_PORT") | quote }}
connectProtocol: "tcp"
user: {{ env "SQL_USER" | quote }}
password: {{ env "SQL_PASSWORD" | quote }}
maxConns: 10
maxIdleConns: 10
maxConnLifetime: "1h"
global:
membership:
maxJoinDuration: 30s
broadcastAddress: "127.0.0.1"
services:
frontend:
rpc:
grpcPort: 7233
membershipPort: 6933
bindOnIP: "0.0.0.0"
matching:
rpc:
grpcPort: 7235
membershipPort: 6935
bindOnLocalHost: true
history:
rpc:
grpcPort: 7234
membershipPort: 6934
bindOnLocalHost: true
worker:
rpc:
grpcPort: 7239
membershipPort: 6939
bindOnLocalHost: true
clusterMetadata:
enableGlobalNamespace: false
failoverVersionIncrement: 10
masterClusterName: "active"
currentClusterName: "active"
clusterInformation:
active:
enabled: true
initialFailoverVersion: 1
rpcName: "frontend"
rpcAddress: "127.0.0.1:7233"
dcRedirectionPolicy:
policy: "noop"
archival:
history:
state: "disabled"
visibility:
state: "disabled"
namespaceDefaults:
archival:
history:
state: "disabled"
visibility:
state: "disabled"
dynamicConfigClient:
filepath: "/etc/temporal/config/dynamicconfig/production.yaml"
pollInterval: "60s"
EOF
cat <<EOF >/etc/temporal/config/dynamicconfig/production.yaml
limit.maxIDLength:
- value: 255
constraints: {}
EOF
cat <<EOF >/etc/temporal/ui/production.yaml
temporalGrpcAddress: 127.0.0.1:7233
port: 8080
enableUi: true
defaultNamespace: default
cors:
cookieInsecure: true
allowOrigins:
- http://${LOCAL_IP}:8080
EOF
msg_ok "Configured Temporal"
msg_info "Initializing Temporal Database"
set -a && source /etc/temporal/temporal.env && set +a
$STD /opt/temporal/temporal-sql-tool --db temporal_visibility create-database
$STD /opt/temporal/temporal-sql-tool --db temporal setup-schema -v 0.0
$STD /opt/temporal/temporal-sql-tool --db temporal update-schema --schema-name postgresql/v12/temporal
$STD /opt/temporal/temporal-sql-tool --db temporal_visibility setup-schema -v 0.0
$STD /opt/temporal/temporal-sql-tool --db temporal_visibility update-schema --schema-name postgresql/v12/visibility
msg_ok "Initialized Temporal Database"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/temporal.service
[Unit]
Description=Temporal Server
After=network.target postgresql.service
Requires=postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/temporal
EnvironmentFile=/etc/temporal/temporal.env
ExecStart=/opt/temporal/temporal-server --root /etc/temporal --env production --allow-no-auth start
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/temporal-ui.service
[Unit]
Description=Temporal UI
After=network.target temporal.service
Wants=temporal.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/temporal-ui
ExecStart=/opt/temporal-ui/ui-server --root /etc/temporal --config ui --env production start
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now temporal temporal-ui
msg_ok "Created Services"
msg_info "Creating Default Namespace"
for _ in {1..60}; do
temporal operator cluster health &>/dev/null && break
sleep 1
done
$STD temporal operator namespace create --namespace default
msg_ok "Created Default Namespace"
motd_ssh
customize
cleanup_lxc
-59
View File
@@ -1,59 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/trailbaseio/trailbase
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "trailbase" "trailbaseio/trailbase" "prebuild" "latest" "/opt/trailbase" "trailbase_v*_$(arch_resolve "x86_64" "aarch64")_linux.zip"
msg_info "Configuring TrailBase"
ADMIN_EMAIL="${var_admin_email:-admin@localhost}"
ADMIN_PASS="${var_admin_pass:-$(random_password)}"
mkdir -p /opt/trailbase_data
cat <<EOF >/opt/trailbase_data/.env
DEPOT=/opt/trailbase_data/traildepot
ADDRESS=0.0.0.0:4000
PUBLIC_URL=http://${LOCAL_IP}:4000
TRAILBASE_ADMIN_EMAIL=${ADMIN_EMAIL}
TRAILBASE_ADMIN_PASSWORD=${ADMIN_PASS}
EOF
chmod 600 /opt/trailbase_data/.env
# The first CLI call creates the depot and the admin user admin@localhost
$STD /opt/trailbase/trail --depot /opt/trailbase_data/traildepot user change-password admin@localhost "$ADMIN_PASS"
if [[ "$ADMIN_EMAIL" != "admin@localhost" ]]; then
$STD /opt/trailbase/trail --depot /opt/trailbase_data/traildepot user change-email admin@localhost "$ADMIN_EMAIL"
fi
msg_ok "Configured TrailBase"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/trailbase.service
[Unit]
Description=TrailBase
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/trailbase_data
EnvironmentFile=/opt/trailbase_data/.env
ExecStart=/opt/trailbase/trail run
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now trailbase
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-64
View File
@@ -1,64 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/weaviate/weaviate
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "weaviate" "weaviate/weaviate" "prebuild" "latest" "/opt/weaviate" "weaviate-v*-linux-$(arch_resolve).tar.gz"
msg_info "Configuring Weaviate"
mkdir -p /opt/weaviate_data/data
cat <<EOF >/opt/weaviate_data/.env
PERSISTENCE_DATA_PATH=/opt/weaviate_data/data
QUERY_DEFAULTS_LIMIT=25
CLUSTER_HOSTNAME=node1
CLUSTER_BIND_ADDR=127.0.0.1
CLUSTER_BASIC_AUTH_USERNAME=weaviate
CLUSTER_BASIC_AUTH_PASSWORD=$(random_password)
GRPC_PORT=50051
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false
AUTHENTICATION_APIKEY_ENABLED=true
AUTHENTICATION_APIKEY_ALLOWED_KEYS=${var_api_key:-$(random_password 32)}
AUTHENTICATION_APIKEY_USERS=admin
AUTHENTICATION_DB_USERS_ENABLED=true
AUTHORIZATION_RBAC_ENABLED=true
AUTHORIZATION_RBAC_ROOT_USERS=admin
LIMIT_RESOURCES=true
GO_PROFILING_DISABLE=true
DISABLE_TELEMETRY=true
EOF
chmod 600 /opt/weaviate_data/.env
msg_ok "Configured Weaviate"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/weaviate.service
[Unit]
Description=Weaviate
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/weaviate_data
EnvironmentFile=/opt/weaviate_data/.env
ExecStart=/opt/weaviate/weaviate --host 0.0.0.0 --port 8080 --scheme http
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now weaviate
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc