adding a bunch of untested files
Some checks failed
Deploy API / deploy (push) Failing after 1s

This commit is contained in:
Your Name 2026-05-19 20:12:49 -04:00
parent ab3a76cd0f
commit 56d8fb4d56
85 changed files with 8879 additions and 0 deletions

102
clio-pi/README.md Normal file
View file

@ -0,0 +1,102 @@
# Clio Pi
Raspberry Pi recording station for the Clio audio system.
## Features
- Continuous audio recording with ffmpeg (opus codec, 2hr segments)
- Systemd service for auto-start on boot
- HTML status page showing recording coverage
- NTP time sync via chrony
- SSH key-only access (hardened)
## Quick Setup
1. Flash Raspberry Pi OS Lite to SD card using Raspberry Pi Imager
2. Configure in Imager: hostname, user/pass, WiFi, enable SSH
3. Boot and SSH into Pi
4. Copy this directory to the Pi:
```bash
rsync -avz /work/projects/clio/clio-pi/ pi@<pi-ip>:~/clio-pi/
```
5. Run setup:
```bash
ssh pi@<pi-ip>
cd ~/clio-pi
sudo ./setup.sh
```
6. Add your SSH key before rebooting:
```bash
ssh-copy-id pi@<pi-ip>
```
7. Start recording:
```bash
sudo systemctl start record.service
```
## Files
```
clio-pi/
├── setup.sh # Main setup script (run with sudo)
├── bin/
│ ├── record.sh # Recording loop (ffmpeg)
│ └── gen_recording_status.py # Status page generator
├── systemd/
│ └── record.service # Systemd service unit
└── README.md
```
## Configuration
Edit `~/bin/record.sh` environment variables:
| Variable | Default | Description |
|----------|---------|-------------|
| `AUDIO_DEVICE` | `hw:1` | ALSA device (run `arecord -l` to list) |
| `SEGMENT_SECONDS` | `7200` | Segment length (2 hours) |
| `RECORDINGS_DIR` | `~/recordings` | Output directory |
| `SOURCE_NAME` | `stationary` | Filename prefix |
## Services
| Service | Description |
|---------|-------------|
| `record.service` | Recording daemon |
| `chrony` | NTP time sync |
| `nginx` | Status page web server |
## Commands
```bash
# Recording service
sudo systemctl start record.service
sudo systemctl stop record.service
sudo systemctl status record.service
journalctl -u record.service -f
# Check time sync
chronyc tracking
timedatectl
# View status page
curl http://localhost/
```
## Syncing Recordings to Server
TODO: Add rsync/sync script to push recordings to server (10.0.0.45)
## Audio Device Setup
List available devices:
```bash
arecord -l
```
Example output:
```
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
```
This would be `hw:1,0` or just `hw:1`.