Common Workflows¶
Practical step-by-step guides for everyday StormTunnel tasks.
Daily Database Access¶
The most common workflow - connecting to a remote database for development work.
Quick Steps¶
- Open StormTunnel from your Applications or menu bar
- Find your database tunnel in the list (e.g., "dev-postgres")
- Click Connect (or press Space with the tunnel selected)
- Wait for green status - tunnel is now active
- Connect your app to
localhoston the local port (e.g.,localhost:5432)
Example: PostgreSQL Database¶
You need to access a PostgreSQL database on a remote server for local development.
| Setting | Value |
|---|---|
| Tunnel Name | dev-postgres |
| Local Port | 5432 |
| Remote Host | localhost |
| Remote Port | 5432 |
Once connected, use any database client:
- TablePlus: Connect to
localhost:5432 - pgAdmin: Server → localhost, Port → 5432
- Command line:
psql -h localhost -p 5432 -U youruser
Accessing Internal Web Services¶
Connect to internal APIs, admin panels, or web applications behind a firewall.
Quick Steps¶
- Create tunnel with local port matching the service (e.g., 8080 for web)
- Connect the tunnel
- Open browser to
http://localhost:8080
Example: Internal Admin Panel¶
Your company has an admin dashboard at admin.internal:3000 that's only accessible from the server network.
| Setting | Value |
|---|---|
| Tunnel Name | internal-admin |
| Local Port | 3000 |
| Remote Host | admin.internal |
| Remote Port | 3000 |
After connecting, open http://localhost:3000 in your browser.
Working with Multiple Services¶
When you need several connections at once - database, cache, and API.
Quick Steps¶
- Create separate tunnels for each service
- Use different local ports to avoid conflicts
- Connect all needed tunnels before starting work
- Disconnect when done to free up ports
Example: Full Development Stack¶
| Tunnel | Local Port | Remote Service |
|---|---|---|
| dev-postgres | 5432 | PostgreSQL database |
| dev-redis | 6379 | Redis cache |
| dev-api | 8080 | Backend API |
Tip: Use consistent naming like dev-postgres, staging-postgres, prod-postgres to quickly find what you need.
Quick Connect from Menu Bar¶
The fastest way to manage tunnels without opening the main window.
Quick Steps¶
- Click the StormTunnel icon in your menu bar
- See all tunnels with their current status
- Click the play button next to any tunnel to connect
- Click stop to disconnect
Menu Bar Benefits¶
- Always visible - no need to find the app window
- Status at a glance - see which tunnels are active
- One-click connect - fastest way to start a tunnel
- Keyboard shortcut - click icon or use global shortcut
Enable Menu Bar
If you don't see the menu bar icon, go to Settings → General and enable Show in Menu Bar.
Switching Between Environments¶
Moving from development to staging to production throughout the day.
Quick Steps¶
- Disconnect current environment tunnel
- Connect the new environment tunnel
- Verify your app connects to the right environment
Example: Dev → Staging → Production¶
Morning (Development):
- Connect
dev-postgres(port 5432) - Work on new features
Afternoon (Staging):
- Disconnect
dev-postgres - Connect
staging-postgres(port 5432) - Test your changes
Production Check:
- Disconnect
staging-postgres - Connect
prod-postgres(port 5432) - Verify deployment
Port Conflicts
Only one tunnel can use a port at a time. Disconnect the current tunnel before connecting another that uses the same local port.
Handling Connection Issues¶
What to do when a tunnel won't connect or keeps disconnecting.
Quick Checks¶
- Check your network - Are you connected to the internet?
- Check VPN - Some servers require VPN access first
- Check the error message - Click the tunnel to see details
- Try reconnecting - Sometimes a simple retry works
Common Solutions¶
| Problem | Solution |
|---|---|
| "Connection refused" | Server might be down - check with your admin |
| "Permission denied" | SSH key issue - verify key in Settings → Keys |
| "Port already in use" | Another app is using that port - change local port |
| "Timeout" | Network issue or firewall - check VPN connection |
Auto-Reconnect¶
Enable automatic reconnection for important tunnels:
- Edit tunnel (right-click → Edit)
- Enable Auto-Reconnect in the connection settings
- StormTunnel will automatically retry if disconnected
Connection Retry and Reliability¶
StormTunnel provides two mechanisms for handling connection failures - each serves a different purpose.
Understanding Retry vs Reconnect¶
| Feature | When It Applies | License Tier |
|---|---|---|
| Auto-Retry | Initial connection attempts only | Premium |
| Auto-Reconnect | Re-establishing broken connections | Free |
- Retry: Automatically tries to connect again when initial connection fails
- Reconnect: Automatically re-establishes a connection that was previously working but dropped
Auto-Retry (Premium Feature)¶
When enabled, StormTunnel automatically retries failed initial connection attempts.
How It Works¶
- You click Connect on a tunnel
- If connection fails, StormTunnel waits with exponential backoff
- Retry attempt 1: Wait ~1 second
- Retry attempt 2: Wait ~2 seconds
- Retry attempt 3: Wait ~4 seconds
- Continue until max retry attempts reached or connection succeeds
- Each retry is tracked in Connection History
Enabling Auto-Retry¶
- Edit tunnel (right-click → Edit)
- Go to Advanced settings
- Enable "Auto-Retry"
- Set "Max Retry Attempts" (default: 3, range: 1-10)
Premium Feature
Auto-Retry requires a Premium license. Free tier users must retry manually.
When to Use Auto-Retry¶
Enable retry for tunnels that:
| Scenario | Example |
|---|---|
| Unreliable networks | Remote servers on flaky internet |
| High-latency connections | Cross-continent SSH tunnels |
| Server restarts | Development servers that restart frequently |
| Intermittent failures | Networks that drop packets occasionally |
Retry vs Reconnect¶
| Situation | Use Retry | Use Reconnect |
|---|---|---|
| First connection attempt | ✅ Yes | ❌ No |
| Established connection drops | ❌ No | ✅ Yes |
| Server temporarily down | ✅ Yes | ❌ No |
| Network interruption | ❌ No | ✅ Yes |
| Connection timeout | ✅ Yes | ❌ No |
Best Practices¶
Do enable retry for:
- Production database tunnels (server might be restarting)
- Cross-region AWS tunnels (higher latency)
- Remote development servers (unstable networks)
Do NOT enable retry for:
- Localhost tunnels (should connect instantly)
- Frequently changed credentials (retry will fail repeatedly)
- Known bad configurations (fix the issue instead)
Viewing Retry Attempts¶
Check your connection history to see retry activity:
- Open Connection History (View → Connection History)
- Click on a tunnel
- Look for error events with retry attempt count
- Compare error timestamps to see retry spacing
Troubleshooting Retry Issues¶
| Problem | Solution |
|---|---|
| Retry not working | Verify Premium license is active |
| Too many retries | Lower "Max Retry Attempts" setting |
| Retry exhausted errors | Fix underlying connection issue |
| Slow retry sequence | Check network - might be causing failures |
Retry Limits
Retry is designed for transient failures. If a tunnel consistently fails after max retries, investigate the root cause rather than increasing retry count.
Backing Up Your Tunnels¶
Save your tunnel configurations before updating or switching computers.
Export Tunnels¶
- Go to File → Export
- Choose which tunnels to export (all or selected)
- Save the file somewhere safe
- Optional: Enable encryption for sensitive configurations
Import Tunnels¶
- Go to File → Import
- Select your backup file
- Review the tunnels to import
- Click Import
Regular Backups
Export your tunnels monthly or before major changes. Store backups in a secure location.
Sharing Tunnel Configurations¶
Share tunnel setups with colleagues (without sharing credentials).
What Gets Shared¶
When you export a tunnel:
- ✅ Tunnel name and settings
- ✅ Host, ports, and connection type
- ❌ Passwords (never exported)
- ❌ Private SSH keys (only references)
How to Share¶
- Export the tunnel configuration
- Send the file to your colleague (email, Slack, etc.)
- They import the file into their StormTunnel
- They configure their own credentials (SSH key or AWS profile)
Using AWS Session Manager Tunnels¶
Connect to EC2 instances without SSH keys using AWS Session Manager.
Prerequisites¶
- AWS CLI installed with Session Manager plugin
- AWS credentials configured (profile or SSO)
- Proper IAM permissions for Session Manager
Quick Steps¶
- Create new tunnel → Select AWS Session Manager
- Enter Instance ID (e.g.,
i-0123456789abcdef0) - Select AWS Profile from your configured profiles
- Set ports - local and remote
- Connect
Verify AWS Setup¶
If AWS tunnels aren't working:
- Go to Settings → AWS
- Check your AWS Profile is selected
- Click Test Connection to verify credentials
- See AWS Settings for detailed configuration
Keyboard Shortcuts for Speed¶
Work faster with keyboard shortcuts.
Essential Shortcuts¶
| Action | Shortcut |
|---|---|
| New tunnel | Cmd+N |
| Connect/Disconnect selected | Space |
| Open Settings | Cmd+, |
| Search tunnels | Cmd+F |
| Export tunnels | Cmd+E |
Navigation¶
| Action | Shortcut |
|---|---|
| Move up in list | Up |
| Move down in list | Down |
| Select tunnel | Enter |
See Keyboard Shortcuts for the complete list.
Quick Reference¶
Tunnel Status Colors¶
| Color | Meaning |
|---|---|
| 🟢 Green | Connected and working |
| ⚫ Gray | Disconnected |
| 🟡 Yellow | Connecting or reconnecting |
| 🔴 Red | Error - click for details |
Recommended Port Ranges¶
Organize your tunnels with consistent port assignments:
| Service Type | Port Range |
|---|---|
| Databases | 5000-5999 |
| Web/API | 8000-8999 |
| Cache (Redis, etc.) | 6000-6999 |
| Custom services | 9000-9999 |
Naming Convention¶
Use descriptive names that are easy to search:
Next Steps¶
- Creating Tunnels - Detailed tunnel configuration options
- Main Window Overview - Learn the full interface
- Team Workflows - Sharing and collaboration
- Troubleshooting - Solve common problems