mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
https
This commit is contained in:
parent
d6c2ba5812
commit
23a4ff3af6
17
main.go
17
main.go
@ -17,10 +17,12 @@ var Version string = "0.0"
|
|||||||
var GitHash string = "unknown"
|
var GitHash string = "unknown"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var addr, db, authfile string
|
var addr, db, authfile, certfile, keyfile string
|
||||||
var ver bool
|
var ver bool
|
||||||
flag.StringVar(&addr, "addr", "127.0.0.1:7070", "address to run server on")
|
flag.StringVar(&addr, "addr", "127.0.0.1:7070", "address to run server on")
|
||||||
flag.StringVar(&authfile, "auth-file", "", "path to a file containing username:password")
|
flag.StringVar(&authfile, "auth-file", "", "path to a file containing username:password")
|
||||||
|
flag.StringVar(&certfile, "cert-file", "", "path to cert file for https")
|
||||||
|
flag.StringVar(&keyfile, "key-file", "", "path to key file for https")
|
||||||
flag.StringVar(&db, "db", "", "storage file path")
|
flag.StringVar(&db, "db", "", "storage file path")
|
||||||
flag.BoolVar(&ver, "version", false, "print application version")
|
flag.BoolVar(&ver, "version", false, "print application version")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
@ -67,6 +69,10 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (certfile != "" || keyfile != "") && (certfile == "" || keyfile == "") {
|
||||||
|
logger.Fatalf("Both cert & key files are required")
|
||||||
|
}
|
||||||
|
|
||||||
store, err := storage.New(db, logger)
|
store, err := storage.New(db, logger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to initialise database: ", err)
|
logger.Fatal("Failed to initialise database: ", err)
|
||||||
@ -74,11 +80,18 @@ func main() {
|
|||||||
|
|
||||||
srv := server.New(store, logger, addr)
|
srv := server.New(store, logger, addr)
|
||||||
|
|
||||||
|
proto := "http"
|
||||||
|
if certfile != "" && keyfile != "" {
|
||||||
|
srv.CertFile = certfile
|
||||||
|
srv.KeyFile = keyfile
|
||||||
|
proto = "https"
|
||||||
|
}
|
||||||
|
|
||||||
if username != "" && password != "" {
|
if username != "" && password != "" {
|
||||||
srv.Username = username
|
srv.Username = username
|
||||||
srv.Password = password
|
srv.Password = password
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Printf("starting server at http://%s", addr)
|
logger.Printf("starting server at %s://%s", proto, addr)
|
||||||
platform.Start(srv)
|
platform.Start(srv)
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,9 @@ type Handler struct {
|
|||||||
// auth
|
// auth
|
||||||
Username string
|
Username string
|
||||||
Password string
|
Password string
|
||||||
|
// https
|
||||||
|
CertFile string
|
||||||
|
KeyFile string
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(db *storage.Storage, logger *log.Logger, addr string) *Handler {
|
func New(db *storage.Storage, logger *log.Logger, addr string) *Handler {
|
||||||
@ -37,7 +40,13 @@ func New(db *storage.Storage, logger *log.Logger, addr string) *Handler {
|
|||||||
func (h *Handler) Start() {
|
func (h *Handler) Start() {
|
||||||
h.startJobs()
|
h.startJobs()
|
||||||
s := &http.Server{Addr: h.Addr, Handler: h}
|
s := &http.Server{Addr: h.Addr, Handler: h}
|
||||||
err := s.ListenAndServe()
|
|
||||||
|
var err error
|
||||||
|
if h.CertFile != "" && h.KeyFile != "" {
|
||||||
|
err = s.ListenAndServeTLS(h.CertFile, h.KeyFile)
|
||||||
|
} else {
|
||||||
|
err = s.ListenAndServe()
|
||||||
|
}
|
||||||
if err != http.ErrServerClosed {
|
if err != http.ErrServerClosed {
|
||||||
h.log.Fatal(err)
|
h.log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user