1. Installation & Setup

Willkommen bei MeinCMS (wissen-ahrensburg.de). Dieses Kapitel führt dich Schritt für Schritt durch die Vorbereitung der Systemumgebung, das Klonen, das Kompilieren sowie die initiale Einrichtung der Datenbank und des Administrator-Accounts.


📋 Systemvoraussetzungen

Stelle sicher, dass folgende Softwarekomponenten auf deinem Linux-System installiert sind:

  • Rust & Cargo: Version 1.80 oder neuer (rustup.rs)
  • PostgreSQL: Version 14 oder neuer
  • Git: Zum Klonen des Quellcodes
  • (Optional) Nginx oder Caddy: Als Reverse Proxy für TLS/HTTPS im Produktionsbetrieb.

1. Repository klonen

Klone das Repository auf deinen Zielserver:

git clone https://github.com/thorstenkloehn/wissen-ahrensburg.de.git
cd wissen-ahrensburg.de

2. PostgreSQL Datenbank einrichten

MeinCMS benötigt eine PostgreSQL-Datenbank. Erstelle eine neue Datenbank und einen Datenbank-Benutzer:

-- In psql (als postgres-User):
CREATE USER meincms WITH PASSWORD 'dein_sicheres_passwort';
CREATE DATABASE meincms OWNER meincms;
GRANT ALL PRIVILEGES ON DATABASE meincms TO meincms;

Setze anschließend die Umgebungsvariable DATABASE_URL:

# Option A: TCP Connection (Entwicklung)
export DATABASE_URL="postgres://meincms:dein_sicheres_passwort@localhost:5432/meincms"

# Option B: Unix Domain Socket (Produktions-Server)
export DATABASE_URL="postgres://meincms:dein_sicheres_passwort@/var/run/postgresql/meincms"

3. Projekt kompilieren (Build)

Der Rust Workspace besteht aus den vier Crates:

  1. meincms_parser: Markdown & MediaWiki Compiler
  2. meincms_web: Axum Webbackend
  3. meincms_backup: Backup & Repair CLI
  4. meincms_admin: Admin & Benutzer-Verwaltung

Entwicklungs-Build (Debugging)

cargo build

Produktions-Build (Optimiert)

Für maximale Performance kompiliere die Anwendung im Release-Modus:

cargo build --release

Die fertigen Binaries befinden sich anschließend unter target/release/.


4. Admin-Benutzer erstellen

Vor dem ersten Start solltest du deinen Administrator-Account anlegen. Nutze dafür das CLI-Tool meincms_admin:

cargo run -p meincms_admin -- create-user --username admin@wissen-ahrensburg.de

Das CLI-Tool fordert dich auf, ein sicheres Passwort einzugeben. Der Hash wird mittels Argon2id geschützt und in config/users.json gespeichert.


5. Webserver starten

Starte den Axum-Server mit:

# Entwicklungsmodus (TCP Port):
PORT=5000 cargo run -p meincms_web

# Produktionsmodus (Unix Domain Socket):
UNIX_SOCKET="/run/meincms/meincms.sock" ./target/release/meincms_web

Nach dem Start im TCP-Modus ist die Anwendung unter http://localhost:5000 erreichbar.


6. Nginx Reverse Proxy (Produktion)

Um die Anwendung im Produktivbetrieb mit HTTPS / Let's Encrypt über den Unix-Socket abzusichern:

