Config File
DevProc uses a YAML configuration file to define your development environment. By default, it looks for devproc.yaml in the current directory.
File Location
DevProc searches for configuration in this order:
- Path specified with
-cor--configflag devproc.yamlin the current directorydevproc.ymlin the current directory
# Use default locationdevproc
# Specify custom configdevproc -c ./configs/dev.yamlBasic Structure
# Project name (displayed in the header)name: my-project
# Global environment variables (applied to all services)env: NODE_ENV: development LOG_LEVEL: debug
# Load additional env vars from a .env filedotenv: .env.local
# Path to docker-compose file (optional)compose: docker-compose.yml
# Service groups for organization (optional)groups: backend: - api - worker frontend: - web
# Service definitions (required)services: api: cmd: npm run dev # ... service optionsTop-Level Options
name
Type: string
Required: Yes
The project name, displayed in the DevProc header.
name: my-awesome-projectenv
Type: object
Required: No
Global environment variables applied to all services. Service-specific env vars take precedence.
env: NODE_ENV: development API_URL: http://localhost:3000dotenv
Type: string
Required: No
Path to a .env file to load. Variables are merged with the env block.
dotenv: .env.localcompose
Type: string
Required: No
Path to a Docker Compose file. Enables the compose option on services.
compose: docker-compose.yml# orcompose: ./docker/docker-compose.dev.ymlgroups
Type: object
Required: No
Define service groups for UI organization. See Groups for details.
groups: infrastructure: - postgres - redis backend: - api - workerservices
Type: object
Required: Yes
Service definitions. See Services for all options.
services: api: cmd: npm run dev web: cmd: npm run dev cwd: ./frontendGenerating a Config
Use the init command to generate a starter configuration:
devproc initThis will:
- Detect your project name from
package.json - Suggest services based on npm scripts
- Create a commented template with examples
Validating Your Config
Check your configuration for errors before running:
devproc validateThis validates:
- YAML syntax
- Required fields
- Service dependencies exist
- Health check configurations
- Group references
Hot Reloading
DevProc supports reloading configuration without restarting:
Manual reload: Press Ctrl+L in the TUI
Auto reload: Run with the -w flag:
devproc -wWhen config is reloaded:
- New services are added (stopped state)
- Removed services are stopped and removed
- Modified services are restarted with new config
Example Configurations
Minimal
name: simple-api
services: api: cmd: npm run devFull-Stack Project
name: fullstack-app
env: NODE_ENV: development
dotenv: .env.local
groups: database: - postgres backend: - api frontend: - web
services: postgres: cmd: docker run --rm -p 5432:5432 postgres:16 healthcheck: cmd: pg_isready -h localhost
api: cmd: npm run dev depends_on: postgres: healthy env: DATABASE_URL: postgres://localhost/myapp
web: cmd: npm run dev cwd: ./frontend depends_on: - apiWith Docker Compose
name: compose-project
compose: docker-compose.yml
services: postgres: compose: true redis: compose: true api: cmd: npm run dev depends_on: postgres: healthy redis: healthy