- Dockerfile.social: social-bot container with faster-whisper, llama-cpp-python (CUDA), piper-tts, insightface, pyannote.audio, OpenWakeWord, pyaudio - scripts/convert_models.sh: TRT FP16 conversion for SCRFD-10GF, ArcFace-R100, ECAPA-TDNN; CTranslate2 setup for Whisper; Piper voice download; benchmark suite - config/asound.conf: ALSA USB mic (card1) + USB speaker (card2) config - models/README.md: version-pinned model table, /models/ layout, perf targets - systemd/: saltybot-social.service + saltybot.target + install_systemd.sh - docker-compose.yml: saltybot-social service with GPU, audio device passthrough, NVMe volume mounts for /models and /social_db Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
1.0 KiB
Bash
34 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
# install_systemd.sh — Install saltybot systemd services on Orin
|
|
# Run as root: sudo ./systemd/install_systemd.sh
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_DIR="$(dirname "${SCRIPT_DIR}")"
|
|
SYSTEMD_DIR="/etc/systemd/system"
|
|
DEPLOY_DIR="/opt/saltybot/jetson"
|
|
|
|
log() { echo "[install_systemd] $*"; }
|
|
|
|
[[ "$(id -u)" == "0" ]] || { echo "Run as root"; exit 1; }
|
|
|
|
# Deploy repo to /opt/saltybot/jetson
|
|
log "Deploying to ${DEPLOY_DIR}..."
|
|
mkdir -p "${DEPLOY_DIR}"
|
|
rsync -a --exclude='.git' --exclude='__pycache__' \
|
|
"${REPO_DIR}/" "${DEPLOY_DIR}/"
|
|
|
|
# Install service files
|
|
log "Installing systemd units..."
|
|
cp "${SCRIPT_DIR}/saltybot.target" "${SYSTEMD_DIR}/"
|
|
cp "${SCRIPT_DIR}/saltybot-social.service" "${SYSTEMD_DIR}/"
|
|
|
|
# Reload and enable
|
|
systemctl daemon-reload
|
|
systemctl enable saltybot.target
|
|
systemctl enable saltybot-social.service
|
|
|
|
log "Services installed. Start with:"
|
|
log " systemctl start saltybot-social"
|
|
log " journalctl -fu saltybot-social"
|