Remote Tunnel
Source: docs/self-hosted/tunnel.md
Generated: 01/09/2026
Expose your JoinGrove server securely with the joingrove tunnel CLI — for remote labs and home-to-Chromebook access.
Key Concepts
- What: Remote tunnel forwards your local REH or web server through a secure tunnel so students reach JoinGrove without VPN setup.
- Why: Home labs and founder demos need shareable URLs; campus admins may tunnel a laptop REH during workshops.
- Related: Run anywhere README section, run modes (
run-modes.md), Chromebook guide (install-chromebook.md).
API / Reference
| Item | Value |
|---|---|
| CLI command | joingrove tunnel |
| Config | product.json → tunnelApplicationConfig, joingroveRunAnywhere |
| Dev web URL | http://127.0.0.1:9888 |
| Production template | joingroveRunAnywhere.productionEditorWebUrlTemplate |
| Wizard | joingrove.runAnywhereWizard |
| Docs URL | joingroveRunAnywhere.tunnelDocumentationUrl |
Setup & Installation
- Build JoinGrove CLI (included in standard compile pipeline).
- Start local server →
npm run serverornpm run sessions-web. - Run
joingrove tunneland follow authentication prompts. - Share the tunnel URL with remote clients (Chromebook, phone, collaborator).
- For production campus → set
productionEditorWebUrlTemplateinproduct.json.
Code Examples
Start server then tunnel:
npm run server
# In another terminal:
joingrove tunnel
Run anywhere smoke check:
npm run smoke-run-anywhere
Guided setup in IDE:
Command Palette → joingrove.runAnywhereWizard
Next: Students open the tunnel URL and optionally Install JoinGrove as App (PWA) (joingrove.installPwa).
How It Connects
- Run modes reference:
run-modes.md - Chromebook install:
install-chromebook.md - Campus deployment:
campus.md - In-app command:
joingrove.runAnywhereWizard