Commit All
This commit is contained in:
		
							
								
								
									
										42
									
								
								deployment/turmli-calendar.service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								deployment/turmli-calendar.service
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
[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
 | 
			
		||||
		Reference in New Issue
	
	Block a user