mirror of
				https://github.com/AndersPier/v0-v0app.git
				synced 2025-10-27 10:06:52 +00:00 
			
		
		
		
	feat: add complete Docker setup for markdown editor
Create Docker configuration files and setup commands #VERCEL_SKIP Co-authored-by: Anders Lehmann Pier <3219386+AndersPier@users.noreply.github.com>
This commit is contained in:
		
							
								
								
									
										96
									
								
								nginx.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								nginx.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | ||||
| events { | ||||
|     worker_connections 1024; | ||||
| } | ||||
|  | ||||
| http { | ||||
|     upstream markdown-editor { | ||||
|         server markdown-editor:3000; | ||||
|     } | ||||
|  | ||||
|     # Rate limiting | ||||
|     limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s; | ||||
|  | ||||
|     server { | ||||
|         listen 80; | ||||
|         server_name localhost; | ||||
|  | ||||
|         # Security headers | ||||
|         add_header X-Frame-Options "SAMEORIGIN" always; | ||||
|         add_header X-Content-Type-Options "nosniff" always; | ||||
|         add_header X-XSS-Protection "1; mode=block" always; | ||||
|         add_header Referrer-Policy "strict-origin-when-cross-origin" always; | ||||
|  | ||||
|         # Gzip compression | ||||
|         gzip on; | ||||
|         gzip_vary on; | ||||
|         gzip_min_length 1024; | ||||
|         gzip_proxied any; | ||||
|         gzip_comp_level 6; | ||||
|         gzip_types | ||||
|             text/plain | ||||
|             text/css | ||||
|             text/xml | ||||
|             text/javascript | ||||
|             application/json | ||||
|             application/javascript | ||||
|             application/xml+rss | ||||
|             application/atom+xml | ||||
|             image/svg+xml; | ||||
|  | ||||
|         # Static files caching | ||||
|         location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { | ||||
|             expires 1y; | ||||
|             add_header Cache-Control "public, immutable"; | ||||
|             proxy_pass http://markdown-editor; | ||||
|             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; | ||||
|         } | ||||
|  | ||||
|         # API routes with rate limiting | ||||
|         location /api/ { | ||||
|             limit_req zone=api burst=20 nodelay; | ||||
|             proxy_pass http://markdown-editor; | ||||
|             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; | ||||
|         } | ||||
|  | ||||
|         # Main application | ||||
|         location / { | ||||
|             proxy_pass http://markdown-editor; | ||||
|             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; | ||||
|              | ||||
|             # WebSocket support (if needed) | ||||
|             proxy_http_version 1.1; | ||||
|             proxy_set_header Upgrade $http_upgrade; | ||||
|             proxy_set_header Connection "upgrade"; | ||||
|         } | ||||
|  | ||||
|         # Health check endpoint | ||||
|         location /health { | ||||
|             access_log off; | ||||
|             return 200 "healthy\n"; | ||||
|             add_header Content-Type text/plain; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     # HTTPS configuration (uncomment and configure for production) | ||||
|     # server { | ||||
|     #     listen 443 ssl http2; | ||||
|     #     server_name your-domain.com; | ||||
|     #      | ||||
|     #     ssl_certificate /etc/nginx/ssl/cert.pem; | ||||
|     #     ssl_certificate_key /etc/nginx/ssl/key.pem; | ||||
|     #     ssl_protocols TLSv1.2 TLSv1.3; | ||||
|     #     ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384; | ||||
|     #     ssl_prefer_server_ciphers off; | ||||
|     #      | ||||
|     #     # Same location blocks as above | ||||
|     # } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user