server {
    listen 80;
    server_name wissen-ahrensburg.de;

    location / {
        proxy_pass http://unix:/run/meincms/meincms.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

🧪 Installation testen

Führe alle Unittests des Workspaces aus, um die korrekte Installation zu bestätigen:

cargo test --workspace

📘 Administrator-Handbuch für MeinCMS (Rust Edition)

Willkommen beim offiziellen Administrator-Handbuch für MeinCMS (wissen-ahrensburg.de).
Dieses Handbuch beschreibt die gesamte Architektur, alle Funktionen, Konfigurationsoptionen, Verwaltungswerkzeuge sowie Best Practices für den sicheren Betrieb im Internet.


📋 Inhaltsverzeichnis

  1. Systemübersicht & Architektur
  2. Funktionsumfang (Was die Anwendung kann)
  3. Installation, Deployment & Betrieb
  4. Konfiguration & Umgebungsvariablen
  5. Benutzer- & Admin-Verwaltung (meincms_admin)
  6. Backup, Import & Repair (meincms_backup)
  7. Sicherheit, Datenschutz & Härtung
  8. Fehlerbehebung & Wartung

1. Systemübersicht & Architektur

MeinCMS ist als moderner Rust Cargo Workspace aufgebaut. Es besteht aus vier hochperformanten Subsystemen:

flowchart TD
    subgraph Cargo Workspace
        P["meincms_parser\n(Markdown & MediaWiki Compiler Crate)"]
        W["meincms_web\n(Axum 0.7 Async Web Backend)"]
        B["meincms_backup\n(YAML/XML Export, Import & Repair CLI)"]
        A["meincms_admin\n(Argon2 User & Passwords CLI)"]
    end
    W --> P
    B --> P
    A --> P

Die Subsysteme im Detail:

  • meincms_parser: Compiler-Crate für Markdown und MediaWiki-Syntax mit automatischer Kategorie-Extraktion, XSS-Escaping und C-FFI-Schnittstellen.
  • meincms_web: Async Axum Webserver mit Maud-Templating, Hostname-basiertem Multi-Tenancy (main vs. doc) und rollenbasierter Authentifizierung.
  • meincms_backup: CLI-Werkzeug für die datensparende Sicherung und Wiederherstellung von Wiki-Inhalten (YAML & XML).
  • meincms_admin: CLI-Werkzeug zur Verwaltung von Administrator-Konten und Argon2id-Passwörtern.

2. Funktionsumfang (Was die Anwendung kann)

✍️ Wiki & Editor

  • Duale Syntax-Unterstützung: Artikel können in Markdown oder MediaWiki (WikiText) verfasst werden.
  • Dynamische Rhai-Skript-Makros: Admins und Nutzer können eingebettete Rhai-Skripte in Artikeln ausführen, z. B. {{#rhai: 5 * 10}} oder {{#script: "Hallo " + "Welt"}}. Die Skripte sind durch ein Sandbox-Limit (max. Operations-Tiefe) gegen Endlosschleifen geschützt.
  • Dynamisches Umschalten: Im Editor lässt sich die Syntax per Dropdown umschalten (style.display).
  • Kategorien-System: Automatische Erkennung von [[kategorie:Name]] im Text oder über Frontmatter-Metadaten.
  • Versionierung & Historie: Zu jedem Artikel wird bei jeder Änderung eine neue Revisionsversion angelegt. Alte Stände können eingesehen und verglichen werden.

🌐 Multi-Tenancy (Mandantenfähigkeit)

  • Automatische Domain-Zuordnung:
    • wissen-ahrensburg.de oder localhost ➔ Mandant main (Haupt-Wiki)
    • doc.wissen-ahrensburg.de oder doc.localhost ➔ Mandant doc (Technische Dokumentation)
  • Strikte Daten-Isolation: Inhalte und Suchen werden in der Datenbank isoliert nach TenantId gefiltert.

🔒 Rollenbasierter Schreibschutz (AdminAuth)

  • Lesen für alle: Besucher können Artikel, Kategorien und Suchen uneingeschränkt lesen.
  • Schreiben nur für Admins: Das Erstellen (/edit/*slug) und Speichern (POST /save/*slug) von Artikeln erfordert zwingend eine aktive Admin-Sitzung. Bei unangemeldetem Zugriff erfolgt eine automatische Umleitung zum Login-Formular (/login).

3. Installation, Deployment & Betrieb

Voraussetzungen

  • Rust Compiler (Version 1.80 oder neuer)
  • PostgreSQL (Version 14 oder neuer)

1. Bauen im Release-Modus

cd wissen-ahrensburg.de
cargo build --release

Die fertigen Binärdateien befinden sich anschließend in ./target/release/.

2. Manueller Start

PORT=5000 DATABASE_URL="postgres://postgres:passwort@localhost:5432/meincms" ./target/release/meincms_web

3. Einrichtung als Linux Systemd-Dienst (meincms.service)

Erstelle die Datei /etc/systemd/system/meincms.service:

[Unit]
Description=MeinCMS Rust Web Backend
After=network.target postgresql.service

[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/wissen-ahrensburg.de
ExecStart=/var/www/wissen-ahrensburg.de/target/release/meincms_web
Environment="UNIX_SOCKET=/run/meincms/meincms.sock"
Environment="DATABASE_URL=postgres://meincms:SicheresPasswort@/var/run/postgresql/meincms"
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Dienst aktivieren & starten:

sudo systemctl daemon-reload
sudo systemctl enable meincms
sudo systemctl start meincms

4. Reverse Proxy Setup (Caddy oder Nginx mit Let's Encrypt HTTPS)

Option A: Caddy (Empfohlen - automatische SSL-Zertifikate)

/etc/caddy/Caddyfile:

wissen-ahrensburg.de {
    reverse_proxy localhost:5000
}

doc.wissen-ahrensburg.de {
    reverse_proxy localhost:5000
}

Option B: Nginx

/etc/nginx/sites-available/meincms:

server {
    server_name wissen-ahrensburg.de doc.wissen-ahrensburg.de;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

4. Konfiguration & Umgebungsvariablen

Das Verhalten des Webbackends lässt sich über Umgebungsvariablen steuern:

VariableStandardwertBeschreibung
PORT5000Der HTTP-Port, auf dem der Axum-Webserver lauscht
DATABASE_URL(In-Memory Fallback)PostgreSQL-Verbindungszeichenfolge (postgres://user:pass@host:5432/dbname)
RUST_LOGmeincms_web=info,tower_http=infoLoglevel für Serverausgaben (debug, info, warn, error)

5. Benutzer- & Admin-Verwaltung (meincms_admin)

Das Werkzeug meincms_admin dient der Verwaltung aller Administratoren.

Interaktiver Modus

cargo run -p meincms_admin

CLI-Befehle

# 1. Benutzer auflisten
cargo run -p meincms_admin -- list-users

# 2. Neuen Administrator erstellen
cargo run -p meincms_admin -- create-user --username admin@wissen-ahrensburg.de

# 3. Passwort eines Benutzers ändern
cargo run -p meincms_admin -- reset-password --username admin@wissen-ahrensburg.de

🔒 Sicherheitshinweis: Passwörter werden mit Argon2id gehasht und in config/users.json bzw. in der Datenbank abgelegt.


6. Backup, Import & Repair (meincms_backup)

Das Werkzeug meincms_backup übernimmt den gesicherten Im- und Export sowie die Reparatur aller Inhalte.

💾 Backup Exportieren

# Exportiert den aktuellen Mandanten als YAML-Datei
cargo run -p meincms_backup -- export mein_backup.yaml

# Exportiert als XML-Datei
cargo run -p meincms_backup -- export mein_backup.xml

# Globaler Export aller Mandanten
cargo run -p meincms_backup -- export full_backup.yaml --full

📥 Backup Importieren

cargo run -p meincms_backup -- import meine_sicherung.yaml

Hinweis: Das Import-Tool erkennt automatisch, ob es sich um ein einzelnes Backup-Objekt oder ein Array von Artikeln handelt und unterstützt Abwärtskompatibilität für alte PascalCase-Formate.

🔧 Repair (HTML Regenerierung)

Um Speicherplatz zu sparen, speichert MeinCMS kein generiertes HTML in Backup-Dateien. Nach einem Import oder nach Änderungen am Parser muss der Repair-Befehl ausgeführt werden:

cargo run -p meincms_backup -- repair

7. Sicherheit, Datenschutz & Härtung

  1. Dateisystem-Schutz:
    • Zugriffe auf verdeckte Dateien (/.gitignore, /.env) oder Konfigurationspfade (/config/users.json) werden vom Webserver mit HTTP 403 Forbidden blockiert.
  2. Sicherheits-Header:
    • Cache-Control: no-store, no-cache, must-revalidate (Verhindert Zwischenspeicherung sensibler Seiten).
    • X-Frame-Options: DENY (Schutz vor Clickjacking).
    • X-Content-Type-Options: nosniff (Schutz vor MIME-Sniffing).
  3. Passwort-Sicherheit:
    • Kein Klartext-Passwort im Quellcode oder in Repositories.
    • Argon2id Hashing mit Salt.

8. Fehlerbehebung & Wartung

Problem: Admin-Passwort vergessen

  1. Führe den Admin-CLI Befehl aus:
    cargo run -p meincms_admin -- reset-password --username admin@wissen-ahrensburg.de
    
  2. Falls config/users.json beschädigt ist, lösche die Datei: rm -f config/users.json. Beim nächsten Aufruf von meincms_admin wird ein neuer Admin angelegt.

Problem: Port bereits belegt (AddrInUse)

Wenn der Port (z. B. 5000) belegt ist, wähle einen anderen Port:

PORT=5005 cargo run -p meincms_web

Problem: HTML-Seiten zeigen leere Abschnitte

Führe den Repair-Befehl aus, um die HTML-Ausgabe aus dem Quelltext neu zu generieren:

cargo run -p meincms_backup -- repair

Stand: Juli 2026 • Lizenz: AGPL-3.0 • MeinCMS Rust Workspace

📚 Externe Bibliotheken & Crates

Diese Dokumentation bietet einen vollständigen und detaillierten Überblick über alle externen Rust-Crates und Bibliotheken, die im Projekt MeinCMS (wissen-ahrensburg.de) verwendet werden.

MeinCMS ist als modularer Rust Workspace aufgebaut. Jedes Subsystem (meincms_parser, meincms_web, meincms_backup, meincms_admin) nutzt spezialisierte, hochperformante Open-Source-Bibliotheken für seine jeweiligen Aufgaben.


📋 Schnellübersicht aller Abhängigkeiten

Crate / BibliothekVersionSubsystem(e)Hauptaufgabe & Kategorie
axum0.7meincms_webAsynchrones Web-Framework
tokio1.xmeincms_web, meincms_backupAsynchrone Runtime & I/O
sqlx0.8meincms_web, meincms_backupAsynchroner PostgreSQL-Treiber & SQL Query Builder
maud0.26meincms_webTypsicheres Compile-Time HTML-Templating
rhai1.19meincms_parserEingebettete Makro-Skripting-Engine
argon20.5meincms_adminKryptografisches Passwort-Hashing (Argon2id)
html-escape0.2meincms_parserXSS-Schutz & Entschärfen von HTML-Entities
clap4.5meincms_backup, meincms_adminCLI Argument-Parsing mit Subcommands
serde1.0Alle SubsystemeFramework zur Serialisierung & Deserialisierung
serde_json1.0meincms_parser, meincms_web, meincms_adminJSON Parsing & Formatting
serde_yaml0.9meincms_backupYAML Im- & Export für Backups
quick-xml0.37meincms_backupSchneller XML-Parser & Serializer
tower0.5meincms_webAbstraktion für modulare Netzdienste
tower-http0.6meincms_webHTTP-Middleware (Brotli/Gzip, Static Files, CORS, Tracing)
hyper1.xmeincms_webLow-Level HTTP/1- und HTTP/2-Server-Engine
hyper-util0.1meincms_webHilfsfunktionen für Hyper 1.0 (Unix Sockets & Listener)
tracing0.1meincms_webStrukturiertes Logging & Tracing
tracing-subscriber0.3meincms_webLog-Formatierung & Log-Level-Filterung (RUST_LOG)
dotenvy0.15meincms_webAuslesen von .env Umgebungsvariablen
chrono0.4meincms_web, meincms_backupDatum-, Uhrzeit- & Zeitstempelverwaltung
regex1.10meincms_parser, meincms_backupReguläre Ausdrücke (MediaWiki Syntax & Reparatur)
rpassword7.3meincms_adminVerdeckte Passworteingabe auf der Konsole

🧩 Details nach Subsystemen

1. meincms_parser (Markdown & MediaWiki Compiler)

Das Crate meincms_parser ist das Herzstück der Inhaltsverarbeitung. Es wandelt Benutzereingaben (Markdown oder MediaWiki/WikiText) sicher in HTML um und führt dynamische Skripte aus.

  • regex (v1.10):
    • Zweck: Auswertung und Erkennung von Wiki-Syntaxstrukturen wie Wikilinks ([[Titel]]), Kategorie-Tags ([[kategorie:Name]]), Frontmatter und Makro-Blöcken ({{#rhai: ...}}).
    • Warum gewählt: Standard-Regex-Engine für Rust, hochoptimiert und gegen ReDoS-Angriffe (Regular Expression Denial of Service) geschützt.
  • html-escape (v0.2):
    • Zweck: Entschärfen potenziell gefährlicher Zeichen (<, >, &, ", ') vor der HTML-Generierung.
    • Warum gewählt: Gewährleistet strikten Schutz gegen Cross-Site-Scripting (XSS), da unsicherer Benutzercode niemals unmaskiert gerendert wird.
  • rhai (v1.19):
    • Zweck: Eingebettete Skriptsprache zur Ausführung dynamischer Makros in Wiki-Artikeln (z. B. mathematische Berechnungen, Zeichenkettenoperationen).
    • Warum gewählt: Rhai wurde speziell für Rust entwickelt, kompiliert ohne externe C-Abhängigkeiten und bietet ein konfigurierbares Ausführungslimit (Sandbox), das Endlosschleifen verhindert.
  • serde (v1.0) & serde_json (v1.0):
    • Zweck: Umwandlung interner AST-Metadaten (Abstract Syntax Tree) und C-FFI Export-Datenstrukturen in/aus JSON.

2. meincms_web (Axum Async Web-Backend)

Das Subsystem meincms_web stellt das eigentliche Webseiten-Backend für Besucher und Administratoren bereit.

  • axum (v0.7):
    • Zweck: Asynchrones Web-Framework für Routing, Request-Handler, Extractor-Mechanismen und Server-Antworten.
    • Warum gewählt: Entwickelt vom Tokio-Team, bietet maximale Ergonomie, Typen-Sicherheit und exzellente Performance ohne Laufzeit-Overhead.
  • tokio (v1.x, Feature full):
    • Zweck: Event-gesteuerte asynchrone Runtime für Multithreading, I/O-Operationen und Server-Sockets.
    • Warum gewählt: Der De-facto-Standard in der Rust-Ökosystem für performante Netzwerkanwendungen.
  • sqlx (v0.8, Features: postgres, runtime-tokio-rustls, chrono, json):
    • Zweck: Asynchroner PostgreSQL-Datenbanktreiber und Query-Builder.
    • Warum gewählt: Bietet Typsicherheit beim Ausführen von Datenbankabfragen und unterstützt native Unix Domain Sockets (/var/run/postgresql/meincms) sowie JSON-Spalten.
  • maud (v0.26):
    • Zweck: Schreiben von HTML-Templates direkt in Rust-Code via html! { ... } Makro.
    • Warum gewählt: Maud-Templates werden zur Compile-Zeit in hochoptimierten Rust-Code umgewandelt. Das vermeidet Parsing-Kosten zur Laufzeit und macht XSS-Escaping typsicher.
  • tower-http (v0.6) & tower (v0.5):
    • Zweck: Middleware-Komponenten für Komprimierung (Brotli & Gzip), Ausliefern statischer CSS/JS-Dateien, CORS und Request-Logging.
  • hyper (v1.x) & hyper-util (v0.1):
    • Zweck: Unterbau für den HTTP-Server. Ermöglicht das Binden des Webservers an TCP-Ports oder Unix-Domain-Sockets (UNIX_SOCKET).
  • tracing (v0.1) & tracing-subscriber (v0.3):
    • Zweck: Strukturierte Diagnose- und Log-Ausgaben im Serverbetrieb. Steuerung der Detailtiefe über die Umgebungsvariable RUST_LOG.
  • dotenvy (v0.15):
    • Zweck: Automatisches Laden von Konfigurationswerten aus einer .env-Datei beim Anwendungsstart.
  • chrono (v0.4):
    • Zweck: Datums- und Zeitberechnungen für Artikel-Revisionen und HTTP-Header.

3. meincms_backup (YAML/XML Export, Import & Repair CLI)

Das CLI-Werkzeug meincms_backup dient der Datensicherung, Datenmigration und der Regenerierung beschädigter HTML-Inhalte.

  • clap (v4.5, Feature derive):
    • Zweck: Verarbeiten von Befehlszeilen-Argumenten und Optionen (export, import, repair, --full).
    • Warum gewählt: Deklarative Definition von CLI-Interfaces mit automatischer Generierung von Hilfetexten (--help).
  • serde_yaml (v0.9):
    • Zweck: Serialisierung und Deserialisierung von Wiki-Artikeln in gut lesbare YAML-Sicherungsdateien.
  • quick-xml (v0.37):
    • Zweck: Extrem schnelles Lesen und Schreiben von XML-Sicherungen.
    • Warum gewählt: Verarbeitet selbst sehr große XML-Backups mit minimalem Speicherbedarf.
  • sqlx & tokio:
    • Zweck: Direktes Einlesen und Zurückschreiben von Datensätzen in die PostgreSQL-Datenbank im CLI-Kontext.

4. meincms_admin (User- & Admin-Management CLI)

Das Werkzeug meincms_admin dient der sicheren Verwaltung von Administrator-Konten und Zugangsdaten.

  • argon2 (v0.5):
    • Zweck: Hashen und Überprüfen von Administrator-Passwörtern nach dem Argon2id-Standard.
    • Warum gewählt: Sieger der Password Hashing Competition (PHC). Bietet höchstmöglichen Schutz gegen GPU- und ASIC-basierte Brute-Force-Angriffe durch konfigurierbare Speicher- und Zeitkomplexität.
  • rpassword (v7.3):
    • Zweck: Sicheres Einlesen von Passwörtern im Terminal ohne Konsolenausgabe (Kein Echo des Passworts auf dem Bildschirm).
  • clap (v4.5) & serde_json (v1.0):
    • Zweck: CLI-Steuerung und Speichern der Admin-Konfiguration (config/users.json).

🔒 Sicherheits- & Wartungshinweise

  1. Keine veralteten Abhängigkeiten (Security Audits): Um Sicherheitslücken in externen Crates frühzeitig zu erkennen, sollte regelmäßig cargo audit ausgeführt werden:

    cargo install cargo-audit
    cargo audit
    
  2. Aktualisierung der Crates: Crates innerhalb der angegebenen Minor-Versionen können mit folgendem Befehl auf den neuesten Stand gebracht werden:

    cargo update
    
  3. Lizenzkonformität: Alle verwendeten Bibliotheken nutzen verträgliche Open-Source-Lizenzen (wie MIT, Apache-2.0 oder BSD), die vollständig mit der AGPL-3.0-Lizenz von MeinCMS kompatibel sind.

Angaben gemäß § 5 TMG

  • Thorsten Klöhn
  • Gerhardstraße 2
  • 22926 Ahrensburg

Vertreten durch:

Thorsten Klöhn

Kontakt:

  • Telefon: 04102-2 17 40 07\
  • E-Mail: thorstenkloehn@gmail.com

Haftungsausschluss:

Haftung für Inhalte

Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.\

Urheberrecht

Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung 4.0 International Lizenz.Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

Datenschutz

Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-Mails, vor.\

Impressum vom Impressum Generator der Kanzlei Hasselbach, Rechtsanwälte für Arbeitsrecht und Familienrecht

Verantwortliche Stelle im Sinne der Datenschutzgesetze, insbesondere der EU-Datenschutzgrundverordnung (DSGVO), ist:

  • Thorsten Klöhn
  • Gerhardstraße 2
  • 22926 Ahrensburg
  • Telefon: 04102-2 17 40 07
  • e-Mail: thorstenkloehn@gmail.com

Ihre Betroffenenrechte

Unter den angegebenen Kontaktdaten unseres Datenschutzbeauftragten können Sie jederzeit folgende Rechte ausüben:

  • Auskunft über Ihre bei uns gespeicherten Daten und deren Verarbeitung (Art. 15 DSGVO),
  • Berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO),
  • Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO),
  • Einschränkung der Datenverarbeitung, sofern wir Ihre Daten aufgrund gesetzlicher Pflichten noch nicht löschen dürfen (Art. 18 DSGVO),
  • Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 DSGVO) und
  • Datenübertragbarkeit, sofern Sie in die Datenverarbeitung eingewilligt haben oder einen Vertrag mit uns abgeschlossen haben (Art. 20 DSGVO).

Sofern Sie uns eine Einwilligung erteilt haben, können Sie diese jederzeit mit Wirkung für die Zukunft widerrufen.

Sie können sich jederzeit mit einer Beschwerde an eine Aufsichtsbehörde wenden, z. B. an die zuständige Aufsichtsbehörde des Bundeslands Ihres Wohnsitzes oder an die für uns als verantwortliche Stelle zuständige Behörde.

Eine Liste der Aufsichtsbehörden (für den nichtöffentlichen Bereich) mit Anschrift finden Sie unter: .

Eingebettete YouTube-Videos

Art und Zweck der Verarbeitung:

Auf einigen unserer Webseiten betten wir YouTube-Videos ein. Betreiber der entsprechenden Plugins ist die YouTube, LLC, 901 Cherry Ave., San Bruno, CA 94066, USA (nachfolgend „YouTube“). Wenn Sie eine Seite mit dem YouTube-Plugin besuchen, wird eine Verbindung zu Servern von YouTube hergestellt. Dabei wird YouTube mitgeteilt, welche Seiten Sie besuchen. Wenn Sie in Ihrem YouTube-Account eingeloggt sind, kann YouTube Ihr Surfverhalten Ihnen persönlich zuzuordnen. Dies verhindern Sie, indem Sie sich vorher aus Ihrem YouTube-Account ausloggen.

Wird ein YouTube-Video gestartet, setzt der Anbieter Cookies ein, die Hinweise über das Nutzerverhalten sammeln.

Weitere Informationen zu Zweck und Umfang der Datenerhebung und ihrer Verarbeitung durch YouTube erhalten Sie in den Datenschutzerklärungen des Anbieters, Dort erhalten Sie auch weitere Informationen zu Ihren diesbezüglichen Rechten und Einstellungsmöglichkeiten zum Schutze Ihrer Privatsphäre (). Google verarbeitet Ihre Daten in den USA und hat sich dem EU-US Privacy Shield unterworfen https://www.privacyshield.gov/EU-US-Framework

Rechtsgrundlage:

Rechtsgrundlage für die Einbindung von YouTube und dem damit verbundenen Datentransfer zu Google ist Ihre Einwilligung (Art. 6 Abs. 1 lit. a DSGVO).

Empfänger:

Der Aufruf von YouTube löst automatisch eine Verbindung zu Google aus.

Speicherdauer und Widerruf der Einwilligung:

Wer das Speichern von Cookies für das Google-Ad-Programm deaktiviert hat, wird auch beim Anschauen von YouTube-Videos mit keinen solchen Cookies rechnen müssen. YouTube legt aber auch in anderen Cookies nicht-personenbezogene Nutzungsinformationen ab. Möchten Sie dies verhindern, so müssen Sie das Speichern von Cookies im Browser blockieren.

Weitere Informationen zum Datenschutz bei „YouTube“ finden Sie in der Datenschutzerklärung des Anbieters unter:

Drittlandtransfer:

Google verarbeitet Ihre Daten in den USA und hat sich dem EU_US Privacy Shield unterworfen .

Bereitstellung vorgeschrieben oder erforderlich:

Die Bereitstellung Ihrer personenbezogenen Daten erfolgt freiwillig, allein auf Basis Ihrer Einwilligung. Sofern Sie den Zugriff unterbinden, kann es hierdurch zu Funktionseinschränkungen auf der Website kommen.

Änderung unserer Datenschutzbestimmungen

Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, z.B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt dann die neue Datenschutzerklärung.

Fragen an den Datenschutzbeauftragten

Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine E-Mail oder wenden Sie sich direkt an die für den Datenschutz verantwortliche Person in unserer Organisation:

Die Datenschutzerklärung wurde mit dem Datenschutzerklärungs-Generator der activeMind AG erstellt *(Version 2018-09-24).c