Config: Impressum/Datenschutz aus .env.local befüllt

Persönliche Angaben (Name, Adresse, E-Mail, Hoster) werden zur
Build-Zeit aus .env.local gelesen und in die statischen Seiten
eingebettet. .env.local ist gitignoriert, .env.local.example
dokumentiert die benötigten Variablen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-04-25 21:50:00 +02:00
commit 159c761633
3 changed files with 48 additions and 20 deletions

16
.env.local.example Normal file
View file

@ -0,0 +1,16 @@
# Persönliche Angaben für Impressum und Datenschutz
# Kopiere diese Datei nach .env.local und trage die echten Daten ein.
# .env.local wird NICHT ins Repository eingecheckt.
# Eigentümer
OWNER_NAME=Max Mustermann
OWNER_STREET=Musterstraße 1
OWNER_ZIP_CITY=12345 Musterstadt
OWNER_EMAIL=kontakt@example.de
# Hoster (für Datenschutzerklärung)
HOSTER_NAME=Muster-Hoster GmbH
HOSTER_STREET=Hosting-Straße 42
HOSTER_ZIP=98765
HOSTER_CITY=Serverstadt
HOSTER_COUNTRY=Deutschland

View file

@ -8,6 +8,13 @@ export const metadata = {
}
export default function DatenschutzPage() {
const email = process.env.OWNER_EMAIL ?? '[Emailadresse]'
const hosterName = process.env.HOSTER_NAME ?? '[Hoster]'
const hosterStreet = process.env.HOSTER_STREET ?? '[Straße Hausnummer]'
const hosterZip = process.env.HOSTER_ZIP ?? '[PLZ]'
const hosterCity = process.env.HOSTER_CITY ?? '[Ort]'
const hosterCountry= process.env.HOSTER_COUNTRY ?? '[Land]'
return (
<main className="min-h-screen py-24 lg:py-32">
<div className="max-w-3xl mx-auto px-6 lg:px-8">
@ -19,14 +26,14 @@ export default function DatenschutzPage() {
</Button>
<h1 className="font-serif text-4xl lg:text-5xl mb-8">Datenschutz</h1>
<div className="prose prose-neutral dark:prose-invert max-w-none space-y-8">
<section>
<h2 className="font-serif text-xl mb-4">1. Datenschutz auf einen Blick</h2>
<h3 className="font-medium mt-6 mb-2">Allgemeine Hinweise</h3>
<p className="text-muted-foreground leading-relaxed">
Die folgenden Hinweise geben einen einfachen Überblick darüber,
was mit Ihren personenbezogenen Daten passiert, wenn Sie diese
Die folgenden Hinweise geben einen einfachen Überblick darüber,
was mit Ihren personenbezogenen Daten passiert, wenn Sie diese
Website besuchen.
</p>
</section>
@ -34,17 +41,17 @@ export default function DatenschutzPage() {
<section>
<h2 className="font-serif text-xl mb-4">2. Hosting</h2>
<p className="text-muted-foreground leading-relaxed">
Diese Website wird bei [Hoster] gehostet. Der Anbieter ist
[Name] , [Straße Hausnummer] , [PLZ] [Ort], [Land].
Diese Website wird bei {hosterName} gehostet. Der Anbieter ist{' '}
{hosterName}, {hosterStreet}, {hosterZip} {hosterCity}, {hosterCountry}.
</p>
</section>
<section>
<h2 className="font-serif text-xl mb-4">3. Allgemeine Hinweise</h2>
<p className="text-muted-foreground leading-relaxed">
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen
Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten
vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen
Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten
vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften
sowie dieser Datenschutzerklärung.
</p>
</section>
@ -53,8 +60,8 @@ export default function DatenschutzPage() {
<h2 className="font-serif text-xl mb-4">4. Datenerfassung auf dieser Website</h2>
<h3 className="font-medium mt-6 mb-2">Server-Log-Dateien</h3>
<p className="text-muted-foreground leading-relaxed">
Der Provider dieser Seiten erhebt und speichert automatisch
Informationen in so genannten Server-Log-Dateien, die Ihr Browser
Der Provider dieser Seiten erhebt und speichert automatisch
Informationen in so genannten Server-Log-Dateien, die Ihr Browser
automatisch an uns übermittelt.
</p>
</section>
@ -63,7 +70,7 @@ export default function DatenschutzPage() {
<h2 className="font-serif text-xl mb-4">5. Kontakt</h2>
<p className="text-muted-foreground leading-relaxed">
Bei Fragen zum Datenschutz können Sie sich jederzeit an uns wenden:<br />
E-Mail: [Emailadresse]
E-Mail: {email}
</p>
</section>
</div>

View file

@ -8,6 +8,11 @@ export const metadata = {
}
export default function ImpressumPage() {
const name = process.env.OWNER_NAME ?? '[Name]'
const street = process.env.OWNER_STREET ?? '[Straße und Hausnummer]'
const zipCity = process.env.OWNER_ZIP_CITY ?? '[PLZ Ort]'
const email = process.env.OWNER_EMAIL ?? '[Emailadresse]'
return (
<main className="min-h-screen py-24 lg:py-32">
<div className="max-w-3xl mx-auto px-6 lg:px-8">
@ -19,14 +24,14 @@ export default function ImpressumPage() {
</Button>
<h1 className="font-serif text-4xl lg:text-5xl mb-8">Impressum</h1>
<div className="prose prose-neutral dark:prose-invert max-w-none space-y-8">
<section>
<h2 className="font-serif text-xl mb-4">Angaben gemäß § 5 TMG</h2>
<p className="text-muted-foreground">
[Name]<br />
[Straße und Hausnummer]<br />
[PLZ Ort]<br />
{name}<br />
{street}<br />
{zipCity}<br />
Deutschland
</p>
</section>
@ -34,23 +39,23 @@ export default function ImpressumPage() {
<section>
<h2 className="font-serif text-xl mb-4">Kontakt</h2>
<p className="text-muted-foreground">
E-Mail: [Emailadresse]
E-Mail: {email}
</p>
</section>
<section>
<h2 className="font-serif text-xl mb-4">Verantwortlich für den Inhalt</h2>
<p className="text-muted-foreground">
[Name]<br />
[Adresse]
{name}<br />
{street}, {zipCity}
</p>
</section>
<section>
<h2 className="font-serif text-xl mb-4">Haftungsausschluss</h2>
<p className="text-muted-foreground leading-relaxed">
Die Inhalte dieser Seiten wurden mit größter Sorgfalt erstellt.
Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte
Die Inhalte dieser Seiten wurden mit größter Sorgfalt erstellt.
Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte
kann jedoch keine Gewähr übernommen werden.
</p>
</section>