Dateien
Website/CLAUDE.md
2026-04-26 19:56:27 +02:00

6.8 KiB

CLAUDE.md - AegisSight Website

RELATED_DOCS: COOKIE_CONSENT_IMPLEMENTATION.md: "Cookie-Banner Implementierung, GDPR, Testing" DATENSCHUTZ_ANALYTICS.md: "Textbausteine fuer Datenschutzerklaerung" PROFESSIONAL_TOOLBOX_CONTENT.md: "Backup-HTML fuer entfernte Produktkarte" VIDEO_UPLOAD_INSTRUCTIONS.md: "Anleitung fuer manuelle Video-Uploads (Git-Limit)"

PROJECT: Website STATUS: PRODUCTION URL: https://aegis-sight.de CONTAINER: aegis-website-nginx

COMPANY: name: AegisSight UG (haftungsbeschraenkt) domain: aegis-sight.de email: info@aegis-sight.de

TECHNOLOGY: type: Static Website build_process: NONE deployment: Docker/nginx

frontend: - HTML5 - CSS3 (modular) - JavaScript ES6+ - SVG

features: - multi_language: [DE, EN] - responsive: mobile-first - video_backgrounds: true - cookie_consent: GDPR-compliant - security_headers: enabled

STRUCTURE: root_files: - index.html: Hauptseite - impressum.html: Impressum DE - impressum-en.html: Impressum EN - datenschutz.html: Datenschutz DE - datenschutz-en.html: Datenschutz EN - accountforger-video.html: Produkt-Demo - robots.txt: SEO-Konfiguration - cookie-consent.js: GDPR Cookie-System - cookie-consent.css: Cookie-Banner Styles

directories: assets: fonts: [Inter, Bebas Neue] images: icons: UI-Icons (SVG) flags: Laenderflaggen logos: "Logo+Schrift_Rechts.svg" videos: "~300MB - Hero-Videos, AFv6.mp4"

css:
  - main.css: Kern-Styles
  - animations-enhanced.css: Animationen
  - mobile.css: Mobile Responsive
  - fonts.css: Typografie

js:
  - main.js: Einstiegspunkt
  - translations.js: Mehrsprachigkeit
  - components.js: UI-Komponenten
  - animations.js: Animationssystem

docs: Rechtliche PDFs

lagen:
  iran-konflikt:
    - index.html: Lagebild-Seite (Leaflet, Tabs, Timeline)
    - lagebild.js: Datenladung, Rendering, Interaktionen
    - lagebild.css: Dark-Theme Styling
    - data/: current.json + Snapshots (sync alle 5min)

vorschau:
  - index.html: Produktseite AegisSight Monitor (Passwort-Gate)
  css:
    - style.css: Light-Mode Design (Navy/Gold Akzente)
  js:
    - app.js: Hero-Videos, 3D-Karussell, Leaflet-Karte, Live-Daten, Kontaktformular

PAGES: homepage: sections: [Hero mit Video, Ueber uns, Loesungen, Kontakt] legal: - Impressum (DE/EN) - Datenschutz (DE/EN) product: - AccountForger Video-Demo lagen: url_struktur: /lagen/{thema}/ redirect: /lagebild/ -> 301 -> /lagen/iran-konflikt/ aktiv: - iran-konflikt: Live-Lagebild Irankonflikt (ehemals /lagebild/) geplant: - (2 weitere Lagen in Vorbereitung) vorschau: url: /vorschau/ zweck: Produktseite AegisSight Monitor (ersetzt spaeter die Hauptseite) auth: JavaScript SHA-256 Passwort-Gate (kein Benutzername) design: Light-Mode, Navy/Gold Akzente, SVG-Wellen/Diagonale Divider sections: [Hero mit Video (clip-path Chevron), Problem (dark), Workflow 3-Schritte, Live-Stats, 3D-Karussell mit Lagebild-Text, Leaflet-Karte (gekoppelt an Karussell), Faktenprüfung-Statement, Features (5 Cards zentriert), CTA, Unser Versprechen] daten: Fetcht /lagen/iran-konflikt/data/summary.json (~116 KB) karussell: 3D-Perspektive, 3 Cards (Iran live + 2 Platzhalter), Karte wechselt mit karte: Leaflet mit Pulse-Markern, Dark Popups/Legende, gekoppelt an aktive Lage kontaktformular: Popup-Modal (Name, Organisation, E-Mail, Nachricht) -> /api/contact -> SMTP icons: monitor.svg + languages.svg (Lucide) hinzugefuegt

