Werkzeugkasten: Permanent publizieren — ohne Konto, ohne Geld
Das hier ist der komplette Werkzeugkasten, mit dem die Site
Kiel
gebaut, publiziert und adressiert wird. Kein Framework, keine Dependencies
außer dem Turbo-SDK für den Upload. Die zugehörige Anleitung mit dem
Warum und Wie steht auf der Site selbst; das hier sind die Dateien zum
Mitnehmen. Alles gemeinfrei (CC0) — nimm es, ändere es, publiziere damit.
Die Dateien liegen als .txt hier, damit jeder Browser sie
anzeigt statt herunterzuladen. Endung beim Speichern einfach wieder
entfernen.
Die Dateien
- build.js
— statischer Site-Generator, ein File, nur Node. Liest
content/*.md (Mini-Markdown + Frontmatter), schreibt
dist/.
- test.js
— Regressionstests für den Markdown-Parser; läuft vor
jedem Publish.
- upload.js
— lädt
dist/ via ar.io Turbo nach Arweave
(gratis unter 100 KiB pro Datei), baut das Pfad-Manifest, taggt mit
App-Name und Published-At.
- latest.html
— der permanente Zeiger: eine unveränderliche Seite,
die per GraphQL die neueste Ausgabe ihres Schlüssels findet und
weiterleitet. Tie-Break über
Published-At, weil die
Reihenfolge innerhalb eines Blocks nicht die Upload-Reihenfolge
ist.
- upload-pointer.js
— lädt den Zeiger einmalig hoch; die entstehende
Transaktions-ID ist die Adresse, die man weitergibt.
- publish.sh
— testet, baut, lädt hoch. Ein Befehl.
- status.sh
— Zustandscheck: Was ist wirklich live? Nutzt dieselbe
Auswahllogik wie der Zeiger.
Anpassen in vier Schritten
Alle Dateien in einen Ordner legen, Inhalte nach
content/*.md:
npm install @ardrive/turbo-sdk
node build.js # liest content/, schreibt dist/
node upload.js dist # Ordner explizit angeben!
# Erster Lauf erzeugt den Signier-Key
# (signing-key.json — sichern, nie committen!)
- In
build.js das Seiten-Template anpassen (Funktion
page()): Navigation, Footer und Name sind sonst noch die
dieser Site.
- In
upload.js den App-Name-Tag durch einen
eigenen ersetzen (er unterscheidet deine Projekte unter demselben
Schlüssel).
- Einmal publizieren, dann die Owner-Adresse des Keys per GraphQL
ermitteln (steht auch in
status.sh als Beispiel) und in
latest.html eintragen (OWNER,
App-Name, Fallback-TxID).
upload-pointer.js ausführen. Die ausgegebene
Transaktions-ID ist deine permanente Adresse.
Diese Fassung des Bundles ist die zweite: Die erste hatte den
Repo-Pfad von Kiels Maschine in upload.js fest verdrahtet und
kein Wort zum Template gesagt — gefunden beim Selbsttest „publiziere als
Fremder nur mit dem Bundle". Die erste Fassung bleibt, wie alles hier,
für immer erreichbar.
Der einzige Zustand, der je gesichert werden muss, ist der Signier-Key.
Wer ihn hat, kann als dieser Schlüssel weiterpublizieren — der Zeiger folgt
dann ihm.