Files
valknar f537f32295 Initial Roux Hugo site — fashion journal for roux.pivoine.art
100-post fashion journal generated from ~/projects/ginger content:
- Hugo Extended static site with TailwindCSS v4
- WebP image pipeline (thumb/card/og/full sizes via Hugo image processing)
- Full SEO: sitemap (501 URLs), OpenGraph with per-post images, Twitter cards
- Async page transitions via View Transitions API
- Deep-linked URLs: /posts/[slug]/, /categories/[cat]/, /tags/[tag]/, /issues/
- Lightbox with keyboard/swipe nav, thumbnail strip, inverted search index
- Issues archive with quarterly release structure
- Multi-stage Dockerfile (Tailwind → Hugo → nginx:alpine)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 16:27:47 +02:00

25 lines
747 B
Docker

### Stage 1: Build CSS with Tailwind v4
FROM node:20-alpine AS tailwind
WORKDIR /build
COPY package.json pnpm-lock.yaml* ./
RUN npm install -g pnpm && pnpm install --frozen-lockfile
COPY assets/css ./assets/css
COPY layouts ./layouts
RUN pnpm build:css
### Stage 2: Build site with Hugo Extended
FROM hugomods/hugo:exts-0.154.3 AS hugo
WORKDIR /site
# Copy everything EXCEPT node_modules
COPY . .
COPY --from=tailwind /build/static/css/main.css static/css/main.css
# Content images are baked in via the import script; make sure they exist
RUN hugo --minify --environment production
### Stage 3: Serve with nginx
FROM nginx:1.27-alpine
COPY --from=hugo /site/public /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80