code: func checkEthstats(client *sshClient, network string) (*ethstatsInfos, error) {
  	// Inspect a possible ethstats container on the host
  	infos, err := inspectContainer(client, fmt.Sprintf("%s_ethstats_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["3000/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
  	}
  	secret := infos.envvars["WS_SECRET"]
  	config := fmt.Sprintf("%s@%s", secret, host)
  	if port != 80 && port != 443 {
  		config += fmt.Sprintf(":%d", port)
  	}
  	// Retrieve the IP blacklist
  	banned := strings.Split(infos.envvars["BANNED"], ",")
  
  	// Run a sanity check to see if the port is reachable
  	if err = checkPort(host, port); err != nil {
  		log.Warn("Ethstats service seems unreachable", "server", host, "port", port, "err", err)
  	}
  	// Container available, assemble and return the useful infos
  	return &ethstatsInfos{
  		host:   host,
  		port:   port,
  		secret: secret,
  		config: config,
  		banned: banned,
  	}, nil
  }
docs: // checkEthstats does a health-check against an ethstats server to verify whether
  // it's running, and if yes, gathering a collection of useful infos about it.