Topics:

Good news everyone, you can now open a TCP port on your application. Everything you need is now available in our API and Clever Tools.

Before this new release of clever-tools you were limited to HTTP only applications. Or you had to ask our support team to open a TCP port if you needed one. Now you can open one yourself like so:

$ clever tcp-redirs add --namespace cleverapps
Successfully added tcp redirection on port: 21562

What happened here is we changed the configuration of all the cleverapps.io proxies to forward every incoming request from yourapp.cleverapps.io:21562 to the port 4040 of the VM that runs your app. The --namespace option is here to tell us on which proxy we need to update the configuration. The cleverapps namespace is used for the cleverapps.io domain. The default namespace is used for all your custom domains. If you have your own set of proxies, you will also have a custom namespace. You can get the list of available domains with:

$ clever tcp-redirs list-namespaces
Available namespaces: default, cleverapps

You will find more details about it on our dedicated documentation.

Please keep in mind that this feature is still in Beta, as such it is currently free, but will be billed once we get out of Beta.

To make sure everything works as it should, your application has to listen to port 4040 for TCP and the usual 8080 for HTTP. We still run health check of your applications on port 8080 so you still need an HTTP server.

This opens a door to new possibilities like deploying MQTT servers, LDAP directories, or this quick TCP chat that my colleague Hubert wrote: https://github.com/CleverCloud/tcp-chat

Let's try this out:

$ git clone https://github.com/CleverCloud/tcp-chat
$ cd tcp-chat
$ clever create --type node tcp-chat
$ clever tcp-redirs add --namespace cleverapps
$ Successfully added tcp redirection on port: 21562
$ clever domain add mychat.cleverapps.io
$ telnet mychat.cleverapps.io 21562

And now you are in a telnet session chatting with whoever join that telnet session as well. Are you aware that vi and telnet have one thing in common? No one remembers how to quit(type ] then exit).

Please let us know what you want to deploy thanks to this new feature.


Profile picture of Laurent Doguin
By Laurent Doguin

Head of Developer Relation @clever_cloud. Devoxx Champion. I am also a nerdy metal head living in Paris.