f851d8b8f2
Electron desktop application for Neverwinter Nights module development. Clone, edit, build, and run a complete Layonara NWNX server with only Docker required. - React 19 + Vite frontend with Monaco editor and NWScript LSP - Node.js + Express backend managing Docker sibling containers - Electron shell with Docker availability check and auto-setup - Builder image auto-builds on first use from bundled Dockerfile - Cross-platform: Windows (.exe), macOS (.dmg), Linux (.AppImage) - Gitea Actions CI for automated release builds
36 lines
1.0 KiB
Docker
36 lines
1.0 KiB
Docker
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 \
|
|
git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# nwn_gff for toolset GFF→JSON conversion (temp0/ watcher)
|
|
RUN curl -L https://github.com/layonara/neverwinter.nim/releases/download/v2.1.2-layonara/neverwinter-tools-linux-x64.tar.gz \
|
|
| tar xz -C /usr/local/bin/ \
|
|
&& nwn_gff --version
|
|
|
|
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
|
|
COPY db/ db/
|
|
|
|
EXPOSE 3000
|
|
CMD ["node", "packages/backend/dist/index.js"]
|