Slefhostet und postgres

This commit is contained in:
2026-04-02 11:39:57 +02:00
parent b1c99893a6
commit 08483c7075
215 changed files with 4584 additions and 5190 deletions

View File

@@ -0,0 +1,13 @@
import { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
const baseUrl = (process.env.NEXT_PUBLIC_SITE_URL || 'https://greenlenspro.com').trim()
return {
rules: {
userAgent: '*',
allow: '/',
},
sitemap: `${baseUrl}/sitemap.xml`,
}
}

View File

@@ -1,10 +1,10 @@
import { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://greenlns-landing.vercel.app'
return [
{
import { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = (process.env.NEXT_PUBLIC_SITE_URL || 'https://greenlenspro.com').trim()
return [
{
url: baseUrl,
lastModified: new Date(),
changeFrequency: 'weekly',
@@ -16,11 +16,17 @@ export default function sitemap(): MetadataRoute.Sitemap {
changeFrequency: 'monthly',
priority: 0.3,
},
{
url: `${baseUrl}/privacy`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.3,
},
]
}
{
url: `${baseUrl}/privacy`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.3,
},
{
url: `${baseUrl}/terms`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.3,
},
]
}

View File

@@ -6,60 +6,24 @@ import { siteConfig } from '@/lib/site'
const CONTENT = {
de: {
title: 'Nutzungsbedingungen',
intro:
'Durch die Nutzung von GreenLens stimmst du diesen Nutzungsbedingungen zu. Bitte lies sie sorgfaeltig durch.',
section1: '1. Leistungen',
text1:
'GreenLens bietet KI-gestuetzte Pflanzenidentifikation, Gesundheitsdiagnosen und Pflegeerinnerungen. Die App kann kostenlos genutzt werden; erweiterte Funktionen erfordern ein Abonnement oder Credits.',
section2: '2. Abonnements und In-App-Kaeufe',
text2:
'GreenLens Pro ist ein automatisch erneuerbares Abonnement (monatlich oder jaehrlich). Es wird ueber deinen Apple-Account abgerechnet. Die Verlaengerung erfolgt automatisch, sofern du nicht mindestens 24 Stunden vor Ablauf des Abrechnungszeitraums kuendigst. Credits sind einmalige Kaeufe und nicht uebertragbar.',
section3: '3. Kuendigung',
text3:
'Du kannst dein Abonnement jederzeit in den iPhone-Einstellungen unter deinem Apple-ID-Konto kuendigen. Nach der Kuendigung behast du den Zugriff bis zum Ende des bezahlten Zeitraums.',
section4: '4. Haftungsausschluss',
text4:
'GreenLens stellt Informationen auf Basis von KI-Analysen bereit. Diese ersetzen keine professionelle Beratung. Wir uebernehmen keine Haftung fuer Schaeden, die durch die Nutzung der App entstehen.',
section5: '5. Kontakt',
text5: 'Bei Fragen zu diesen Nutzungsbedingungen erreichst du uns per E-Mail.',
intro: 'Diese Bedingungen regeln die Nutzung von GreenLens und der dazugehoerigen Services.',
section1: 'GreenLens wird als digitale App und Web-Service fuer Pflanzenscans, Informationen und accountbezogene Funktionen bereitgestellt.',
section2: 'Vor dem Livegang muessen diese Bedingungen durch rechtlich gepruefte und vollstaendige Vertragstexte ersetzt werden.',
contactLabel: 'Kontakt',
},
en: {
title: 'Terms of Use',
intro:
'By using GreenLens, you agree to these Terms of Use. Please read them carefully.',
section1: '1. Services',
text1:
'GreenLens provides AI-powered plant identification, health diagnosis, and care reminders. The app is free to use; advanced features require a subscription or credits.',
section2: '2. Subscriptions and In-App Purchases',
text2:
'GreenLens Pro is an auto-renewable subscription (monthly or yearly). Payment is charged to your Apple Account. Your subscription automatically renews unless cancelled at least 24 hours before the end of the current billing period. Credits are one-time purchases and are non-transferable.',
section3: '3. Cancellation',
text3:
'You can cancel your subscription at any time in iPhone Settings under your Apple ID account. After cancellation, you retain access until the end of the paid period.',
section4: '4. Disclaimer',
text4:
'GreenLens provides information based on AI analysis. This does not replace professional advice. We accept no liability for damages arising from use of the app.',
section5: '5. Contact',
text5: 'If you have questions about these Terms of Use, contact us by email.',
title: 'Terms of Service',
intro: 'These terms govern the use of GreenLens and its related services.',
section1: 'GreenLens is provided as a digital app and web service for plant scans, information, and account-related functionality.',
section2: 'Before launch, replace this placeholder with legally reviewed and complete terms for your business.',
contactLabel: 'Contact',
},
es: {
title: 'Terminos de Uso',
intro:
'Al usar GreenLens, aceptas estos Terminos de Uso. Por favor, leelos detenidamente.',
section1: '1. Servicios',
text1:
'GreenLens ofrece identificacion de plantas, diagnostico de salud y recordatorios de cuidado basados en IA. La app es gratuita; las funciones avanzadas requieren una suscripcion o creditos.',
section2: '2. Suscripciones y Compras',
text2:
'GreenLens Pro es una suscripcion de renovacion automatica (mensual o anual). El pago se carga a tu cuenta de Apple. La suscripcion se renueva automaticamente salvo que la canceles al menos 24 horas antes del final del periodo actual. Los creditos son compras unicas y no son transferibles.',
section3: '3. Cancelacion',
text3:
'Puedes cancelar tu suscripcion en cualquier momento en los Ajustes del iPhone bajo tu cuenta de Apple ID. Tras la cancelacion, conservas el acceso hasta el final del periodo pagado.',
section4: '4. Exencion de responsabilidad',
text4:
'GreenLens proporciona informacion basada en analisis de IA. Esto no reemplaza el asesoramiento profesional. No aceptamos responsabilidad por danos derivados del uso de la app.',
section5: '5. Contacto',
text5: 'Si tienes preguntas sobre estos Terminos de Uso, contactanos por correo electronico.',
title: 'Terminos del Servicio',
intro: 'Estos terminos regulan el uso de GreenLens y sus servicios relacionados.',
section1: 'GreenLens se ofrece como app y servicio web para escaneo de plantas, informacion y funciones de cuenta.',
section2: 'Antes del lanzamiento, sustituye este texto por terminos completos revisados legalmente.',
contactLabel: 'Contacto',
},
}
@@ -72,18 +36,10 @@ export default function TermsPage() {
<h1>{c.title}</h1>
<div style={{ marginTop: '2rem', lineHeight: '1.8', opacity: 0.9 }}>
<p>{c.intro}</p>
<h2 style={{ marginTop: '1.5rem', fontSize: '1.25rem' }}>{c.section1}</h2>
<p>{c.text1}</p>
<h2 style={{ marginTop: '1.5rem', fontSize: '1.25rem' }}>{c.section2}</h2>
<p>{c.text2}</p>
<h2 style={{ marginTop: '1.5rem', fontSize: '1.25rem' }}>{c.section3}</h2>
<p>{c.text3}</p>
<h2 style={{ marginTop: '1.5rem', fontSize: '1.25rem' }}>{c.section4}</h2>
<p>{c.text4}</p>
<h2 style={{ marginTop: '1.5rem', fontSize: '1.25rem' }}>{c.section5}</h2>
<p>{c.text5}</p>
<p style={{ marginTop: '0.75rem' }}>
<a href={`mailto:${siteConfig.legalEmail}`}>{siteConfig.legalEmail}</a>
<p>{c.section1}</p>
<p>{c.section2}</p>
<p>
<strong>{c.contactLabel}:</strong> <a href={`mailto:${siteConfig.legalEmail}`}>{siteConfig.legalEmail}</a>
</p>
</div>
</main>