diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-12-06 19:06:33 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-12-06 19:24:07 +0900 |
| commit | 39deb471d976d863d2ec803f908025a2366f1486 (patch) | |
| tree | 5aee9cc44b21d92a0d4a7c9f33fe487acc732d92 /nginx.conf | |
| parent | c65609278df8a95ad82acc852e224607069859b4 (diff) | |
| download | kioku-39deb471d976d863d2ec803f908025a2366f1486.tar.gz kioku-39deb471d976d863d2ec803f908025a2366f1486.tar.zst kioku-39deb471d976d863d2ec803f908025a2366f1486.zip | |
build(server): add Dockerfiles
Add build pipeline with esbuild for production bundling.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'nginx.conf')
| -rw-r--r-- | nginx.conf | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..cf93da0 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,34 @@ +server { + listen 80; + server_name localhost; + root /usr/share/nginx/html; + index index.html; + + # Gzip compression + gzip on; + gzip_vary on; + gzip_min_length 1024; + gzip_types text/plain text/css text/javascript application/javascript application/json; + + # API requests proxy to backend + location /api { + proxy_pass http://server:3000; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + # Static assets with cache headers + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + try_files $uri =404; + } + + # SPA fallback - all routes go to index.html + location / { + try_files $uri $uri/ /index.html; + } +} |
