- Create debian/ directory structure with all required files: - control: Package metadata and dependencies - compat: Debhelper compatibility level - changelog: Version history - rules: Build instructions - install: File installation mappings - postinst: Post-installation setup (user, venv, setcap) - prerm: Pre-removal script (stop service) - postrm: Post-removal script (cleanup, preserve config) - sensorpajen.service: System-wide systemd unit - Update config.py to support dual-mode operation: - Auto-detects system installation (/opt/sensorpajen) - Uses /etc/sensorpajen for config in system mode - Falls back to PROJECT_ROOT/config for development - Update scripts/approve-sensors.sh for system paths: - Detects system vs development installation - Uses correct venv and config paths - Create scripts/verify-deb.sh: Automated build and verification - Create debian/README.md: Comprehensive packaging documentation Package features: - System-wide installation to /opt/sensorpajen/ - Configuration in /etc/sensorpajen/ (preserved on upgrade/remove) - Dedicated sensorpajen system user - Automatic venv creation with dependencies - Bluetooth capabilities set automatically - Service auto-enabled but waits for config before starting - Dual-mode code supports both system and development installations
33 lines
771 B
Desktop File
33 lines
771 B
Desktop File
[Unit]
|
|
Description=Sensorpajen - Bluetooth Temperature Sensor Monitor
|
|
Documentation=https://github.com/yourusername/sensorpajen
|
|
After=network.target bluetooth.target
|
|
Wants=bluetooth.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=sensorpajen
|
|
Group=sensorpajen
|
|
WorkingDirectory=/opt/sensorpajen
|
|
EnvironmentFile=/etc/sensorpajen/sensorpajen.env
|
|
ExecStart=/opt/sensorpajen/venv/bin/python -m sensorpajen.main
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
# Bluetooth capabilities require this to be false
|
|
NoNewPrivileges=false
|
|
|
|
# Logging
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=sensorpajen
|
|
|
|
# Security hardening (where possible with Bluetooth requirements)
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths=/etc/sensorpajen
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|