Full-featured PureRef-style collaborative canvas for game dev teams: - Layer panel with visibility, lock, drag reorder, group/ungroup (Ctrl+G/Shift+G) - Arrangement tools (grid, row, column) via right-click context menu - Copy to system clipboard (Ctrl+C writes PNG for external paste in Paint etc.) - Number shortcuts (1-5) for tool selection with visible shortcut badges - Premium dark UI across all pages (Login, Collections, Boards, Editor) - Socket.IO rooms for cursors, transforms, and presence notifications - MinIO image storage with backend proxy, drag/drop and paste upload
36 lines
776 B
Docker
36 lines
776 B
Docker
FROM node:20-alpine AS frontend-build
|
|
WORKDIR /build
|
|
COPY frontend/package.json ./frontend/
|
|
RUN cd frontend && npm install
|
|
COPY frontend/ ./frontend/
|
|
RUN cd frontend && npm run build
|
|
|
|
FROM node:20-alpine
|
|
WORKDIR /app
|
|
|
|
# Build tools for native modules (better-sqlite3, sharp)
|
|
RUN apk add --no-cache python3 make g++
|
|
|
|
# Backend dependencies
|
|
COPY backend/package.json ./backend/
|
|
RUN cd backend && npm install --production
|
|
|
|
# Remove build tools to keep image smaller
|
|
RUN apk del python3 make g++
|
|
|
|
# Backend source
|
|
COPY backend/ ./backend/
|
|
|
|
# Frontend build output
|
|
COPY --from=frontend-build /build/frontend/dist ./frontend/dist
|
|
|
|
# Data directory for SQLite
|
|
RUN mkdir -p /app/data
|
|
|
|
# Health check utility
|
|
RUN apk add --no-cache wget
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["node", "backend/server.js"]
|