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
80and443open on the public server. - UDP port
51820open 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 domain | Required | Purpose |
|---|---|---|
app.example.com | Yes | Public address of your service |
wiredoor.example.com | No | Friendly 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 .envOpen .env with a text editor and configure these values:
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_HOSTto the public domain or IP address used to reach the server. Do not includehttps://. - Keep the default VPN port and subnet unless they conflict with your network.
Start Wiredoor:
docker compose up -dWiredoor is ready when the wiredoor container is running:
docker compose ps wiredoor3. Sign In
Open the following address in your browser, replacing PUBLIC_SERVER_IP with the public IP address of your server:
https://PUBLIC_SERVER_IPThe 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:
- Open the
Wiredoor_Localnode. - Edit the
Wiredoor_APPHTTP service. - Set its public domain to your dashboard domain.
- Save the service.
- Open the new address in your browser.
https://wiredoor.example.comWiredoor 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
Linux
You can use the auto-installer:
curl -s https://www.wiredoor.net/install-wiredoor-cli.sh | shOr 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.comThe CLI asks for your administrator email and password. It also asks a few questions about the new node:
- Enter a name that helps you recognize the computer.
- Choose
Nowhen asked whether the node is a gateway. - Choose
Nowhen 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 statusYou 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 3000Replace:
first-appwith a short name for your service.app.example.comwith the public domain prepared in step 1.3000with 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.comYou 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:
- The Wiredoor container is running on the public server.
- The Client Node appears as connected in the dashboard.
- The private service opens directly on the Client Node.
- The service port in the Wiredoor command is correct.
- The public DNS record or local hosts entry points to the Wiredoor Server IP address.
See Wiredoor troubleshooting for detailed checks.