imprint
This commit is contained in:
+11
-4
@@ -9,15 +9,18 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "3050:3050"
|
- "3050:3050"
|
||||||
|
|
||||||
# Data Privacy & Imprint Configuration
|
|
||||||
IMPRINT_URL: ${IMPRINT_URL:-}
|
|
||||||
DATA_PRIVACY_RESPONSIBLE_PERSON: ${DATA_PRIVACY_RESPONSIBLE_PERSON:-}
|
|
||||||
|
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
|
# Data Privacy & Imprint Configuration
|
||||||
|
- IMPRINT_URL=${IMPRINT_URL:-}
|
||||||
|
- DATA_PRIVACY_RESPONSIBLE_PERSON=${DATA_PRIVACY_RESPONSIBLE_PERSON:-}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
# Persist Wikipedia cache to avoid re-fetching on container restart
|
||||||
|
- wikipedia-cache:/app/public/wikipedia
|
||||||
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3050', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3050', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
|
||||||
@@ -32,3 +35,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
chess-tutor-network:
|
chess-tutor-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
wikipedia-cache:
|
||||||
|
driver: local
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import Header from "@/components/Header";
|
import Header from "@/components/Header";
|
||||||
import Footer from "@/components/Footer";
|
import Footer from "@/components/Footer";
|
||||||
|
|
||||||
|
// Force dynamic rendering to read environment variables at runtime
|
||||||
|
export const dynamic = 'force-dynamic';
|
||||||
|
|
||||||
export default function ImprintPage() {
|
export default function ImprintPage() {
|
||||||
return (
|
return (
|
||||||
<div className="min-h-screen flex flex-col bg-white dark:bg-gray-900">
|
<div className="min-h-screen flex flex-col bg-white dark:bg-gray-900">
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ export const metadata: Metadata = {
|
|||||||
description: "Learn chess with AI-powered tutoring from Gemini and Stockfish engine analysis",
|
description: "Learn chess with AI-powered tutoring from Gemini and Stockfish engine analysis",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Force dynamic rendering to read environment variables at runtime
|
||||||
|
export const dynamic = 'force-dynamic';
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
}: Readonly<{
|
}: Readonly<{
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import Header from "@/components/Header";
|
import Header from "@/components/Header";
|
||||||
import Footer from "@/components/Footer";
|
import Footer from "@/components/Footer";
|
||||||
|
|
||||||
|
// Force dynamic rendering to read environment variables at runtime
|
||||||
|
export const dynamic = 'force-dynamic';
|
||||||
|
|
||||||
export default function PrivacyPage() {
|
export default function PrivacyPage() {
|
||||||
// Read environment variable at runtime (Server Component)
|
// Read environment variable at runtime (Server Component)
|
||||||
const responsiblePerson = process.env.DATA_PRIVACY_RESPONSIBLE_PERSON || "[Name of Responsible Person]";
|
const responsiblePerson = process.env.DATA_PRIVACY_RESPONSIBLE_PERSON || "[Name of Responsible Person]";
|
||||||
|
|||||||
Reference in New Issue
Block a user