Configuration Reference
Devconcurrent is configured by a simple toml file.
You can override the default path by setting the DEVCONCURRENT_CONFIG environment
variable; this should be the path to the directory containing config.toml.
projects.<name>— Configured projects by name.projects.<name>.path— The project location on your host.projects.<name>.worktreeFolder— The directory where devconcurrent will place worktrees.projects.<name>.branch— Template for the default branch name forupon a new workspace, overridingworktree.branchprojects.<name>.devcontainer— Any of the options fromdevcontainer.json(https://containers.dev/implementors/json_reference/), as per-user overrides.
proxy— Global proxy settings.proxy.enable— Enable the devconcurrent DNS and HTTP proxy.proxy.port— The DNS port the proxy listens on.proxy.caRoot— Directory holding the root CA used to terminate TLS.proxy.tlds— TLDs that the proxy may mint certificates for and serve TLS on.
shell— Shell-integration settings.shell.exportEnv— Register a prompt hook to auto-set the variables fromcustomizations.devconcurrent.envbased on your current working directory.
worktree— Worktree settings.worktree.branch— Template for the default branch name forupon a new workspace
projects.<name>
Configured projects by name.
Type: table
projects.<name>.path
The project location on your host.
Type: string
Required: yes
projects.<name>.worktreeFolder
The directory where devconcurrent will place worktrees. Defaults to
workspaces/<project> under the platform data directory. This is also settable in the
devcontainer, but it’s available here for projects that don’t use devcontainers.
Type: string
projects.<name>.branch
Template for the default branch name for up on a new workspace, overriding worktree.branch
Type: string
projects.<name>.devcontainer
Any of the options from devcontainer.json (https://containers.dev/implementors/json_reference/),
as per-user overrides. These are merged with the project’s devcontainer.json, with arrays
concatenated and this file winning conflicts.
Type: table
Example:
If a project uses devcontainers, but not devconcurrent, you might configure it here like this:
[projects.my-app]
path = "~/src/my-app"
# Per-user devcontainer overrides, merged into the repo's devcontainer.json:
devcontainer.customizations.devconcurrent = {
env = {
APP_URL = "https://{{ hostname 'app' }}",
DATABASE_HOST = "{{ hostname 'mysql' }}"
},
proxy = {
enable = true,
services.app.httpProxyPort = 8080,
},
}
proxy
Global proxy settings.
Type: table
proxy.enable
Enable the devconcurrent DNS and HTTP proxy.
When false, up never starts the proxy and no root CA is minted,
regardless of per-project customizations.devconcurrent.proxy.enable.
Type: boolean
Default: true
proxy.port
The DNS port the proxy listens on.
Type: integer
Default: 43770
proxy.caRoot
Directory holding the root CA used to terminate TLS.
Defaults to devconcurrent/ca in your platform’s data directory.
Type: string
proxy.tlds
TLDs that the proxy may mint certificates for and serve TLS on.
Changing this list regenerates the root CA, which will need to be trusted again.
Type: array<string>
Default: ["test"]
shell
Shell-integration settings.
Type: table
shell.exportEnv
Register a prompt hook to auto-set the variables from customizations.devconcurrent.env
based on your current working directory.
Type: boolean
Default: true
worktree
Worktree settings.
Type: table
worktree.branch
Template for the default branch name for up on a new workspace
Type: string
Default: '“{{ workspace }}”'
Example:
[worktree]
# `dc up foo` checks out `plg/foo`.
branch = "plg/{{ workspace }}"