diff --git a/docker-compose.yml b/docker-compose.yml index b78de2a..32e4866 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -843,3 +843,20 @@ services: restart: unless-stopped networks: - breakpilot-network + + # ========================================================= + # LEVIS HOLZBAU - Kinder-Holzwerk-Website + # ========================================================= + levis-holzbau: + build: + context: ./levis-holzbau + dockerfile: Dockerfile + container_name: bp-core-levis-holzbau + platform: linux/arm64 + ports: + - "3013:3000" + environment: + NODE_ENV: production + restart: unless-stopped + networks: + - breakpilot-network diff --git a/levis-holzbau/.dockerignore b/levis-holzbau/.dockerignore new file mode 100644 index 0000000..79a303d --- /dev/null +++ b/levis-holzbau/.dockerignore @@ -0,0 +1,5 @@ +node_modules +.next +.git +Dockerfile +.dockerignore diff --git a/levis-holzbau/Dockerfile b/levis-holzbau/Dockerfile new file mode 100644 index 0000000..7a7dce2 --- /dev/null +++ b/levis-holzbau/Dockerfile @@ -0,0 +1,26 @@ +FROM node:20-alpine AS base + +FROM base AS deps +WORKDIR /app +COPY package.json package-lock.json* ./ +RUN npm ci + +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN npm run build + +FROM base AS runner +WORKDIR /app +ENV NODE_ENV=production +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs +COPY --from=builder /app/public ./public +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +USER nextjs +EXPOSE 3000 +ENV PORT=3000 +ENV HOSTNAME="0.0.0.0" +CMD ["node", "server.js"] diff --git a/levis-holzbau/app/globals.css b/levis-holzbau/app/globals.css new file mode 100644 index 0000000..8942b39 --- /dev/null +++ b/levis-holzbau/app/globals.css @@ -0,0 +1,25 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@500;600;700&family=Nunito:wght@400;600;700&display=swap'); + +html { + scroll-behavior: smooth; +} + +body { + font-family: 'Nunito', sans-serif; + background-color: #FDF8F0; + color: #2C2C2C; +} + +h1, h2, h3, h4, h5, h6 { + font-family: 'Quicksand', sans-serif; +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} diff --git a/levis-holzbau/app/layout.tsx b/levis-holzbau/app/layout.tsx new file mode 100644 index 0000000..6049bf2 --- /dev/null +++ b/levis-holzbau/app/layout.tsx @@ -0,0 +1,21 @@ +import type { Metadata } from 'next' +import './globals.css' +import { Navbar } from '@/components/Navbar' +import { Footer } from '@/components/Footer' + +export const metadata: Metadata = { + title: 'LEVIS Holzbau — Kinder-Holzwerkstatt', + description: 'Lerne Holzfiguren schnitzen und kleine Holzprojekte bauen! Kindgerechte Anleitungen fuer junge Holzwerker.', +} + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + + +
{children}
+