From c6a57fe4481e245e0f9db4e55de18ebf10656873 Mon Sep 17 00:00:00 2001 From: plenarius Date: Mon, 20 Apr 2026 18:38:52 -0400 Subject: [PATCH] feat: add Forge Dockerfile and docker-compose.yml --- .dockerignore | 5 +++++ .env.example | 7 +++++++ Dockerfile | 28 ++++++++++++++++++++++++++++ docker-compose.yml | 14 ++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3b2c5dd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +node_modules +dist +.git +*.log +.env diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..a533d83 --- /dev/null +++ b/.env.example @@ -0,0 +1,7 @@ +# Path where Forge stores repos, server data, and config +WORKSPACE_PATH=~/layonara-workspace + +# Path to your NWN documents directory +# Windows: C:\Users\\Documents\Neverwinter Nights +# Linux: ~/.local/share/Neverwinter Nights +NWN_HOME_PATH= diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..353aeda --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM node:20-slim AS builder + +WORKDIR /app +COPY package.json tsconfig.base.json ./ +COPY packages/backend/package.json packages/backend/ +COPY packages/frontend/package.json packages/frontend/ +RUN npm install + +COPY packages/ packages/ +RUN npm run build + +FROM node:20-slim + +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app +COPY package.json tsconfig.base.json ./ +COPY packages/backend/package.json packages/backend/ +COPY packages/frontend/package.json packages/frontend/ +RUN npm install --omit=dev + +COPY --from=builder /app/packages/backend/dist packages/backend/dist +COPY --from=builder /app/packages/frontend/dist packages/frontend/dist + +EXPOSE 3000 +CMD ["node", "packages/backend/dist/index.js"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..91af800 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +services: + forge: + build: . + container_name: layonara-forge + restart: unless-stopped + ports: + - "3000:3000" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${WORKSPACE_PATH:-~/layonara-workspace}:/workspace + - ${NWN_HOME_PATH:-/dev/null}:/nwn-home:ro + environment: + - WORKSPACE_PATH=/workspace + - NWN_HOME_PATH=/nwn-home