all repos — website @ d5b95136d5f162645a6bfaa76833cbf5520f7e45

My website

enable TLS for local development (using caddy as acme server)

Alan Pearce
commit

d5b95136d5f162645a6bfaa76833cbf5520f7e45

parent

98e63f34bd0ffa9087f7e2640d60d6d1c30ecc13

1 file changed, 15 insertions(+), 6 deletions(-)

changed files
M internal/server/server.gointernal/server/server.go
@@ -9,6 +9,7 @@ "net/url"
"os" "slices" "strconv" + "strings" "time" "website/internal/builder"
@@ -31,13 +32,16 @@ serverHeader = fmt.Sprintf("website (%s)", ShortSHA)
) type Config struct { - Development bool `conf:"default:false,flag:dev"` Root string `conf:"default:website"` Redirect bool `conf:"default:true"` ListenAddress string `conf:"default:localhost"` - Port int `conf:"default:3000,short:p"` - TLSPort int `conf:"default:443"` + Port int `conf:"default:8080,short:p"` + TLSPort int `conf:"default:8443"` TLS bool `conf:"default:false"` + + Development bool `conf:"default:false,flag:dev"` + ACMECACert string `conf:"env:ACME_CA_CERT"` + Domains string } type Server struct {
@@ -46,13 +50,18 @@ runtimeConfig *Config
config *cfg.Config } -func applyDevModeOverrides(config *cfg.Config, listenAddress string) { +func applyDevModeOverrides(config *cfg.Config, runtimeConfig *Config) { config.CSP.ScriptSrc = slices.Insert(config.CSP.ScriptSrc, 0, "'unsafe-inline'") config.CSP.ConnectSrc = slices.Insert(config.CSP.ConnectSrc, 0, "'self'") + if runtimeConfig.Domains != "" { + config.Domains = strings.Split(runtimeConfig.Domains, ",") + } else { + config.Domains = []string{runtimeConfig.ListenAddress} + } config.BaseURL = cfg.URL{ URL: &url.URL{ Scheme: "http", - Host: listenAddress, + Host: runtimeConfig.ListenAddress, }, } }
@@ -110,7 +119,7 @@ if err != nil {
return nil, errors.WithMessage(err, "error parsing configuration file") } if runtimeConfig.Development { - applyDevModeOverrides(config, runtimeConfig.ListenAddress) + applyDevModeOverrides(config, runtimeConfig) } listenAddress := net.JoinHostPort(runtimeConfig.ListenAddress, strconv.Itoa(runtimeConfig.Port))