Files
pi-pm3/systemd/dangerous-pi.service
michael 4f35df1781 Initial commit - Phase 3/4
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 13:46:22 -08:00

56 lines
1.5 KiB
Desktop File

[Unit]
Description=Dangerous Pi Backend Service
Documentation=https://github.com/yourusername/dangerous-pi
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=__DANGEROUS_PI_USER__
Group=__DANGEROUS_PI_USER__
WorkingDirectory=/opt/dangerous-pi
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin"
Environment="PYTHONUNBUFFERED=1"
Environment="PYTHONPATH=/home/__DANGEROUS_PI_USER__/.pm3/proxmark3/client/pyscripts:/home/__DANGEROUS_PI_USER__/.pm3/proxmark3/client/experimental_lib/build"
EnvironmentFile=-/opt/dangerous-pi/.env
# Main service command
ExecStart=/usr/bin/python3 -m uvicorn app.backend.main:app \
--host 0.0.0.0 \
--port 8000 \
--log-level info
# Restart policy
Restart=always
RestartSec=10
StartLimitBurst=5
StartLimitInterval=60
# Resource limits
LimitNOFILE=65536
MemoryMax=512M
CPUQuota=80%
# Security hardening
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=read-only
ReadWritePaths=/opt/dangerous-pi/data /opt/dangerous-pi/logs /etc/NetworkManager/conf.d
ReadOnlyPaths=/opt/dangerous-pi /home/__DANGEROUS_PI_USER__/.pm3 /usr/local/bin
# Allow I2C and Bluetooth access
SupplementaryGroups=i2c bluetooth gpio dialout netdev
# Network management capabilities (for WiFi scanning/configuration without sudo)
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW
# Graceful shutdown
TimeoutStopSec=30
KillMode=mixed
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target