Dateien
Webseite_alt/LAUNCH-CHECKLIST.md
claude-dev b82c1f6590 Archiv: Letzter Stand der Webseite vor Promotion der Vorschau
Vollstaendiger Snapshot des Live-Standes von /opt/v2-Docker/aegis-website/html
am 2026-04-26, kurz bevor die Inhalte aus /vorschau/ in den Root verschoben
und die alte Webseite ausgemustert wurde. Dient als historische Referenz;
nicht fuer aktive Entwicklung gedacht.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:22:12 +02:00

14 KiB

LAUNCH-CHECKLIST — Online-Schaltung der neuen AegisSight-Hauptseite

Zielgruppe dieser Datei: Claude (oder ein Mensch) auf einem anderen Rechner, der diese Datei vollständig liest und Schritt für Schritt ausführt. Alle Anweisungen sind so geschrieben, dass keine Eigenentscheidungen nötig sind.

Auslöser: Der User sagt sinngemäß "Jo stell online" oder "Schalte die Vorschau live".

Was passiert: Die Vorschauseite (/vorschau/) wird zur neuen Hauptseite (/). Die alte Hauptseite ("Sicherheit Made in Germany") wird in _archiv/ verschoben. SEO wird aktiviert (robots.txt + sitemap.xml + Entfernung der noindex-Meta-Tags). Cookie-Consent + Umami sind bereits eingebaut.


0. Voraussetzungen — vor dem Start prüfen

  • Iran-Lage-Anpassung ist fertig. Der zuständige Kollege hat die zu langen Iran-Lagen-Texte gekürzt/strukturiert. Sichtcheck: https://aegis-sight.de/vorschau/ (Passwort: siehe Pass-Manager) → Demos-Karussell → Iran-Karte sollte ähnlich hoch sein wie Cyberangriffe und Deepfakes.
  • SSH-Zugriff auf claude-dev@46.225.225.49 funktioniert.
  • Git-Push-Rechte für https://gitea-undso.aegis-sight.de/AegisSight/Website.git vorhanden (Token im Remote-URL eingebettet).
  • User hat ausdrücklich Go gegeben ("Stell online", "Schalte live", o.ä.).

Wenn ein Punkt nicht erfüllt: NICHT FORTSETZEN, dem User Bescheid geben.


1. Pre-Flight-Backup (Pflicht!)

Werden auf dem Server (46.225.225.49) ausgeführt:

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && git tag pre-launch-$(date +%Y%m%d-%H%M%S) && git push origin --tags'
ssh claude-dev@46.225.225.49 'tar -czf /home/claude-dev/website-snapshot-$(date +%Y%m%d-%H%M%S).tar.gz -C /opt/v2-Docker/aegis-website html'
ssh claude-dev@46.225.225.49 'ls -lh /home/claude-dev/website-snapshot-*.tar.gz | tail -1'

Erwartet: Tar-Archiv ~40–60 MB. Git-Tag pre-launch-YYYYMMDD-HHMMSS ist gepusht.

Notiere dir den Git-Tag-Namen — du brauchst ihn fürs Rollback.


2. Schaltungs-Schritte (in genau dieser Reihenfolge)

Alle Pfade relativ zu /opt/v2-Docker/aegis-website/html/. Alle Commands per ssh claude-dev@46.225.225.49 '...' ausführen.

2.1 Archiv-Verzeichnis vorbereiten

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && mkdir -p _archiv'

2.2 Alte Hauptseite-Files in _archiv/ verschieben

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  mv index.html _archiv/old-index.html && \
  cp -r css _archiv/old-css && \
  cp -r js _archiv/old-js && \
  mv robots.txt _archiv/old-robots.txt && \
  mv assets/videos/AFv6.mp4 _archiv/ 2>/dev/null; \
  mv assets/videos/hero-code-abstract.mp4 _archiv/ 2>/dev/null; \
  mv assets/videos/hero-data-flow.mp4 _archiv/ 2>/dev/null; \
  mv assets/videos/hero-network-viz.mp4 _archiv/ 2>/dev/null; \
  ls -la _archiv/'

