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 |