tinyserve

A local host manager for running small Docker services on your Mac mini. Zero port forwarding, automatic Cloudflare Tunnel integration.

$ brew install tinyserve/tap/tinyserve

Why tinyserve?

Zero Port Forwarding

Uses Cloudflare Tunnel for secure remote access. No need to open ports on your router.

🚀

Staging-First Deploys

Non-destructive deployments with automatic health checks and rollback on failure.

📦

Docker Native

Manages Docker Compose services with Traefik as a reverse proxy. Simple and familiar.

🍏

macOS-First

Built specifically for Mac mini as a home server. Integrates with launchd for startup.

🛠

REST API + CLI

Full REST API with embedded web dashboard. CLI for quick terminal access.

🔒

Self-Contained

All state stored locally in ~/Library/Application Support/tinyserve. You own your data.

So you bought a new Mac?

Get your home server running in minutes.

1

Install dependencies

Install Homebrew, Xcode Command Line Tools, and a Docker runtime.

# Install Xcode Command Line Tools xcode-select --install # Install Homebrew (if not already installed) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Install Colima (lightweight Docker runtime for macOS) brew install colima docker docker-compose colima start
2

Install tinyserve

Install tinyserve via Homebrew tap.

brew install tinyserve/tap/tinyserve
3

Initialize with your domain

Run the init command with your domain and Cloudflare API token. This creates your tunnel automatically.

# Start the daemon tinyserved & # Initialize with your domain tinyserve init --domain yourdomain.com \ --cloudflare-api-token $CF_API_TOKEN \ --tunnel-name home-server
4

Add your first service

Add a service and deploy it. tinyserve handles the routing, SSL, and tunnel configuration.

# Add a simple whoami service tinyserve service add --name whoami \ --image traefik/whoami:v1.10 \ --hostname whoami.yourdomain.com \ --port 80 # Deploy all services tinyserve deploy # Check status tinyserve status
5

Set up auto-start (optional)

Configure the daemon to start automatically when your Mac boots.

# Enable tinyserved as a launch agent brew services start tinyserve

Quick Reference

tinyserve status Show daemon health, proxy status, and service count
tinyserve service list List all services with their status and metadata
tinyserve service add --name NAME --image IMG --hostname HOST --port PORT Add a new service with Docker image and hostname
tinyserve deploy Deploy all services with health checks and auto-rollback
tinyserve logs --service NAME View logs for a specific service
tinyserve rollback Restore last known-good configuration