Skip to main content

VibeTunnel Standalone Server

Run VibeTunnel as a standalone web terminal server without the macOS app. Perfect for remote machines, Docker containers, and quick terminal sharing.

Quick Start

Using npx (no installation)

Global Installation

Docker

CLI Options

Basic Server Options

  • --port <number> - Server port (default: 4020)
  • --bind <address> - Bind address (default: 0.0.0.0)
  • --no-auth - Disable authentication (for testing)
  • --debug - Enable debug logging

Tunnel Options (for remote access)

  • --ngrok - Enable ngrok tunnel for instant sharing
  • --ngrok-auth <token> - Ngrok authentication token
  • --ngrok-domain <domain> - Custom ngrok domain (paid plan)
  • --ngrok-region <region> - Ngrok region (us, eu, ap, au, sa, jp, in)
  • --cloudflare - Enable Cloudflare tunnel (Quick Tunnel, no auth)
  • --enable-tailscale-serve - Enable Tailscale Serve integration

Authentication Options

  • --enable-ssh-keys - Enable SSH key authentication
  • --disallow-user-password - Disable password auth, SSH keys only
  • --allow-local-bypass - Allow localhost connections to bypass auth
  • --local-auth-token <token> - Token for localhost auth bypass

Network Discovery

  • --no-mdns - Disable mDNS/Bonjour advertisement

Use Cases

Remote Server Access

Access a remote server’s terminal through a web browser:

Docker Development Environment

Mount your project and get instant web terminal access:

Quick Terminal Sharing

Share your terminal session in one command:

Kubernetes Pod Access

Deploy VibeTunnel as a sidecar container for web-based pod access:

Security Considerations

⚠️ Warning: The --no-auth flag disables all authentication. Only use this for:
  • Local development
  • Isolated Docker containers
  • Networks you fully trust
For production use:
  1. Always enable authentication
  2. Use HTTPS/TLS (via ngrok or reverse proxy)
  3. Consider SSH key authentication with --enable-ssh-keys
  4. Use environment variables for sensitive configuration

Environment Variables

  • PORT - Default port if —port not specified
  • VIBETUNNEL_DEBUG - Enable debug logging
  • VIBETUNNEL_CONTROL_DIR - Control directory for session data
  • NGROK_AUTHTOKEN - Ngrok auth token (alternative to —ngrok-auth)

Building from Source

Differences from Mac App Version

The standalone server:
  • ✅ Runs on any platform (Linux, macOS, Windows via WSL)
  • ✅ Works in Docker containers
  • ✅ Can be deployed via npx without installation
  • ✅ Includes built-in ngrok support
  • ❌ No menu bar integration
  • ❌ No automatic server management
  • ❌ No macOS-specific features (Keychain, etc.)

Troubleshooting

Ngrok not starting

  • Ensure ngrok is installed: which ngrok
  • Check if you need an auth token for your use case
  • Verify the port is not already in use

Permission denied errors

  • The server needs to spawn PTY processes
  • In Docker, you may need --cap-add SYS_ADMIN
  • Check file permissions in mounted volumes

Connection refused

  • Verify the bind address (use 0.0.0.0 for all interfaces)
  • Check firewall rules
  • Ensure the port is exposed in Docker

License

MIT - See LICENSE file for details