🎉 Ebbflow has launched! 🎊
Use coupon code LaunchParty to save 25% off of the base price!

Documentation / Quickstart Guide

Overview | Endpoints | SSH

The QuickStart guide will enable you to hit the ground running with ebbflow.

Overview

What is Ebbflow, how does it work? Let's get the basics covered.

Basics

Ebbflow is a load balancer located in the cloud. It proxies traffic between clients and your servers. Your servers can be located in any network - they just need to create an outbound connection to Ebbflow which is handled by the provided client. To route clients to Ebbflow, you use DNS to point your domain name to Ebbflow IP addresses, the rest is handled from there.

How Ebbflow Works - Illustrated

This is once Setup is done, which involves pointing your domain name's DNS records to Ebbflow and running the client.

  1. Client wants to visit example.com and asks DNS to resolve the IP address for it.
  2. DNS returns Ebbflow's IP addresses.
  3. Client establishes TLS connection to Ebbflow with the Server Name Indication of example.com.
    (All major browsers and TLS clients support SNI)
  4. Ebbflow presents the browser and OS trusted certificate to the client.
  5. Ebbflow picks one of your servers to serve the connection.
  6. The Ebbflow client proxies the connection to your running webserver.
  7. In the future, other servers may be selected for other connections.

Endpoints

This guide will get you going with a 'Managed' endpoint, although passthrough endpoints are just as easy.
  1. Create Endpoint on Ebbflow.io

    1. Navigate to the Create Endpoint page
    2. Once there, provide the domain name of your endpoint.
    3. Click Create Endpoint
  2. Set up DNS for your endpoint

    These instructions are listed on the page for your given endpoint, but here are the instructions again.
    1. Update the DNS entries of your endpoint either the CNAME record or A records shown on the Endpoint's information page.
    2. Update the TXT record of your endpoint to include the string on the endpoint page
    3. Wait ~60 seconds for DNS propogation, then click 'Verify'
    4. Once verified, we are ready to host the site!
  3. Download & Run the client on the server which will host your endpoint

    1. Follow the OS-specific install instructions for the client, instructions here.
      • Remember to ebbflow init and setup the permissions for the Host Key identity in the console.
    2. Start your server that is hosting the endpoint. Note the port it runs on!
    3. Tell the ebbflow client to host your endpoint // you may need to run this with sudo
      $ ebbflow config add-endpoint --dns mywebsite.com --port 8080
    4. Done! You should be able to navigate to your endpoint in a browser, or curl.

SSH

Getting started with the SSH feature is very easy.
  1. Set Up Public SSH keys

    1. Navigate to the IAM settings page
    2. Click 'Create New SSH Key', and upload the public SSH key of any host you'd like to SSH from. Typically this is ~/.id_rsa.pub
    3. For now, attach the SshToAnything managed policy to this key. For finer grained permissions, feel free to create other roles or policies. See the IAM documentation here
  2. Download & Run the client on the server you want to SSH to

    1. Follow the OS-specific install instructions for the client, instructions here.
      • The ebbflow init will prompt you to setup SSH.
  3. SSH

    1. Done! Now just SSH from a host that has had its public key uploaded
      $ ssh -J ebbflow.io user@hostname