Platform

Solutions

Resources

Company

Login

Start for Free

Automated Deployments & Orchestration on the
World's Largest Public Edge Computing Infrastructure

Automated Deployments & Orchestration on the
World's Largest Public Edge Computing Infrastructure

Automated Deployments & Orchestration on the
World's Largest Public Edge Computing Infrastructure

Automated Deployments & Orchestration on the
World's Largest Public Edge Computing Infrastructure

For Flawless Edge Infrastructure

Performance that Makes the Difference, which Only Edgegap can Deliver

Performance that Makes the Difference, which Only Edgegap can Deliver

Create and operate modern applications and automatically deploy them in seconds, without ops, to our market-leading multi-cloud edge network of 615+ locations worldwide.

Empower your digital experiences with near real-time response time
& enterprise-grade security, scale and support.

How We Make It Possible

How We Make It Possible

Edgegap

Leading Competitor

Edgegap

Leading Competitor

Edgegap

Leading Competitor

Edgegap Deploy Nearest Users for the Industry's Lowest Latency

First, our orchestration automatically caches game servers to its distributed network of 615+ global locations across 17+ providers, 5x times more locations than its competitors.

On-demand & just-in-time, Edgegap's orchestration automatically deploys to the ideal location nearest to users as to reduce latency by up to 58% vs. traditional public cloud.

Trusted By

Always Online: 99.99% Availability

Get total security with automated, on-demand and instant rapid scaling across 17+ providers

Includes integrated DDoS attack protection for absolute peace of mind

Uptime

(Last 90 days)

API

100.00%

Console

100.00%

Overall uptime

100.00%

Last 24 hours

100.00%

Last 7 days

100.00%

Last 30 days

100.00%

Last 90 days

Compatible

Compatible

Compatible

Compatible

Enable edge computing for any applications running in a container.

Bring your container and let Edgegap manage its lifecycle

  • Container Registry

  • Automatic Log Storage

  • Container Registry

  • Automatic Log Storage

Python

import os

import requests
from dotenv import load_dotenv
from flask import Flask, request, jsonify

load_dotenv()

# Getting our settings from env
ARBITRIUM_TOKEN = os.getenv("ARBITRIUM_TOKEN")
APPLICATION = os.getenv("APPLICATION")
VERSION = os.getenv("VERSION")

app = Flask(__name__)


@app.route('/servers', methods=['POST'])
def start_server():
    # How you access the user's IP is unimportant for us, but you will need it to create a deployment.
    # Here the user sent its IP in the request to get the TODO application, along with its username. 
    # We will inject it into the environment variables of our deployment.
    data = request.get_json()
    ip = data.get("ip")
    username = data.get("username")

    headers = {
        "Content-Type": "application/json",
        "Authorization": ARBITRIUM_TOKEN
    }

    # Building request body from the API specifications (/v1/deploy)
    deployment_request = {
        # These are mandatory to create a deployment
        "app_name": APPLICATION,
        "version_name": VERSION,
        "ip_list": [
            ip
        ],
        # These are not mandatory, but recommended
        "env_vars": [
            {
                "key": "message",
                "value": f"Welcome {username} to your personal TODO application!"
            }
        ],
        # Arbitrium will make a POST request to this URL once the deployment container is accessible.
        "webhook_url": "https://your-api.com/webhooks"
    }

    # Sending the request to Arbitrium to create a deployment
    response = requests.post("https://api.edgegap.com/v1/deploy", json=deployment_request, headers=headers)
    
    # Getting the Request ID from our request
    request_id = response.json().get("request_id")

    # Sending the Request ID to our client. Not mandatory, but it can be helpful to retrieve the deployment.
    return jsonify({"request_id": request_id}), 200


@app.route('/webhooks', methods=['POST'])
def webhook_route():
    # Accessing the data we need to forward to our client.
    data = request.get_json()
    request_id = data.get("request_id")
    
    # This is the URL that our client needs to connect to access the TODO application online.
    # Port 3000 is the one we set in our Dockerfile and our version
    connection_url = data.get("ports", {}).get("3000", {}).get("link")

    connection_data = {
        "request_id": request_id,
        "connection_url": connection_url
    }

    # Notifying our client of the connection informations
    requests.post("https://your-route-to-notify-user-client.com", json=connection_data)

    return 204


if __name__ == '__main__':
    app.run()

Low Code

Integration in minutes!

No need to integrate libraries or learn a new product. Get your application up and running through a simple integration of sending a RESTFUL API call.

Python

import os

import requests
from dotenv import load_dotenv
from flask import Flask, request, jsonify

load_dotenv()

# Getting our settings from env
ARBITRIUM_TOKEN = os.getenv("ARBITRIUM_TOKEN")
APPLICATION = os.getenv("APPLICATION")
VERSION = os.getenv("VERSION")

app = Flask(__name__)


