10 // 5 alphanumeric chars. Must be either xx*, yy*, zz*, or
14 // Hostnames or IP addresses of control hosts. Use at least 3
15 // in production. System functions only when a majority are
25 type portsConfig struct {
30 ConsulSerfLAN int `json:"Serf_LAN"`
31 ConsulSerfWAN int `json:"Serf_WAN"`
35 type webguiConfig struct {
36 // addr:port to serve web-based setup/monitoring
41 func (c *Config) Boot(ctx context.Context) error {
42 for _, path := range []string{c.DataDir, c.UsrDir, c.UsrDir + "/bin"} {
43 if fi, err := os.Stat(path); err != nil {
44 err = os.MkdirAll(path, 0755)
48 } else if !fi.IsDir() {
49 return fmt.Errorf("%s: is not a directory", path)
55 func DefaultConfig() *Config {
57 ControlHosts: []string{"127.0.0.1"},
67 DataDir: "/var/lib/arvados",
68 UsrDir: "/usr/local/arvados",
69 RunitSvDir: "/etc/sv",
71 Listen: "127.0.0.1:18000",