feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Pastel UI - Static Export Docker Image
|
|
|
|
|
# Lightweight nginx-based static file server
|
2025-11-07 14:36:30 +01:00
|
|
|
|
|
|
|
|
# Stage 1: Dependencies
|
|
|
|
|
FROM node:20-alpine AS deps
|
|
|
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# Copy package files
|
|
|
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
|
|
|
|
|
|
# Install dependencies
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
RUN pnpm install --frozen-lockfile
|
2025-11-07 14:36:30 +01:00
|
|
|
|
|
|
|
|
# Stage 2: Builder
|
|
|
|
|
FROM node:20-alpine AS builder
|
|
|
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# Copy dependencies from deps stage
|
|
|
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
|
|
|
|
|
|
|
|
# Copy source files
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
|
|
# Set build-time environment variables
|
|
|
|
|
ENV NEXT_TELEMETRY_DISABLED=1
|
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
|
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Build static export
|
2025-11-07 14:36:30 +01:00
|
|
|
RUN pnpm build
|
|
|
|
|
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Stage 3: Production (nginx)
|
|
|
|
|
FROM nginx:alpine AS runner
|
2025-11-07 14:36:30 +01:00
|
|
|
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Copy static files to nginx html directory
|
|
|
|
|
COPY --from=builder /app/out /usr/share/nginx/html
|
2025-11-07 14:36:30 +01:00
|
|
|
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Copy custom nginx configuration for SPA routing and WASM support
|
|
|
|
|
COPY nginx.conf /etc/nginx/nginx.conf
|
2025-11-07 14:36:30 +01:00
|
|
|
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Create non-root user for nginx
|
|
|
|
|
RUN chown -R nginx:nginx /usr/share/nginx/html && \
|
|
|
|
|
chmod -R 755 /usr/share/nginx/html
|
2025-11-07 14:36:30 +01:00
|
|
|
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Expose port 80
|
|
|
|
|
EXPOSE 80
|
2025-11-07 14:36:30 +01:00
|
|
|
|
2025-11-17 09:12:30 +01:00
|
|
|
# Health check (use 127.0.0.1 to force IPv4)
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
2025-11-17 09:12:30 +01:00
|
|
|
CMD wget --no-verbose --tries=1 --spider http://127.0.0.1/ || exit 1
|
2025-11-07 14:36:30 +01:00
|
|
|
|
feat: integrate WebAssembly for zero-latency, offline-first color operations
Replaced REST API dependency with @valknarthing/pastel-wasm (130KB) for
complete browser-based color operations. The application is now fully
static (2.2MB total) with zero network latency and offline support.
**Key Changes:**
1. **WASM Integration:**
- Added @valknarthing/pastel-wasm dependency (0.1.0)
- Created lib/api/wasm-client.ts wrapper matching API interface
- Updated lib/api/client.ts to use WASM client by default
- All 18 color operations now run locally in browser
2. **Static Export Configuration:**
- Changed next.config.ts output from 'standalone' to 'export'
- Disabled image optimization for static export
- Removed API proxy route (app/api/pastel/[...path]/route.ts)
- Updated package.json scripts (removed dev:api, added serve)
3. **Docker Optimization:**
- Migrated from Node.js standalone to nginx-alpine
- Created nginx.conf with SPA routing and WASM mime types
- Updated Dockerfile for static file serving
- Reduced image size from ~150MB to ~25MB
- Changed port from 3000 to 80 (standard HTTP)
- Simplified docker-compose.yml (removed pastel-api service)
4. **Documentation Updates:**
- Updated README.md with WASM benefits and deployment options
- Added Key Benefits section highlighting zero-latency features
- Rewrote deployment section for static hosting platforms
- Updated CLAUDE.md tech stack and architecture
- Removed obsolete docs: DEV_SETUP.md, DOCKER.md, IMPLEMENTATION_PLAN.md
**Benefits:**
- 🚀 Zero Latency - All operations run locally via WebAssembly
- 📱 Offline First - Works completely offline after initial load
- 🌐 No Backend - Fully static, deploy anywhere
- ⚡ Fast - Native-speed color operations in browser
- 📦 Small - 2.2MB total (130KB WASM, 2.07MB HTML/CSS/JS)
**Deployment:**
Can now be deployed to any static hosting platform:
- Vercel, Netlify, Cloudflare Pages (zero config)
- GitHub Pages, S3, CDN
- Self-hosted nginx/Apache
- Docker (optional, nginx-based)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:06:25 +01:00
|
|
|
# Run nginx
|
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|