@app.route('/servers', methods=['POST'])
def start_server():
    # How you access the user's IP is unimportant for us, but you will need it to create a deployment.
    # Here the user sent its IP in the request to get the TODO application, along with its username. 
    # We will inject it into the environment variables of our deployment.
    data = request.get_json()
    ip = data.get("ip")
    username = data.get("username")

    headers = {
        "Content-Type": "application/json",
        "Authorization": ARBITRIUM_TOKEN
    }

    # Building request body from the API specifications (/v1/deploy)
    deployment_request = {
        # These are mandatory to create a deployment
        "app_name": APPLICATION,
        "version_name": VERSION,
        "ip_list": [
            ip
        ],
        # These are not mandatory, but recommended
        "env_vars": [
            {
                "key": "message",
                "value": f"Welcome {username} to your personal TODO application!"
            }
        ],
        # Arbitrium will make a POST request to this URL once the deployment container is accessible.
        "webhook_url": "https://your-api.com/webhooks"
    }

    # Sending the request to Arbitrium to create a deployment
    response = requests.post("https://api.edgegap.com/v1/deploy", json=deployment_request, headers=headers)
    
    # Getting the Request ID from our request
    request_id = response.json().get("request_id")

    # Sending the Request ID to our client. Not mandatory, but it can be helpful to retrieve the deployment.
    return jsonify({"request_id": request_id}), 200


@app.route('/webhooks', methods=['POST'])
def webhook_route():
    # Accessing the data we need to forward to our client.
    data = request.get_json()
    request_id = data.get("request_id")
    
    # This is the URL that our client needs to connect to access the TODO application online.
    # Port 3000 is the one we set in our Dockerfile and our version
    connection_url = data.get("ports", {}).get("3000", {}).get("link")

    connection_data = {
        "request_id": request_id,
        "connection_url": connection_url
    }

    # Notifying our client of the connection informations
    requests.post("https://your-route-to-notify-user-client.com", json=connection_data)

    return 204


if __name__ == '__main__':
    app.run()

Low Code

Integration in minutes!

No need to integrate libraries or learn a new product. Get your application up and running through a simple integration of sending a RESTFUL API call.

Python

import os

import requests
from dotenv import load_dotenv
from flask import Flask, request, jsonify

load_dotenv()

# Getting our settings from env
ARBITRIUM_TOKEN = os.getenv("ARBITRIUM_TOKEN")
APPLICATION = os.getenv("APPLICATION")
VERSION = os.getenv("VERSION")

app = Flask(__name__)


@app.route('/servers', methods=['POST'])
def start_server():
    # How you access the user's IP is unimportant for us, but you will need it to create a deployment.
    # Here the user sent its IP in the request to get the TODO application, along with its username. 
    # We will inject it into the environment variables of our deployment.
    data = request.get_json()
    ip = data.get("ip")
    username = data.get("username")

    headers = {
        "Content-Type": "application/json",
        "Authorization": ARBITRIUM_TOKEN
    }

    # Building request body from the API specifications (/v1/deploy)
    deployment_request = {
        # These are mandatory to create a deployment
        "app_name": APPLICATION,
        "version_name": VERSION,
        "ip_list": [
            ip
        ],
        # These are not mandatory, but recommended
        "env_vars": [
            {
                "key": "message",
                "value": f"Welcome {username} to your personal TODO application!"
            }
        ],
        # Arbitrium will make a POST request to this URL once the deployment container is accessible.
        "webhook_url": "https://your-api.com/webhooks"
    }

    # Sending the request to Arbitrium to create a deployment
    response = requests.post("https://api.edgegap.com/v1/deploy", json=deployment_request, headers=headers)
    
    # Getting the Request ID from our request
    request_id = response.json().get("request_id")

    # Sending the Request ID to our client. Not mandatory, but it can be helpful to retrieve the deployment.
    return jsonify({"request_id": request_id}), 200


@app.route('/webhooks', methods=['POST'])
def webhook_route():
    # Accessing the data we need to forward to our client.
    data = request.get_json()
    request_id = data.get("request_id")
    
    # This is the URL that our client needs to connect to access the TODO application online.
    # Port 3000 is the one we set in our Dockerfile and our version
    connection_url = data.get("ports", {}).get("3000", {}).get("link")

    connection_data = {
        "request_id": request_id,
        "connection_url": connection_url
    }

    # Notifying our client of the connection informations
    requests.post("https://your-route-to-notify-user-client.com", json=connection_data)

    return 204


if __name__ == '__main__':
    app.run()

Low Code

Integration in minutes!

No need to integrate libraries or learn a new product. Get your application up and running through a simple integration of sending a RESTFUL API call.

Configure & Tailor

Transparent access to your deployment and orchestration data through detailed reports allowing you to fine-tune to your exact needs

Save Time & Resources

Save Time & Resources

Save Time & Resources

Ship Faster

Skip key backend development & ship earlier

Lower Costs

Reduce your total cost of operations by up to 70%

Free To Start

No upfronts, competitive
pay-per-minute hosting &
free credits

Latest News