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
Please let us know what you want to deploy thanks to this new feature.