package main import ( "citrons.xyz/talk/server/server" "crypto/tls" "flag" "log" bolt "go.etcd.io/bbolt" ) func main() { dbFile := flag.String("db", "./talk.db", "database file location") address := flag.String("listen", ":27508", "address to listen on") certFile := flag.String("cert", "./talk.crt", "tls server certificate (pem)") keyFile := flag.String("key", "./talk.key", "tls private key (pem)") flag.Parse() db, err := bolt.Open(*dbFile, 0600, nil) if err != nil { log.Fatal(err) } defer db.Close() cert, err := tls.LoadX509KeyPair(*certFile, *keyFile) if err != nil { log.Fatal(err) } config := &tls.Config { Certificates: []tls.Certificate{ cert }, } ln, err := tls.Listen("tcp", *address, config) if err != nil { log.Fatal(err) } defer ln.Close() log.Print("talk is listening upon ",*address) server.Serve(db, ln) }