Initial commit: self-hosted personal radio station
Flask + React web UI with audio player, podcast queue, feed management, episode browser, music library, schedule viewer, and log tail. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Local Radio - Icecast Streaming Server
|
||||
After=network.target
|
||||
Wants=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/icecast2 -c /opt/localradio/config/icecast.xml
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
User=localradio
|
||||
Group=localradio
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description=Local Radio - RSS Feed Poller
|
||||
After=localradio-stream.service
|
||||
Wants=localradio-stream.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/opt/localradio/venv/bin/python /opt/localradio/scripts/poll_feeds.py
|
||||
Restart=always
|
||||
RestartSec=30
|
||||
User=localradio
|
||||
Group=localradio
|
||||
EnvironmentFile=-/opt/localradio/config/localradio.env
|
||||
Environment=LOCALRADIO_BASE=/opt/localradio
|
||||
Environment=PYTHONPATH=/opt/localradio/scripts
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,21 @@
|
||||
[Unit]
|
||||
Description=Local Radio - Liquidsoap Stream Engine
|
||||
After=localradio-icecast.service
|
||||
Requires=localradio-icecast.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/liquidsoap /opt/localradio/config/station.liq
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
User=localradio
|
||||
Group=localradio
|
||||
EnvironmentFile=-/opt/localradio/config/localradio.env
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
# Give Liquidsoap time to initialize
|
||||
TimeoutStartSec=30
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description=Local Radio - Web Dashboard
|
||||
After=localradio-stream.service
|
||||
Wants=localradio-stream.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/opt/localradio/venv/bin/python -m web.app
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
User=localradio
|
||||
Group=localradio
|
||||
EnvironmentFile=-/opt/localradio/config/localradio.env
|
||||
Environment=LOCALRADIO_BASE=/opt/localradio
|
||||
WorkingDirectory=/opt/localradio
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user