This directory contains utility scripts for Boon-Tube-Daemon setup, configuration, and management.
Interactive secrets setup wizard
Helps you configure credentials across multiple secrets management platforms.
Usage:
./scripts/create-secrets.shFeatures:
- ✅ Supports Doppler, AWS Secrets Manager, HashiCorp Vault, and .env files
- ✅ Interactive prompts for all platforms
- ✅ Loads existing .env values as defaults
- ✅ Separates config from secrets (when using secrets managers)
- ✅ Environment-aware (dev/staging/production)
Documentation:
systemd service installation script
Installs Boon-Tube-Daemon as a Linux systemd service with automatic startup.
Usage:
sudo ./scripts/install-systemd.shFeatures:
- ✅ Supports both Python and Docker deployments
- ✅ Creates Python virtual environment (Python mode)
- ✅ Uses GHCR image or builds locally (Docker mode)
- ✅ Configures automatic restart on failure
- ✅ Sets up proper permissions and security
- ✅ Loads configuration from .env file
- ✅ Monitors YouTube uploads (not livestreams)
Service Management:
# Start the service
sudo systemctl start boon-tube-daemon
# Check status
sudo systemctl status boon-tube-daemon
# View logs
sudo journalctl -u boon-tube-daemon -f
# Stop the service
sudo systemctl stop boon-tube-daemonsystemd service removal script
Removes the Boon-Tube-Daemon systemd service and optionally cleans up Docker resources.
Usage:
sudo ./scripts/uninstall-systemd.shFeatures:
- ✅ Stops and disables service
- ✅ Removes systemd service file
- ✅ Cleans up Docker containers (Docker mode)
- ✅ Optionally removes Docker images (local or GHCR)
- ✅ Preserves .env and project files by default
Matrix bot configuration helper
Helps set up Matrix bot credentials and room configuration.
Usage:
./scripts/setup_matrix_bot.shAll scripts require:
- Linux operating system
- Bash shell
- Run from the project root directory (not from within scripts/)
create-secrets.sh requires:
- Python 3.10+ installed
- Platform-specific tools (optional):
- Doppler CLI for Doppler integration
- AWS CLI for AWS Secrets Manager
- Vault CLI for HashiCorp Vault
install-systemd.sh requires:
- Root/sudo access
- systemd (Linux)
- For Python mode: Python 3.10+, pip
- For Docker mode: Docker, Docker Compose
uninstall-systemd.sh requires:
- Root/sudo access
- systemd (Linux)
First-time setup:
-
Configure secrets:
./scripts/create-secrets.sh
-
Install as service:
sudo ./scripts/install-systemd.sh
-
Manage service:
sudo systemctl status stream-daemon sudo systemctl stop stream-daemon sudo systemctl start stream-daemon sudo journalctl -u stream-daemon -f
To uninstall:
sudo ./scripts/uninstall-systemd.shAll scripts automatically detect the project directory:
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"This means:
- Scripts can be run from anywhere
PROJECT_DIRalways points to the project root.envfile is looked for inPROJECT_DIR/.env- No manual path configuration needed
Adding a new script:
- Create script in
scripts/directory - Make it executable:
chmod +x scripts/your-script.sh - Use proper path detection:
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
- Reference project files via
$PROJECT_DIR:source "$PROJECT_DIR/.env" python "$PROJECT_DIR/stream-daemon.py"
- Update this README with script documentation
- Update main README.md if it's a user-facing script
Happy scripting! 🚀