Prerequisites
Before you begin, ensure you have:- Docker and Docker Compose installed
- Basic familiarity with the command line
- For production: A domain name with DNS configured
Local Development Setup
This setup runs Headscale locally onhttp://localhost:8000 without SSL/TLS.
Start the Stack
Clone the repository and start all services:Check that services are running:Verify health endpoint:
Access Headplane Web GUI
First, generate an API key for authentication:Open your browser to:Paste the API key when prompted to log in.
Make sure to include the trailing slash in the URL to avoid 404 errors.
Create Your First User
Create a user to organize your devices:Or use the helper script:List all users to verify:
Generate a Pre-Auth Key
Create a reusable pre-auth key for connecting devices:Or with the helper script:
Connect Your First Device
Install Tailscale on your device, then connect it to your Headscale server.
Management Commands
The included helper script simplifies common operations:User Management
Node Management
Pre-Auth Keys
Routes
System Status
Production Deployment
For production deployment with SSL/TLS:Backup and Restore
The stack uses PostgreSQL for data persistence.Backup Database
Restore from Backup
Troubleshooting
Check Service Status
Headplane 404 Error
Ensure you’re accessing the correct URL with trailing slash:- ✅
http://localhost:3001/admin/(correct) - ❌
http://localhost:3001(wrong - will return 404)
Connection Issues
Database Issues
For detailed configuration options and advanced setups, see the Configuration Guide and Best Practices.
