No description
  • Shell 51.3%
  • Python 46.2%
  • Sieve 2.5%
Find a file
scripts 58dc1b7e43
All checks were successful
Pull latest scripts on all VMs / pull (push) Successful in 51s
docs: auto-update README.md [2026-11-02]
2026-11-02 07:00:26 +01:00
.forgejo/workflows Publish NetBox DNS to ns1 from denethor 2026-09-20 19:51:57 +02:00
01-archive Added old files to archive folder 2026-03-15 13:11:07 +00:00
amonsul.nm1.nl.exped.systems init: create script folder for amonsul.nm1.nl.exped.systems 2026-03-14 22:58:44 +00:00
argonath.ams1.nl.exped.systems init: create script folder for argonath.ams1.nl.exped.systems 2026-09-06 10:19:50 +02:00
atlas.wrt1.nl.exped.systems init: create script folder for atlas.wrt1.nl.exped.systems 2026-03-14 23:06:35 +00:00
barad-dur.hel1-1.fi.exped.systems init: create script folder for barad-dur.hel1-1.fi.exped.systems 2026-03-16 09:32:41 +01:00
boromir.ams1.nl.exped.systems init: create script folder for boromir.ams1.nl.exped.systems 2026-03-14 22:41:08 +00:00
citadel.ams1.nl.exped.systems fix: add sudo for privileged commands now runner runs as forgejo 2026-04-08 19:18:14 +02:00
denethor.ams1.nl.exped.systems Hand the lock file to the runner so the publish job can take it 2026-09-20 20:48:09 +02:00
dolgoldur.ams1.nl.exped.systems init: create script folder for dolgoldur.ams1.nl.exped.systems 2026-03-14 23:01:43 +00:00
elrond.ams1.nl.exped.systems init: create script folder for elrond.ams1.nl.exped.systems 2026-03-14 23:02:20 +00:00
eru.ams1.nl.exped.systems Sync checkouts with fetch and reset as forgejo instead of git pull 2026-09-16 21:27:25 +02:00
eru.nm1.nl.exped.systems Resolve mealie_tag_categorize conflict, keep the env-var version 2026-09-06 10:58:27 +02:00
fellowship.ams1.nl.exped.systems init: create script folder for fellowship.ams1.nl.exped.systems 2026-03-14 22:39:57 +00:00
ithildin.ams1.nl.exped.systems init: create script folder for ithildin.ams1.nl.exped.systems 2026-03-14 23:04:46 +00:00
khazaddum.ams1.nl.exped.systems init: create script folder for khazaddum.ams1.nl.exped.systems 2026-03-14 22:40:33 +00:00
khazaddum.nm1.nl.exped.systems init: create script folder for khazaddum.nm1.nl.exped.systems 2026-03-14 22:42:21 +00:00
khazaddum.wrt1.nl.exped.systems init: create script folder for khazaddum.wrt1.nl.exped.systems 2026-03-14 23:07:10 +00:00
lorien.ams1.nl.exped.systems init: create script folder for lorien.ams1.nl.exped.systems 2026-11-01 15:54:00 +01:00
mithrandir.ams1.nl.exped.systems fix: use sudo on remote SSH commands in dane-manager.sh 2026-04-08 23:04:49 +02:00
mithrandir.nm1.nl.exped.systems init: create script folder for mithrandir.nm1.nl.exped.systems 2026-03-14 22:59:19 +00:00
morannon.nm1.nl.exped.systems init: create script folder for morannon.nm1.nl.exped.systems 2026-03-14 22:41:45 +00:00
morannon.wrt1.nl.exped.systems init: create script folder for morannon.wrt1.nl.exped.systems 2026-03-14 23:07:46 +00:00
moria.ams1.nl.exped.systems fix: add sudo for privileged commands now runner runs as forgejo 2026-04-08 19:18:14 +02:00
olympia.ams1.nl.exped.systems init: create script folder for olympia.ams1.nl.exped.systems 2026-03-14 23:02:55 +00:00
palantir.ams1.nl.exped.systems Document the pull-all rework and the Spamhaus timeout retry 2026-08-29 11:38:01 +02:00
pippin.ams1.nl.exped.systems init: create script folder for pippin.ams1.nl.exped.systems 2026-03-14 23:04:09 +00:00
sauron.ams1.nl.exped.systems init: create script folder for sauron.ams1.nl.exped.systems 2026-03-14 23:06:00 +00:00
smeagol.nm1.nl.exped.systems init: create script folder for smeagol.nm1.nl.exped.systems 2026-03-14 23:00:30 +00:00
strider.ams1.nl.exped.systems Bump a zone's serial only when its content changed 2026-09-20 19:22:48 +02:00
strider.fsn1.de.exped.systems init: create script folder for strider.fsn1.de.exped.systems 2026-03-16 09:32:43 +01:00
README.md docs: auto-update README.md [2026-11-02] 2026-11-02 07:00:26 +01:00

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

  1. Create your script in the VM's folder: <fqdn>/myscript.sh
  2. Make it executable: git update-index --chmod=+x <fqdn>/myscript.sh
  3. Create a workflow in .forgejo/workflows/scheduled/<fqdn>/myscript.yml
  4. Push — the pull-all workflow distributes it to all VMs automatically

Editing an existing script

  1. Edit the script file directly
  2. 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.