changemaker.lite/termux-sms/setup-services.sh
bunker-admin 9321aeb263 Move SMS phone bridge from campaign_connector submodule into main repo
Consolidates the Termux SMS server code (previously in a separate
campaign_connector git submodule) into termux-sms/ at repo root.
Updates phone clone commands to use sparse checkout so only the
termux-sms/ directory is downloaded onto the Android device.

Bunker Admin
2026-03-31 11:04:14 -06:00

95 lines
3.6 KiB
Bash

#!/data/data/com.termux/files/usr/bin/bash
#
# One-time setup: install termux-services and register sms-api + sshd
# Run this ON THE PHONE in Termux.
#
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
BOLD='\033[1m'
NC='\033[0m'
echo -e "${CYAN}╔═══════════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}${NC} ${BOLD}SMS Server — Service Setup${NC} ${CYAN}${NC}"
echo -e "${CYAN}╚═══════════════════════════════════════════════════╝${NC}"
echo ""
# 1. Install termux-services (provides runit supervisor)
echo -e "${YELLOW}[1/5]${NC} Installing termux-services..."
pkg install -y termux-services 2>/dev/null || {
echo -e "${RED}Failed to install termux-services${NC}"
exit 1
}
echo -e "${GREEN} OK${NC}"
# 2. Source sv helper (adds sv command to PATH)
echo -e "${YELLOW}[2/5]${NC} Loading service helpers..."
source "$PREFIX/etc/profile.d/start-services.sh" 2>/dev/null || true
echo -e "${GREEN} OK${NC}"
# 3. Make run scripts executable
echo -e "${YELLOW}[3/5]${NC} Setting permissions..."
SVC_DIR="$HOME/sms-server/termux-sms/services"
chmod +x "$SVC_DIR/sms-api/run"
chmod +x "$SVC_DIR/sms-api/log/run"
chmod +x "$SVC_DIR/sshd/run"
echo -e "${GREEN} OK${NC}"
# 4. Symlink services into runit service directory
echo -e "${YELLOW}[4/5]${NC} Registering services with runit..."
mkdir -p "$PREFIX/var/service"
# Remove old symlinks if they exist
rm -f "$PREFIX/var/service/sms-api" 2>/dev/null
rm -f "$PREFIX/var/service/sshd-custom" 2>/dev/null
ln -s "$SVC_DIR/sms-api" "$PREFIX/var/service/sms-api"
ln -s "$SVC_DIR/sshd" "$PREFIX/var/service/sshd-custom"
echo -e "${GREEN} OK${NC}"
# 5. Kill old watchdog and standalone processes
echo -e "${YELLOW}[5/5]${NC} Cleaning up old processes..."
pkill -f "sms-watchdog.sh" 2>/dev/null || true
pkill -f "termux-sms-api-server.py" 2>/dev/null || true
# Don't kill sshd — runit will take it over
echo -e "${GREEN} OK${NC}"
# Acquire wake lock
termux-wake-lock 2>/dev/null
echo ""
echo -e "${CYAN}═══════════════════════════════════════════════════${NC}"
echo -e "${GREEN}${BOLD} Setup complete!${NC}"
echo -e "${CYAN}═══════════════════════════════════════════════════${NC}"
echo ""
echo -e "${BOLD}Services registered:${NC}"
echo -e " ${GREEN}sms-api${NC} — Flask SMS API server (port 5001)"
echo -e " ${GREEN}sshd-custom${NC} — SSH daemon (port 8022)"
echo ""
echo -e "${BOLD}Management commands:${NC}"
echo -e " ${CYAN}sv status sms-api${NC} — Check status"
echo -e " ${CYAN}sv restart sms-api${NC} — Restart"
echo -e " ${CYAN}sv down sms-api${NC} — Stop"
echo -e " ${CYAN}sv up sms-api${NC} — Start"
echo -e " ${CYAN}cat ~/logs/sms-api.log${NC} — View logs"
echo ""
echo -e "${BOLD}runit will automatically restart services if they crash.${NC}"
echo ""
# Wait a moment for runit to pick up the new services
sleep 3
# Show status
echo -e "${BOLD}Current status:${NC}"
sv status sms-api 2>/dev/null || echo " sms-api: starting..."
sv status sshd-custom 2>/dev/null || echo " sshd-custom: starting..."
echo ""
echo -e "${BOLD}Health check:${NC}"
sleep 2
curl -s http://127.0.0.1:5001/health && echo "" || echo -e "${YELLOW} Server still starting — wait a few seconds and retry${NC}"