Wichtig: css und js werden mit cp -r (kopiert, NICHT verschoben), weil die Lagen-Seiten weiterhin /js/config.js, /js/translations.js, /js/mobile-nav.js aus dem alten /js/-Ordner brauchen. Die alten /css/-Stylesheets brauchen die Lagen ebenfalls (/css/main.css, /css/fonts.css, /css/mobile.css).

2.3 Neue Vorschau-Files an Hauptseite-Position kopieren

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  cp vorschau/index.html index.html && \
  cp vorschau/css/style.css css/vorschau-style.css && \
  cp vorschau/js/app.js js/vorschau-app.js && \
  mkdir -p assets/videos/vorschau-hero && \
  cp vorschau/videos/* assets/videos/vorschau-hero/ && \
  ls -la index.html css/vorschau-style.css js/vorschau-app.js assets/videos/vorschau-hero/'

Begründung: Die Vorschau-CSS heißt style.css und liegt unter vorschau/css/. Wenn wir sie nach /css/style.css packen, würden wir die alte Hauptseite-CSS überschreiben (die für Lagen-Seiten gebraucht wird, falls dort references existieren). Daher: eindeutige Namen vorschau-style.css und vorschau-app.js.

2.4 Pfade in der neuen index.html anpassen

Die Vorschau-index.html referenziert relativ:

  • <link rel="stylesheet" href="css/style.css"> → muss zu css/vorschau-style.css
  • <script src="js/app.js"></script> → muss zu js/vorschau-app.js
  • videos/hero-slide-X-monitoring.mp4 → muss zu assets/videos/vorschau-hero/hero-slide-X-monitoring.mp4
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  sed -i "s|href=\"css/style.css\"|href=\"/css/vorschau-style.css\"|g" index.html && \
  sed -i "s|src=\"js/app.js\"|src=\"/js/vorschau-app.js\"|g" index.html && \
  sed -i "s|src=\"videos/hero-slide-|src=\"/assets/videos/vorschau-hero/hero-slide-|g" index.html && \
  grep -E "(vorschau-style|vorschau-app|vorschau-hero)" index.html | head -10'

Erwartet: 7 Treffer (1× CSS, 1× JS, 5× Videos).

2.5 Passwort-Gate aus index.html entfernen

Folgenden Block ersatzlos löschen — es sind drei zusammenhängende Bereiche:

  1. <!-- Password Gate --> Kommentar + dahinterliegender <style>-Block
  2. <div id="login-gate">...</div>
  3. <script> mit var PW_HASH=... etc.

Sed-Lösung (einzeilig):

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  python3 -c "
import re
with open(\"index.html\") as f: c = f.read()
# Entferne den kompletten Block von '<!-- Password Gate -->' bis nach dem login-gate-Script
c = re.sub(r'<!-- Password Gate -->.*?if\(getCookie.*?</script>', '', c, count=1, flags=re.DOTALL)
with open(\"index.html\", \"w\") as f: f.write(c)
print(\"Passwort-Gate entfernt\")
"'

Verifikation:

ssh claude-dev@46.225.225.49 'grep -c "PW_HASH\|login-gate" /opt/v2-Docker/aegis-website/html/index.html'

Erwartet: 0

2.6 noindex/nofollow-Meta-Tags entfernen

In index.html und in den drei Lagen-Seiten:

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  for f in index.html lagen/iran-konflikt/index.html lagen/cyberangriffe/index.html lagen/deepfakes/index.html; do \
    sed -i "/<meta name=\"robots\" content=\"noindex/d" "$f"; \
  done && \
  echo "--- Verbliebene noindex-Tags (sollte 0 sein):"; \
  grep -c noindex index.html lagen/*/index.html'

Erwartet: Alle Dateien zeigen 0.

2.7 robots.txt aktivieren (Crawler erlaubt)

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  mv robots-launch.txt robots.txt && \
  head -10 robots.txt'

Erwartet: erste Zeilen zeigen Allow: / und Sitemap: Verweis.

2.8 sitemap.xml aktivieren

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  mv sitemap-launch.xml sitemap.xml && \
  head -5 sitemap.xml'

2.9 Vorschau-Verzeichnis löschen

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  rm -rf vorschau && \
  ls -d vorschau 2>&1 | tail -1'

