code: func (s *Service) Start() error {
  	server := http.Server{
  		Handler: s,
  	}
  
  	var ln net.Listener
  	var err error
  	if s.CertFile == "" || s.KeyFile == "" {
  		ln, err = net.Listen("tcp", s.addr)
  		if err != nil {
  			return err
  		}
  	} else {
  		config, err := createTLSConfig(s.CertFile, s.KeyFile)
  		if err != nil {
  			return err
  		}
  		ln, err = tls.Listen("tcp", s.addr, config)
  		if err != nil {
  			return err
  		}
  		s.logger.Printf("secure HTTPS server enabled with cert %s, key %s", s.CertFile, s.KeyFile)
  	}
  	s.ln = ln
  
  	go func() {
  		err := server.Serve(s.ln)
  		if err != nil {
  			s.logger.Println("HTTP service Serve() returned:", err.Error())
  		}
  	}()
  	s.logger.Println("service listening on", s.addr)
  
  	return nil
  }
docs: // Start starts the service.