Spokes v1.5.2

Published at May 19, 2025 ·  4 min read

Share on:

We’re excited to announce the release of Spokes v1.5.2, bringing major improvements in our API, enhanced cluster management capabilities, and several stability fixes. This update marks an important step in our ongoing efforts to provide more robust Spokes deployments.

Get the Release!

You can download the RPM here. As always, our container images are available in both the Packetriot and Terrapin Labs repositories.

docker pull packetriot/spokes:1.5.2

# alternatively

docker pull terrapinlabs/spokes:1.5.2

Custom Ports

Spokes now supports allocating custom ports. Port allocations were previously implemented by randomly drawing a port from a range that is defined in the server configuration. Random port allocation is still the default behavior, but now users can request a specific port.

Requesting a specific port can help in scenarios when a port was accidentally released. It’s also useful when you want to use an application specific port, such as MySQL’s port 3306 for client connections.

There is a restricted list of ports: 80, 443, and 22. This list may change over time but these ports were placed here since SSH is commonly used to access servers and ports 80 and 443 are listened by Spokes.

Custom ports can be specified using the pktriot client application, v0.15.6 or higher. A new flag named --custom-port can be used with the pktriot tunnel tcp allocate sub-command.

Custom ports can also be allocated through the Spokes admin dashboard as well.

Allocate custom port button

Allocate custom port button

Allocate custom port allocation dialog

Allocate custom port allocation dialog

The Spokes server must be configured to enable custom ports, it is not enabled by default. Once enable, all tunnels can request custom ports.

Server custom port option

Server custom port option

Admins can also enable permissions for users (and their tunnels) to request custom ports. The user information settings page in the dashboard has been updated to toggle this permission on and off. Note, enabling custom ports for a user will override the server-wide configuration.

User-specific custom port permission

User-specific custom port permission

This feature has been requested in the past and we’re excited to provide it in this release!

Port Management Page

We added a new page focused on managing all allocated ports on the Spokes server. We’ve received requests in the past for a page like this, so that admins can scroll through ports and see understand which ports are allocated to which tunnels.

This new page lists all the ports allocated and provide the tunnel name, when edited, hostname, last known IP address and the time it was allocated. Note, the allocation time is a new data point we are just beginning save when ports are allocated, so this value will be empty for any previously allocated tunnels.

You can also release a port from this page too.

Port management page

Port management page

As a reminder, a few versions ago we added a feature in the tunnel search box for querying tunnels based on the port number. To search by port you use the term port: as a prefix to the port number you want to search for. For example: port:22321, and Spokes will search for all tunnels that at one point had allocated this port.

Replication Bug Fixes & Enhancements

Our replication logic has been improved with several bug fixes, ensuring more predictable and reliable synchronization across nodes. These improvements support our broader efforts to develop automated cluster management and failover capabilities.

This release introduces new administrative API endpoints that will enable automated management of a cluster. These endpoints make it easier to deploy, control, and automate cluster operations, paving the way for quicker failover and high-availability configurations.

We have been quietly a new application we are calling Sentinel that will monitor the state of a cluster and automatically pick new master nodes during failovers and update DNS records to steer traffic to the new master node.

Combining Sentinel’s cluster management with the SRV record support we introduced in v0.15.5 of the pktriot client, we should be able to implement a Spokes cluster with fully automated failovers.

Other Bug Fixes

We’ve also resolved several bugs reported by our users and made other minor stability and usability improvements.

Thanks!

As always, we want to thank our customers for their feedback, feature suggestions, and bug reports. Your input helps us prioritize improvements that make Spokes even better. If you have ideas for new features or enhancements, feel free to reach out.

Cheers!