Erwartet: ls: cannot access 'vorschau': No such file or directory

2.10 .bak.*-Dateien aufräumen (optional)

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  find . -name "*.bak.*" -type f -delete && \
  find . -name "*.bak.*" -type f | wc -l'

Erwartet: 0

2.11 Git-Commit + Push

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  git add -A && \
  git status --short | head -30'

Status prüfen — sollte zeigen:

  • D index.html (alte gelöscht), ?? index.html (neue erscheint via add) → wird als "renamed" oder M erkannt
  • Diverse Dateien in _archiv/ neu
  • vorschau/ komplett gelöscht
  • robots.txt, sitemap.xml erscheinen oder werden modifiziert
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  git commit -m "Online-Schaltung: Vorschau ist die neue Hauptseite

- Vorschau-Inhalt aus /vorschau/ nach /index.html, /css/vorschau-style.css, /js/vorschau-app.js, /assets/videos/vorschau-hero/ verschoben
- Alte Hauptseite (Sicherheit Made in Germany) in /_archiv/ archiviert
- Passwort-Gate entfernt
- robots.txt: Crawler erlaubt (außer AI-Crawler), Sitemap-Verweis aktiviert
- sitemap.xml aktiviert (Hauptseite, 3 Lagen, Impressum, Datenschutz)
- noindex/nofollow Meta-Tags aus Hauptseite und Lagen entfernt

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>" && \
  git push origin main 2>&1 | tail -5'

3. Smoke-Tests (sofort nach Push)

Jeden Test einzeln ausführen, erwartete Antwort daneben prüfen:

# Hauptseite läuft:
curl -sI https://aegis-sight.de/ | head -1
# Erwartet: HTTP/1.1 200 OK

# Title ist da:
curl -s https://aegis-sight.de/ | grep -c '<title>AegisSight Monitor'
# Erwartet: 1

# noindex ist WEG:
curl -s https://aegis-sight.de/ | grep -c 'noindex'
# Erwartet: 0

# Passwort-Gate ist WEG:
curl -s https://aegis-sight.de/ | grep -c 'PW_HASH\|login-gate'
# Erwartet: 0

# robots.txt erlaubt Crawling:
curl -s https://aegis-sight.de/robots.txt | grep -c '^Allow:'
# Erwartet: ≥1

# sitemap.xml ist da:
curl -sI https://aegis-sight.de/sitemap.xml | head -1
# Erwartet: HTTP/1.1 200 OK

# Vorschau ist 404:
curl -sI https://aegis-sight.de/vorschau/ | head -1
# Erwartet: HTTP/1.1 404 Not Found

# Lagen erreichbar:
curl -sI https://aegis-sight.de/lagen/iran-konflikt/ | head -1
# Erwartet: HTTP/1.1 200 OK
curl -sI https://aegis-sight.de/lagen/cyberangriffe/ | head -1
# Erwartet: HTTP/1.1 200 OK
curl -sI https://aegis-sight.de/lagen/deepfakes/ | head -1
# Erwartet: HTTP/1.1 200 OK

# Cookie-Consent Asset erreichbar:
curl -sI https://aegis-sight.de/cookie-consent.js | head -1
# Erwartet: HTTP/1.1 200 OK

# Impressum + Datenschutz:
curl -sI https://aegis-sight.de/impressum.html | head -1
curl -sI https://aegis-sight.de/datenschutz.html | head -1
# Erwartet: beide HTTP/1.1 200 OK

# OG-Image:
curl -sI https://aegis-sight.de/assets/images/og-image.png | head -1
# Erwartet: HTTP/1.1 200 OK

Wenn ALLE Smoke-Tests grün: Sage dem User Bescheid, dass die Live-Schaltung erfolgreich war, und bitte um manuelle Verifikation im Browser (Hard-Reload Strg+F5):

  • Layout korrekt
  • Cookie-Banner erscheint
  • Kontaktformular funktioniert
  • Hero-Videos laufen
  • Lagen-Karussell zeigt aktuelle Daten
  • Footer hat Cookie-Einstellungen-Link

4. Notfall-Rollback (falls Smoke-Tests fehlschlagen)

Variante A — Git-Rollback (bevorzugt):

