hvac-kia-content/systemd/hvac-content-aggregator@.service
Ben Reed 05218a873b Fix critical production issues and improve spec compliance
Production Readiness Improvements:
- Fixed scheduling to match spec (8 AM & 12 PM ADT instead of 6 AM/6 PM)
- Enabled NAS synchronization in production runner with error handling
- Fixed file naming convention to spec format (hvacknowitall_combined_YYYY-MM-DD-THHMMSS.md)
- Made systemd services portable (removed hardcoded user/paths)
- Added environment variable validation on startup
- Moved DISPLAY/XAUTHORITY to .env configuration

Systemd Improvements:
- Created template service file (@.service) for any user
- Changed all paths to /opt/hvac-kia-content
- Updated installation script for portable deployment
- Fixed service dependencies and resource limits

Documentation:
- Created comprehensive PRODUCTION_TODO.md with 25 tasks
- Added PRODUCTION_GUIDE.md with deployment instructions
- Documented spec compliance gaps (65% complete)

Remaining work includes retry logic, connection pooling, media downloads,
and pytest test suite as documented in PRODUCTION_TODO.md

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 20:07:55 -03:00

35 lines
No EOL
762 B
Desktop File

[Unit]
Description=HVAC Know It All Content Aggregator for %i
After=network.target
[Service]
Type=oneshot
# Use the instance name as the user
User=%i
Group=%i
WorkingDirectory=/opt/hvac-kia-content
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
# Load environment variables
EnvironmentFile=/opt/hvac-kia-content/.env
# Python path
Environment="PYTHONPATH=/opt/hvac-kia-content"
# Run the aggregator
ExecStart=/usr/bin/env python3 /opt/hvac-kia-content/run_production.py --job regular
# Restart on failure
Restart=on-failure
RestartSec=60
# Resource limits
MemoryLimit=1G
CPUQuota=80%
# Logging
StandardOutput=append:/var/log/hvac-content/aggregator.log
StandardError=append:/var/log/hvac-content/aggregator-error.log
[Install]
WantedBy=multi-user.target