Configuration
DevAll uses JSONC (JSON with comments and trailing commas) for configuration. This guide covers all available options and best practices.
Configuration Files
Section titled “Configuration Files”DevAll looks for configuration files in this priority order:
devall.local.jsonc- Personal overrides (add to.gitignore)devall.local.json- Personal overrides (JSON format)devall.json- Team config (JSON format)devall.jsonc- Team config (JSONC format, recommended)
You can also specify a custom config file:
devall path/to/custom-config.jsoncConfiguration Schema
Section titled “Configuration Schema”Dashboard Configuration
Section titled “Dashboard Configuration”{ "dashboard": { "port": 7777, // Dashboard web interface port "open": true // Auto-open browser on start }}Service Configuration
Section titled “Service Configuration”Each service in the services array supports these options:
{ "services": [ { // Required "name": "My Service", // Display name "command": "npm", // Executable to run
// Optional "args": ["run", "dev"], // Command arguments "cwd": "./backend", // Working directory (relative to config file) "port": 3000, // Service port (set as PORT env var) "autostart": true, // Start automatically on dashboard launch "watchFiles": true, // Watch for file changes and restart "stealPort": true, // Kill processes on port before starting "secondary": false, // Hide by default (show via UI toggle) "background": false, // Run silently without UI display "env": { // Additional environment variables "NODE_ENV": "development", "DEBUG": "*" } } ]}Configuration Options Explained
Section titled “Configuration Options Explained”name (required)
Section titled “name (required)”Display name shown in the dashboard UI.
"name": "Frontend Dev Server"command (required)
Section titled “command (required)”The executable or command to run. Can be:
- Package manager commands:
npm,yarn,pnpm - Direct executables:
node,python,go - System commands:
redis-server,postgres - Relative paths:
./scripts/start.sh
"command": "npm"args (optional)
Section titled “args (optional)”Array of arguments passed to the command.
"args": ["run", "dev"]// Executes: npm run devcwd (optional)
Section titled “cwd (optional)”Working directory for the command, relative to the config file location.
"cwd": "./services/api"port (optional but recommended)
Section titled “port (optional but recommended)”The port your service listens on. DevAll will:
- Set it as the
PORTenvironment variable - Monitor it for the service status
- Optionally steal it if
stealPortis enabled
"port": 3000autostart (optional, default: false)
Section titled “autostart (optional, default: false)”Whether to start the service automatically when DevAll launches.
"autostart": true // Start on dashboard launchwatchFiles (optional, default: true)
Section titled “watchFiles (optional, default: true)”Whether to watch files and auto-restart the service on changes.
- Watches:
src/,lib/,*.js,*.json - Works with nodemon (detects restarts automatically)
- Set to
falseto disable
"watchFiles": false // Disable file watchingstealPort (optional, default: false)
Section titled “stealPort (optional, default: false)”Automatically kill any process occupying the service’s port before starting.
How it works:
- macOS/Linux: Uses
lsof -ti:PORT | xargs kill -9 - Windows: Uses
netstat+taskkill
"stealPort": true // Reclaim port before startingUse case: Useful when development servers crash without releasing ports.
secondary (optional, default: false)
Section titled “secondary (optional, default: false)”Hide the service by default in the UI. Users can toggle visibility via the header.
"secondary": true // Hidden by default, can be shownUse case: Utility services that don’t need constant monitoring (databases, cache servers).
background (optional, default: false)
Section titled “background (optional, default: false)”Run the service silently without displaying it in the UI at all.
"background": true // Runs invisiblyUse case: Essential background services that should always run (Redis, message queues).
env (optional)
Section titled “env (optional)”Additional environment variables for the service.
"env": { "NODE_ENV": "development", "DEBUG": "express:*", "API_URL": "http://localhost:8080"}Note: The PORT environment variable is automatically set from the port field.
Icon Mappings (optional)
Section titled “Icon Mappings (optional)”Customize service icons by type:
{ "icons": { "react": "⚛️", "vue": "💚", "node": "🟢", "python": "🐍", "database": "🗄️" }}Then reference in services:
{ "name": "React App", "type": "react", // Uses ⚛️ icon "command": "npm", "args": ["start"]}Complete Example
Section titled “Complete Example”Here’s a full-featured configuration for a microservices project:
{ "dashboard": { "port": 7777, "open": true }, "services": [ // Primary services (always visible) { "name": "Frontend", "command": "npm", "args": ["run", "dev"], "cwd": "./apps/web", "port": 3000, "autostart": true, "stealPort": true, "env": { "VITE_API_URL": "http://localhost:8080" } }, { "name": "API Gateway", "command": "npm", "args": ["run", "dev"], "cwd": "./services/gateway", "port": 8080, "autostart": true, "watchFiles": true },
// Secondary services (hidden by default) { "name": "Auth Service", "command": "npm", "args": ["run", "dev"], "cwd": "./services/auth", "port": 3001, "autostart": true, "secondary": true }, { "name": "User Service", "command": "npm", "args": ["run", "dev"], "cwd": "./services/users", "port": 3002, "autostart": true, "secondary": true },
// Background services (invisible) { "name": "Redis", "command": "redis-server", "port": 6379, "autostart": true, "background": true, "watchFiles": false }, { "name": "PostgreSQL", "command": "postgres", "args": ["-D", "data"], "port": 5432, "autostart": true, "background": true, "watchFiles": false } ], "icons": { "frontend": "⚛️", "api": "🚀", "database": "🗄️" }}CLI Arguments
Section titled “CLI Arguments”Custom Config File
Section titled “Custom Config File”devall my-config.jsoncDisable Browser Auto-Open
Section titled “Disable Browser Auto-Open”devall --no-openOr in config:
{ "dashboard": { "open": false }}Best Practices
Section titled “Best Practices”1. Use Local Overrides
Section titled “1. Use Local Overrides”Keep team config in devall.jsonc and personal settings in devall.local.jsonc:
// devall.jsonc (team config, committed){ "services": [ { "name": "Frontend", "command": "npm", "args": ["run", "dev"], "port": 3000 } ]}
// devall.local.jsonc (personal overrides, gitignored){ "dashboard": { "port": 8888, // Use different port locally "open": false // Don't auto-open browser }, "services": [ { "name": "Frontend", "port": 4000 // Override port } ]}2. Enable Port Stealing for Dev Servers
Section titled “2. Enable Port Stealing for Dev Servers”Development servers often leave ports occupied after crashes:
{ "port": 3000, "stealPort": true // Always reclaim the port}3. Organize Services by Visibility
Section titled “3. Organize Services by Visibility”- Primary: Core services you monitor constantly (autostart: true)
- Secondary: Utility services you check occasionally (secondary: true)
- Background: Infrastructure that should just run (background: true)
4. Set Appropriate Working Directories
Section titled “4. Set Appropriate Working Directories”Use relative paths from the config file:
{ "cwd": "./backend", // Relative to config file location "command": "npm", "args": ["start"]}5. Use Environment Variables
Section titled “5. Use Environment Variables”Avoid hardcoding URLs and ports:
{ "env": { "API_URL": "http://localhost:8080", "DATABASE_URL": "postgresql://localhost:5432/dev" }}Troubleshooting
Section titled “Troubleshooting”Service Won’t Start
Section titled “Service Won’t Start”- Check the working directory exists:
"cwd": "./path" - Verify command is in PATH:
which npm - Try running command manually
- Check logs in dashboard UI
Port Already in Use
Section titled “Port Already in Use”Enable port stealing:
"stealPort": trueOr manually check what’s using the port:
# macOS/Linuxlsof -ti:3000
# Windowsnetstat -ano | findstr :3000File Watching Not Working
Section titled “File Watching Not Working”- Verify
watchFilesis not set tofalse - Check if service uses nodemon (auto-detected)
- Ensure watch paths exist
Service Status Not Detected
Section titled “Service Status Not Detected”DevAll looks for these patterns in stdout:
- “Server running”
- “Listening on”
- “Ready on”
- URLs with localhost
Ensure your service logs one of these patterns when ready.
Next Steps
Section titled “Next Steps”- Learn about MCP integration for AI assistants
- Check the API reference
- See example configurations