Get started with HomeGate
Everything you need to get your home services live.
Getting Started
- 1 Create an account — Sign up at /register
- 2 Install Tailscale — Install Tailscale on your home server
- 3 Add a service — From the dashboard, add your service with your Tailscale auth key and target IP
- 4 Go live — Your service is accessible via your *.homegate.sh subdomain with auto SSL
Supported Protocols
HomeGate supports three protocols:
HTTP/HTTPS
For web-based services like Jellyfin, Nextcloud, Immich, and any service with a web interface. Traffic is proxied through Caddy with automatic SSL. You get a domain name (e.g., abc123.homegate.sh) and can add custom domains.
TCP
For services that use raw TCP connections, like Minecraft Java Edition, Terraria, or SSH. You get a host:port connection string that anyone can connect to.
UDP
For services that use UDP, like Minecraft Bedrock, Valheim, or Factorio. Same as TCP but for UDP traffic.
TCP and UDP proxying is available on the Dedicated+ plan.
Custom Domains
Every service gets a free *.homegate.sh subdomain. To use your own domain, create a CNAME record:
# Example: point your domain to your HomeGate subdomain
jellyfin.example.com CNAME abc123.homegate.sh
SSL certificates are provisioned automatically once the CNAME is verified. Usually takes less than a minute.
Bare domains: CNAME records cannot be set on root domains (e.g., example.com). Use a subdomain like stream.example.com, or use a DNS provider that supports ALIAS/ANAME records (Cloudflare, Route53).
Game Server Guides
Quick-start guides for popular game servers. Each game follows the same setup process.
- 1 Make sure the game server is running on your home machine on the default port
- 2 Install Tailscale on the same machine
- 3 In the HomeGate dashboard, create a new service with the correct protocol and target port
- 4 Share the connection string with your players
Minecraft Java Edition
Minecraft Bedrock Edition
Valheim
Terraria
Factorio
Palworld
API Reference
HomeGate provides a REST API for programmatic access to all features.
# Base URL
https://api.homegate.sh/v1
# Authentication
Authorization: Bearer <access_token>
# Add a service
POST /v1/services
{"name": "jellyfin", "ts_key": "tskey-auth-xxxx", "target": "100.100.1.5:8096"}
# Add a TCP service (Dedicated+)
POST /v1/services
{"name": "Minecraft Server", "targetPort": 25565, "protocol": "tcp"}
# TCP service response
{"id": "abc12345", "name": "Minecraft Server", "protocol": "tcp", "publicHost": "vps1.homegate.sh", "publicPort": 25565, "connectionString": "vps1.homegate.sh:25565", "status": "active"}
# Add a custom domain
POST /v1/services/:id/domains
{"hostname": "jellyfin.example.com"}
# Add an IP allowlist rule
POST /v1/services/:id/protection
{"type": "ip", "value": "203.0.113.0/24"}
Access Protection
IP Allowlisting
Restrict access to your service by IP address or CIDR range. Only requests from allowed IPs will reach your service.
Header Authentication
Require a custom header (e.g., X-Auth-Token: my-secret) for all requests. Useful for services that support header-based authentication like Immich or Jellyfin.
Supported Services
Web Services (HTTP)
HomeGate works with any HTTP-based service. Some popular examples:
Game Servers (TCP/UDP)
Available on the Dedicated+ plan: