[Unit] Description=Payroll API Wants=network-online.target After=network-online.target StartLimitIntervalSec=300 StartLimitBurst=5 [Service] Type=simple User=payroll Group=payroll WorkingDirectory=/opt/payroll/backend EnvironmentFile=/etc/payroll/payroll.env Environment=TZ=Asia/Shanghai Environment=PYTHONUNBUFFERED=1 ExecStart=/opt/payroll/backend/.venv/bin/python -m uvicorn app.main:app --host 127.0.0.1 --port 8000 Restart=on-failure RestartSec=10 TimeoutStopSec=900 NoNewPrivileges=true ProtectSystem=strict ProtectHome=true PrivateTmp=true ReadWritePaths=/opt/payroll/backend/logs /opt/payroll/backend/uploads [Install] WantedBy=multi-user.target