Authentication & Security
Overview
VibeTunnel supports multiple authentication modes:- None (localhost only)
- Password (simple shared secret)
- Token (JWT-based)
- External (Tailscale, ngrok)
Configuration
Security Settings
Enable Authentication
Password Authentication
Server Configuration
Client Login
Token Authentication
JWT Structure
Token Generation
Signing Secret Persistence
WhenJWT_SECRET is unset, the server generates a 64-byte signing secret and stores it
at ~/.vibetunnel/jwt-secret with 0600 permissions. The same key is reused after a
restart, keeping existing browser tokens valid. Set JWT_SECRET to supply an
operator-managed key; rotating or deleting the active key invalidates existing tokens.
Token Validation
Network Security
Localhost Only (Default)
LAN Access
HTTPS/WSS
External Access
Tailscale Integration
ngrok Tunnel
Session Security
Isolation
Each session runs in a separate process with user permissions:Resource Limits
Security Headers
Audit Logging
Best Practices
- Always use authentication for non-localhost access
- Rotate tokens regularly
- Use HTTPS/WSS in production
- Limit session lifetime to prevent resource exhaustion
- Monitor audit logs for suspicious activity
- Keep dependencies updated for security patches
Threat Model
Compliance
Data Protection
- No persistent storage of terminal content
- Sessions cleared on exit
- Optional recording with user consent
Access Control
- Authentication required for remote access
- Session isolation per user
- No privilege escalation