🚀 Tobogganing Quick Start Guide¶
Get up and running with Tobogganing in under 10 minutes!
📋 Prerequisites¶
- Docker & Docker Compose (Latest version)
- Go 1.23+ (for building from source)
- Python 3.12+ (for Manager development)
- Node.js 18+ (for website development)
🐳 Quick Start with Docker Compose¶
1. Clone the Repository¶
2. Configure Environment¶
Copy the example environment file and adjust settings:
cp deploy/docker-compose/.env.example deploy/docker-compose/.env
# Edit .env with your database passwords and secrets
Key Environment Variables:
# Database Configuration
DB_TYPE=mysql
DB_ROOT_PASSWORD=secure_root_password
DB_PASSWORD=secure_app_password
# JWT & Security
JWT_SECRET=your-super-secret-jwt-key
METRICS_TOKEN=prometheus-scraping-token
# Headend Configuration
HEADEND_AUTH_TYPE=jwt
TRAFFIC_MIRROR_ENABLED=true
HEADEND_SYSLOG_ENABLED=true
3. Start the Complete Stack¶
cd deploy/docker-compose
# Start all services (includes Suricata IDS, FRR, Redis)
docker-compose -f docker-compose.yml up -d
# Check status
docker-compose ps
# View logs
docker-compose logs -f manager headend
4. Access Services¶
🎛️ Manager Web Portal¶
- URL: http://localhost:8000
- Features:
- User management with role-based access
- Real-time analytics dashboard
- Firewall rule configuration
- VRF and OSPF management
- Port configuration interface
Default Admin Account:
📊 Monitoring Stack¶
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (admin/admin)
- Tobogganing Metrics: http://localhost:8000/metrics
🔍 Security Monitoring¶
- Suricata IDS Logs: Available in container logs
- Syslog Server: UDP port 514 (configurable)
5. Initial Configuration¶
Create Your First User¶
- Access the Manager Portal at http://localhost:8000
- Log in with admin credentials
- Navigate to "Users" → "Create User"
- Assign appropriate role (Admin/Reporter)
Configure Firewall Rules¶
- Go to "Firewall" section
- Create domain rules:
*.yourcompany.com - Add protocol rules for specific services
- Test access with the built-in testing tool
Set Up VRF Network Segmentation¶
- Navigate to "Network" → "VRF Management"
- Create VRF:
customer-awith RD65000:100 - Configure OSPF areas and authentication
- Monitor OSPF neighbors in real-time
🖥️ Client Installation¶
Desktop Users (Recommended)¶
🖼️ GUI Client with System Tray¶
# macOS (Universal - Intel + Apple Silicon)
curl -L https://github.com/penguintechinc/tobogganing/releases/latest/download/tobogganing-client-darwin-universal -o tobogganing-client
chmod +x tobogganing-client
# Linux
curl -L https://github.com/penguintechinc/tobogganing/releases/latest/download/tobogganing-client-linux-amd64 -o tobogganing-client
chmod +x tobogganing-client
# Windows
# Download: tobogganing-client-windows-amd64.exe
# Initialize and start GUI
./tobogganing-client init --manager-url http://localhost:8000 --api-key YOUR_API_KEY
./tobogganing-client gui
GUI Features: - ✅ System tray icon with real-time status - ✅ One-click connect/disconnect - ✅ Connection statistics viewer - ✅ Automatic configuration updates - ✅ Cross-platform native experience
Server Deployments¶
🖥️ Headless Client for Automation¶
# Download headless version
curl -L https://github.com/penguintechinc/tobogganing/releases/latest/download/tobogganing-client-linux-amd64-headless -o tobogganing-client
chmod +x tobogganing-client
# Configure and run as daemon
./tobogganing-client init --manager-url http://localhost:8000 --api-key YOUR_API_KEY
./tobogganing-client connect --daemon
🐳 Docker Container¶
docker run -d \
--name tobogganing-client \
--cap-add NET_ADMIN \
--device /dev/net/tun \
-e MANAGER_URL=http://localhost:8000 \
-e API_KEY=YOUR_API_KEY \
ghcr.io/penguintechinc/tobogganing-client:latest
📖 For detailed installation instructions, see Client Installation Guide
Building from Source¶
Build All Components¶
# Quick build all React applications + screenshots
./scripts/build-apps.sh
# Or build everything with make
make build
Build Individual Components¶
# Manager Service
make build-manager
# Headend Proxy
make build-headend
# Native Client
make build-client
# Website
make build-website
# Mobile app only
./scripts/build-apps.sh --mobile-only
# Website only
./scripts/build-apps.sh --website-only
# Screenshots only
./scripts/build-apps.sh --screenshots-only
Mobile Development Setup¶
For Android development and testing:
# Install Android Studio and SDK
./scripts/setup-android-studio.sh
# Build and deploy mobile app
./scripts/deploy-mobile.sh
# Start Android emulator
./scripts/setup-android-studio.sh --start-emulator
# Open Tobogganing project in Android Studio
~/open-tobogganing-mobile.sh
Testing¶
Run All Tests¶
Run Specific Tests¶
Deployment¶
Production with Kubernetes¶
# Apply Kubernetes manifests
kubectl apply -f deploy/kubernetes/
# Check deployment status
kubectl get pods -n tobogganing
Production with Docker Swarm¶
# Initialize swarm (if needed)
docker swarm init
# Deploy stack
docker stack deploy -c docker-compose.production.yml tobogganing
# Check services
docker service ls
Client Installation¶
Docker Client¶
docker run -d \
--name tobogganing-client \
--cap-add NET_ADMIN \
--device /dev/net/tun \
-e MANAGER_URL=https://manager.example.com \
-e API_KEY=your-api-key \
tobogganing/client:latest
Native Client¶
Linux/macOS¶
# Download binary
curl -L https://github.com/yourusername/Tobogganing/releases/latest/download/tobogganing-client-$(uname -s)-$(uname -m) -o tobogganing-client
chmod +x tobogganing-client
# Run with config
./tobogganing-client --config config.yaml
Windows¶
# Download from releases page
# Run with administrator privileges
tobogganing-client.exe --config config.yaml
Mobile Client (Android)¶
# Build APK from source
./scripts/deploy-mobile.sh
# Install to connected device
adb install -r clients/mobile/android/app/build/outputs/apk/debug/app-debug.apk
# Or download from releases page
# Install APK on Android device
Configuration¶
Manager Service¶
Configuration via environment variables:
# Database
DB_TYPE=mysql # mysql, postgresql, sqlite
DB_HOST=localhost
DB_PORT=3306
DB_USER=tobogganing
DB_PASSWORD=secure_password
DB_NAME=tobogganing
# Redis
REDIS_URL=redis://localhost:6379
# Security
JWT_SECRET=your-secret-key
SESSION_TIMEOUT_HOURS=8
Headend Server¶
# Manager connection
MANAGER_URL=http://manager:8000
HEADEND_AUTH_TOKEN=your-token
# Traffic mirroring
TRAFFIC_MIRROR_ENABLED=true
TRAFFIC_MIRROR_DESTINATIONS=10.0.0.100:4789
# Syslog
HEADEND_SYSLOG_ENABLED=true
HEADEND_SYSLOG_SERVER=syslog.example.com:514
Monitoring¶
Prometheus Metrics¶
Available at /metrics endpoints:
- Manager: http://localhost:8001/metrics
- Headend: http://localhost:8080/metrics
Health Checks¶
- Manager: http://localhost:8000/healthz
- Headend: http://localhost:8080/healthz
Logs¶
# View all logs
docker-compose -f docker-compose.local.yml logs
# View specific service logs
docker-compose -f docker-compose.local.yml logs manager
docker-compose -f docker-compose.local.yml logs headend-us-east
Troubleshooting¶
Common Issues¶
-
Port conflicts: Check if ports are already in use
-
Database connection issues: Verify database is running
-
WireGuard module not loaded:
Debug Mode¶
Enable debug logging:
Getting Help¶
- Documentation: Full Documentation
- Issues: GitHub Issues
- Community: [Discord/Slack]