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.80oder neuer (rustup.rs) - PostgreSQL: Version
14oder 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:
meincms_parser: Markdown & MediaWiki Compilermeincms_web: Axum Webbackendmeincms_backup: Backup & Repair CLImeincms_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
- Systemübersicht & Architektur
- Funktionsumfang (Was die Anwendung kann)
- Installation, Deployment & Betrieb
- Konfiguration & Umgebungsvariablen
- Benutzer- & Admin-Verwaltung (meincms_admin)
- Backup, Import & Repair (meincms_backup)
- Sicherheit, Datenschutz & Härtung
- 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 (mainvs.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.deoderlocalhost➔ Mandantmain(Haupt-Wiki)doc.wissen-ahrensburg.deoderdoc.localhost➔ Mandantdoc(Technische Dokumentation)
- Strikte Daten-Isolation: Inhalte und Suchen werden in der Datenbank isoliert nach
TenantIdgefiltert.
🔒 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:
| Variable | Standardwert | Beschreibung |
|---|---|---|
PORT | 5000 | Der HTTP-Port, auf dem der Axum-Webserver lauscht |
DATABASE_URL | (In-Memory Fallback) | PostgreSQL-Verbindungszeichenfolge (postgres://user:pass@host:5432/dbname) |
RUST_LOG | meincms_web=info,tower_http=info | Loglevel 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.jsonbzw. 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
- Dateisystem-Schutz:
- Zugriffe auf verdeckte Dateien (
/.gitignore,/.env) oder Konfigurationspfade (/config/users.json) werden vom Webserver mit HTTP 403 Forbidden blockiert.
- Zugriffe auf verdeckte Dateien (
- 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).
- Passwort-Sicherheit:
- Kein Klartext-Passwort im Quellcode oder in Repositories.
- Argon2id Hashing mit Salt.
8. Fehlerbehebung & Wartung
Problem: Admin-Passwort vergessen
- Führe den Admin-CLI Befehl aus:
cargo run -p meincms_admin -- reset-password --username admin@wissen-ahrensburg.de - Falls
config/users.jsonbeschädigt ist, lösche die Datei:rm -f config/users.json. Beim nächsten Aufruf vonmeincms_adminwird 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 / Bibliothek | Version | Subsystem(e) | Hauptaufgabe & Kategorie |
|---|---|---|---|
axum | 0.7 | meincms_web | Asynchrones Web-Framework |
tokio | 1.x | meincms_web, meincms_backup | Asynchrone Runtime & I/O |
sqlx | 0.8 | meincms_web, meincms_backup | Asynchroner PostgreSQL-Treiber & SQL Query Builder |
maud | 0.26 | meincms_web | Typsicheres Compile-Time HTML-Templating |
rhai | 1.19 | meincms_parser | Eingebettete Makro-Skripting-Engine |
argon2 | 0.5 | meincms_admin | Kryptografisches Passwort-Hashing (Argon2id) |
html-escape | 0.2 | meincms_parser | XSS-Schutz & Entschärfen von HTML-Entities |
clap | 4.5 | meincms_backup, meincms_admin | CLI Argument-Parsing mit Subcommands |
serde | 1.0 | Alle Subsysteme | Framework zur Serialisierung & Deserialisierung |
serde_json | 1.0 | meincms_parser, meincms_web, meincms_admin | JSON Parsing & Formatting |
serde_yaml | 0.9 | meincms_backup | YAML Im- & Export für Backups |
quick-xml | 0.37 | meincms_backup | Schneller XML-Parser & Serializer |
tower | 0.5 | meincms_web | Abstraktion für modulare Netzdienste |
tower-http | 0.6 | meincms_web | HTTP-Middleware (Brotli/Gzip, Static Files, CORS, Tracing) |
hyper | 1.x | meincms_web | Low-Level HTTP/1- und HTTP/2-Server-Engine |
hyper-util | 0.1 | meincms_web | Hilfsfunktionen für Hyper 1.0 (Unix Sockets & Listener) |
tracing | 0.1 | meincms_web | Strukturiertes Logging & Tracing |
tracing-subscriber | 0.3 | meincms_web | Log-Formatierung & Log-Level-Filterung (RUST_LOG) |
dotenvy | 0.15 | meincms_web | Auslesen von .env Umgebungsvariablen |
chrono | 0.4 | meincms_web, meincms_backup | Datum-, Uhrzeit- & Zeitstempelverwaltung |
regex | 1.10 | meincms_parser, meincms_backup | Reguläre Ausdrücke (MediaWiki Syntax & Reparatur) |
rpassword | 7.3 | meincms_admin | Verdeckte 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.
- Zweck: Auswertung und Erkennung von Wiki-Syntaxstrukturen wie Wikilinks (
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.
- Zweck: Entschärfen potenziell gefährlicher Zeichen (
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, Featurefull):- 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.
- Zweck: Schreiben von HTML-Templates direkt in Rust-Code via
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).
- Zweck: Unterbau für den HTTP-Server. Ermöglicht das Binden des Webservers an TCP-Ports oder Unix-Domain-Sockets (
tracing(v0.1) &tracing-subscriber(v0.3):- Zweck: Strukturierte Diagnose- und Log-Ausgaben im Serverbetrieb. Steuerung der Detailtiefe über die Umgebungsvariable
RUST_LOG.
- Zweck: Strukturierte Diagnose- und Log-Ausgaben im Serverbetrieb. Steuerung der Detailtiefe über die Umgebungsvariable
dotenvy(v0.15):- Zweck: Automatisches Laden von Konfigurationswerten aus einer
.env-Datei beim Anwendungsstart.
- Zweck: Automatisches Laden von Konfigurationswerten aus einer
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, Featurederive):- 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).
- Zweck: Verarbeiten von Befehlszeilen-Argumenten und Optionen (
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).
- Zweck: CLI-Steuerung und Speichern der Admin-Konfiguration (
🔒 Sicherheits- & Wartungshinweise
-
Keine veralteten Abhängigkeiten (Security Audits): Um Sicherheitslücken in externen Crates frühzeitig zu erkennen, sollte regelmäßig
cargo auditausgeführt werden:cargo install cargo-audit cargo audit -
Aktualisierung der Crates: Crates innerhalb der angegebenen Minor-Versionen können mit folgendem Befehl auf den neuesten Stand gebracht werden:
cargo update -
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.
Haftung für Links
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