DEVELOPMENT: translations: js/translations.js large_files: "assets/videos/ (~300MB)" design: mobile-first responsive

SERVICES: contact-form: script: /opt/v2-Docker/aegis-website/contact-form.py service: aegis-contact.service port: 127.0.0.1:8074 nginx: /api/contact -> 127.0.0.1:8074 zweck: Kontaktformular-Handler (SMTP an info@aegis-sight.de) rate_limit: 3 Anfragen pro IP / 10 Min

DEPLOYMENT: container: aegis-website-nginx server: nginx (static files) ssl: enabled security_headers: enabled rate_limiting: configured

CHANGE_LOG: 2026-01-08: - "Rebrand: IntelSight -> AegisSight" - "Neues Logo: Logo+Schrift_Rechts.svg" - "Email: info@aegis-sight.de" - "Footer: Dynamisches Jahr, AGB entfernt"

Last-Updated: 2026-04-06

RULES: neue_html_seiten: - "Jede neue HTML-Datei MUSS im <head> folgende Favicon-Tags enthalten:" - "<link rel="icon" type="image/svg+xml" href="/favicon.svg">" - "<link rel="apple-touch-icon" href="/assets/images/logos/AegisSightLogo_NavyGold.svg">" - "Fuer Unterverzeichnisse relative Pfade anpassen, z.B. ../favicon.svg"

───────────────────────────────────────────────────────────────────

STAGING-UMGEBUNG

───────────────────────────────────────────────────────────────────

STAGING: url: https://staging.aegis-sight.de server: 46.225.225.49 (gleicher Host wie Live) container: aegis-website-staging-nginx (eigener Docker-Container) pfad: /opt/v2-Docker/aegis-website-staging/html branch: develop netzwerk_ip: 172.18.0.7 (im v2_internal_net) zugriff: Magic-Link-Login an info@aegis-sight.de (Cookie 30 Tage)

besonderheit_lagen_daten: erklaerung: | Die Live-Lagen-Daten (/lagen//data/.json) werden vom sync-lagebild.py erzeugt und nicht ins Repo committed. Im Staging-Container ist das Live-/lagen/-Verzeichnis read-only gemountet, damit die Karten-Vorschau auch im Staging mit echten Daten funktioniert. mount_im_compose: /opt/v2-Docker/aegis-website/html/lagen:/usr/share/nginx/html/lagen:ro

auth_service: pfad: /opt/v2-Docker/aegis-staging-auth service: aegis-staging-auth.service port: 127.0.0.1:8095 cookie_domain: staging.aegis-sight.de cookie_name: aegis_staging_auth

WORKFLOW_STAGING_TO_LIVE: 1_aenderung_in_develop: | cd /opt/v2-Docker/aegis-website-staging/html git checkout develop # Aenderung machen git add . && git commit -m ... git push origin develop 2_staging_aktualisieren_manuell: | ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website-staging/html && git pull' # Kein Container-Reload noetig (statische Files) 3_in_browser_pruefen: https://staging.aegis-sight.de 4_promote_zu_live: | # Auf Gitea: Pull Request develop -> main, dann mergen # Danach auf Live-Server pullen: ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && git pull'

STAGING_OFFEN_TODO:

  • Auto-Deploy: Webhook-Listener bei Push auf develop
  • Promote-UI: Ein-Klick-Button statt manuellem PR + Pull