diff options
| author | adnano <[email protected]> | 2020-09-21 17:23:51 -0400 |
|---|---|---|
| committer | adnano <[email protected]> | 2020-09-21 17:23:51 -0400 |
| commit | e20b8a0a5e8474b14b0c6702ffc1fdc7df76756e (patch) | |
| tree | 84f25b510874740a2d568b5be3f160256f04743e /example/server/server.go | |
| parent | Add LICENSE (diff) | |
| download | go-gemini-e20b8a0a5e8474b14b0c6702ffc1fdc7df76756e.tar.xz go-gemini-e20b8a0a5e8474b14b0c6702ffc1fdc7df76756e.zip | |
Add examples
Diffstat (limited to 'example/server/server.go')
| -rw-r--r-- | example/server/server.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/example/server/server.go b/example/server/server.go new file mode 100644 index 0000000..3f0a3e3 --- /dev/null +++ b/example/server/server.go @@ -0,0 +1,41 @@ +// +build example + +package main + +import ( + "crypto/tls" + "git.sr.ht/~adnano/go-gemini" + "log" + "net/url" +) + +func main() { + // Load a TLS key pair. + // To generate a TLS key pair, run: + // + // openssl genrsa -out server.key 2048 + // openssl ecparam -genkey -name secp384r1 -out server.key + // openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650 + // + config := &tls.Config{} + cert, err := tls.LoadX509KeyPair("example/server/server.crt", "example/server/server.key") + if err != nil { + log.Fatal(err) + } + config.Certificates = append(config.Certificates, cert) + + mux := &gemini.Mux{} + mux.HandleFunc("/", func(url *url.URL) *gemini.Response { + return &gemini.Response{ + Status: gemini.StatusSuccess, + Meta: "text/gemini", + Body: []byte("You requested " + url.String()), + } + }) + + server := gemini.Server{ + TLSConfig: config, + Handler: mux, + } + server.ListenAndServe() +} |