How devroots-studio/selfhost-helper works
SelfHost Helper is an Electron desktop cockpit for managing local development projects. Users organize projects on the dashboard, open a project workspace, then run and monitor its processes, inspect files and logs, edit/search code, use Git, and optionally expose a service through a tunnel. The renderer communicates with Electron services through the preload/IPC boundary; project state is persisted locally. README capabilities are included where the tree supports a subsystem, but their detailed wiring is not asserted where source excerpts were unavailable.
Main entry points: handlers.js IPC handlers · preload.js Preload bridge · projectsManager.js Project manager · App.jsx React app
Components 25
Desktop shell
- Electron main
electron/main.js - Preload bridge
electron/preload.js - IPC handlers
electron/ipc/handlers.js
Project workspace
- React app
src/App.jsx - Project dashboard
src/pages/Dashboard.jsx - Project workspace
src/components/ProjectLayout.jsx - Overview cockpit
src/components/OverviewView.jsx - Resource view
src/components/ResourcesTab.jsx - Tunnel view
src/components/TunnelView.jsx
Process lifecycle
- Project manager
electron/services/projectsManager.js - Process tree
electron/services/processTree.js - Native job control
electron/job/index.js - Stats service
electron/services/statsService.js
Developer tools
- Editor and Git
src/components/EditorView.jsx - File watcher
electron/services/filesWatcher.js - Project search
electron/services/searchService.js - Git service
electron/services/gitService.js - Language server
electron/services/lspBridge.js
Persistence and integrations
- Tunnel manager
electron/services/tunnelManager.js - SQLite database
electron/services/database.js - Project and category models
database/models/Project.js - Backup service
electron/services/configBackupService.js
Other components
- Developer
- Cloudflare Tunnel
- Local project processes
Connections 25
- Developer → React app: uses
- React app → Project dashboard: routes to
- React app → Project workspace: routes to
- Project dashboard → Preload bridge: requests projects
- Project workspace → Preload bridge: invokes operations
- Preload bridge → IPC handlers: dispatches IPC
- Electron main → IPC handlers: registers handlers
- IPC handlers → Project manager: controls projects
- Project manager → SQLite database: reads and writes
- SQLite database → Project and category models: persists records
- Project manager → Process tree: tracks and stops
- Project manager → Native job control: controls jobs
- Project manager → Local project processes: spawns and stops
- Project manager → Stats service: starts telemetry
- Overview cockpit → Preload bridge: requests telemetry
- Resource view → Preload bridge: requests resources
- Editor and Git → Preload bridge: requests tools
- IPC handlers → File watcher: manages watching
- IPC handlers → Project search: runs search
- IPC handlers → Git service: runs Git actions
- IPC handlers → Language server: controls language server
- IPC handlers → Tunnel manager: starts and stops
- Tunnel view → Preload bridge: controls tunnels
- Tunnel manager → Cloudflare Tunnel: runs tunnel
- IPC handlers → Backup service: imports configuration