mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
93 lines
2.0 KiB
Caddyfile
93 lines
2.0 KiB
Caddyfile
# Caddy reverse proxy configuration for Sonr services
|
|||
|
|
{
|
||
|
|
# Global options
|
||
|
|
admin off
|
||
|
|
auto_https off
|
||
|
|
# Enable debug mode for development
|
||
|
|
debug
|
||
|
|
}
|
||
|
|
|
||
|
|
# Health check endpoint
|
||
|
|
:80/health {
|
||
|
|
respond "OK" 200
|
||
|
|
}
|
||
|
|
|
||
|
|
# REST API proxy (Cosmos SDK)
|
||
|
|
:80/api/* {
|
||
|
|
reverse_proxy snrd:1317
|
||
|
|
header Access-Control-Allow-Origin *
|
||
|
|
header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
||
|
|
header Access-Control-Allow-Headers "Content-Type, Authorization"
|
||
|
|
}
|
||
|
|
|
||
|
|
# gRPC-Web proxy
|
||
|
|
:80/grpc/* {
|
||
|
|
reverse_proxy h2c://snrd:9090
|
||
|
|
header Access-Control-Allow-Origin *
|
||
|
|
header Access-Control-Allow-Methods "GET, POST, OPTIONS"
|
||
|
|
header Access-Control-Allow-Headers "Content-Type, x-grpc-web, x-user-agent"
|
||
|
|
}
|
||
|
|
|
||
|
|
# JSON-RPC proxy (EVM)
|
||
|
|
:80/rpc {
|
||
|
|
reverse_proxy snrd:8545
|
||
|
|
header Access-Control-Allow-Origin *
|
||
|
|
header Access-Control-Allow-Methods "POST, OPTIONS"
|
||
|
|
header Access-Control-Allow-Headers "Content-Type"
|
||
|
|
}
|
||
|
|
|
||
|
|
# WebSocket JSON-RPC proxy (EVM)
|
||
|
|
:80/ws {
|
||
|
|
reverse_proxy snrd:8546
|
||
|
|
header Access-Control-Allow-Origin *
|
||
|
|
}
|
||
|
|
|
||
|
|
# Highway service proxy
|
||
|
|
:80/highway/* {
|
||
|
|
reverse_proxy highway:8090
|
||
|
|
header Access-Control-Allow-Origin *
|
||
|
|
header Access-Control-Allow-Methods "GET, POST, OPTIONS"
|
||
|
|
header Access-Control-Allow-Headers "Content-Type, Authorization"
|
||
|
|
}
|
||
|
|
|
||
|
|
# Production configuration with TLS (when CADDY_DOMAIN is set)
|
||
|
|
{$CADDY_DOMAIN:localhost} {
|
||
|
|
# TLS configuration for production
|
||
|
|
@production {
|
||
|
|
not host localhost
|
||
|
|
}
|
||
|
|
|
||
|
|
tls @production {
|
||
|
|
# Automatic HTTPS with Let's Encrypt
|
||
|
|
}
|
||
|
|
|
||
|
|
# Same proxy rules as above
|
||
|
|
handle /health {
|
||
|
|
respond "OK" 200
|
||
|
|
}
|
||
|
|
|
||
|
|
handle /api/* {
|
||
|
|
reverse_proxy snrd:1317
|
||
|
|
}
|
||
|
|
|
||
|
|
handle /grpc/* {
|
||
|
|
reverse_proxy h2c://snrd:9090
|
||
|
|
}
|
||
|
|
|
||
|
|
handle /rpc {
|
||
|
|
reverse_proxy snrd:8545
|
||
|
|
}
|
||
|
|
|
||
|
|
handle /ws {
|
||
|
|
reverse_proxy snrd:8546
|
||
|
|
}
|
||
|
|
|
||
|
|
handle /highway/* {
|
||
|
|
reverse_proxy highway:8090
|
||
|
|
}
|
||
|
|
|
||
|
|
# Default handler
|
||
|
|
handle {
|
||
|
|
respond "Sonr Network Gateway" 200
|
||
|
|
}
|
||
|
|
}
|