this repo has no description smallweb.run
smallweb
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

add back cert and key

pomdtr dff3a094 b9489d30

+43 -17
+32 -17
cmd/up.go
··· 2 2 3 3 import ( 4 4 "context" 5 + "crypto/tls" 5 6 "database/sql" 6 7 "fmt" 7 8 "log" ··· 172 173 Handler: httpLogger.Middleware(handler), 173 174 } 174 175 175 - addr := k.String("addr") 176 - var ln net.Listener 177 - if strings.HasPrefix(addr, "unix/") { 178 - socketPath := strings.TrimPrefix(addr, "unix/") 179 - l, err := net.Listen("unix", utils.ExpandTilde(socketPath)) 180 - if err != nil { 181 - return fmt.Errorf("failed to listen: %v", err) 182 - } 183 - ln = l 184 - } else { 185 - addr := strings.TrimPrefix(addr, "tcp/") 186 - l, err := net.Listen("tcp", addr) 187 - if err != nil { 188 - return fmt.Errorf("failed to listen: %v", err) 189 - } 190 - 191 - ln = l 176 + ln, err := getListener(k.String("addr"), utils.ExpandTilde(k.String("cert")), utils.ExpandTilde(k.String("key"))) 177 + if err != nil { 178 + return fmt.Errorf("failed to listen: %v", err) 192 179 } 193 180 194 181 go server.Serve(ln) ··· 232 219 } 233 220 234 221 return cmd 222 + } 223 + 224 + func getListener(addr, cert, key string) (net.Listener, error) { 225 + var config *tls.Config 226 + if cert != "" && key != "" { 227 + cert, err := tls.LoadX509KeyPair(cert, key) 228 + if err != nil { 229 + return nil, fmt.Errorf("failed to load cert: %v", err) 230 + } 231 + 232 + config = &tls.Config{Certificates: []tls.Certificate{cert}} 233 + } 234 + 235 + if strings.HasPrefix(addr, "unix/") { 236 + socketPath := strings.TrimPrefix(addr, "unix/") 237 + if config != nil { 238 + return tls.Listen("unix", utils.ExpandTilde(socketPath), config) 239 + } 240 + 241 + return net.Listen("unix", utils.ExpandTilde(socketPath)) 242 + } 243 + 244 + addr = strings.TrimPrefix(addr, "tcp/") 245 + if config != nil { 246 + return tls.Listen("tcp", addr, config) 247 + } 248 + 249 + return net.Listen("tcp", addr) 235 250 } 236 251 237 252 type AppHandler struct {
+11
docs/src/reference/global_config.md
··· 26 26 } 27 27 ``` 28 28 29 + ### `cert` and `key` 30 + 31 + The `cert` and `key` fields define the path to the SSL certificate and key. 32 + 33 + ```json 34 + { 35 + "cert": "~/cert.pem", 36 + "key": "~/key.pem" 37 + } 38 + ``` 39 + 29 40 ### `domain` 30 41 31 42 The `domain` field defines the apex domain used for routing.