feat(collections): add German/Austria ZIM categories, configurable base URL, and NOMAD-DATA PDF tooling

- Add Kiwix ZIM categories: Deutsch & Österreich (Wikipedia DE, Wiktionary, Wikibooks, Wikivoyage, Medizin, Klexikon, Koch-Wiki, iFixit DE), Militär & Taktik, Kommunikation & Sicherheit, Energie & Off-Grid
- Add map collection entries for Europe and Oberösterreich (user-supplied PMTiles)
- Add NOMAD_COLLECTIONS_BASE_URL and NOMAD_DATA_PATH env options; collection specs load from configurable base URL
- Add install/nomad-data-pdf-urls.txt manifest and download-nomad-data-pdfs.sh for BBK, DGUV, FEMA, WHO, Zivilschutz AT, and related PDFs
- Add install/NOMAD-DATA-DOWNLOADS.md with usage and Austria PMTiles extract notes
- Update release notes (Unreleased)

Made-with: Cursor
This commit is contained in:
Florian Neuhuber 2026-03-16 21:39:19 +01:00
parent 8bb8b414f8
commit 6db599ecc3
8 changed files with 554 additions and 12 deletions

View File

@ -22,12 +22,20 @@ import type {
SpecTier,
} from '../../types/collections.js'
const SPEC_URLS: Record<ManifestType, string> = {
zim_categories: 'https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/collections/kiwix-categories.json',
maps: 'https://github.com/Crosstalk-Solutions/project-nomad/raw/refs/heads/main/collections/maps.json',
wikipedia: 'https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/collections/wikipedia.json',
const DEFAULT_COLLECTIONS_BASE = 'https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main'
function getSpecUrls(): Record<ManifestType, string> {
const base = process.env.NOMAD_COLLECTIONS_BASE_URL || DEFAULT_COLLECTIONS_BASE
const baseNorm = base.replace(/\/$/, '')
return {
zim_categories: `${baseNorm}/collections/kiwix-categories.json`,
maps: `${baseNorm}/collections/maps.json`,
wikipedia: `${baseNorm}/collections/wikipedia.json`,
}
}
const SPEC_URLS = getSpecUrls()
const VALIDATORS: Record<ManifestType, any> = {
zim_categories: zimCategoriesSpecSchema,
maps: mapsSpecSchema,

View File

@ -1,5 +1,16 @@
# Release Notes
## Unreleased
### Features
- **Collections**: Added Kiwix ZIM categories for German/Austria (DACH): "Deutsch & Österreich" with Wikipedia DE, Wiktionary, Wikibooks, Wikivoyage, Wikipedia Medizin, Klexikon, Koch-Wiki, and iFixit DE; "Militär & Taktik" (US Army Publications, Gutenberg Military Science, FAS Military Medicine); "Kommunikation & Sicherheit" (Ham Radio Q&A, Security Q&A); "Energie & Off-Grid" (Low Tech Magazine, 100 Rabbits)
- **Collections**: Added map collection entries for Europe and Oberösterreich (Steyr, Garsten) with placeholder for user-supplied PMTiles
- **Settings**: Optional `NOMAD_COLLECTIONS_BASE_URL` to load collection specs (kiwix-categories, maps, wikipedia) from a fork or custom URL instead of the default GitHub raw URL
- **Install**: Added NOMAD-DATA PDF/download manifest (`install/nomad-data-pdf-urls.txt`) and script (`install/download-nomad-data-pdfs.sh`) for automated download of BBK, DGUV, FEMA, WHO, Zivilschutz AT, and other public-domain/preparedness PDFs into a structured folder
### Improvements
- **Docs**: Added `install/NOMAD-DATA-DOWNLOADS.md` with instructions for collections base URL, PDF script usage, RAG integration, and optional Austria PMTiles extract
## Version 1.29.0 - March 11, 2026
### Features

View File

@ -27,6 +27,12 @@ export default await Env.create(new URL('../', import.meta.url), {
*/
NOMAD_STORAGE_PATH: Env.schema.string.optional(),
/**
* Optional path to NOMAD-DATA folder (e.g. /storage/nomad_data).
* When set, the RAG sync will also scan 10_EIGENE_PDFS_RAG for PDFs, text, and images to embed.
*/
NOMAD_DATA_PATH: Env.schema.string.optional(),
/*
|----------------------------------------------------------
| Variables for configuring session package
@ -60,4 +66,12 @@ export default await Env.create(new URL('../', import.meta.url), {
|----------------------------------------------------------
*/
NOMAD_API_URL: Env.schema.string.optional(),
/**
* Optional base URL for collection specs (kiwix-categories, maps, wikipedia).
* If set, replaces the default GitHub raw URL. Example for your fork:
* NOMAD_COLLECTIONS_BASE_URL=https://raw.githubusercontent.com/YOUR_USER/project-nomad/refs/heads/main
* Then the app fetches .../collections/kiwix-categories.json etc. So new ZIM categories go live after push.
*/
NOMAD_COLLECTIONS_BASE_URL: Env.schema.string.optional(),
})

View File

@ -132,7 +132,7 @@
{
"name": "Standard",
"slug": "survival-standard",
"description": "Bug-out strategies and urban survival techniques. Includes everything in Essential.",
"description": "Bug-out strategies, urban survival, and Survivor Library. Includes everything in Essential.",
"includesTier": "survival-essential",
"resources": [
{
@ -150,13 +150,21 @@
"description": "Comprehensive urban emergency preparedness video series",
"url": "https://download.kiwix.org/zim/videos/urban-prepper_en_all_2025-11.zim",
"size_mb": 2240
},
{
"id": "survivorlibrary.com_en_all",
"version": "2026-03",
"title": "Survivor Library",
"description": "Umfassende Offline-Bibliothek für Selbstversorgung, alte Handwerke, Pre-Industrial-Techniken",
"url": "https://download.kiwix.org/zim/zimit/survivorlibrary.com_en_all_2026-03.zim",
"size_mb": 2700
}
]
},
{
"name": "Comprehensive",
"slug": "survival-comprehensive",
"description": "Complete prepper library with food storage strategies and classic military strategy. Includes everything in Standard.",
"description": "FEMA Ready.gov, CD3WD und Food Prepping. Includes everything in Standard.",
"includesTier": "survival-standard",
"resources": [
{
@ -168,12 +176,20 @@
"size_mb": 2160
},
{
"id": "gutenberg_en_lcc-u",
"version": "2026-03",
"title": "Project Gutenberg: Military Science",
"description": "Classic military strategy, tactics, and field manuals",
"url": "https://download.kiwix.org/zim/gutenberg/gutenberg_en_lcc-u_2026-03.zim",
"size_mb": 1200
"id": "www.ready.gov_en",
"version": "2024-12",
"title": "Ready.gov (FEMA)",
"description": "FEMA emergency preparedness komplett offline",
"url": "https://download.kiwix.org/zim/zimit/www.ready.gov_en_2024-12.zim",
"size_mb": 2300
},
{
"id": "cd3wdproject.org_en_all",
"version": "2025-11",
"title": "CD3WD",
"description": "Off-Grid-Technologien, Wasserversorgung, Lebensmittelverarbeitung für Krisengebiete",
"url": "https://download.kiwix.org/zim/zimit/cd3wdproject.org_en_all_2025-11.zim",
"size_mb": 554
}
]
}
@ -614,6 +630,250 @@
]
}
]
},
{
"name": "Deutsch & Österreich",
"slug": "german",
"icon": "IconLanguage",
"description": "Deutschsprachige Offline-Inhalte: Wikipedia DE, Medizin, Wikibooks, Wiktionary, Wikivoyage für Österreich und DACH.",
"language": "de",
"tiers": [
{
"name": "Essential",
"slug": "german-essential",
"description": "Top Wikipedia-Artikel und deutsches Wörterbuch. Leichtgewichtig für den Einstieg.",
"recommended": true,
"resources": [
{
"id": "wikipedia_de_top_mini",
"version": "2026-01",
"title": "Wikipedia DE Top",
"description": "Die wichtigsten deutschsprachigen Wikipedia-Artikel",
"url": "https://download.kiwix.org/zim/wikipedia/wikipedia_de_top_mini_2026-01.zim",
"size_mb": 122
},
{
"id": "wiktionary_de_all_nopic",
"version": "2026-01",
"title": "Wiktionary DE",
"description": "Deutsches Wörterbuch offline",
"url": "https://download.kiwix.org/zim/wiktionary/wiktionary_de_all_nopic_2026-01.zim",
"size_mb": 1200
}
]
},
{
"name": "Standard",
"slug": "german-standard",
"description": "Medizin und Lehrbücher auf Deutsch. Inkl. Essential.",
"includesTier": "german-essential",
"resources": [
{
"id": "wikipedia_de_medicine_maxi",
"version": "2026-01",
"title": "Wikipedia Medizin DE",
"description": "Medizin-Artikel der deutschen Wikipedia mit Bildern",
"url": "https://download.kiwix.org/zim/wikipedia/wikipedia_de_medicine_maxi_2026-01.zim",
"size_mb": 433
},
{
"id": "wikibooks_de_all_nopic",
"version": "2026-01",
"title": "Wikibooks DE",
"description": "Offene Lehrbücher: Garten, Reparatur, Haustechnik, Naturwissenschaften",
"url": "https://download.kiwix.org/zim/wikibooks/wikibooks_de_all_nopic_2026-01.zim",
"size_mb": 2700
},
{
"id": "klexikon_de_all_maxi",
"version": "2026-02",
"title": "Klexikon DE",
"description": "Kinder-Enzyklopädie für einfache Erklärungen",
"url": "https://download.kiwix.org/zim/other/klexikon_de_all_maxi_2026-02.zim",
"size_mb": 138
},
{
"id": "kochwiki.org_de_all_maxi",
"version": "2026-01",
"title": "Koch-Wiki DE",
"description": "Kochrezepte und Küchenwissen offline",
"url": "https://download.kiwix.org/zim/other/kochwiki.org_de_all_maxi_2026-01.zim",
"size_mb": 66
}
]
},
{
"name": "Comprehensive",
"slug": "german-comprehensive",
"description": "Komplette deutsche Wikipedia und Wikivoyage. Inkl. Standard.",
"includesTier": "german-standard",
"resources": [
{
"id": "wikipedia_de_all_nopic",
"version": "2026-01",
"title": "Wikipedia DE komplett",
"description": "Gesamte deutschsprachige Wikipedia ohne Bilder",
"url": "https://download.kiwix.org/zim/wikipedia/wikipedia_de_all_nopic_2026-01.zim",
"size_mb": 14000
},
{
"id": "wikivoyage_de_all_maxi",
"version": "2026-01",
"title": "Wikivoyage DE",
"description": "Reise- und Geländeinfos für Österreich, Deutschland, Schweiz",
"url": "https://download.kiwix.org/zim/wikivoyage/wikivoyage_de_all_maxi_2026-01.zim",
"size_mb": 1200
},
{
"id": "ifixit_de_all",
"version": "2025-06",
"title": "iFixit DE",
"description": "Reparatur-Anleitungen für Geräte und DIY",
"url": "https://download.kiwix.org/zim/ifixit/ifixit_de_all_2025-06.zim",
"size_mb": 3200
}
]
}
]
},
{
"name": "Militär & Taktik",
"slug": "military",
"icon": "IconShield",
"description": "US Army Field Manuals, Nahkampf, Unconventional Warfare, Militärmedizin und klassische Taktik.",
"language": "en",
"tiers": [
{
"name": "Essential",
"slug": "military-essential",
"description": "Alle US Army Publications: Field Manuals (FM), ATP, ADP, TC inkl. Combatives, Unconventional Warfare.",
"recommended": true,
"resources": [
{
"id": "armypubs_en_all",
"version": "2024-12",
"title": "US Army Publications",
"description": "Alle deklassifizierten Field Manuals: Nahkampf (FM 3-25.150), Guerrilla (FM 3-05.130), Survival, Infanterie, u.v.m.",
"url": "https://download.kiwix.org/zim/zimit/armypubs_en_all_2024-12.zim",
"size_mb": 7700
}
]
},
{
"name": "Standard",
"slug": "military-standard",
"description": "Klassische Militärwissenschaft und Taktik. Inkl. Essential.",
"includesTier": "military-essential",
"resources": [
{
"id": "gutenberg_en_lcc-u",
"version": "2026-03",
"title": "Project Gutenberg: Military Science",
"description": "Klassische Texte zu Strategie, Taktik und Feldhandbüchern",
"url": "https://download.kiwix.org/zim/gutenberg/gutenberg_en_lcc-u_2026-03.zim",
"size_mb": 1200
}
]
},
{
"name": "Comprehensive",
"slug": "military-comprehensive",
"description": "Militärmedizin als Querverweis. Inkl. Standard.",
"includesTier": "military-standard",
"resources": [
{
"id": "fas-military-medicine_en",
"version": "2025-06",
"title": "FAS Military Medicine",
"description": "Taktische und Feldmedizin-Handbücher",
"url": "https://download.kiwix.org/zim/zimit/fas-military-medicine_en_2025-06.zim",
"size_mb": 78
}
]
}
]
},
{
"name": "Kommunikation & Sicherheit",
"slug": "communications",
"icon": "IconRadio",
"description": "Amateurfunk (Ham Radio), Baofeng UV-5R, ATAK/CivTAK (Android Team Awareness Kit), OPSEC und IT-Sicherheit für Notfallkommunikation. ATAK/CivTAK- und Baofeng-Anleitungen (kein ZIM) in NOMAD-DATA/07_FUNK oder 10_EIGENE_PDFS_RAG ablegen.",
"language": "en",
"tiers": [
{
"name": "Essential",
"slug": "communications-essential",
"description": "Ham Radio Q&A: Frequenzen, Antennen, Lizenzen, Baofeng UV-5R-Betrieb. Meshtastic/LoRa, ATAK/CivTAK und Baofeng UV-5R-Anleitungen (tak.gov, Miklor, CHIRP) als PDF in NOMAD-DATA ablegen.",
"recommended": true,
"resources": [
{
"id": "ham.stackexchange.com_en_all",
"version": "2026-02",
"title": "Ham Radio Q&A",
"description": "Stack Exchange zu Amateurfunk, Antennen, Ausbreitung, Betrieb",
"url": "https://download.kiwix.org/zim/stack_exchange/ham.stackexchange.com_en_all_2026-02.zim",
"size_mb": 72
}
]
},
{
"name": "Standard",
"slug": "communications-standard",
"description": "IT-Sicherheit und OPSEC. Inkl. Essential.",
"includesTier": "communications-essential",
"resources": [
{
"id": "security.stackexchange.com_en_all",
"version": "2026-02",
"title": "Security Q&A",
"description": "Verschlüsselung, Anonymität, sichere Kommunikation",
"url": "https://download.kiwix.org/zim/stack_exchange/security.stackexchange.com_en_all_2026-02.zim",
"size_mb": 420
}
]
}
]
},
{
"name": "Energie & Off-Grid",
"slug": "energy",
"icon": "IconBolt",
"description": "Solar, Wärmepumpen, Wasserversorgung und nachhaltige Technik für autarke Versorgung.",
"language": "en",
"tiers": [
{
"name": "Essential",
"slug": "energy-essential",
"description": "Low Tech Magazine: Solar, Wärmepumpen, Wasser, nachhaltige Haustechnik.",
"recommended": true,
"resources": [
{
"id": "solar.lowtechmagazine.com_mul_all",
"version": "2025-01",
"title": "Low Tech Magazine (Solar)",
"description": "Solar, Wärmepumpen, Wasserversorgung, Low-Tech-Lösungen",
"url": "https://download.kiwix.org/zim/zimit/solar.lowtechmagazine.com_mul_all_2025-01.zim",
"size_mb": 668
}
]
},
{
"name": "Standard",
"slug": "energy-standard",
"description": "Off-Grid-Werkzeuge und Selbstversorgung. Inkl. Essential.",
"includesTier": "energy-essential",
"resources": [
{
"id": "100r.co_en_all",
"version": "2026-02",
"title": "100 Rabbits",
"description": "Off-Grid-Leben, Energie, Werkzeuge, Selbstversorgung",
"url": "https://download.kiwix.org/zim/zimit/100r.co_en_all_2026-02.zim",
"size_mb": 160
}
]
}
]
}
]
}

