Skip to content

Commit b23de8a

Browse files
committed
Add systemd daemon installation documentation to README
1 parent ceac84c commit b23de8a

1 file changed

Lines changed: 39 additions & 4 deletions

File tree

‎README.md‎

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,19 @@ uvx sendspin serve https://retro.dancewave.online/retrodance.mp3
2828

2929
## Installation
3030

31-
**With pip:**
31+
**With uv:**
3232
```bash
33-
pip install sendspin
33+
uv tool install sendspin
3434
```
3535

36-
**With uv:**
36+
**Install as daemon (Linux):**
3737
```bash
38-
uv tool install sendspin
38+
curl -fsSL https://raw.githubusercontent.com/Sendspin-Protocol/sendspin/main/sendspin-cli/scripts/systemd/install-systemd.sh | sudo bash
39+
```
40+
41+
**With pip:**
42+
```bash
43+
pip install sendspin
3944
```
4045

4146
<details>
@@ -143,6 +148,36 @@ This player is highly experimental and has several known limitations:
143148
- **Format Support**: Currently fixed to uncompressed 44.1kHz 16-bit stereo PCM
144149
- **Configuration Persistence**: Settings are not persistently stored; delay must be reconfigured on each restart using the `--static-delay-ms` option
145150

151+
## Install as Daemon (systemd, Linux)
152+
153+
For headless devices like Raspberry Pi, you can install Sendspin as a systemd service that starts automatically on boot.
154+
155+
**Install:**
156+
```bash
157+
curl -fsSL https://raw.githubusercontent.com/Sendspin-Protocol/sendspin/main/sendspin-cli/scripts/systemd/install-systemd.sh | sudo bash
158+
```
159+
160+
The installer will:
161+
- Check and offer to install dependencies (libportaudio2, uv)
162+
- Install sendspin via `uv tool install`
163+
- Prompt for client name and audio device selection
164+
- Create systemd service and configuration
165+
166+
**Manage the service:**
167+
```bash
168+
sudo systemctl start sendspin # Start the service
169+
sudo systemctl stop sendspin # Stop the service
170+
sudo systemctl status sendspin # Check status
171+
journalctl -u sendspin -f # View logs
172+
```
173+
174+
**Configuration:** Edit `/etc/default/sendspin` to change client name, audio device, or delay settings.
175+
176+
**Uninstall:**
177+
```bash
178+
curl -fsSL https://raw.githubusercontent.com/Sendspin-Protocol/sendspin/main/sendspin-cli/scripts/systemd/uninstall-systemd.sh | sudo bash
179+
```
180+
146181
## Sendspin Party
147182

148183
The Sendspin client includes a mode to enable hosting a Sendspin Party. This will start a Sendspin server playing a specified audio file or URL in a loop, allowing nearby Sendspin clients to connect and listen together. It also hosts a web interface for easy playing and sharing. Fire up that home or office 🔥

0 commit comments

Comments
 (0)