From a5076813f17646f9b7c91f118a9b1d984a2a640f Mon Sep 17 00:00:00 2001 From: "push-app-to-main[bot]" <203845782+push-app-to-main[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 10:25:28 +0000 Subject: [PATCH] Add lobehub (ct) --- ct/headers/lobehub | 6 +++ ct/lobehub.sh | 77 ++++++++++++++++++++++++++++ install/lobehub-install.sh | 101 +++++++++++++++++++++++++++++++++++++ 3 files changed, 184 insertions(+) create mode 100644 ct/headers/lobehub create mode 100644 ct/lobehub.sh create mode 100644 install/lobehub-install.sh diff --git a/ct/headers/lobehub b/ct/headers/lobehub new file mode 100644 index 000000000..ca8f16ce6 --- /dev/null +++ b/ct/headers/lobehub @@ -0,0 +1,6 @@ + __ __ __ __ __ + / / ____ / /_ ___ / / / /_ __/ /_ + / / / __ \/ __ \/ _ \/ /_/ / / / / __ \ + / /___/ /_/ / /_/ / __/ __ / /_/ / /_/ / +/_____/\____/_.___/\___/_/ /_/\__,_/_.___/ + diff --git a/ct/lobehub.sh b/ct/lobehub.sh new file mode 100644 index 000000000..11137c747 --- /dev/null +++ b/ct/lobehub.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/lobehub/lobehub + +APP="LobeHub" +var_tags="${var_tags:-ai;chat}" +var_cpu="${var_cpu:-6}" +var_ram="${var_ram:-10240}" +var_disk="${var_disk:-15}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/lobehub ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "lobehub" "lobehub/lobehub"; then + msg_info "Stopping Services" + systemctl stop lobehub + msg_ok "Stopped Services" + + msg_info "Backing up Data" + cp /opt/lobehub/.env /opt/lobehub.env.bak + msg_ok "Backed up Data" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "lobehub" "lobehub/lobehub" "tarball" + + msg_info "Restoring Configuration" + cp /opt/lobehub.env.bak /opt/lobehub/.env + rm -f /opt/lobehub.env.bak + msg_ok "Restored Configuration" + + msg_info "Building Application" + cd /opt/lobehub + export NODE_OPTIONS="--max-old-space-size=8192" + $STD pnpm install + $STD pnpm run build:docker + unset NODE_OPTIONS + msg_ok "Built Application" + + msg_info "Running Database Migrations" + cd /opt/lobehub + set -a && source /opt/lobehub/.env && set +a + $STD node /opt/lobehub/.next/standalone/docker.cjs + msg_ok "Ran Database Migrations" + + msg_info "Starting Services" + systemctl start lobehub + 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 "${TAB}${GATEWAY}${BGN}http://${IP}:3210${CL}" diff --git a/install/lobehub-install.sh b/install/lobehub-install.sh new file mode 100644 index 000000000..832348d26 --- /dev/null +++ b/install/lobehub-install.sh @@ -0,0 +1,101 @@ +#!/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/lobehub/lobehub + +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 +msg_ok "Installed Dependencies" + +PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql + +CODENAME=$(. /etc/os-release && echo "${VERSION_CODENAME:-bookworm}") +fetch_and_deploy_gh_release "paradedb" "paradedb/paradedb" "binary" "latest" "" "postgresql-17-pg-search_*-1PARADEDB-${CODENAME}_$(dpkg --print-architecture).deb" + +msg_info "Configuring pg_search preload library" +if ! grep -q "shared_preload_libraries.*pg_search" /etc/postgresql/17/main/postgresql.conf; then + echo "shared_preload_libraries = 'pg_search'" >>/etc/postgresql/17/main/postgresql.conf +fi +systemctl restart postgresql +msg_ok "Configured pg_search preload library" + +PG_DB_NAME="lobehub" PG_DB_USER="lobehub" PG_DB_EXTENSIONS="vector,pg_search" setup_postgresql_db +NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs + +fetch_and_deploy_gh_release "lobehub" "lobehub/lobehub" "tarball" + +msg_info "Building Application" +cd /opt/lobehub +export DATABASE_URL="postgres://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}" +export DATABASE_DRIVER="node" +export KEY_VAULTS_SECRET="$(openssl rand -base64 32)" +export AUTH_SECRET="$(openssl rand -base64 32)" +export APP_URL="http://localhost:3210" +$STD pnpm install +$STD pnpm run build:docker +msg_ok "Built Application" + +msg_info "Configuring Application" +KEY_VAULTS_SECRET=$(openssl rand -base64 32) +AUTH_SECRET=$(openssl rand -base64 32) +cat </opt/lobehub/.env +DATABASE_URL=postgres://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME} +DATABASE_DRIVER=node +KEY_VAULTS_SECRET=${KEY_VAULTS_SECRET} +AUTH_SECRET=${AUTH_SECRET} +APP_URL=http://${LOCAL_IP}:3210 +HOSTNAME=0.0.0.0 +PORT=3210 +NODE_ENV=production +EOF +msg_ok "Configured Application" + +msg_info "Setting Up Standalone" +cp -r /opt/lobehub/.next/static /opt/lobehub/.next/standalone/.next/static +cp -r /opt/lobehub/public /opt/lobehub/.next/standalone/public +cp -r /opt/lobehub/scripts/migrateServerDB/* /opt/lobehub/.next/standalone/ +cp -r /opt/lobehub/packages/database/migrations /opt/lobehub/.next/standalone/migrations +msg_ok "Set Up Standalone" + +msg_info "Running Database Migrations" +cd /opt/lobehub/.next/standalone +set -a && source /opt/lobehub/.env && set +a +$STD node /opt/lobehub/.next/standalone/docker.cjs +msg_ok "Ran Database Migrations" + +msg_info "Creating Service" +cat </etc/systemd/system/lobehub.service +[Unit] +Description=LobeHub +After=network.target postgresql.service +Requires=postgresql.service + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/lobehub/.next/standalone +EnvironmentFile=/opt/lobehub/.env +ExecStart=/usr/bin/node /opt/lobehub/.next/standalone/server.js +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF + +systemctl enable -q --now lobehub +msg_ok "Created Service" + +motd_ssh +customize +cleanup_lxc