View File

@ -481,6 +481,40 @@
"size_mb": 400
}
]
},
{
"name": "Europe",
"slug": "europe",
"description": "Offline-Karte für ganz Europa (Protomaps-Basemaps). Wanderwege, POIs und Wasserquellen. Kein Direkt-Download Builds: https://maps.protomaps.com/builds | Anleitung: /docs/offline-karten-europa",
"icon": "IconMap",
"language": "de",
"resources": [
{
"id": "europe",
"version": "2025-03",
"title": "Europa",
"description": "Ganz Europa. Bitte per „Eigenes Kartenfile herunterladen“ mit eigener URL hinzufügen oder Datei manuell in storage/maps/pmtiles/ ablegen.",
"url": null,
"size_mb": 5000
}
]
},
{
"name": "Oberösterreich (Steyr, Garsten)",
"slug": "oberoesterreich",
"description": "Hohe Auflösung für Oberösterreich, Steyr und Garsten. Wanderwege, POIs, Wasserquellen. Kein Direkt-Download Builds: https://maps.protomaps.com/builds | Anleitung: /docs/offline-karten-europa",
"icon": "IconMap",
"language": "de",
"resources": [
{
"id": "oberoesterreich",
"version": "2025-03",
"title": "Oberösterreich (Steyr, Garsten)",
"description": "Hohe Auflösung. Bitte per „Eigenes Kartenfile herunterladen“ mit eigener URL hinzufügen oder Datei manuell in storage/maps/pmtiles/ ablegen.",
"url": null,
"size_mb": 500
}
]
}
]
}

