Introducing TurboCloud Deployment Toolkit

PavelPavel
5 min read

What is the TurboCloud Toolkit?

TurboCloud is a toolkit (PaaS, WAF, Rate Limiting, and Localhost Tunnels) that helps you deploy almost any web or IoT project to any cloud provider or your own hardware (Raspberry Pi, Single Board Computers, or even old laptops). There are only two requirements for a server (or machine) to be compatible with TurboCloud:

  • SSH access to the server

  • Ubuntu 22.04 installed on a server with Internet access

How Does TurboCloud Work?

For a complete guide on deploying your first project, check out the guides "Deploy Anywhere" or "Deploy to ...". This section provides only basic information on how TurboCloud works.

Deploy from a Local Repository

To deploy from a local repository (a folder with the project's source on your development machine):

  • Prepare a server with a public IP address, SSH access from your development machine, and fresh Ubuntu 22.04 installation.

  • Change the directory on the development machine to the folder with the project's code and run the deployment command (replace server_ip with the real public IP of your server).

cd my_project
curl https://turbocloud.dev/deploy | sh -s -- -i server_ip

Deploy from GitHub, Bitbucket, GitLab, and Custom Git Servers

You can also deploy from GitHub, Bitbucket, and custom Git servers via CI/CD. Here’s how it works:

  • Prepare a server with a public IP address, SSH access from your development machine, and fresh Ubuntu 22.04 installation.

  • SSH into the server (replace server_ip with the actual public IP of your server).

ssh root@server_ip
  • Run the setup command.
curl https://turbocloud.dev/setup | sh -s
  • Once installation is complete, start the TurboCloud TUI (Terminal User Interface), which functions similarly to standard applications on macOS, Linux, and other OSs, but can operate on servers without displays. Use the TUI to set up deployments with interactive guides.
turbocloud

Deploy to Additional Servers

When deploying on the first server within your TurboCloud project, TurboCloud creates a VPN (Virtual Private Network or Virtual Private Cloud) to secure end-to-end communication between servers and local machines within the same VPN. This means that a service on server A can connect securely to a database on server B without additional authentication by using http://private_ip_inside_vpn:db_port. Servers can be managed by different cloud providers, and you can even mix your own hardware with cloud resources.

To deploy on additional servers:

  • SSH into the server you provisioned first (replace server_ip with the real public IP of your server).
ssh root@server_ip
  • Start the TurboCloud TUI.
turbocloud
  • Navigate to Add Machine (TurboCloud refers to servers, laptops, Raspberry Pis, etc., as "machines") and complete the required fields (Name and Machine Type).

  • Copy the command to connect the second machine (server or local machine), which appears after you add a new machine in TUI.

  • Open a new terminal window, SSH into the second server, and run the command to connect it to the first server over VPN.

curl https://turbocloud.dev/setup | sh -s -- -j join_link
  • Repeat these steps to add additional servers.

How TurboCloud Determines Deployment

When deploying with TurboCloud, it checks the folder containing your code and follows these rules:

  • Dockerfile: If a Dockerfile is found, TurboCloud uses it to start your project. You can specify a path to the Dockerfile, although TurboCloud will default to searching in the root folder. You may also enter Dockerfile contents directly, which is useful for open-source projects with official Docker containers.

  • start.sh: If a start.sh script is present, TurboCloud uses this script to start your project. You can specify the path to start.sh, but TurboCloud will default to looking in the root folder.

  • No Dockerfile or start.sh: If neither is found, TurboCloud will use Nixpacks to attempt deployment based on the source code.

Managing Deployments, WAF, and Rate Limiting

You can manage deployments, WAF, and rate limiting using the TUI, CLI, or API. A Web Console is currently under development and is expected to be available around December 2024. For more details, refer to the section "How to Manage TurboCloud."

Key Features

  • Deployments with or without a Dockerfile

  • No Ops & no infrastructure management required

  • Built-in container registry (no need for third-party registries)

  • No YAML configuration files required - deploy projects with a single command

  • Free for simple, non-commercial projects. Upgrade to the limitless version (one-time payment) when you gain paying users or when infrastructure becomes more complex.

  • Deploy directly from a local repository or from GitHub, Bitbucket, and GitLab

  • WAF (Web Application Firewall) with OWASP-recommended attack detection rules

  • Rate limiting

  • VPN (Virtual Private Network) or VPC (Virtual Private Cloud) for secure connections across data centers, local machines, and on-premise servers

  • Deploy static websites, Node.js, Golang, and almost any runtime environment

  • Load balancer and proxy server

  • Autoscaler (compatible with select cloud providers)

  • CI/CD (Continuous Integration & Continuous Deployment)

  • Localhost tunnels for exposing local web servers with a public URL, including automatic HTTPS and custom domains

  • HTTPS and WSS support for custom domains

  • Compatible with virtually any VPS, cloud, dedicated server, or Single Board Computer running Ubuntu 22.04 LTS

  • Unlimited environments per project

  • Custom domains for each environment

  • GitOps or push-to-deploy

  • SSH access to servers

  • Resource usage monitoring

  • Lightweight: requires only around 10 MB of RAM and approximately 0% CPU usage

  • One-time payment (€59 or $69 for the limitless version). A free version with all features is available as well (no credit card required)

Questions?

Feel free to contact us at hey@turbocloud.dev

0
Subscribe to my newsletter

Read articles from Pavel directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Pavel
Pavel