Introducing TurboCloud Deployment Toolkit
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 tostart.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
Subscribe to my newsletter
Read articles from Pavel directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by