Initial SvelteKit frontend port of windwiderstand.de
Deploy / verify (push) Failing after 32s
Deploy / deploy (push) Has been skipped

Full parity with Astro site: content rows, post/tag routes, pagination,
event badges + OSM map, comments, Live-Search via /api/search-index,
CMS image proxy, RSS, sitemap.

Deploy: Dockerfile + docker-compose.prod.yml + Gitea Actions workflow
to build + push to git.pm86.de registry and ssh-deploy to Contabo.
This commit is contained in:
Peter Meier
2026-04-17 22:01:30 +02:00
parent 852cef0980
commit 2fef91a548
137 changed files with 28585 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
# ─────────────────────────────────────────────
# Stage 1: Build
# ─────────────────────────────────────────────
FROM node:22-alpine AS builder
WORKDIR /app
# Erst nur package*.json besseres Layer-Caching
COPY package*.json ./
# postinstall versucht CMS-Types zu generieren (|| true → unkritisch ohne CMS)
RUN npm ci
COPY . .
RUN npm run build
# ─────────────────────────────────────────────
# Stage 2: Schlankes Production-Image
# ─────────────────────────────────────────────
FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
# Nur Production-Deps, kein postinstall nötig
COPY package*.json ./
RUN npm ci --omit=dev --ignore-scripts
# Build-Artefakt aus Stage 1
COPY --from=builder /app/build ./build
# Non-root user
RUN addgroup -g 1001 -S nodejs \
&& adduser -S svelte -u 1001 -G nodejs \
&& chown -R svelte:nodejs /app
USER svelte
EXPOSE 3001
ENV PORT=3001
CMD ["node", "build"]