ShellHub v0.22.0
The React Release
v0.22.0 is the biggest frontend change in ShellHub's history. The entire UI has been rebuilt from scratch in React with TypeScript, replacing the Vue-based frontend that served the project for years. This release also lays the groundwork for the upcoming PostgreSQL migration.
For the full story behind these changes, see Inside ShellHub #1.
New React UI
The new frontend ships as the default at /. The legacy Vue UI remains accessible at /v1 during the transition period.
Highlights compared to the previous frontend:
- No more Vuetify lock-in. The new UI uses Tailwind CSS with a custom design system, giving full control over styling without fighting a component library.
- Multi-session terminal. The old terminal opened one SSH session in a modal. The new one supports multiple concurrent sessions with a taskbar — minimize, restore, and fullscreen.
- Secure Vault. Store encrypted SSH private keys in the browser for password-protected key authentication directly from the web terminal.
- Welcome wizard. A guided onboarding flow for new users after account creation.
- Better error handling. Connection failures, expired sessions, and network drops show inline banners with clear messages instead of silently failing.
Unified Open-Core Architecture
The Cloud/Enterprise layer has been merged into the API binary. Instead of running a separate service, enterprise features are now compiled into the same binary and activated by configuration. This simplifies deployment, eliminates inter-service calls, and makes transactions across community and enterprise code truly atomic.
Agent Improvements
- Yamux multiplexing. The agent now uses multistream and yamux instead of an HTTP server for device communication, improving reliability and reducing overhead.
- Native static binary. Replaced the standalone runc dependency with a native static binary, simplifying agent distribution.
- PTY deadlock fix. Resolved a window-change deadlock that could freeze terminal sessions under load.
- ARMv6 support fix. Corrected architecture targeting for ARMv6 devices.
Infrastructure
- ACME-DNS support for web endpoint wildcard certificates — an alternative to DigitalOcean and Cloudflare DNS providers.
- MongoDB → PostgreSQL migration tooling is included in this release as groundwork for the v0.23.0 transition. Not yet active by default.
- Generic store test suite that validates both MongoDB and PostgreSQL implementations against the same test cases.
Bug Fixes
- Fixed namespace device counter cache discrepancies
- Fixed license device limit enforcement
- Fixed recovery email conflict check against empty strings
- Fixed trailing comma in agent config.json env array
- Improved web terminal error handling and reconnection
Updated Stack
- Go 1.24.13
- Node.js 24 (LTS)
- Alpine 3.22
New Contributors
- @geovannewashington made their first contribution in #5954
Full Changelog: v0.21.5...v0.22.0