Local — Quick Mode (Docker)
Two services with .local hostnames and mkcert certificates, running in Docker. No Cloudflare account needed.
Two apps and dynamoip in Docker, reachable over your LAN with .local hostnames and mkcert certificates. No Cloudflare account, no domain required.
https://inventory.local → localhost:3001
https://dashboard.local → localhost:6000How it works
dynamoip uses mDNS to broadcast .local hostnames on your network and mkcert to issue certificates signed by a local CA. The host machine's mkcert CA is shared into the container so browsers already trust the certificates.
Prerequisites
- Docker and Docker Compose
- mkcert installed on the host machine
- Node.js (for the setup script)
Install mkcert:
# macOS
brew install mkcert
# Linux
# See https://github.com/FiloSottile/mkcert#linuxSetup
1. Clone the examples repo
git clone https://github.com/foundanand/dynamoip-examples
cd dynamoip-examples/local2. Run the host setup script (once)
sudo node setup-hosts.jsThis script:
- Runs
mkcert -installto add the CA to your system keychain - Writes the
CAROOTpath to.envso Docker can mount the CA directory - Adds
/etc/hostsentries for the.localhostnames
You only need to run this once per machine.
3. Start everything
docker compose up --build4. Open on any device on the same network
https://inventory.local
https://dashboard.localOn this machine: no warnings — CA is already trusted.
On other devices: install the mkcert CA certificate once. dynamoip's built-in landing page at https://inventory.local shows per-platform install instructions.
Config
{
"domains": {
"inventory": 3001,
"dashboard": 6000
}
}No baseDomain — that's what tells dynamoip to use Quick mode with .local hostnames.
Stopping
docker compose downNotes
LAN only. Quick mode serves .local hostnames via mDNS — other devices on the same network can reach them, but they are not accessible from the internet.
No Cloudflare. No API token, no domain purchase required. Great for isolated local development.
Want public internet access instead? See the Tunnel example which uses Max mode with Cloudflare Tunnel.