Files
turmlibar-calendar/deployment/turmli-calendar.service
2025-10-30 13:33:08 +01:00

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