Skip to content

Releases: shellhub-io/shellhub

v0.21.4

02 Jan 19:50

Choose a tag to compare

What's Changed

  • ui: bump vuetify from 3.11.0 to 3.11.2 in /ui by @dependabot[bot] in #5602
  • ui: bump typescript-eslint from 8.48.0 to 8.48.1 in /ui by @dependabot[bot] in #5596
  • fix(ui): fix MemberInvite's email label spacing by @luizhf42 in #5608
  • chore(deps): bump actions/setup-node from 6.0.0 to 6.1.0 by @dependabot[bot] in #5607
  • cli: bump github.com/spf13/cobra from 1.10.1 to 1.10.2 in /cli by @dependabot[bot] in #5601
  • ui: bump express from 4.21.2 to 4.22.1 in /ui by @dependabot[bot] in #5599
  • agent: bump github.com/spf13/cobra from 1.10.1 to 1.10.2 in /agent by @dependabot[bot] in #5597
  • api: bump github.com/spf13/cobra from 1.10.1 to 1.10.2 in /api by @dependabot[bot] in #5598
  • docker: api: bump alpine from 3.22.2 to 3.23.0 in /api by @dependabot[bot] in #5606
  • docker: ssh: bump alpine from 3.22.2 to 3.23.0 in /ssh by @dependabot[bot] in #5605
  • docker: cli: bump alpine from 3.22.2 to 3.23.0 in /cli by @dependabot[bot] in #5604
  • docker: gateway: bump alpine from 3.22.2 to 3.23.0 in /gateway by @dependabot[bot] in #5603
  • feat(ui): show namespace type in SettingNamespace component by @luizhf42 in #5609
  • ui: bump vue-tsc from 3.1.5 to 3.1.7 in /ui by @dependabot[bot] in #5600
  • fix(ui): fix SettingTags behavior with no tags in list by @luizhf42 in #5610
  • fix(ui): correct admin table background and improve test selectors by @luannmoreira in #5586
  • fix(ui): items-per-page input handling only on blur DataTable by @luannmoreira in #5612
  • feat(agent): add support for optional environment variables in install.sh by @gustavosbarreto in #5613
  • feat(ui): add new Tags view separate from Settings by @luizhf42 in #5611
  • refactor(ui): improve terminal connection UI and add SSHID helper by @gustavosbarreto in #5614
  • fix(ui): enable TagSelector even when namespace has no tags by @luizhf42 in #5615
  • refactor(ui): add settings button to namespace switcher by @gustavosbarreto in #5617
  • refactor(ui): remove stats store usage from device UI components by @luannmoreira in #5590
  • fix(api): support X-Tenant-ID header in tag requests by @heiytor in #5618
  • refactor(ui): refactor Tags API wrapper and store by @luizhf42 in #5616
  • refactor(ui): simplify and validate items-per-page input handling by @luannmoreira in #5619
  • fix(ui): fix Connection Announcement edit dialog by @luizhf42 in #5621
  • fix(ui): fix SSHID Helper related issues by @luizhf42 in #5620
  • agent: bump golang.org/x/sys from 0.38.0 to 0.39.0 in /agent by @dependabot[bot] in #5627
  • ssh: bump github.com/labstack/echo/v4 from 4.13.4 to 4.14.0 in /ssh by @dependabot[bot] in #5631
  • ui: bump asciinema-player from 3.12.1 to 3.13.4 in /ui by @dependabot[bot] in #5635
  • ui: bump typescript-eslint from 8.48.1 to 8.49.0 in /ui by @dependabot[bot] in #5636
  • docker: ui: bump nginx from 1.29.3-alpine to 1.29.4-alpine in /ui by @dependabot[bot] in #5637
  • api: bump golang.org/x/crypto from 0.45.0 to 0.46.0 in /api by @dependabot[bot] in #5634
  • ui: bump eslint-plugin-jest from 29.2.1 to 29.5.0 in /ui by @dependabot[bot] in #5640
  • feat(ui): add "Add Private Key" button to TerminalLoginForm's select by @luizhf42 in #5622
  • test(ui): add API mocks to DevicesDropdown tests by @luizhf42 in #5624
  • refactor(ui): move hasNamespaces computed to namespaces store by @luizhf42 in #5623
  • ui: bump sass from 1.94.2 to 1.96.0 in /ui by @dependabot[bot] in #5639
  • ui: bump vuetify from 3.11.2 to 3.11.3 in /ui by @dependabot[bot] in #5638
  • bump(ui): revert Node.js LTS version bump by @luizhf42 in #5644
  • chore(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #5643
  • chore(deps): bump actions/cache from 3 to 5 by @dependabot[bot] in #5642
  • chore(deps): bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #5641
  • agent: bump golang.org/x/crypto from 0.45.0 to 0.46.0 in /agent by @dependabot[bot] in #5630
  • agent: bump github.com/labstack/echo/v4 from 4.13.4 to 4.14.0 in /agent by @dependabot[bot] in #5628
  • api: bump github.com/labstack/echo/v4 from 4.13.4 to 4.14.0 in /api by @dependabot[bot] in #5632
  • refactor(api): migrate membership invitations to a dedicated collection by @heiytor in #5532
  • feat(ui): implement new invitations menu, view, dialogs and management system by @luizhf42 in #5585
  • feat(ui): add items per page persistence to DataTable by @luizhf42 in #5646
  • test(ui): update InvitationList snapshot by @luizhf42 in #5645
  • feat(ui): create PageHeader component and refactor views by @gustavosbarreto in #5647
  • fix(ui): suppress Sass legacy JS API deprecation warnings by @gustavosbarreto in #5648
  • feat(ui): add FormBricks survey to setup wizard flow by @gustavosbarreto in #5649
  • test(ui): add @pinia/testing and mount helper for tests by @luizhf42 in #5650
  • feat(ui): add Rename Device button to accepted devices list by @luizhf42 in #5651
  • feat(ui): use PageHeader in TeamInvitations view by @luizhf42 in #5652
  • fix(ui): replace text-white with theme-safe emphasis colors by @luannmoreira in #5653
  • fix(ui): standardize WebEndpoints search bar placement by @luannmoreira in #5654
  • feat(ui): add onboarding survey to setup wizard by @gustavosbarreto in #5656
  • test(ui): improve AppLayout tests by @luizhf42 in #5655
  • refactor(ui): replace page titles in admin with PageHeader component by @luannmoreira in #5658
  • docker: api: bump alpine from 3.23.0 to 3.23.2 in /api by @dependabot[bot] in #5668
  • docker: cli: bump alpine from 3.23.0 to 3.23.2 in /cli by @dependabot[bot] in #5667
  • ui: bump vue-tsc from 3.1.8 to 3.2.1 in /ui by @dependabot[bot] in #5665
  • docker: gateway: bump alpine from 3.23.0 to 3.23.2 in /gateway by @dependabot[bot] in #5664
  • ui: bump @vue/runtime-dom from 3.5.25 to 3.5.26 in /ui by @dependabot[bot] in #5663
  • ui: bump eslint from 9.39.1 to 9.39.2 in /ui by @dependabot[bot] in #5662
  • ui: bump vue-router from 4.6.3 to 4.6.4 in /ui by @dependabot[bot] in #5660
  • fix(api): preserve null values for unique indexed fields in UserUpdate by @heiytor in #5670
  • refactor(ui): improve session play button and active status display by @luannmoreira in #5659
  • fix(tests): support testcontainers in Docker-in-Docker environment by @gustavosbarreto in #5671
  • ui: bump typescript-eslint from 8.49.0 to 8.50.1 in /ui by @dependabot[bot] in #5676
  • ui: bump sass from 1.96.0 to 1.97.1 in /ui by @dependabot[bot] in #5675
  • ui: bump eslint-plugin-jest from 29.5.0 to 29.11.1 in /ui by @dependabot[bot] in #5674
  • ui: bump vuetify from 3.11.3 to 3.11.5 in /ui by @dependabot[bot] in #5673
  • ui: bump asciinema-player from 3.13.4 to 3.13.5 in /u...
Read more

v0.21.3

05 Dec 14:58

Choose a tag to compare

What's Changed

Full Changelog: v0.21.2...v0.21.3

v0.21.2

04 Dec 16:48

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.21.1...v0.21.2

What's Changed

New Contributors

Full Changelog: v0.21.1...v0.21.2

What's Changed

New Contributors

Full Changelog: v0.21.1...v0.21.2

v0.21.1

02 Dec 19:13

Choose a tag to compare

What's Changed

  • chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.45.0 by @dependabot[bot] in #5573
  • ui: bump vuetify from 3.10.11 to 3.11.0 in /ui by @dependabot[bot] in #5577
  • ui: bump @vue/runtime-dom from 3.5.22 to 3.5.25 in /ui by @dependabot[bot] in #5576
  • api: bump github.com/getsentry/sentry-go from 0.38.0 to 0.40.0 in /api by @dependabot[bot] in #5574
  • ui: bump typescript-eslint from 8.46.4 to 8.48.0 in /ui by @dependabot[bot] in #5575
  • fix(ui): import global CSS in admin's App.vue by @luizhf42 in #5570
  • refactor(ui): improve admin's NamespaceEdit defineModel by @luizhf42 in #5571
  • fix(ui): fix Setup view UI and behavior by @luizhf42 in #5578
  • chore(ui): remove console.log by @luizhf42 in #5579
  • feat(api): enable setup endpoint for Enterprise environments by @heiytor in #5580
  • fix(ui): redirect to Setup if user doesn't have first account by @luizhf42 in #5581
  • chore: bump shellhub version to v0.21.1 by @gustavosbarreto in #5582

Full Changelog: v0.21.0...v0.21.1

What's Changed

  • chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.45.0 by @dependabot[bot] in #5573
  • ui: bump vuetify from 3.10.11 to 3.11.0 in /ui by @dependabot[bot] in #5577
  • ui: bump @vue/runtime-dom from 3.5.22 to 3.5.25 in /ui by @dependabot[bot] in #5576
  • api: bump github.com/getsentry/sentry-go from 0.38.0 to 0.40.0 in /api by @dependabot[bot] in #5574
  • ui: bump typescript-eslint from 8.46.4 to 8.48.0 in /ui by @dependabot[bot] in #5575
  • fix(ui): import global CSS in admin's App.vue by @luizhf42 in #5570
  • refactor(ui): improve admin's NamespaceEdit defineModel by @luizhf42 in #5571
  • fix(ui): fix Setup view UI and behavior by @luizhf42 in #5578
  • chore(ui): remove console.log by @luizhf42 in #5579
  • feat(api): enable setup endpoint for Enterprise environments by @heiytor in #5580
  • fix(ui): redirect to Setup if user doesn't have first account by @luizhf42 in #5581
  • chore: bump shellhub version to v0.21.1 by @gustavosbarreto in #5582
  • fix(ui): check Welcome's hasDevices only on mount by @luizhf42 in #5583

Full Changelog: v0.21.0...v0.21.1

What's Changed

Full Changelog: v0.21.0...v0.21.1

v0.21.0

01 Dec 14:58

Choose a tag to compare

ShellHub v0.21.0

What Changed in This Version?

v0.21.0 focuses on visible improvements that directly impact user experience. We redesigned interfaces, unified admin authentication and modernized the terminal.

image

🎨 Completely Redesigned Interface

The Admin Console has been completely revamped with a consistent visual identity. All pages now follow the same design system as the main interface.

Why it matters: Before, the Admin Console felt like a separate tool. Now there's a unified visual experience throughout ShellHub.

image

🔐 Unified Admin Login System

The Previous Problem

Before this version, logging in as admin was confusing:

  • Login to the main interface
  • Separate login to the Admin Console
  • Logging out of one didn't affect the other

The Solution

One single login for everything. Now:

  1. You log in normally to the main interface
  2. If you have admin privileges, you see the "Admin Console" button in the menu
  3. Click and you're taken to the Admin Console already authenticated
  4. Logging out anywhere logs you out of everything

🖥️ Completely New Web Terminal

image

Visual Themes

The SSH terminal now supports different color themes. The main ones are:

  • Default: Classic ShellHub theme
  • Dracula: Dark theme popular among developers
  • Monokai: Vibrant colors with good contrast
  • Solarized Dark: Scientific color palette optimized for low eye strain
  • Solarized Light: Light version of Solarized

Font Selection

You can customize the web terminal font according to your preference.

📦 Updated Stack

Frontend

  • Node.js 22: More modern and performant runtime
  • Vuetify 3.10.11: Updated visual components
  • XTerm.js 5: Modernized terminal

Backend

  • Go 1.24: Latest version with performance improvements
  • Alpine 3.22: Updated Docker base images

For the full list of changes, check out the complete changelog on GitHub.

Thanks to all contributors and the community for making this release possible!

v0.21.0-rc.2

10 Oct 14:02

Choose a tag to compare

v0.21.0-rc.2 Pre-release
Pre-release

What's Changed

Read more

v0.20.1

25 Aug 20:11

Choose a tag to compare

What's Changed

  • ui: bump @types/node from 18.19.121 to 18.19.122 in /ui by @dependabot[bot] in #5134
  • ui: bump sass from 1.89.2 to 1.90.0 in /ui by @dependabot[bot] in #5135
  • ui: bump yup from 1.6.1 to 1.7.0 in /ui by @dependabot[bot] in #5137
  • api: bump golang.org/x/crypto from 0.40.0 to 0.41.0 in /api by @dependabot[bot] in #5138
  • ssh: bump golang.org/x/crypto from 0.40.0 to 0.41.0 in /ssh by @dependabot[bot] in #5140
  • chore(deps): bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #5142
  • ui: bump typescript from 5.8.3 to 5.9.2 in /ui by @dependabot[bot] in #5139
  • fix(ui): mock onBeforeRouteLeave in tests by @luizhf42 in #5131
  • ssh: bump golang.org/x/net from 0.42.0 to 0.43.0 in /ssh by @dependabot[bot] in #5141
  • ui: bump vuetify from 3.9.2 to 3.9.4 in /ui by @dependabot[bot] in #5136
  • fix(snap): rename references to shellhub-agent snap package to shellhub by @henrybarreto in #5143
  • feat(snap): add --classic flag and use latest/stable channel for ShellHub snap by @henrybarreto in #5144
  • feat(snap): get snap settings from envs while installing by @henrybarreto in #5145
  • feat(snap): get preferred hostname from env while installing by @henrybarreto in #5148
  • fix(api,pkg): update device version when authenticating by @henrybarreto in #5147
  • chore(deps): bump github.com/docker/docker from 27.1.1+incompatible to 28.0.0+incompatible by @dependabot[bot] in #5150
  • fix(ui): fix MFA settings by @luizhf42 in #5152
  • fix(ui): ensure Chatwoot is properly reset on logout by @luannmoreira in #5153
  • chore(api): remove useless MFA store by @heiytor in #5149
  • api: bump github.com/getsentry/sentry-go from 0.35.0 to 0.35.1 in /api by @dependabot[bot] in #5154
  • docker: ui: bump nginx from 1.29.0-alpine to 1.29.1-alpine in /ui by @dependabot[bot] in #5156
  • chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #5155
  • feat(api)!: remove unused device methods by @heiytor in #5157
  • refactor(api): replace APIKeyGet methods with unified APIKeyResolve by @heiytor in #5158
  • feat(api): add namespace conflicts detection system by @heiytor in #5159
  • refactor(api): remove unused opts parameter from NamespaceGetPreferred by @heiytor in #5161
  • refactor(api)!: replace session record methods with generic operations by @heiytor in #5163
  • Refactor/api/rename device edit by @heiytor in #5160
  • feat(agent): deal with 429 and 503 HTTP status and Retry-After header by @henrybarreto in #5146
  • Refactor/api/simplify device update by @heiytor in #5162
  • feat(gateway): add rate limit to api routes by @henrybarreto in #5165
  • fix(agent): normalize container's name into shellhub's device name by @henrybarreto in #5164
  • feat(agent): add function to create connector with custom docker client by @henrybarreto in #5166
  • feat(pkg): add MaxDevices and Billing fields to NamespaceChanges by @heiytor in #5167
  • fix(env): increase default rate limit burst value by @henrybarreto in #5168
  • agent: bump golang.org/x/crypto from 0.31.0 to 0.35.0 in /agent by @dependabot[bot] in #4733
  • chore(deps): bump golang.org/x/crypto from 0.31.0 to 0.35.0 by @dependabot[bot] in #4736
  • agent: bump golang.org/x/net from 0.33.0 to 0.38.0 in /agent by @dependabot[bot] in #4742
  • chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 in /gateway by @dependabot[bot] in #4744
  • chore(ui): update OpenAPI specification by @luizhf42 in #5170
  • chore(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 by @dependabot[bot] in #5173
  • chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 in /tests by @dependabot[bot] in #5174
  • ui: bump cipher-base from 1.0.4 to 1.0.6 in /ui by @dependabot[bot] in #5177
  • chore(ssh): update golang-jwt to v5 by @henrybarreto in #5175
  • ui: bump sha.js from 2.4.11 to 2.4.12 in /ui by @dependabot[bot] in #5176
  • chore: bump shellhub version to v0.20.1-rc.1 by @gustavosbarreto in #5172
  • chore: bump shellhub version to v0.20.1 by @gustavosbarreto in #5187

Full Changelog: v0.20.0...v0.20.1

v0.20.0

09 Aug 17:38

Choose a tag to compare

We're excited to share ShellHub v0.20.0, featuring the new Web Endpoints system and enhanced SAML configuration.


✨ New Features

🌐 Web Endpoints

We've introduced Web Endpoints as a replacement for the legacy tunnel system. This new approach provides:

  • Web-accessible endpoints for your devices
  • Cleaner management interface
  • Available in preview mode on ShellHub Cloud
  • Full availability in ShellHub Enterprise

🔐 SAML Improvements (Enterprise)

Enhanced SAML configuration for Enterprise customers includes:

  • Support for multiple URL types (POST and Redirect URLs)
  • Improved X.509 certificate validation
  • Better error messaging and automatic certificate formatting

🚀 Improvements

💻 Web Terminal

  • Faster WebSocket connections with better performance
  • Terminal handling now complies with RFC 4254
  • More responsive interface across devices

🎯 User Experience

  • Streamlined device management
  • Better navigation and reusable components
  • More consistent interface elements

⚡ Performance & Reliability

  • Optimized device lookup (only shows accepted devices)
  • Consolidated device management system
  • Added Cloudflare DNS provider support
  • Enhanced SSH error handling
  • Improved certificate validation

🐛 Bug Fixes

Interface

  • Fixed namespace editing when changing device limits
  • Corrected copy icon behavior in command fields
  • Centered Snackbar notifications
  • Fixed placeholder display in select components

SSH & Terminal

  • Prevented crashes when agent output is empty
  • Fixed function naming issue in SSH key handling
  • Applied correct 4096 character limit for terminal input
  • Updated device lookup parameters

Backend

  • Prevented non-accepted devices from being added to removal lists
  • Simplified device status update process
  • Changed agent updater to remove containers instead of stopping them

v0.19.2

23 Jul 21:12

Choose a tag to compare

What's Changed

Full Changelog: v0.19.1...v0.19.2

v0.19.1

23 Jun 18:08

Choose a tag to compare

What's Changed

Full Changelog: v0.19.0...v0.19.1