sochboard/Dockerfile
maxsoch 528e8bcbbb feat: initial Sochboard dashboard
- Next.js 16 App Router with TypeScript + Tailwind CSS v4
- YAML config read at runtime via server components (force-dynamic)
- Zod validation for config schema (site, theme, sections, links)
- Dark/light theme with CSS variables and client-side toggle
- Dashboard layout: header (logo + title), sections, responsive card grid
- Horizontal card layout (icon left, text right) with optional vertical mode
- Lucide React icons with fallback, custom iconUrl support for SVG icons
- Glassmorphism cards with hover/focus/keyboard accessibility
- Mobile responsive: 2 columns on mobile, up to 5 on xl screens
- Docker multi-stage build with docker-compose volume for config
- Standalone Next.js output for production
- CONFIGURATION.md and ROADMAP.md documentation
2026-07-24 08:59:17 +02:00

34 lines
638 B
Docker

FROM node:20-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --only=production
FROM node:20-alpine AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
RUN addgroup --system --gid 1001 nodejs && \
adduser --system --uid 1001 nextjs
COPY --from=build /app/public ./public
COPY --from=build /app/.next/standalone ./
COPY --from=build /app/.next/static ./.next/static
EXPOSE 3000
ENV PORT=3000
ENV HOSTNAME="0.0.0.0"
USER nextjs
CMD ["node", "server.js"]