Welcome to the documentation for Mysocket.io, a service that provides you with fast and secure network connectivity whenever you need it, wherever you are.
Mysocket.io is a service that provides public endpoints for services that are otherwise not publicly reachable. A typical example is a web service running on your laptop, which you’d like to make available to your client. Or ssh access to servers behind NAT or a firewall, like a raspberry pi on your home network. Mysocket.io is a fully managed cloud service, so nothing to run! Mysocket also provides OpenIDConnect and Saml authentication options, allowing for zero trust deployments.
More documentation can be found below; but if you’re eager to get started, consider this a quick start. Download the mysocketctl client from our download page Create an account:
mysocketctl account create \ --name "your_name" \ --email "your_email_address" \ --password "a_secure_password" \ --sshkey ~/.ssh/id_rsa.pub
After confirming your new account (check your email), login and retrieve an access token:
mysocketctl login \ --email "your_email_address" \ --password "a_secure_password"
$ mysocketctl login Email: email@example.com Password: Login successful
Now you’re ready to use the “quick connect” feature to connect your local service listening on port 8000 to the Internet:
mysocketctl connect \ --port 8000 \ --name "my test service" ┌──────────────────────────────────────┬───────────────────────────────────┬─────────┬──────┬────────────┬─────────────────┐ │ SOCKET ID │ DNS NAME │ PORT(S) │ TYPE │ CLOUD AUTH │ NAME │ ├──────────────────────────────────────┼───────────────────────────────────┼─────────┼──────┼────────────┼─────────────────┤ │ 6be8287f-cf55-4e29-a7c8-4960166ac609 │ green-voice-5562.edge.mysocket.io │ 80, 443 │ http │ false │ my test service │ └──────────────────────────────────────┴───────────────────────────────────┴─────────┴──────┴────────────┴─────────────────┘ Connecting to Server: ssh.mysocket.io Welcome to Mysocket.io! my test service - https://green-voice-5562.edge.mysocket.io ======================================================= Logs ======================================================= <live stream of your logs here>
To quickly test if it’s working, you can start a web service on localhost port 8000 like this.
python3 -m http.server 8000
Now visit the URL (dns_name) using your browser, and you’ll see that the localhost service you just started is now globally available!
Stable public DNS names and port numbers for your private apps.
- Supports various socket types, including:
Zero trust: Support for OpenIDConnect authentication. protect your sockets with authentication. Login with your favorite idendity provider (Google, Facebook, Github)
Options for SSL/TLS Encryption for your sockets
All sockets run on a global anycast network, reducing latency and improving the user experience.
Username and Password protected (HTTP/HTTPS) Sockets
Live Stream of logs. We show you all requests in real-time, including the latency between our anycasted nodes and your origin server.
Support for multiple origins per socket, ie. Load Balancing
Build on a global anycast network¶
Mysocket.io is built on a global anycasted network of 94 Points of Presence in 82 cities across 44 countries. This helps you improve the availability and performance of the applications that you offer to your global users. Mysocket.io application services connect to use anycast network using various servers in North America, Europe, and Asia. All this provides us with the best possible low latency user experience and Instant regional failover, which results in an incredible level of high availability.
Example use cases¶
With our Identity Aware sockets you can provide access to your private (on prem) services, without the need for a VPN. Mysocket can act as a VPN alternative. No software is needed on the client, all the while authentication and authorization options are making sure your private resources are only available to those who should have access.
Kubernetes public load balancer¶
Provide a load balancer service with a public anycasted IP for your Kubernetes workloads. As easy as installing the mysocket.io k8 controller.
Easy Multi-region load balancing¶
Spin up your origin services over multiple cloud providers and regions and have the mysocket edge network front and secure your traffic. Load balancing over multiple regions and cloud providers has never been easier.
Make the local web service on your laptop available to your colleagues or client.¶
You may prefer to do web development on your laptop, and, before publishing it to some public server, would like to share it quickly with your teammate or client. Using Mysocket.io you can make the web app running on localhost, publicly available to anyone on the Internet. Just share the mysocket.io generated URL with those with who you’d like to share it. If you’d like, you can even make it password protected.
Access your raspberry pi at home from anywhere on the Internet¶
You have a small lab at home, perhaps with a raspberry pi or Intel nuc. Since these are behind your NAT router you can’t normally SSH into them. By using Mysocket.io you can make the SSH services on your home server available by tunneling TCP traffic through the tunnel seamlessly through NAT. Mysocket.io will provide a public DNS name and port number, which can be used to SSH into your server from anywhere.
A global stable public endpoint for your ephemeral resources.¶
Your containers come and go, perhaps even distributed over various public clouds as well as your private datacenter. It can be challenging to provide a stable public endpoint for these ephemeral and mobile services. With mysocket.io you can create a public endpoint, either an http/https, or TCP, TLS endpoint. Now each time a new container comes up, it can connect to the mysocket.io service and register as a new origin (backend) server. You can have one, or many of these origin services per public socket.
Interacting with the Mysocket.io service¶
The easiest way to get started with the service is by using the mysocketctl cli tool. More details about that can be found here. All interaction with our services is done using our RESTful API. You can find the API and the API specifications at https://api.mysocket.io/ The mysocketctl tool uses this API to interact with the service.