code: func checkDashboard(client *sshClient, network string) (*dashboardInfos, error) {
  	// Inspect a possible ethstats container on the host
  	infos, err := inspectContainer(client, fmt.Sprintf("%s_dashboard_1", network))
  	if err != nil {
  		return nil, err
  	}
  	if !infos.running {
  		return nil, ErrServiceOffline
  	}
  	// Resolve the port from the host, or the reverse proxy
  	port := infos.portmap["80/tcp"]
  	if port == 0 {
  		if proxy, _ := checkNginx(client, network); proxy != nil {
  			port = proxy.port
  		}
  	}
  	if port == 0 {
  		return nil, ErrNotExposed
  	}
  	// Resolve the host from the reverse-proxy and configure the connection string
  	host := infos.envvars["VIRTUAL_HOST"]
  	if host == "" {
  		host = client.server
  	}
  	// Run a sanity check to see if the port is reachable
  	if err = checkPort(host, port); err != nil {
  		log.Warn("Dashboard service seems unreachable", "server", host, "port", port, "err", err)
  	}
  	// Container available, assemble and return the useful infos
  	return &dashboardInfos{
  		host:     host,
  		port:     port,
  		ethstats: infos.envvars["ETHSTATS_PAGE"],
  		explorer: infos.envvars["EXPLORER_PAGE"],
  		wallet:   infos.envvars["WALLET_PAGE"],
  		faucet:   infos.envvars["FAUCET_PAGE"],
  	}, nil
  }
docs: // checkDashboard does a health-check against a dashboard container to verify if
  // it's running, and if yes, gathering a collection of useful infos about it.