Skip to main content

config.json

The master config file is C:\laraenv\config.json, a single JSON document the app reads and writes. It holds your enabled services, projects, service tuning, cron jobs, terminal layout, and cloud account.

warning

LaraEnv writes this file. Prefer the UI for any change — editing by hand can corrupt the JSON, and the app may overwrite your changes on the next save. If you must edit it, back it up first.

Top-level keys

KeyDescription
stack.enabledMap of serviceName → boolean controlling which services are enabled and visible.
projectsProject settings: tld, root, and per-project maps. See below.
servicesnginx, apache, and php tuning objects. See Service tuning.
cronsArray of scheduled jobs. See below.
terminalWorkspaceRaw saved terminal layout (groups, panes, tabs).
cloudSigned-in account details.
commandCenterCommand Center settings.

projects

  • tld — the local top-level domain, e.g. "test".
  • root — the projects root, e.g. "C:\\laraenv\\www".
  • Per-project maps keyed by project name: phpVersions, nodeVersions, ssl, terminals, proxyPorts, projectTags (array), devCommands, queueArgs, editors.
  • sshHosts — map of name → { address, port, user, authMode, password?, keyName?, proxyJump?, proxyCommand?, tags }.
  • deployPresets — map of id → { name, script, variables[] }.

crons

Each job is an object: { id, name, projectName?, schedule, command, workingDir?, phpVersion?, enabled, backgroundMode?, lastRun?, lastStatus?, ... }.

cloud

{ baseUrl, token, email, name, plan, githubId } for the signed-in account. See Account.

commandCenter

{ globalHotkey, enabled }.

Example

An abridged, representative example:

{
"stack": {
"enabled": { "nginx": true, "mysql": true, "redis": false, "mailpit": true }
},
"projects": {
"tld": "test",
"root": "C:\\laraenv\\www",
"phpVersions": { "myapp": "8.4" },
"nodeVersions": { "myapp": "20" },
"ssl": { "myapp": true },
"projectTags": { "myapp": ["laravel", "api"] },
"sshHosts": {
"prod": {
"address": "203.0.113.10", "port": 22, "user": "deploy",
"authMode": "key", "keyName": "id_ed25519", "tags": ["prod"]
}
},
"deployPresets": {
"default": { "name": "Deploy", "script": "git pull && composer install", "variables": [] }
}
},
"services": {
"nginx": { },
"php": { }
},
"crons": [
{
"id": "sched-1", "name": "Run scheduler", "projectName": "myapp",
"schedule": "* * * * *", "command": "php artisan schedule:run",
"phpVersion": "8.4", "enabled": true
}
],
"cloud": { "baseUrl": "https://...", "email": "you@example.com", "plan": "pro" },
"commandCenter": { "globalHotkey": "Ctrl+Space", "enabled": true }
}

For the meaning of the fields inside services, see Service tuning.