docs: def serve(self, liveport=None, host=None, restart_delay=2):
          """Start serve the server with the given port.
  
          :param liveport: live reload on this port
          :param host: serve on this hostname, default is 127.0.0.1
          :param open_url_delay: open webbrowser after the delay seconds
          """
          host = host or '127.0.0.1'
          logger.info('Serving on http://%s:%s' % (host, liveport))
  
          self.application(host, liveport=liveport)
  
          try:
              self.watcher._changes.append(('__livereload__', restart_delay))
              LiveReloadHandler.start_tasks()
              IOLoop.instance().start()
          except KeyboardInterrupt:
              logger.info('Shutting down...')