No description
- Shell 51.3%
- Python 46.2%
- Sieve 2.5%
|
All checks were successful
Pull latest scripts on all VMs / pull (push) Successful in 51s
|
||
|---|---|---|
| .forgejo/workflows | ||
| 01-archive | ||
| amonsul.nm1.nl.exped.systems | ||
| argonath.ams1.nl.exped.systems | ||
| atlas.wrt1.nl.exped.systems | ||
| barad-dur.hel1-1.fi.exped.systems | ||
| boromir.ams1.nl.exped.systems | ||
| citadel.ams1.nl.exped.systems | ||
| denethor.ams1.nl.exped.systems | ||
| dolgoldur.ams1.nl.exped.systems | ||
| elrond.ams1.nl.exped.systems | ||
| eru.ams1.nl.exped.systems | ||
| eru.nm1.nl.exped.systems | ||
| fellowship.ams1.nl.exped.systems | ||
| ithildin.ams1.nl.exped.systems | ||
| khazaddum.ams1.nl.exped.systems | ||
| khazaddum.nm1.nl.exped.systems | ||
| khazaddum.wrt1.nl.exped.systems | ||
| lorien.ams1.nl.exped.systems | ||
| mithrandir.ams1.nl.exped.systems | ||
| mithrandir.nm1.nl.exped.systems | ||
| morannon.nm1.nl.exped.systems | ||
| morannon.wrt1.nl.exped.systems | ||
| moria.ams1.nl.exped.systems | ||
| olympia.ams1.nl.exped.systems | ||
| palantir.ams1.nl.exped.systems | ||
| pippin.ams1.nl.exped.systems | ||
| sauron.ams1.nl.exped.systems | ||
| smeagol.nm1.nl.exped.systems | ||
| strider.ams1.nl.exped.systems | ||
| strider.fsn1.de.exped.systems | ||
| README.md | ||
Expeditioner Scripts
Host-specific scripts for the exped.systems infrastructure. Cronjobs have been replaced with Forgejo Actions for better visibility, logging and control.
How it works
- Ansible (
Expeditioner/exped_ansible) deploys this repo as a sparse clone to each VM at/opt/scripts/repo/<fqdn>/ - Each VM runs a Forgejo runner registered with its FQDN as the label
- Workflows in
.forgejo/workflows/trigger scripts on the correct VM via the runner label - On every push to
main, all VMs automatically pull the latest scripts
Working with scripts
Adding a new script
- Create your script in the VM's folder:
<fqdn>/myscript.sh - Make it executable:
git update-index --chmod=+x <fqdn>/myscript.sh - Create a workflow in
.forgejo/workflows/scheduled/<fqdn>/myscript.yml - Push — the pull-all workflow distributes it to all VMs automatically
Editing an existing script
- Edit the script file directly
- Commit and push - pull-all resets every VM's checkout to origin/main, and each workflow does the same before it runs. Never edit /opt/scripts/repo on a host: local edits are discarded.
Running a script manually
Go to Forgejo Actions and trigger the specific scheduled workflow directly, or use the manual dispatch option.
Secrets
Secrets are stored as Forgejo Variables in this repo's Settings. Scripts receive them as environment variables set in the workflow file.
Script inventory
.
├── amonsul.nm1.nl.exped.systems
├── argonath.ams1.nl.exped.systems
├── atlas.wrt1.nl.exped.systems
├── barad-dur.hel1-1.fi.exped.systems
├── boromir.ams1.nl.exped.systems
├── citadel.ams1.nl.exped.systems
│ └── nextcloud-scan.sh · Every hour
├── denethor.ams1.nl.exped.systems
│ └── dns-push.sh
├── dolgoldur.ams1.nl.exped.systems
├── elrond.ams1.nl.exped.systems
├── eru.ams1.nl.exped.systems
│ ├── forgejo-vars.sh
│ ├── generate-readme.sh · At 06:00
│ └── notify-failure.sh · At 06:00
├── eru.nm1.nl.exped.systems
│ └── mealie_bulk_import
│ ├── mealie_bulk_import.py
│ ├── mealie_debug.py
│ ├── mealie_fixall.py
│ ├── mealie_import.txt
│ ├── mealie_parse_ingredients.py
│ ├── mealie_restore_ingredients.py
│ └── mealie_tag_categorize.py
├── fellowship.ams1.nl.exped.systems
├── ithildin.ams1.nl.exped.systems
├── khazaddum.ams1.nl.exped.systems
├── khazaddum.nm1.nl.exped.systems
├── khazaddum.wrt1.nl.exped.systems
├── lorien.ams1.nl.exped.systems
├── mithrandir.ams1.nl.exped.systems
│ └── dane-manager.sh · At 03:00 and 15:00
├── mithrandir.nm1.nl.exped.systems
├── morannon.nm1.nl.exped.systems
├── morannon.wrt1.nl.exped.systems
├── moria.ams1.nl.exped.systems
│ └── updatebw.sh · At 02:00, only on Friday
├── olympia.ams1.nl.exped.systems
├── palantir.ams1.nl.exped.systems
│ └── spamhaus-submit
│ ├── check.py · At 05:00
│ ├── llm.py
│ ├── never-submit.yml
│ ├── purge.py · At 04:00, only on Sunday
│ ├── scan.py · At 05:00
│ ├── sieve
│ │ └── global_sieve_before.sieve
│ ├── spamlib.py
│ ├── submit.py · At 05:00
│ └── summary.py · At 04:00, only on Sunday
├── pippin.ams1.nl.exped.systems
├── sauron.ams1.nl.exped.systems
├── smeagol.nm1.nl.exped.systems
├── strider.ams1.nl.exped.systems
│ ├── dnssec.sh · At 03:00 and 15:00
│ └── pdns-sync.sh · Every 30 minutes
└── strider.fsn1.de.exped.systems
This README is auto-generated daily by eru.ams1.nl.exped.systems/generate-readme.sh.
Do not edit manually — changes will be overwritten.