- Fastify-Webserver mit /health und /webhooks/gitea (HMAC-SHA256-Signaturprüfung, timing-safe) - Push-Commits werden in SQLite gespeichert (Dedupe per SHA) und als Embed gepostet - Dockerfile auf node:22-slim (glibc-Prebuilds für better-sqlite3), Port 3080 published - README: Anleitung für Cloudflare-DNS, Nginx Proxy Manager (bot.d4rkst3r.de) und Gitea-Webhook Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
19 lines
466 B
Docker
19 lines
466 B
Docker
# EcoBot — Discord-Bot + (später) Webinterface
|
|
# slim statt alpine: better-sqlite3 liefert glibc-Prebuilds → kein Compiler im Image nötig
|
|
FROM node:22-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Erst nur Manifest kopieren → Docker-Layer-Cache für npm ci
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci --omit=dev
|
|
|
|
COPY src ./src
|
|
|
|
# Laufzeitdaten (SQLite ab Feature 2) landen in /app/data → Volume
|
|
RUN mkdir -p /app/data
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
CMD ["node", "src/index.js"]
|