[Unit] Description=goodNews ingestion cycle (poll due sources, classify, rebuild brief) After=network-online.target Wants=network-online.target [Service] Type=oneshot User=jay Group=jay WorkingDirectory=/home/jay/goodNews # Optional config (LLM endpoint, DB path). The leading '-' makes it non-fatal # if the file is absent. EnvironmentFile=-/etc/goodnews/goodnews.env ExecStart=/home/jay/goodNews/.venv/bin/python -m goodnews cycle # A cycle may classify dozens of articles through a local model; give it room # so systemd does not kill a long run (oneshot defaults to 90s). TimeoutStartSec=1200 Nice=10 [Install] WantedBy=multi-user.target