[Unit] Description=OPLabs Mixer Backend (FastAPI) Documentation=https://gitea.ourpad.casa/oplabs/oplabs-mixer-app After=network.target oplabs-mixer-daemon.service Wants=oplabs-mixer-daemon.service StartLimitBurst=5 StartLimitIntervalSec=30 [Service] Type=simple User=oplabs Group=oplabs WorkingDirectory=/home/oplabs/projects/oplabs-mixer-app/backend Environment=PATH=/home/oplabs/projects/oplabs-mixer-app/backend/venv/bin:/usr/local/bin:/usr/bin Environment=PYTHONUNBUFFERED=1 SyslogIdentifier=oplabs-mixer-backend # Auth credentials from environment file (optional — create for HTTP Basic Auth) EnvironmentFile=-/etc/oplabs/mixer-backend.env # Uncomment these to enable HTTP Basic Auth (for NPMplus reverse proxy): # Environment=MIXER_AUTH_ENABLED=true # Environment=MIXER_AUTH_USERNAME=oplabs # Environment=MIXER_AUTH_PASSWORD=your-password-here ExecStart=/home/oplabs/projects/oplabs-mixer-app/backend/venv/bin/uvicorn app:app --host 0.0.0.0 --port 8081 --workers 2 # Exit code 143 (SIGTERM) is expected on clean shutdown — don't restart for that Restart=always RestartSec=5 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target