diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d54420f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules +dist +dist-server +.env diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..37d7e73 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..574fdba --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# Stage 1: build frontend + compile server +FROM node:20-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm ci +COPY . . +RUN npm run build + +# Stage 2: runtime (only prod deps + build artifacts) +FROM node:20-alpine +WORKDIR /app +COPY package*.json ./ +RUN npm ci --omit=dev +COPY --from=builder /app/dist ./dist +COPY --from=builder /app/dist-server ./dist-server +EXPOSE 3001 +CMD ["node", "dist-server/index.js"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a605b59 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ +services: + dashboard: + build: . + ports: + - "3001:3001" + env_file: .env + restart: unless-stopped diff --git a/index.html b/index.html new file mode 100644 index 0000000..700f754 --- /dev/null +++ b/index.html @@ -0,0 +1,15 @@ + + +
+ + +
+ {v}
+
+ ))}
+