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

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).

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 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

HomeGate works with any HTTP-based service. Some popular examples:

Jellyfin :8096
Immich :2283
Plex :32400
Nextcloud :443
Ollama :11434
Vaultwarden :8080
Home Assistant :8123
Gitea :3000
Grafana :3000