Documentation

Get started with HomeGate

Everything you need to get your home services live.

Getting Started

  1. 1
    Create an account — Sign up at /register
  2. 2
    Install Tailscale — Install Tailscale on your home server
  3. 3
    Add a service — From the dashboard, add your service with your Tailscale auth key and target IP
  4. 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. 1 Make sure the game server is running on your home machine on the default port
  2. 2 Install Tailscale on the same machine
  3. 3 In the HomeGate dashboard, create a new service with the correct protocol and target port
  4. 4 Share the connection string with your players

Minecraft Java Edition

Protocol: TCP Default port: 25565

Minecraft Bedrock Edition

Protocol: UDP Default port: 19132

Valheim

Protocol: UDP Default port: 2456

Terraria

Protocol: TCP Default port: 7777

Factorio

Protocol: UDP Default port: 34197

Palworld

Protocol: UDP Default port: 8211

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:

Jellyfin :8096
Immich :2283
Plex :32400
Nextcloud :443
OpenClaw :3080
Ollama :11434
Vaultwarden :8080
Home Assistant :8123
Gitea :3000
Grafana :3000
Any HTTP-based service

Game Servers (TCP/UDP)

Available on the Dedicated+ plan:

Minecraft Java Edition TCP :25565
Minecraft Bedrock Edition UDP :19132
Valheim UDP :2456
Terraria TCP :7777
Factorio UDP :34197
Palworld UDP :8211
Any TCP or UDP service