local-server/cmd/dkl-local-server/main.go

65 lines
1.4 KiB
Go
Raw Normal View History

2018-06-12 10:09:47 +00:00
package main
import (
"flag"
"log"
"net/http"
"path/filepath"
2019-02-01 07:28:08 +00:00
restful "github.com/emicklei/go-restful"
2018-06-12 10:09:47 +00:00
"novit.nc/direktil/pkg/cas"
2019-02-01 07:28:08 +00:00
"novit.nc/direktil/local-server/pkg/apiutils"
2018-06-12 10:09:47 +00:00
)
const (
etcDir = "/etc/direktil"
)
var (
address = flag.String("address", ":7606", "HTTP listen address")
tlsAddress = flag.String("tls-address", "", "HTTPS listen address")
certFile = flag.String("tls-cert", etcDir+"/server.crt", "Server TLS certificate")
keyFile = flag.String("tls-key", etcDir+"/server.key", "Server TLS key")
casStore cas.Store
)
func main() {
flag.Parse()
if *address == "" && *tlsAddress == "" {
log.Fatal("no listen address given")
}
casStore = cas.NewDir(filepath.Join(*dataDir, "cache"))
go casCleaner()
2019-02-01 07:28:08 +00:00
apiutils.Setup(func() {
restful.Add(buildWS())
})
// by default, serve a host resource by its IP
2019-02-01 07:28:08 +00:00
//http.HandleFunc("/", serveHostByIP)
2018-06-12 10:09:47 +00:00
2019-02-01 07:35:50 +00:00
//http.HandleFunc("/configs", uploadConfig)
2019-01-22 20:51:05 +00:00
2018-06-12 10:09:47 +00:00
http.HandleFunc("/hosts", serveHosts)
2019-02-01 07:28:08 +00:00
//http.HandleFunc("/hosts/", serveHost)
2018-06-12 10:09:47 +00:00
2018-07-07 01:22:35 +00:00
http.HandleFunc("/clusters", serveClusters)
http.HandleFunc("/clusters/", serveCluster)
2018-06-12 10:09:47 +00:00
if *address != "" {
log.Print("HTTP listening on ", *address)
go log.Fatal(http.ListenAndServe(*address, nil))
}
if *tlsAddress != "" {
log.Print("HTTPS listening on ", *tlsAddress)
go log.Fatal(http.ListenAndServeTLS(*tlsAddress, *certFile, *keyFile, nil))
}
select {}
}