Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CertInfo ¶
type CertInfo struct {
Exists bool `json:"exists"`
ValidUntil *time.Time `json:"valid_until,omitempty"`
DaysRemaining *int `json:"days_remaining,omitempty"`
Subject string `json:"subject,omitempty"`
DNSNames []string `json:"dns_names,omitempty"` // server cert only
}
CertInfo contains details about a specific certificate
type CertificateStatus ¶
type CertificateStatus struct {
AutoGenerated bool `json:"auto_generated"`
Directory string `json:"directory"`
CA *CertInfo `json:"ca"`
Server *CertInfo `json:"server"`
}
CertificateStatus contains information about TLS certificates
type DockerStatus ¶
type DockerStatus struct {
Connected bool `json:"connected"`
Network string `json:"network"`
APIVersion string `json:"api_version,omitempty"`
}
DockerStatus contains Docker connection information
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler is the main HTTP handler for the reverse proxy
func NewHandler ¶
func NewHandler(router *Router, dashboardHost string, statusConfig *StatusConfig) *Handler
NewHandler creates a new proxy handler
type ProxyStatus ¶
type ProxyStatus struct {
RoutesCount int `json:"routes_count"`
DashboardHost string `json:"dashboard_host"`
BaseDomain string `json:"base_domain"`
HTTPPort int `json:"http_port"`
HTTPSPort int `json:"https_port"`
}
ProxyStatus contains proxy configuration and state
type RedirectHandler ¶
type RedirectHandler struct {
HTTPSPort int
}
RedirectHandler redirects HTTP to HTTPS
func (*RedirectHandler) ServeHTTP ¶
func (h *RedirectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP implements http.Handler for HTTP->HTTPS redirect
type RouteInfo ¶
type RouteInfo struct {
Hostname string
PathPrefix string
Target string
ContainerName string
ServiceName string
}
RouteInfo is a display-friendly route representation
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
Router manages routes and provides thread-safe access
func (*Router) AddBackend ¶
AddBackend adds or updates a route for a backend
func (*Router) ListRoutes ¶
ListRoutes returns all current routes for display
func (*Router) RemoveBackend ¶
RemoveBackend removes routes for a container
func (*Router) RemoveProject ¶
RemoveProject removes all routes for a given project
type StatusConfig ¶
type StatusConfig struct {
Version string
StartTime time.Time
CertsDir string
AutoGenerated bool
Network string
BaseDomain string
HTTPPort int
HTTPSPort int
}
StatusConfig contains configuration for the status endpoint
type StatusResponse ¶
type StatusResponse struct {
Version string `json:"version"`
UptimeSeconds int64 `json:"uptime_seconds"`
Certificates CertificateStatus `json:"certificates"`
Docker DockerStatus `json:"docker"`
Proxy ProxyStatus `json:"proxy"`
Health string `json:"health"`
}
StatusResponse represents the overall status of roji