# Den Tag-Namen aus Schritt 1 verwenden (z.B. pre-launch-20260427-093015)
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  git reset --hard pre-launch-YYYYMMDD-HHMMSS && \
  git push --force-with-lease origin main && \
  git status'

WICHTIG: --force-with-lease ist sicherer als --force. Im seltenen Fall, dass jemand parallel committed hat, schlägt es fehl statt Daten zu überschreiben.

Variante B — Server-Snapshot zurückspielen:

ssh claude-dev@46.225.225.49 'tar -xzf /home/claude-dev/website-snapshot-YYYYMMDD-HHMMSS.tar.gz -C /opt/v2-Docker/aegis-website/'

Nach Rollback: Smoke-Tests erneut laufen lassen — Vorschau sollte wieder unter /vorschau/ erreichbar sein, Hauptseite zeigt wieder die alte Version.


5. Manuelle Aufgaben (User/Kollege außerhalb des Skripts)

  • Browser-Test auf https://aegis-sight.de/ (Hard-Reload Strg+F5):
    • Layout, Hero-Videos, Karussell, Kontaktformular
    • Cookie-Banner erscheint, Akzeptieren funktioniert
    • Mobile-View testen
    • Lagen-Footer-Links funktionieren (z.B. /#features, /#contact)
  • OG-Image-Preview testen: URL in WhatsApp/Telegram/LinkedIn einfügen → Vorschaubild sollte erscheinen
  • Eintrag in Search Console / Bing Webmaster: ENTFÄLLT laut User-Wunsch (eigener Tracking-Pixel via Umami)

6. Notfall-Wiederherstellung der alten Hauptseite (separater, eigenständiger Block)

Falls jemand die alte Hauptseite ("Sicherheit Made in Germany") jemals wieder sehen/wiederherstellen möchte:

Option A — aus _archiv/ zurückkopieren:

ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  ls _archiv/'
# Zeigt: old-index.html, old-css/, old-js/, old-robots.txt, old-videos

Ein einzelner File z.B.:

ssh claude-dev@46.225.225.49 'cp /opt/v2-Docker/aegis-website/html/_archiv/old-index.html /tmp/old-index.html && head -30 /tmp/old-index.html'

Option B — aus Git-History wiederherstellen (auch wenn _archiv/ mal gelöscht würde):

# Letzten Commit finden, der die alte index.html noch enthielt:
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  git log --all --diff-filter=D --pretty=format:"%H %s" -- index.html | head -5'

# Dann die alte Datei aus diesem Commit zurückholen:
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
  git show <commit-hash>^:index.html > /tmp/old-index.html'

Analog für css/, js/ etc.


7. Anhang — Was wird wo geändert (Übersicht)

Pfad Vor Schaltung Nach Schaltung
/index.html "Sicherheit Made in Germany" (alte Hauptseite) AegisSight Monitor (war Vorschau)
/vorschau/ passwortgeschützte Vorschau gelöscht (404)
/css/style.css (alt) aktiv (alte Hauptseite) unter /_archiv/old-css/style.css
/css/vorschau-style.css nicht existent aktiv (für neue Hauptseite)
/js/main.js (alt) aktiv unter /_archiv/old-js/main.js
/js/vorschau-app.js nicht existent aktiv
/css/main.css, /css/fonts.css, /css/mobile.css aktiv (für Hauptseite + Lagen) aktiv (weiterhin für Lagen)
/js/config.js, /js/translations.js, /js/mobile-nav.js aktiv aktiv (für Lagen)
/robots.txt blockiert alle Crawler erlaubt Crawler (außer AI/Spam)
/sitemap.xml nicht existent aktiv
/lagen/*/index.html hat noindex/nofollow wird indexierbar
/cookie-consent.js, /cookie-consent.css aktiv (auf alter Hauptseite) aktiv (auf neuer Hauptseite + Lagen)
/assets/images/og-image.png bereits vorhanden weiterhin vorhanden
/datenschutz.html bereits erweitert (Kontakt + Umami) unverändert

Bei Fragen oder unerwarteten Outputs: NICHT improvisieren. Dem User die genaue Fehlermeldung melden und Anweisung abwarten.