server.go 971 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2017 Frédéric Guillot. All rights reserved.
  2. // Use of this source code is governed by the Apache 2.0
  3. // license that can be found in the LICENSE file.
  4. package server
  5. import (
  6. "log"
  7. "net/http"
  8. "time"
  9. "github.com/miniflux/miniflux2/scheduler"
  10. "github.com/miniflux/miniflux2/config"
  11. "github.com/miniflux/miniflux2/reader/feed"
  12. "github.com/miniflux/miniflux2/storage"
  13. )
  14. // NewServer returns a new HTTP server.
  15. func NewServer(cfg *config.Config, store *storage.Storage, pool *scheduler.WorkerPool, feedHandler *feed.Handler) *http.Server {
  16. server := &http.Server{
  17. ReadTimeout: 5 * time.Second,
  18. WriteTimeout: 10 * time.Second,
  19. IdleTimeout: 60 * time.Second,
  20. Addr: cfg.Get("LISTEN_ADDR", config.DefaultListenAddr),
  21. Handler: getRoutes(cfg, store, feedHandler, pool),
  22. }
  23. go func() {
  24. log.Printf("Listening on %s\n", server.Addr)
  25. if err := server.ListenAndServe(); err != nil {
  26. log.Fatal(err)
  27. }
  28. }()
  29. return server
  30. }