- eventSource := &pgEventSource{
- DataSource: cfg.Postgres.ConnectionString(),
- QueueSize: cfg.ServerEventQueue,
- }
- srv := &http.Server{
- Addr: cfg.Listen,
- ReadTimeout: time.Minute,
- WriteTimeout: time.Minute,
- MaxHeaderBytes: 1 << 20,
- Handler: &router{
- Config: &cfg,
- eventSource: eventSource,
- newPermChecker: func() permChecker { return NewPermChecker(cfg.Client) },
- },
- }
- // Bootstrap the eventSource by attaching a dummy subscriber
- // and hanging up.
- eventSource.NewSink().Stop()
-
- if _, err := daemon.SdNotify(false, "READY=1"); err != nil {
- log.WithError(err).Warn("error notifying init daemon")
- }
-
- log.WithField("Listen", srv.Addr).Info("listening")
- log.Fatal(srv.ListenAndServe())