Initial commit, prod ready
This commit is contained in:
35
music-orchestrator.service
Normal file
35
music-orchestrator.service
Normal file
@@ -0,0 +1,35 @@
|
||||
[Unit]
|
||||
Description=Music Orchestrator API
|
||||
# Start after network is up (needed for iTunes/YouTube calls)
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
# Runs as the user who installed the app (set by deploy.sh)
|
||||
User=%i
|
||||
WorkingDirectory=/opt/music-orchestrator/backend
|
||||
|
||||
# Use the virtualenv's uvicorn
|
||||
ExecStart=/opt/music-orchestrator/backend/venv/bin/uvicorn \
|
||||
main:app \
|
||||
--host 127.0.0.1 \
|
||||
--port 8000 \
|
||||
--workers 1
|
||||
|
||||
# NOTE: workers=1 is intentional.
|
||||
# Download job state is held in memory. Multiple workers would each
|
||||
# have their own job store, breaking status polling.
|
||||
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
|
||||
# Give long-running downloads time to finish before force-killing
|
||||
TimeoutStopSec=30s
|
||||
|
||||
# Logging goes to journald — view with: journalctl -u music-orchestrator -f
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user