dynamoip

Quick Setup

Get dynamoip running alongside your dev server in a few steps.

1. Install

npm install --save-dev dynamoip
# or
pnpm add -D dynamoip

2. Add a script to package.json

{
  "scripts": {
    "dev:proxy": "dynamoip --config dynamoip.config.json"
  }
}

3. Create your config

Save as dynamoip.config.json at your project root.

Quick — LAN only, no account needed:

{
  "domains": {
    "myapp": 3000
  }
}

Max — accessible from the public internet, no port forwarding:

{
  "baseDomain": "yourdomain.com",
  "tunnel": true,
  "domains": {
    "myapp": 3000
  }
}

Pro — LAN only, real domain with a wildcard cert:

{
  "baseDomain": "yourdomain.com",
  "domains": {
    "myapp": 3000
  }
}

4. Add credentials (Max and Pro only)

Create a .env file and add it to .gitignore:

CF_API_TOKEN=your_cloudflare_api_token
CF_EMAIL=you@example.com   # Pro only — not needed for Max

Get a token at Cloudflare Dashboard → My Profile → API Tokens → Create Token using the Edit zone DNS template. For Max mode, also add Account → Cloudflare Tunnel → Edit.

5. Run

Pro and Quick modes need sudo to bind ports 80/443 (or pass --port 8443 to avoid it). Max mode needs no sudocloudflared only makes outbound connections.

# Pro / Quick mode
sudo npm run dev:proxy

# Max mode — no sudo
npm run dev:proxy

Run this alongside your dev server in a second terminal.


First run notes:

  • Quick — other devices on your LAN need to install the mkcert CA once.
  • Pro — first run takes ~60 seconds to get a Let's Encrypt cert via DNS challenge. Cached after that.
  • Max — first run takes 20–30 seconds to install cloudflared and create the tunnel. Cached after that.

On this page