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:
85
ct/stoatchat.sh
Normal file
85
ct/stoatchat.sh
Normal 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}"
|
||||
Reference in New Issue
Block a user