Skip to Content
🚀 Wiredoor v1.7.3 now available - Ready to expose your private services? Get Started →
DocumentationQuickstart

Install Wiredoor and Expose Your First Private Service

This quickstart shows you how to install Wiredoor Server, connect a computer from a private network, and make an existing web service available through an HTTPS address.

You do not need to create an example application. Before starting, make sure the private service you want to expose already works on the Client Node and note its port. This guide uses port 3000 as an example.

Before You Start

You need:

  • A Linux server with a public IP address, Docker Engine, Docker Compose, and Git.
  • TCP ports 80 and 443 open on the public server.
  • UDP port 51820 open on the public server.
  • An existing HTTP service running on a Linux, Windows, or macOS computer.
  • A public domain with access to its DNS settings, or control of local name resolution through internal DNS or a hosts file.

This guide creates a regular Client Node. Client Nodes support Linux, Windows, and macOS. Gateway Nodes require Linux networking and must run through the Wiredoor CLI on Linux, Docker, or Kubernetes. On Windows and macOS, use Wiredoor Docker Gateway through Docker Desktop.

A public domain is not required. You can use a local domain resolved through /etc/hosts, the Windows hosts file, or an internal DNS server. See local domains without public DNS. The main quickstart continues with a public domain because it provides a trusted Let’s Encrypt certificate.

1. Prepare DNS

Create the DNS records that you want to use and point them to the public IP address of your Wiredoor Server.

Example domainRequiredPurpose
app.example.comYesPublic address of your service
wiredoor.example.comNoFriendly address for the dashboard

Replace these examples with your real domains. DNS changes may need some time to become available.

If you do not create a dashboard domain, you can use the public server IP address instead.

2. Install Wiredoor Server

Connect to the public Linux server and download the official Docker setup:

git clone https://github.com/wiredoor/docker-setup.git cd docker-setup cp .env.example .env

Open .env with a text editor and configure these values:

.env
ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD=replace-with-a-secure-password VPN_HOST=wiredoor.example.com VPN_PORT=51820 VPN_SUBNET=10.0.0.0/24
  • Use your own email address and a secure password.
  • Set VPN_HOST to the public domain or IP address used to reach the server. Do not include https://.
  • Keep the default VPN port and subnet unless they conflict with your network.

Start Wiredoor:

docker compose up -d

Wiredoor is ready when the wiredoor container is running:

docker compose ps wiredoor

3. Sign In

Open the following address in your browser, replacing PUBLIC_SERVER_IP with the public IP address of your server:

https://PUBLIC_SERVER_IP

The browser may display a certificate warning during the first visit because Wiredoor starts with a self-signed certificate. Continue only when the address belongs to the server you installed.

Sign in with the ADMIN_EMAIL and ADMIN_PASSWORD values from .env.

The dashboard should open and display the Local Node named Wiredoor_Local.

4. Configure a Dashboard Domain (Optional)

If you created wiredoor.example.com or another dashboard domain in step 1:

  1. Open the Wiredoor_Local node.
  2. Edit the Wiredoor_APP HTTP service.
  3. Set its public domain to your dashboard domain.
  4. Save the service.
  5. Open the new address in your browser.
https://wiredoor.example.com

Wiredoor requests a trusted Let’s Encrypt certificate when the public DNS record points to the server. If you skip this optional step, continue using the public server IP address.

5. Create and Connect the Client Node

The Client Node is the Linux, Windows, or macOS computer where your private HTTP service is running.

Install the Wiredoor CLI

You can use the auto-installer:

curl -s https://www.wiredoor.net/install-wiredoor-cli.sh | sh

Or download a package from GitHub Releases .

Create the Client Node

Use the dashboard domain if you configured one. Otherwise, use the public server IP address:

wiredoor login --url https://wiredoor.example.com

The CLI asks for your administrator email and password. It also asks a few questions about the new node:

  1. Enter a name that helps you recognize the computer.
  2. Choose No when asked whether the node is a gateway.
  3. Choose No when asked whether all internet traffic should use the VPN.

The CLI creates the Client Node and connects it to Wiredoor. Confirm the connection with:

wiredoor status

You can also confirm that the new node appears as connected in the dashboard.

6. Expose the Private Service

Run this command on the Client Node:

wiredoor http first-app --domain app.example.com --port 3000

Replace:

  • first-app with a short name for your service.
  • app.example.com with the public domain prepared in step 1.
  • 3000 with the port used by your existing service.

Wiredoor creates the public route and requests a trusted HTTPS certificate for the domain.

7. Open the Service in Your Browser

Open your service domain:

https://app.example.com

You should see the same application that is running privately on the Client Node. Certificate issuance may take a short time after creating the service.

You have now installed Wiredoor, connected a Client Node, and exposed a private HTTP service through a public HTTPS domain.

If the Service Does Not Open

Check these items in order:

  1. The Wiredoor container is running on the public server.
  2. The Client Node appears as connected in the dashboard.
  3. The private service opens directly on the Client Node.
  4. The service port in the Wiredoor command is correct.
  5. The public DNS record or local hosts entry points to the Wiredoor Server IP address.

See Wiredoor troubleshooting for detailed checks.

Next Steps

Last updated on