Kokomo

Create ingresses on the fly.

Make every host reachable even when no ingress is available, as long as there is outbound connectivity.

kokomo
$ kokomo --local-port 9000 --api-key [KOKOMO APIKEY]
Success! Kokomo has exposed your local port 9000 at:
- Public static address: 102.59.246.53:9000
- Region: USA
You can now accept requests.
Press <CTRL+C> to terminate

Introduction

Getting started

Learn how to start using Kokomo in 5 minutes, and don't forget to start the free 7 days trial to try it out.

Use cases

Explore the many use cases where Kokomo can be used.

Concepts

Explore the core concepts and Kokomo works.

Security

Explore the security settings starting from mTLS.

Logging

Explore the native logging capabilities of Kokomo.

Kokomo will always provision dedicated infrastructure for each service/application you decide to expose, with the ability to lock down access via mTLS, IP firewall and many other features. Also, it provides a native logging viewer GUI in the product so that you can easily inspect all traffic as part of your Kokomo subscription.

It also provisions static IP addresses, so that you can proxy both HTTP and TCP services reliably, and a public DNS that points to the static IP address.

As you explore this documentation, don't forget to look into all these topics so you can get the most out of Kokomo.


Quick start

To get started with Kokomo is as easy as following these 3 steps.

1. Create a Kokomo account

First, create a Kokomo Account and choose a subscription. You can start a free trial on every plan, which will last 7 days. You can cancel your subscription anytime, and after 7 days your regular subscription will automatically start if it has not been canceled before the end of the free trial.

2. Expose a service

Once you have created your account, it is now time to expose a service by clicking the "Expose a service" button that's very visibile in the header bar, or in the main dashboard.

You can expose every HTTP or TCP service

With Kokomo you are not limited to HTTP APIs or frontend applications, you can expose every TCP service including databases, caches and more.

When you expose a service, you will be asked for a few information like:

  • A name for your service.
  • The local port where your service is running on the computer/server from where it is being exposed from.
  • You can optionally map to a different port on Kokomo. So for example if your service listens on port 8000, you can make the service accessible on port 9000 via Kokomo.
  • You can optionally enable Mutual TLS. By default it is disabled.
  • You can optionally enable IP firewalling. By default all IPs 0.0.0.0 are allowed.
  • You will need to specify an API key, which by default is already selected to Default.

Do not share your API keys!

An API key will uniquely identify a service tied to your account, we strongly recommend to keep all your API keys safe and secure. The Default API key is automatically generated for you, but you can create or delete API keys at any time.

Then, when you have entered all the information, you can generate the agent script and proceed to the next step.

3. Download and run the agent

Kokomo works by running a CLI agent application on the computer that is hosting the service you would like to expose. The agent will estabilish a bi-directional communication with Kokomo and trigger the provisioning of your Kokomo infrastructure.

At this step of the wizard, we generate the CLI script that you should run after downloading the agent.

So first, download the agent for the operating system where your services are running:

Then run the script that has been presented on the screen, and as soon as we detect the execution of the agent we will update the wizard with the provisioning of your dedicated infrastructure which should take approximately 60 seconds.

Once done, you can use the static IP address or the DNS to access your service via Kokomo.

The DNS may take a while

While the static IP address will be available for consumption immediately, the DNS address may take a few minutes to properly be propagated.

Known CLI obstacles

When downloading and running the CLI, in the most cases everything will work immediately as expected. Sometimes the following scenarios may present themselves:

On MacOS the application has not been verified

We are in the process of signing the agent CLI with a proper Apple Developer account, in the meantime you can right click on the downloaded file and click "Open" to approve the application.

Once approved, you can then run the CLI command again.

On MacOS you receive the "Bad CPU type in executable" error

When you see an error like:

Bad CPU type in executable

This most likely means that you downloaded the wrong MacOS distribution of the agent. Make sure that if you have a modern Apple device with M* CPUs, you select the Apple Silicon distribution.

Alternatively you can run the following command to add backwards compatibility for x64 on arm64 MacOS machines:

$ /usr/sbin/softwareupdate --install-rosetta --agree-to-license

And then run the CLI command again.

The OS returns an error saying you don't have permissions

To run the Kokomo agent you need to make sure that the file has the appropriate level of permissions so that it can be executed from the Terminal. If you receive a permission error, typically the following command will resolve it:

chmod +x kokomo

And then run the CLI command again.

Other issues

If you experience any other issue, don't hesistate to reach out to support so that we can help you resolve the problem.