- Shell 98%
- Dockerfile 2%
|
|
||
|---|---|---|
| .gitignore | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| cliff.toml | ||
| Dockerfile | ||
| LICENSE | ||
| mtmirror.sh | ||
| pemmikan.md | ||
| README.md | ||
mtmirror
Lokaler MikroTik-Firmware-Mirror — lädt einen definierten Scope an RouterOS-Versionen (NPK, all_packages, CHR-Images, netinstall) idempotent von download.mikrotik.com in eine lokale Ablage. Diff-Download: vorhandene, vollständige Dateien werden übersprungen.
Features
- Idempotent: erneuter Lauf lädt nur Fehlendes/Unvollständiges nach (Size-Check via HEAD)
- Scope-gepinnt: feste Versionslisten für v7 (stable + LTS-Milestones) und v6 (LTS-Ast) im Script
- Resume: abgebrochene Downloads werden fortgesetzt (
curl -C -) - Konfiguration komplett via Env — containertauglich ohne Umbau
- Pro Version: NPK je Architektur (v7), all_packages-Zip, CHANGELOG, netinstall, CHR (img + ova)
Aufruf
mtmirror fetch # kompletten Scope laden (idempotent)
mtmirror fetch 7.23 # konkrete Version laden
mtmirror daemon # fetch-Schleife: sofort + alle MIRROR_INTERVAL (24h)
mtmirror # Hilfe
list, verify, pin, prune sind Stubs (Roadmap, siehe Issues).
Konfiguration (Env)
| Variable | Default | Bedeutung |
|---|---|---|
MIRROR_ROOT |
$HOME/share/mikrotik-mirror |
Wurzelpfad der Ablage |
MIRROR_ARCHS_V7 |
arm arm64 mipsbe mmips |
v7-Architekturen |
MIRROR_ARCHS_V6 |
arm mipsbe mmips |
v6-Architekturen |
MIRROR_INCLUDE_PACKAGES |
1 |
all_packages-Zips mitladen |
MIRROR_INCLUDE_CHR |
1 |
CHR-Images (img.zip + ova) mitladen |
MIRROR_INCLUDE_NETINSTALL |
1 |
netinstall-Archive mitladen |
MIRROR_INTERVAL |
24h |
daemon: Schlafzeit zwischen fetch-Läufen |
Voraussetzungen
bash, curl, coreutils (stat) — sonst nichts.
Installation
git clone https://forgejo.mueller.network/holm.tools.public/mtmirror.git
ln -s "$(pwd)/mtmirror/mtmirror.sh" ~/bin/mtmirror
Container
Das Image läuft als Daemon: sofortiger Abgleich, danach alle MIRROR_INTERVAL
(Default 24h) erneut — kein Host-Cron nötig. SIGTERM beendet sauber.
docker build -t mtmirror .
docker run -d -v /pfad/zum/mirror:/mirror --restart unless-stopped mtmirror
docker run --rm -v /pfad/zum/mirror:/mirror mtmirror fetch 7.23 # One-Shot
Beispiel compose-Service:
services:
mtmirror:
build: .
restart: unless-stopped
volumes:
- ./mirror:/mirror
environment:
MIRROR_INCLUDE_CHR: "0"
Hinweis
Die heruntergeladenen Dateien sind Eigentum von MikroTik — siehe mikrotik.com für Lizenzinformationen. Dieses Tool verteilt keine Firmware, es befüllt ausschließlich deine eigene, private Ablage.
Changelog
Siehe CHANGELOG.md — generiert via git-cliff.
Lizenz
MIT — siehe LICENSE.