- scripts/install.sh: one-command hardened deploy (creates the water-monitor system user, deploys to /opt, builds a uv-managed venv, installs and enables the systemd unit). Idempotent; excludes .env/*.db/stations.json from sync so runtime state is preserved. - Fix placeholder Documentation= URL in water-monitor.service. - README: document the script as the primary systemd install path, with manual steps kept as a fallback.
40 lines
926 B
Desktop File
40 lines
926 B
Desktop File
[Unit]
|
|
Description=Thailand Water Level Monitor
|
|
Documentation=https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor
|
|
After=network.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=water-monitor
|
|
Group=water-monitor
|
|
WorkingDirectory=/opt/thailand-water-monitor
|
|
ExecStart=/opt/thailand-water-monitor/venv/bin/python src/water_scraper_v3.py
|
|
ExecReload=/bin/kill -HUP $MAINPID
|
|
Restart=always
|
|
RestartSec=60
|
|
TimeoutStopSec=30
|
|
|
|
# Environment variables
|
|
Environment=DB_TYPE=victoriametrics
|
|
Environment=VM_HOST=localhost
|
|
Environment=VM_PORT=8428
|
|
Environment=PYTHONPATH=/opt/thailand-water-monitor
|
|
Environment=PYTHONUNBUFFERED=1
|
|
|
|
# Security settings
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths=/opt/thailand-water-monitor
|
|
CapabilityBoundingSet=
|
|
|
|
# Logging
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=water-monitor
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|