feat: Add Docker support and fix build issues

This commit is contained in:
Danny Morabito 2025-07-06 16:50:51 +02:00
parent c6ce63b6fa
commit c16dc1d694
Signed by: dannym
GPG key ID: 7CC8056A5A04557E
3 changed files with 68 additions and 1 deletions

32
.dockerignore Normal file
View file

@ -0,0 +1,32 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Dependency directories
node_modules/
# SvelteKit build folder
.svelte-kit
build/
# Docker
Dockerfile
.dockerignore
# Git
.git
.gitignore

35
Dockerfile Normal file
View file

@ -0,0 +1,35 @@
FROM node:20-alpine AS builder
RUN mkdir -p /data && chown node:node /data
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
FROM node:20-alpine
WORKDIR /app
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
COPY package.json .
RUN npm install --omit=dev
RUN mkdir -p /data
RUN touch /data/portal-btc.db
COPY --from=builder /app/build .
VOLUME /data
RUN chown -R appuser:appgroup /app /data
USER appuser
EXPOSE 3000
CMD ["node", "index.js"]

View file

@ -3,7 +3,7 @@ import { ENCRYPTION_KEY } from "./config";
import { browser } from "$app/environment";
const db = browser ? null : createClient({
url: "file:portal-btc.db",
url: "file:/data/portal-btc.db",
encryptionKey: ENCRYPTION_KEY,
});