Reverse Proxy
Caddy (recommended)
Section titled “Caddy (recommended)”Caddy handles TLS automatically:
api.example.com { reverse_proxy localhost:8080}With file uploads:
api.example.com { root * /var/lib/rcommerce/uploads file_server /uploads/* reverse_proxy /* localhost:8080}server { listen 443 ssl; server_name api.example.com;
ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem;
location / { proxy_pass http://localhost:8080; 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; }}Traefik
Section titled “Traefik”http: routers: rcommerce: rule: "Host(`api.example.com`)" service: rcommerce tls: certResolver: letsencrypt
services: rcommerce: loadBalancer: servers: - url: "http://localhost:8080"WebSocket
Section titled “WebSocket”For WebSocket support, ensure your proxy passes the Upgrade and Connection headers:
location /api/v1/ws { proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";}Configure CORS in rCommerce config:
[server.cors]enabled = trueallowed_origins = ["https://your-store.com"]allowed_methods = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]allowed_headers = ["Content-Type", "Authorization"]