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
Uses Cloudflare Tunnel for secure remote access. No need to open ports on your router.
Non-destructive deployments with automatic health checks and rollback on failure.
Manages Docker Compose services with Traefik as a reverse proxy. Simple and familiar.
Built specifically for Mac mini as a home server. Integrates with launchd for startup.
Full REST API with embedded web dashboard. CLI for quick terminal access.
All state stored locally in ~/Library/Application Support/tinyserve. You own your data.
Get your home server running in minutes.
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
Install tinyserve via Homebrew tap.
brew install tinyserve/tap/tinyserve
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
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
Configure the daemon to start automatically when your Mac boots.
# Enable tinyserved as a launch agent
brew services start tinyserve
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