Skip to content

Commit 286f4d5

Browse files
Matthew Valancyclaude
andcommitted
Remove nginx, use only Traefik for routing
Changes: - Create new Dockerfile.traefik using serve instead of nginx - Update docker-compose.demo.yml to use Traefik labels on web container - Web container now serves on port 3000 internally - Traefik routes both /graphql (priority 20) and / (priority 1) This eliminates the nginx layer and simplifies the architecture to use only Traefik for all routing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent da67f3c commit 286f4d5

2 files changed

Lines changed: 41 additions & 2 deletions

File tree

docker-compose.demo.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ services:
7878
web:
7979
build:
8080
context: .
81-
dockerfile: packages/web/Dockerfile
81+
dockerfile: packages/web/Dockerfile.traefik
8282
container_name: graphdone-web
8383
environment:
8484
- NODE_ENV=production
@@ -93,7 +93,7 @@ services:
9393
- "traefik.http.routers.demo-web.rule=PathPrefix(`/`)"
9494
- "traefik.http.routers.demo-web.priority=1"
9595
- "traefik.http.routers.demo-web.entrypoints=web"
96-
- "traefik.http.services.demo-web.loadbalancer.server.port=80"
96+
- "traefik.http.services.demo-web.loadbalancer.server.port=3000"
9797

9898
volumes:
9999
neo4j_data:

packages/web/Dockerfile.traefik

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
FROM node:18-alpine AS builder
2+
3+
# Build argument for base path
4+
ARG BASE_PATH=/
5+
6+
WORKDIR /app
7+
8+
# Copy package files
9+
COPY package.json package-lock.json turbo.json ./
10+
COPY packages/core/package.json ./packages/core/
11+
COPY packages/web/package.json ./packages/web/
12+
COPY tsconfig.json ./
13+
14+
# Install dependencies
15+
RUN npm ci
16+
17+
# Copy source code
18+
COPY packages/core ./packages/core
19+
COPY packages/web ./packages/web
20+
21+
# Build the application
22+
ENV BASE_PATH=${BASE_PATH}
23+
RUN npm run build
24+
25+
# Production stage - simple Node static server
26+
FROM node:18-alpine
27+
28+
WORKDIR /app
29+
30+
# Install serve for static file hosting
31+
RUN npm install -g serve
32+
33+
# Copy built files
34+
COPY --from=builder /app/packages/web/dist ./dist
35+
36+
EXPOSE 3000
37+
38+
# Serve static files on port 3000
39+
CMD ["serve", "-s", "dist", "-l", "3000"]

0 commit comments

Comments
 (0)