# Caddy configuration for VoxBlog # Add this to your existing Caddyfile on VPS # Option 1: Single domain with /api path (Recommended) voxblog.yourdomain.com { # Frontend (React Admin) handle / { reverse_proxy localhost:3000 } # API Backend handle /api* { reverse_proxy localhost:3001 } # Enable gzip compression encode gzip # Security headers header { X-Frame-Options "SAMEORIGIN" X-Content-Type-Options "nosniff" X-XSS-Protection "1; mode=block" Referrer-Policy "strict-origin-when-cross-origin" } # Logging log { output file /var/log/caddy/voxblog-access.log } } # Option 2: Separate subdomains (Alternative) # Uncomment if you prefer separate subdomains # Frontend subdomain # voxblog.yourdomain.com { # reverse_proxy localhost:3000 # # encode gzip # # header { # X-Frame-Options "SAMEORIGIN" # X-Content-Type-Options "nosniff" # X-XSS-Protection "1; mode=block" # } # # log { # output file /var/log/caddy/voxblog-access.log # } # } # API subdomain # api.voxblog.yourdomain.com { # reverse_proxy localhost:3001 # # encode gzip # # header { # X-Frame-Options "SAMEORIGIN" # X-Content-Type-Options "nosniff" # } # # log { # output file /var/log/caddy/voxblog-api-access.log # } # }