- Quote file modes. Unquoted 644/755 were read as decimal, so files landed as 1204. Templates holding secrets are now 0640 root:docker. - Stop publishing Authentik 9000/9443 and Karakeep 3000 (Caddy reaches them over the docker network), bind dir2opds to the Tailscale IP, and drop Caddy's unused 8448. - Atuin login uses no_log and only runs once; the installer only runs when Atuin is missing. - Make chsh, ufw-docker install, the bat symlink and Atuin dotfiles idempotent. - Back up the Paperless data volume (SQLite DB), stopping Paperless during the backup. - Close public sign-up on kosync and ByteStash. - Replace hardcoded IPs and domains with variables. - Remove teardown tasks and templates for 9 retired services. - Fix the dockcheck comment: it auto-updates labelled containers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cron Role
Purpose
Manages scheduled tasks and automated maintenance jobs for the infrastructure.
What It Does
Warhammer RSS Feed Updater
- Copies
update_warhammer_feed.shscript to/usr/local/bin/with executable permissions - Creates a daily cron job that runs at 09:10 AM
- The script performs these actions:
- Creates a temporary directory
/tmp/warhammer_feed - Runs a custom Docker container (
git.thesatelliteoflove.com/phil/rss-warhammer) to generate RSS feed - Copies the generated
warhammer_rss_feed.xmlto/opt/stacks/caddy/site/tsol/feeds/ - Restarts the Glance dashboard stack to reflect the updated feed
- Creates a temporary directory
Files Managed
/usr/local/bin/update_warhammer_feed.sh- RSS feed update script- Cron job: "Update Warhammer RSS Feed" (daily at 09:10)
Dependencies
- Requires Docker to be installed and running
- Depends on the following Docker stacks being deployed:
- Custom RSS generator container at
git.thesatelliteoflove.com/phil/rss-warhammer - Caddy web server stack at
/opt/stacks/caddy/ - Glance dashboard stack at
/opt/stacks/glance/
- Custom RSS generator container at
Usage
This role is automatically applied as part of the main site.yml playbook with the cron tag.
# Deploy only cron jobs
ansible-playbook site.yml -i hosts.yml --tags cron
Customization
To add additional cron jobs, create new tasks in the main.yml file following the same pattern as the Warhammer feed updater.