Add Stoatchat and xyOps container/install scripts

Introduce new container templates, installers, and metadata for Stoatchat and xyOps. Adds ct scripts (ct/stoatchat.sh, ct/xyops.sh), full install scripts (install/stoatchat-install.sh, install/xyops-install.sh) that provision dependencies, build components, and create systemd services, plus app metadata JSON (json/stoatchat.json, json/xyops.json). Stoatchat installer handles Rust backend build, SolidJS frontend build, MinIO, RabbitMQ, MongoDB, nginx reverse proxy and multiple backend services (exposes on port 80). xyOps installer builds the Node app, sets up the xySat satellite, service unit, and uses port 5522 for the web UI. Default resource recommendations and notes are included in the JSON metadata.
This commit is contained in:
MickLesk
2026-05-08 09:14:20 +02:00
parent 4ff70ba166
commit df5d0679ec
6 changed files with 572 additions and 0 deletions

85
ct/stoatchat.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/stoatchat/stoatchat
APP="Stoatchat"
var_tags="${var_tags:-chat;messaging;community}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-8192}"
var_disk="${var_disk:-30}"
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/stoatchat ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "stoatchat" "stoatchat/stoatchat"; then
msg_info "Stopping Services"
systemctl stop stoatchat-api stoatchat-events stoatchat-autumn stoatchat-january stoatchat-crond
msg_ok "Stopped Services"
msg_info "Backing up Configuration"
cp /Revolt.toml /opt/stoatchat_revolt.toml.bak
msg_ok "Backed up Configuration"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "stoatchat" "stoatchat/stoatchat" "tarball"
msg_info "Rebuilding Backend (Patience)"
cd /opt/stoatchat
$STD cargo build --release --bins
msg_ok "Rebuilt Backend"
msg_info "Updating Web Frontend"
FORWEB_VERSION=$(get_latest_github_release "stoatchat/for-web")
$STD git -C /opt/stoatchat-web fetch --tags
$STD git -C /opt/stoatchat-web checkout "$FORWEB_VERSION"
$STD git -C /opt/stoatchat-web submodule update --init --recursive
cd /opt/stoatchat-web
$STD pnpm install --frozen-lockfile
$STD pnpm --filter stoat.js build
$STD pnpm --filter solid-livekit-components build
$STD pnpm --filter "@lingui-solid/babel-plugin-lingui-macro" build
$STD pnpm --filter "@lingui-solid/babel-plugin-extract-messages" build
$STD pnpm --filter client exec lingui compile --typescript
$STD pnpm --filter client exec node scripts/copyAssets.mjs
$STD pnpm --filter client exec panda codegen
$STD pnpm --filter client exec vite build
msg_ok "Updated Web Frontend"
msg_info "Restoring Configuration"
cp /opt/stoatchat_revolt.toml.bak /Revolt.toml
rm -f /opt/stoatchat_revolt.toml.bak
msg_ok "Restored Configuration"
msg_info "Starting Services"
systemctl start stoatchat-api stoatchat-events stoatchat-autumn stoatchat-january stoatchat-crond
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}${CL}"