42 lines
1.0 KiB
Desktop File
42 lines
1.0 KiB
Desktop File
[Unit]
|
|
Description=Turmli Bar Calendar Tool
|
|
Documentation=https://github.com/turmli/bar-calendar-tool
|
|
After=network.target network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=pi
|
|
Group=pi
|
|
WorkingDirectory=/opt/turmli-calendar
|
|
Environment="PATH=/opt/turmli-calendar/venv/bin:/usr/local/bin:/usr/bin:/bin"
|
|
Environment="PYTHONPATH=/opt/turmli-calendar"
|
|
Environment="TZ=Europe/Berlin"
|
|
|
|
# Use virtual environment Python with uvicorn
|
|
ExecStart=/opt/turmli-calendar/venv/bin/python -m uvicorn main:app --host 0.0.0.0 --port 8000 --workers 1 --log-level info
|
|
|
|
# Restart policy
|
|
Restart=always
|
|
RestartSec=10
|
|
StartLimitInterval=200
|
|
StartLimitBurst=5
|
|
|
|
# Resource limits for Raspberry Pi Zero
|
|
MemoryMax=256M
|
|
CPUQuota=75%
|
|
|
|
# Security hardening
|
|
PrivateTmp=true
|
|
NoNewPrivileges=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths=/opt/turmli-calendar/calendar_cache.json /opt/turmli-calendar/static
|
|
|
|
# Logging
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=turmli-calendar
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target |