Elyra
Elyra The coding agent eTerm The terminal that knows where each command ends Huskarl AI colleagues on your own Mac Starf An activity monitor for Apple silicon that never invents a number etrans An SSH and SFTP client for macOS Elyra VM Virtual machines for macOS, Linux and Windows on your Mac Litr A small, native web browser for macOS Notr A notebook for macOS e The native code editor Elyra Grove Native local development environment Askr The real server for Laravel & PHP Elyra Framework Rust + Svelte 5 framework for desktop apps Elyra Conductor Local project conductor Refr Local-first PDF workspace for macOS Elyra Workspace A desktop workspace for coding agents eDock A container runtime for the Mac Elyra SQL Server MySQL-compatible SQL server in Rust Elyra Félagi Agents as teammates on one board Elyra SQL Client Native desktop SQL workbench Elyra SQL Anywhere Replication-ready SQL engine Elyra Sjá SEO & GEO workspace for macOS Elyra DataGrid Server-driven data grid for Laravel
Release notes
Release notes
Elyra
Configuration

Configuration

Where eDock keeps things

Path What
~/.edock/run/docker.sock The engine's Docker API socket
~/.edock/ The engine's state, logs and settings, and the app's settings
~/.edock/bin/ edock and docker, after edock setup
~/Library/Application Support/eDock/cli/ The docker CLI, Compose and buildx that edock setup downloaded
~/Library/Application Support/eDock/scanner/ Grype and its vulnerability database, after the first scan (about 3 GB)
~/Library/Application Support/eDock/scans/ Each image's last few scans and SBOMs
~/.edock/tls/ The certificate authority for https://*.edock.local
~/Library/Application Support/eDock/ Images, volumes and the VM's data disk (vm/data.img)
~/eDock Container files, in Finder (read-only)
~/Library/LaunchAgents/app.edock.daemon.plist Starts the engine at login, after edock setup

The VM's data disk is a sparse file. It takes only the space that images and volumes use, up to 64 GiB.

Settings files

All of these are in ~/.edock/:

File Read by What
vm.json The engine, at each VM start {"cpus": 4, "memory_mib": 8192}: the VM's size
k8s.json edock k8s The cluster's lan, tls_san and port. Change them with edock k8s set.
builder.json The engine The BuildKit builder: {"idle_secs": 300, "cache_gb": 20}
domains.json The engine {"http": 8088, "https": 8443}: the ports for container domains, instead of 80 and 443. The environment variables override it.
proxy.json The engine The proxy for pulls, pushes and logins (below)
snapshots/volumes/<context>/ The app Volume snapshots, a .tar.gz each, per engine
desktop.json The app The context it shows, whether the welcome was seen, and "alerts_off": true when notifications are off
inspector.json The engine {"on": true} while Requests records
stopped The engine There while eDock is stopped with Stop, so the engine stays off across restarts until Start

Proxies

Image pulls, pushes, searches and logins go through a proxy when your network needs one. ~/.edock/proxy.json picks it:

{ "mode": "system" }
mode
system macOS's own proxy settings (the default)
custom "http", "https" and "no_proxy" from the file
none No proxy

With "containers": true, new containers also get HTTP_PROXY, HTTPS_PROXY and NO_PROXY, as Docker Desktop does. VPNs need nothing here: container traffic leaves through macOS's own networking.

Environment variables

The engine (edock daemon)

Variable Default What
EDOCK_SOCKET ~/.edock/run/docker.sock The API socket's path
EDOCK_DATA_DIR ~/Library/Application Support/eDock Images, volumes and the VM's disk
EDOCK_CPUS from vm.json The VM's CPUs (overrides vm.json)
EDOCK_MEMORY_MIB from vm.json The VM's memory in MiB (overrides vm.json)
EDOCK_IDLE_SECS 60 Seconds idle before the VM sleeps; 0 keeps it awake
EDOCK_HTTP_PORT 80 The port for http://<name>.edock.localhost
EDOCK_HTTPS_PORT 443 The port for https://<name>.edock.local
EDOCK_NO_FINDER unset Set (to anything): don't mount container files at ~/eDock
EDOCK_BUILDER_IDLE_SECS 300 Seconds without a build before the builder is paused
EDOCK_BUILD_CACHE_GB by disk size The builder's cache limit in GB
EDOCK_GUEST_DIR inside the app Where the kernel and initramfs are (development)
EDOCK_NO_BALLOON unset Set (to anything): don't give unused memory back to macOS while the VM runs

To run the engine without touching ports 80 and 443 or Finder, for example while another tool has those ports:

EDOCK_NO_FINDER=1 EDOCK_HTTP_PORT=8081 EDOCK_HTTPS_PORT=8443 edock daemon

The engine also uses docker login's credentials (in DOCKER_CONFIG, else ~/.docker) for pulls and pushes.

The app

Variable What
EDOCK_ENGINE The edock binary the app starts (see Engine and contexts)
DOCKER_HOST Used for the default context when it's a unix socket

The app passes its environment on to an engine it starts, so the engine variables above work there too:

EDOCK_NO_FINDER=1 open -a eDock

Note that open only passes variables to an app that isn't already running.