secubox-openwrt/package/secubox/secubox-app-simplex/files/etc/init.d/simplex
CyberMind-FR db847ba1cd feat(simplex): Add SimpleX Chat self-hosted messaging servers
Integrate SimpleX Chat SMP and XFTP servers for privacy-focused messaging:

- secubox-app-simplex: Backend with LXC container management
  - SMP server for message relay (port 5223)
  - XFTP server for encrypted file sharing (port 443)
  - Auto-download of SimpleX binaries for aarch64/x86_64
  - TLS certificate generation (self-signed or Let's Encrypt)
  - Firewall and HAProxy integration

- luci-app-simplex: LuCI dashboard with:
  - Service status monitoring
  - Server address display with copy-to-clipboard
  - Full configuration forms for SMP, XFTP, and TLS
  - Install/certificate management actions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:53:41 +01:00

78 lines
1.8 KiB
Bash

#!/bin/sh /etc/rc.common
# SimpleX Chat Server Service
START=95
STOP=15
USE_PROCD=1
SIMPLEX_DIR="/srv/simplex"
CONTAINER_NAME="simplex"
start_service() {
local enabled=$(uci -q get simplex.main.enabled)
[ "$enabled" != "1" ] && return 0
# Check LXC
if ! command -v lxc-start >/dev/null 2>&1; then
logger -t simplex "LXC not available"
return 1
fi
# Check if container exists
if ! lxc-info -n "$CONTAINER_NAME" >/dev/null 2>&1; then
logger -t simplex "Container not installed. Run: simplexctl install"
return 1
fi
# Start container if not running
if ! lxc-info -n "$CONTAINER_NAME" -s 2>/dev/null | grep -q "RUNNING"; then
logger -t simplex "Starting SimpleX container..."
/usr/sbin/simplexctl start-container
fi
# Start SMP server
local smp_enabled=$(uci -q get simplex.smp.enabled)
if [ "$smp_enabled" = "1" ]; then
procd_open_instance smp
procd_set_param command /usr/sbin/simplexctl service-run smp
procd_set_param respawn 3600 5 5
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
fi
# Start XFTP server
local xftp_enabled=$(uci -q get simplex.xftp.enabled)
if [ "$xftp_enabled" = "1" ]; then
procd_open_instance xftp
procd_set_param command /usr/sbin/simplexctl service-run xftp
procd_set_param respawn 3600 5 5
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
fi
logger -t simplex "SimpleX Chat Server started"
}
stop_service() {
# Stop services (procd handles the instances)
/usr/sbin/simplexctl stop-services 2>/dev/null
# Optionally stop container
local keep_container=$(uci -q get simplex.main.keep_container_running)
if [ "$keep_container" != "1" ]; then
/usr/sbin/simplexctl stop-container 2>/dev/null
fi
logger -t simplex "SimpleX Chat Server stopped"
}
reload_service() {
/usr/sbin/simplexctl reload-config
}
status() {
/usr/sbin/simplexctl status
}