mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-03-28 03:29:25 +01:00
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:
parent
8bb8b414f8
commit
6db599ecc3
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
})
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
79
install/NOMAD-DATA-DOWNLOADS.md
Normal file
79
install/NOMAD-DATA-DOWNLOADS.md
Normal 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.
|
||||
53
install/download-nomad-data-pdfs.sh
Executable file
53
install/download-nomad-data-pdfs.sh
Executable 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"
|
||||
83
install/nomad-data-pdf-urls.txt
Normal file
83
install/nomad-data-pdf-urls.txt
Normal 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)
|
||||
Loading…
Reference in New Issue
Block a user