Getting Started

How to Create Your First HTTPS Tunnel in 30 Seconds

Published:
Kelvin Wuite
By Kelvin Wuite β€’ 5 min read
Share

ASD CLI creates secure HTTPS tunnels from your local machine to the internet. With one command, you get a public URL for any local service β€” no port forwarding, no firewall rules, no certificates to manage. This guide gets you from zero to a working tunnel in under a minute.

What you'll build

By the end of this guide, you'll have a local web server accessible via a public HTTPS URL that anyone can open in their browser.

Your laptop                    The internet
localhost:3000  ──SSH tunnel──▢  https://app-abc123.cicd.eu1.asd.engineer
                                 (public, HTTPS, auto-certificate)

Prerequisites

  • A terminal (Linux, macOS, or Windows)
  • A local service running on any port, or we'll start one

Step 1: Install ASD CLI

Run the one-line installer for your platform:

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/asd-engineering/asd-cli/main/install.sh | bash

Windows (PowerShell):

powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/asd-engineering/asd-cli/main/install.ps1 | iex"

After installation, verify it works:

asd --version

Step 2: Start a local server

If you already have a local dev server running (Next.js, Vite, Django, Rails, etc.), skip to Step 3. Otherwise, start a quick test server:

Python:

python -m http.server 3000

Node.js:

npx serve -p 3000

Confirm it works by visiting http://localhost:3000 in your browser.

Step 3: Expose it

One command creates the tunnel:

asd expose 3000

You'll see output like:

Local:  http://localhost:3000
Caddy:  http://app.localhost
Tunnel: https://app-abc123.cicd.eu1.asd.engineer

That's it. The tunnel URL is public, HTTPS-secured with an automatic certificate, and works from anywhere in the world. Share it with a teammate, paste it into a webhook config, or open it on your phone.

Step 4: Customize the URL (optional)

Give your tunnel a recognizable name:

asd expose 3000 --name myapp

Result:

Tunnel: https://myapp-abc123.cicd.eu1.asd.engineer

The --name sets a prefix in the URL, making it easier to identify when you have multiple tunnels running.

Managing your tunnels

See what's running and stop tunnels when you're done:

# List all active tunnels
asd expose list

# Stop a specific tunnel
asd expose stop myapp

# Stop by port
asd expose stop 3000

Example asd expose list output:

myapp
    Port:     3000
    Local:    http://myapp.localhost
    Tunnel:   https://myapp-abc123.cicd.eu1.asd.engineer
    Status:   βœ… Online
    Uptime:   πŸ• 2h 15m

Authentication setup

Before using tunnels, you need credentials. Choose the method that fits your use case:

Quick testing (no account needed):

# Get 5-minute ephemeral credentials
curl -X POST https://asd.engineer/functions/v1/create-ephemeral-token

For longer sessions:

Create tunnel credentials at asd.host β†’ Account β†’ Tunnel Tokens, then set them in your .env file:

ASD_TUNNEL_TOKEN=your-token
ASD_TUNNEL_USER=your-user

How it works under the hood

When you run asd expose 3000, three things happen:

  1. ASD starts a local Caddy reverse proxy (if not already running)
  2. An SSH tunnel connects your machine to the ASD cloud
  3. ASD cloud provides a public HTTPS URL with automatic certificates
Browser β†’ HTTPS β†’ ASD Cloud β†’ SSH Tunnel β†’ Caddy (local) β†’ localhost:3000

Your service stays on your machine. The tunnel encrypts all traffic. The HTTPS certificate is provisioned automatically.

What's next

Kelvin Wuite
Written by

Kelvin Wuite

Kelvin Wuite is the founder of Accelerated Software Development B.V. With over eighteen years of development experience, he has witnessed the same patterns repeat across every software team: endless documentation, manual preparation, environment mismatches, and fragmented collaboration. His drive is to remove these barriers, enabling engineers to work together in unified environments with shorter feedback loops and hands-on collaboration. Since 2015 he has been refining these ideas, leading to ASD β€” a platform designed to create a faster, more integrated way for development teams to collaborate in an age where AI is thriving.

Related Articles