View File

@ -0,0 +1,79 @@
# NOMAD-DATA PDFs & Docs herunterladen
Dieses Skript lädt alle in `nomad-data-pdf-urls.txt` eingetragenen PDFs und Ressourcen in eine NOMAD-DATA-Ordnerstruktur.
## 1. Live: Neue ZIM-Kategorien
Die neuen ZIM-Kategorien (Deutsch & Österreich, Militär & Taktik, Kommunikation, Energie & Off-Grid) sind in `collections/kiwix-categories.json` eingetragen.
- **Wenn du das offizielle Repo (Crosstalk-Solutions) nutzt:** Nach Push auf `main` lädt die App die neue Spec von GitHub in der Oberfläche unter **Einstellungen → Content Explorer** „Collections aktualisieren“ o.ä., dann erscheinen die neuen Kategorien.
- **Eigenes Fork:** Setze die Umgebungsvariable
`NOMAD_COLLECTIONS_BASE_URL=https://raw.githubusercontent.com/DEIN_USER/project-nomad/refs/heads/main`
(z.B. in `compose.yml` oder `.env`), dann bezieht die App die Specs von deinem Fork.
## 2. PDFs/Docs automatisch laden
```bash
# Im Projekt-Root (oder mit Zielordner)
./install/download-nomad-data-pdfs.sh
# Oder mit Zielordner (z.B. auf dem Server)
./install/download-nomad-data-pdfs.sh /opt/project-nomad/storage/nomad_data
# Oder mit NOMAD_DATA_PATH
export NOMAD_DATA_PATH=/pfad/zu/NOMAD-DATA
./install/download-nomad-data-pdfs.sh
```
Es werden u.a. geladen:
- **Österreich Zivilschutz** (Blackout-Ratgeber, Vorrat, Bundesheer)
- **FEMA / Ready.gov** (Are You Ready, CERT, Hazard Sheets, Evacuation, Shelter, Communications)
- **FEMA ICS-Formulare** (ICS 201, NIMS ICS Forms Booklet)
- **CDC** (Wasser, Food and Water Emergency)
- **WHO** (EML Medikamentenliste)
- **IFRC** (First Aid Guidelines), **WHO/ICRC** (Basic Emergency Care)
- **BLE/BZL** (Garten DE), **UBA** (Kompost), **FAO**
- **NREL** (Energie-Reports), **HUD** (Gebäude), **EPA** (Renovierung), **USDA** (Wood Handbook)
- **Energy.gov** (Fuel Storage)
- **BBK** (Ratgeber Notfallvorsorge DE), **DGUV** (Erste-Hilfe-Handbuch 204-007)
**Hinweis Server:** Wenn `/opt/project-nomad/storage/nomad_data` nicht existiert oder nicht beschreibbar ist, das Skript mit einem anderen Ziel ausführen (z.B. `./install/download-nomad-data-pdfs.sh /home/nomad/nomad_data`). Anschließend Verzeichnis mit Root anlegen und Daten verschieben:
`sudo mkdir -p /opt/project-nomad/storage/nomad_data && sudo chown nomad:nomad /opt/project-nomad/storage/nomad_data && sudo cp -a /home/nomad/nomad_data/. /opt/project-nomad/storage/nomad_data/`
## 3. RAG (Knowledge Base)
Die App indexiert nur Inhalte unter **`NOMAD_DATA_PATH/10_EIGENE_PDFS_RAG`**.
Wenn du die heruntergeladenen PDFs auch in der Knowledge Base nutzen willst:
- Entweder **Kopien/Symlinks** der gewünschten PDFs nach `NOMAD-DATA/10_EIGENE_PDFS_RAG/` legen (z.B. Unterordner `Survival`, `Funk`, `Medizin`),
- oder `NOMAD_DATA_PATH` auf deinen NOMAD-DATA-Root setzen und in der App nur diesen einen Baum nutzen; dann müsste die RAG-Logik um weitere Ordner (z.B. 04_SURVIVAL, 07_FUNK) erweitert werden.
Anschließend in der App: **Knowledge Base → Scan and Sync**.
## 4. Ohne ZIM manuell ablegen
Diese Inhalte haben **kein** automatisches Download-Skript (keine direkten PDF-URLs oder nur Webseiten). Bitte von Hand in NOMAD-DATA speichern (z.B. als PDF-Export oder SingleFile):
| Thema | Quelle |
|-------|--------|
| **MSD Manual DE** | https://www.msdmanuals.com/de/heim (Website) |
| **AWMF Leitlinien** | https://register.awmf.org/ (Einzel-PDFs pro Leitlinie) |
| **Meshtastic/LoRa** | https://meshtastic.org/docs/ |
| **ATAK/CivTAK** | tak.gov, CivTAK-Dokumentation |
| **Baofeng UV-5R** | Miklor, sn0wlink, radiodoc/uv-5r (siehe CATEGORIES-TODO.md) |
| **VDE/DEHN** | Wo frei verfügbar (oft Normen paywall) |
| **DARC Notfunk** | https://www.darc.de/der-club/referate/notfunk/dokumente/ (PDFs manuell von der Seite) |
Nach dem Speichern ggf. nach `10_EIGENE_PDFS_RAG` kopieren und **Scan and Sync** ausführen.
## 5. Österreich-Karte (PMTiles Extract, optional)
Für eine Offline-Karte nur Österreich: [pmtiles CLI](https://github.com/protomaps/go-pmtiles/releases) installieren, dann (wenn eine gültige Build-URL von [maps.protomaps.com/builds](https://maps.protomaps.com/builds) verfügbar ist):
```bash
pmtiles extract "https://build.protomaps.com/YYYYMMDD.pmtiles" austria.pmtiles --bbox=9.53,46.37,17.16,49.02
```
Datei nach `storage/maps/pmtiles/` legen und in der App unter Einstellungen → Karten hinzufügen.

View File

@ -0,0 +1,53 @@
#!/usr/bin/env bash
# Download all PDFs and resources from install/nomad-data-pdf-urls.txt into NOMAD-DATA.
# Usage: ./install/download-nomad-data-pdfs.sh [TARGET_DIR]
# TARGET_DIR defaults to ./NOMAD-DATA or $NOMAD_DATA_PATH
# Requires: wget or curl
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
MANIFEST="${SCRIPT_DIR}/nomad-data-pdf-urls.txt"
TARGET="${1:-${NOMAD_DATA_PATH:-$REPO_ROOT/NOMAD-DATA}}"
if [[ ! -f "$MANIFEST" ]]; then
echo "Manifest not found: $MANIFEST"
exit 1
fi
mkdir -p "$TARGET"
cd "$TARGET"
if command -v wget &>/dev/null; then
GET="wget"
GET_OPTS=(--no-check-certificate -q --show-progress -N)
elif command -v curl &>/dev/null; then
GET="curl"
GET_OPTS=(-fSL -o)
else
echo "Need wget or curl."
exit 1
fi
count=0
while IFS= read -r line || [[ -n "$line" ]]; do
line="${line%%#*}"
line="$(echo "$line" | tr -d '\r' | sed 's/^[[:space:]]*//; s/[[:space:]]*$//')"
[[ -z "$line" ]] && continue
subdir="${line%%[[:space:]]*}"
url="$(echo "${line#*[[:space:]]}" | sed 's/^[[:space:]]*//')"
[[ -z "$url" || "$url" == "$subdir" ]] && continue
dir="$TARGET/$subdir"
mkdir -p "$dir"
raw_name=$(basename "$(echo "$url" | sed 's/?.*//')")
filename=$(echo "$raw_name" | sed 's/%20/_/g; s/%2B/+/g')
[[ -z "$filename" ]] && filename="doc_$(echo "$url" | sha256sum 2>/dev/null | cut -c1-12).pdf"
if [[ "$GET" == "wget" ]]; then
(cd "$dir" && wget "${GET_OPTS[@]}" -O "$filename" "$url") || true
else
(cd "$dir" && curl -fSL -o "$filename" "$url") || true
fi
((count++)) || true
done < "$MANIFEST"
echo "Done. Downloaded/updated up to $count files under $TARGET"

View File

@ -0,0 +1,83 @@
# NOMAD-DATA PDF/Resource Download Manifest
# Format: SUBDIR URL
# SUBDIR = folder under NOMAD_DATA (e.g. 04_SURVIVAL, 07_FUNK, 10_EIGENE_PDFS_RAG)
# Run: install/download-nomad-data-pdfs.sh
# ---
# === 01_MEDIZIN / Notfall / WHO/IFRC ===
04_SURVIVAL https://www.ifrc.org/sites/default/files/2022-02/EN_GFARC_GUIDELINES_2020.pdf
04_SURVIVAL https://hlh.who.int/docs/librariesprovider4/hlh-documents/who-icrc-basic-emergency-care.pdf
01_MEDIZIN https://www.who.int/publications/i/item/WHO-MHP-HPS-EML-2023.02
01_MEDIZIN https://publikationen.dguv.de/widgets/pdf/download/article/826
# === BBK (DE) Notfallvorsorge ===
04_SURVIVAL https://www.bbk.bund.de/SharedDocs/Downloads/DE/Mediathek/Publikationen/Buergerinformationen/Ratgeber/ratgeber-notfallvosorge-checkliste.pdf?__blob=publicationFile&v=10
# === Österreich Zivilschutz ===
04_SURVIVAL https://www.zivilschutz.at/wp-content/uploads/2022/09/Blackout-Ratgeber_Web.pdf
04_SURVIVAL https://www.zivilschutz.at/wp-content/uploads/2022/09/Blackout_Folder_Web.pdf
04_SURVIVAL https://www.zivilschutz.at/wp-content/uploads/2022/06/Infoblatt-Sirenensignale.pdf
04_SURVIVAL https://www.zivilschutz.at/wp-content/uploads/2022/06/Infoblatt-Notrufnummern.pdf
04_SURVIVAL https://www.zivilschutz.at/wp-content/uploads/2022/09/Vorrat_Checkliste_Web-small-rgb.pdf
04_SURVIVAL https://www.bundesheer.at/pdf_pool/publikationen/risikolandschaft_oesterreich_2022.pdf
04_SURVIVAL https://www.bundesheer.at/archiv/a2022/pdf/blackout_kochbuch.pdf
08_VORRAT https://www.zivilschutz.at/wp-content/uploads/2022/09/Vorrat_Checkliste_Web-small-rgb.pdf
# === FEMA / Ready.gov / CERT ===
04_SURVIVAL https://www.ready.gov/sites/default/files/2021-11/are-you-ready-guide.pdf
04_SURVIVAL https://www.ready.gov/sites/default/files/2025-02/fema_full-suite-hazard-info-sheets.pdf
04_SURVIVAL https://www.ready.gov/sites/default/files/2020-03/ready_evacuating.pdf
04_SURVIVAL https://www.ready.gov/sites/default/files/2020-03/ready_shelter.pdf
04_SURVIVAL https://www.ready.gov/sites/default/files/2020-03/ready_communications.pdf
04_SURVIVAL https://www.ready.gov/sites/default/files/2019.CERT_.Basic_.PM_FINAL_508c.pdf
04_SURVIVAL https://www.ready.gov/sites/default/files/documents/files/RRToolkit.pdf
08_VORRAT https://www.fema.gov/pdf/library/f&web.pdf
# === FEMA ICS Formulare ===
07_FUNK https://training.fema.gov/emiweb/is/icsresource/assets/ics%20forms/ics%20form%20201,%20incident%20briefing%20(v3).pdf
07_FUNK https://training.fema.gov/emiweb/is/icsresource/assets/ics%20forms/nims%20ics%20forms%20booklet%20(v3).pdf
# === CDC Wasser / Gesundheit ===
04_SURVIVAL https://www.cdc.gov/healthywater/pdf/drinking/HomeWaterTreatment.pdf
04_SURVIVAL https://www.cdc.gov/healthywater/pdf/emergency/foodandwater.pdf
05_ENERGIE https://www.cdc.gov/healthywater/pdf/drinking/HomeWaterTreatment.pdf
08_VORRAT https://www.cdc.gov/healthywater/pdf/emergency/foodandwater.pdf
# === BLE/BZL Garten DE ===
02_GARTEN https://www.ble.de/SharedDocs/Downloads/DE/Pressemitteilungen/2023/230309_Eigener_Garten.pdf
02_GARTEN https://www.ble.de/SharedDocs/Downloads/DE/Pressemitteilungen/2024/240529_Schatten.pdf
02_GARTEN https://www.ble.de/SharedDocs/Downloads/DE/Pressemitteilungen/2022/221104_Kompost-Garten.pdf
# === UBA Kompost ===
02_GARTEN https://www.umweltbundesamt.de/sites/default/files/medien/461/publikationen/4324.pdf
# === FAO ===
02_GARTEN https://www.fao.org/fileadmin/templates/FCIT/PDF/briefing_guide.pdf
02_GARTEN https://www.fao.org/4/i3284e/i3284e.pdf
# === NREL / IEA Energie ===
05_ENERGIE https://www.nrel.gov/docs/fy19osti/72564.pdf
05_ENERGIE https://www.nrel.gov/docs/fy15osti/64002.pdf
# === HUD Gebäude-Wartung ===
03_REPARATUR https://www.hud.gov/sites/documents/hudgb1.pdf
03_REPARATUR https://www.hud.gov/sites/documents/hudgb5guid.pdf
03_REPARATUR https://www.hud.gov/sites/documents/hudgb6guid.pdf
# === EPA Renovierung/Sicherheit ===
03_REPARATUR https://www.epa.gov/sites/default/files/2020-03/documents/small_entity_guide_9-23-11_w_new_cover.pdf
03_REPARATUR https://www.epa.gov/sites/default/files/2014-05/documents/initial_renovator-student_oct2011_0.pdf
# === USDA Wood Handbook ===
03_REPARATUR https://research.fs.usda.gov/treesearch/download/37440.pdf
# === Fuel/Energy ===
08_VORRAT https://www.energy.gov/sites/default/files/2019/01/f58/fuel-storage-guide.pdf
# --- Kein direktes PDF / manuell oder SingleFile ---
# MSD Manual DE: https://www.msdmanuals.com/de/heim (Website, kein Gesamt-PDF)
# AWMF Leitlinien: https://register.awmf.org/ (Einzel-PDFs pro Leitlinie)
# Meshtastic: https://meshtastic.org/docs/ (Docusaurus SingleFile oder wget)
# ATAK/CivTAK: https://tak.gov/ bzw. CivTAK-Docs (manuell)
# Baofeng UV-5R: Miklor, sn0wlink, radiodoc/uv-5r siehe CATEGORIES-TODO.md
# DARC Notfunk: https://www.darc.de/der-club/referate/notfunk/dokumente/ (Seite, PDFs manuell laden)