Custom Domains
Understanding URL patterns for tunnels and team services on VendTunnel.
URL Structure
VendTunnel uses Cloudflare for public DNS. All public URLs follow consistent patterns based on the service type.
Solo Tunnels
When you create a solo tunnel (not part of a team), your URL follows this pattern:
{name}.{server}.vendvpn.com
| Component | Description | Example |
|---|---|---|
{name} |
Your chosen subdomain | myapp, demo, api |
{server} |
Server identifier | tunnel1, tunnel2, tunnel47 |
Examples
https://myapp.tunnel1.vendvpn.com
https://demo.tunnel3.vendvpn.com
https://api.tunnel12.vendvpn.com
Choosing Your Subdomain
When creating a tunnel, you pick the {name} part. Requirements:
- 3-30 characters
- Lowercase letters, numbers, hyphens
- Must start with a letter
- Unique within that server
Names are checked for uniqueness on your assigned server. "myapp" might be taken on tunnel1 but available on tunnel2.
Team Services
Team service URLs include both the service name and team name:
{service}--{team}.{server}.vendvpn.com
| Component | Description | Example |
|---|---|---|
{service} |
Service name | api, frontend, database |
{team} |
Team slug | acme-dev, startup-io |
{server} |
Server identifier | tunnel1, tunnel5 |
Examples
https://api--acme-dev.tunnel1.vendvpn.com
https://frontend--startup-io.tunnel3.vendvpn.com
https://staging--my-team.tunnel7.vendvpn.com
The double-dash (--) separates service from team name.
Second Port Access
Tunnels include two ports. Access the second port by appending :8443:
| URL | Maps To |
|---|---|
https://myapp.tunnel1.vendvpn.com |
Port 1 (e.g., 3000) |
https://myapp.tunnel1.vendvpn.com:8443 |
Port 2 (e.g., 8080) |
Internal DNS (Teams)
Team services also have internal DNS names, separate from public URLs:
| Access Type | URL Format | Who Can Access |
|---|---|---|
| Public | api--acme.tunnel1.vendvpn.com |
Anyone on internet |
| Internal | api.internal |
Team members only |
See Internal DNS for details.
HTTPS
All public URLs are served over HTTPS via Cloudflare's edge certificates:
- Automatic SSL/TLS
- No configuration needed
- HTTP automatically redirects to HTTPS
Cloudflare provides SSL certificates automatically. Your tunnel is secure from day one.
URL Persistence
Your URL persists for the duration of your session:
- 4 hours: URL valid for 4 hours
- 1 day: URL valid for 24 hours
- 7 days: URL valid for 1 week
- 30 days: URL valid for 1 month
After expiration, the subdomain becomes available for others.
Name Conflicts
Within a Server
Each name must be unique within a server. If "myapp" is taken on tunnel1, you'll be assigned a different server or asked to choose another name.
Across Servers
The same name can exist on different servers:
myapp.tunnel1.vendvpn.com ← User A
myapp.tunnel2.vendvpn.com ← User B (different server)
Best Practices
Choose Descriptive Names
Good:
- project-demo
- api-staging
- mycompany-dev
Avoid:
- test1
- asdf
- demo (too generic, likely taken)
For Teams
Good team slugs:
- acme-development
- startup-staging
- myteam-2024
Good service names:
- postgres-main
- redis-cache
- user-api
Summary
| Type | Pattern | Example |
|---|---|---|
| Solo Tunnel | {name}.{server}.vendvpn.com |
myapp.tunnel1.vendvpn.com |
| Team Service (public) | {service}--{team}.{server}.vendvpn.com |
api--acme.tunnel1.vendvpn.com |
| Team Service (internal) | {service}.internal |
api.internal |