# Raspberry Pi Installation Guide

This guide explains how to install the `soundtouch-service` as a persistent systemd service on a Raspberry Pi (tested on Raspberry Pi Zero 2W, 3, and 4).

## Automated Installer

We provide a specialized installer script located in the `scripts/raspberry-pi/` directory of the repository.

### Features
*   **Automatic start on boot**: Installs a systemd unit.
*   **Non-root operation**: Uses `AmbientCapabilities` to bind to ports 80/443 without root privileges.
*   **Arch Detection**: Automatically selects the correct binary for `armv7`, `arm64`, or `amd64`.
*   **Easy Updates**: Re-running the script updates the binary to the latest version.

### Installation Steps

1.  **Download the installer**:
    ```bash
    curl -fsSL -o install.sh https://raw.githubusercontent.com/gesellix/bose-soundtouch/main/scripts/raspberry-pi/install.sh
    ```

2.  **Run with sudo**:
    ```bash
    sudo bash install.sh
    ```

### Overriding Defaults

You can customize the installation using environment variables:

```bash
sudo \
  VERSION=v0.17.0 \
  HOSTNAME_FQDN=soundtouch.local \
  HTTP_PORT=80 \
  HTTPS_PORT=443 \
  bash install.sh
```

### Updating the Service

To update the service to a specific version, run the installer with the version as an argument:

```bash
sudo bash install.sh v0.18.1
```

The installer will automatically fetch the latest version of itself for that release and then update the service binary and restart it.

## Management

Once installed, use standard `systemctl` commands to manage the service:

```bash
# Check status
systemctl status soundtouch-service

# Follow logs
journalctl -u soundtouch-service -f

# Restart
sudo systemctl restart soundtouch-service
```

## Configuration

Configuration is stored in `/etc/soundtouch-service/soundtouch-service.env`. Note that settings saved via the Web UI (in `settings.json`) will take precedence over these environment variables once the service is running.

For more details, see the [scripts/raspberry-pi/README.md](../../scripts/raspberry-pi/README.md) in the repository.
