2 min read

Projects and configuration

Table of Contents

hum separates machine-wide project discovery from repository-owned service configuration.

Global project registry

The default registry is $XDG_CONFIG_HOME/hum/config.yaml or ~/.config/hum/config.yaml:

version: 1
projects:
  storefront:
    config: ~/code/storefront/hum.yaml

Use --registry <path> to select another registry. Use --config <path> to bypass the registry and load a project configuration directly.

Project configuration

A version 2 hum.yaml declares:

  • repositories: named checkout roots;
  • services: commands, working directories, ports, URLs, requirements, and dependencies;
  • templates: named service selections;
  • logs: rotation, retention, line limits, and display-time redaction.

Relative repository paths resolve from the file that declares them. A service cwd resolves from its repository, and env_file resolves from that working directory.

Local overrides and environment

Machine-specific values can live in an untracked hum.local.yaml beside the project file. Service environment precedence is:

  1. values loaded from .env;
  2. service.env values;
  3. the inherited process environment;
  4. repeatable CLI overrides such as --env API_URL=http://localhost:3000.

Unknown fields and invalid names, ports, URLs, durations, commands, or references are rejected. Validate a selected configuration with:

hum storefront all-services config validate