Größeres Redesign, das die Seite spürbar besser macht. Behält das
Magenta/Grün-Dark-Thing, poliert aber alles drumherum.
Neue Komponenten:
- hero-banner: full-bleed Hero mit AI-generiertem Hintergrund (grok-imagine-image,
1280×720, Magenta/Grün-Akzente), Terminal-Boot-Animation mit Tipp-Effekt,
Rotating-Role-Animation, animiertes Grid-Overlay.
- command-palette: �K / Ctrl+K öffnet ein durchsuchbares Modal mit Navigation,
Projekt-Suche, Aktionen (Gitea/w-make.com/Admin) und Easter Eggs. Tastatur
↑↓/Enter/Esc, gruppiert nach Typ, mit Vorschau-Hints.
- custom-cursor: Canvas-basierter Cursor mit Trail für Desktop, 14 Punkte,
Farbwechsel Magenta↔Grün, Hover-State für interaktive Elemente. Touch-
Devices behalten den Default-Cursor.
- scroll-progress: Top-Bar mit Magenta→Grün-Gradient.
- tilt-card: 3D-Hover mit Mouse-Tracking (CSS-Variablen --rx/--ry/--mx/--my).
- stack-icon: 13 handgezeichnete inline SVGs (TypeScript, Node, Python, Rust,
SQLite, Tailwind, React, Docker, Gitea, Next, Nix, Hermes, Shell, Self-Host).
Kein CDN, kein Hydration, currentColor-aware.
- project-filter: tag-basierter Filter für Projekt-Liste, Status-Tone-Tags
(live/warm/muted) plus Kategorie-Tags, useTransition für sanfte Updates.
Pages-Update:
- Home (/): neuer Hero-Banner, Featured-Grid mit Tilt-Cards und KI-generierten
Thumbnails (hermes.jpg, casino-bot.jpg, polymarket-trader.jpg), darunter
filterbare Projekt-Liste, Bio + Links Sidebar.
- Projects: filterbar nach Kategorie und Status.
- Project-Detail: Hero-Image (für 3 Projekte), Stack-Pills mit SVG-Icons,
bessere Sektionierung (~/stack, ~/notes).
- About: Stack-Visualisierung mit 13 Einträgen in einem Grid.
- OpenGraph-Image pro Projekt (Next.js native, 1200×630): eldov-Logo,
Projekt-Slug in Magenta, Status-Badge, Kategorie-Badge.
Build-Hash-Support:
- NEXT_PUBLIC_BUILD_HASH + NEXT_PUBLIC_BUILD_DATE werden via Docker ARG in
die Footer geschrieben ("build abc1234 · 2026-08-31"), deploy-vps.sh
ermittelt Commit-Hash automatisch aus git und gibt ihn weiter.
Theme v2:
- Tiefere Palette (--bg #0a0a10, --bg-deep #050508), --fg-dim für Hierarchie.
- Neue Komponenten-Klassen: tilt-card, stack-pill, tag, hero-bg, hero-banner,
scroll-progress, cursor-blink, type-in, glow-text.
- ASCII-Box-Hover-Effekt mit Akzent-Border.
Public-Bilder unter public/img/{hero,projects}/ — KI-generiert via xAI
grok-imagine-image (Token aus .hermes-state/credentials/xai.json), alle
im Marken-Stil (Magenta/Grün/dunkel). 4 Bilder, ~960 KB total.
Sonstiges:
- Header mit ⌘K-Hint, sticky+blur.
- Footer mit Build-Hash, externen Links, Datenschutz-Badge.
- About-Page mit Stack-Grid.
43 lines
1.7 KiB
Docker
43 lines
1.7 KiB
Docker
# Multi-Stage Build: deps → build → runner.
|
|
# Analog w-make-com, aber standalone mit bereits gebauter Next.js App.
|
|
|
|
FROM node:22.13-bookworm-slim AS deps
|
|
WORKDIR /app
|
|
RUN apt-get update && apt-get install -y --no-install-recommends python3 build-essential ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY package.json package-lock.json* ./
|
|
RUN npm ci
|
|
|
|
FROM deps AS build
|
|
WORKDIR /app
|
|
COPY . .
|
|
ARG NEXT_PUBLIC_SITE_URL=https://eldov.win
|
|
ARG NEXT_PUBLIC_BUILD_HASH=dev
|
|
ARG NEXT_PUBLIC_BUILD_DATE=1970-01-01
|
|
ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL}
|
|
ENV NEXT_PUBLIC_BUILD_HASH=${NEXT_PUBLIC_BUILD_HASH}
|
|
ENV NEXT_PUBLIC_BUILD_DATE=${NEXT_PUBLIC_BUILD_DATE}
|
|
ENV NEXT_TELEMETRY_DISABLED=1
|
|
RUN COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo ${NEXT_PUBLIC_BUILD_HASH}) && \
|
|
DATE=$(date -u +%Y-%m-%d) && \
|
|
echo "NEXT_PUBLIC_BUILD_HASH=${COMMIT}" >> .env.build && \
|
|
echo "NEXT_PUBLIC_BUILD_DATE=${DATE}" >> .env.build && \
|
|
npm run build
|
|
|
|
FROM node:22.13-bookworm-slim AS runner
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3000 HOSTNAME=0.0.0.0
|
|
# Non-Root
|
|
RUN groupadd --system --gid 1001 nodejs \
|
|
&& useradd --system --uid 1001 --gid nodejs eldov
|
|
# Standalone-Output (Next.js legt ihn unter .next/standalone an). Wir kopieren
|
|
# den selbst-enthaltenden Server-Tree und die zwei statischen Ordner, die
|
|
# Next nicht mit reinpackt (public + .next/static).
|
|
COPY --from=build --chown=eldov:nodejs /app/.next/standalone ./
|
|
COPY --from=build --chown=eldov:nodejs /app/.next/static ./.next/static
|
|
COPY --from=build --chown=eldov:nodejs /app/public ./public
|
|
RUN mkdir -p /app/data && chown -R eldov:nodejs /app
|
|
USER eldov
|
|
EXPOSE 3000
|
|
CMD ["node", "server.js"]
|