TurboCloud | | Docs | Handbook | Blog

Deploy a Go app

Create a new server on any cloud provider. There are just 3 requirements for a server: a public IPv4 address, Ubuntu 22.04, and SSH access from your local machine. Then, in the root folder of your project on your local machine, run the following command (replace server_public_ip with the IP of your server):

cd folder_with_project
curl https://turbocloud.dev/deploy | bash -s -- -i server_public_ip

For example, if your server’s IP address is 115.21.51.10, the command will look like this:

curl https://turbocloud.dev/deploy | bash -s -- -i 115.21.51.10

If everything goes well, your Go project will be deployed to a server with the IP address you specified with the parameter -i, and you’ll see an automatically generated URL in the console that you can use to access your project.

How to Link a Custom Domain

If you want to use a custom domain, add the -d with your domain (omit https://, http://, ws://, or wss://). Ensure the domain's A record is correctly pointed to your server's IP address. For example:

curl https://turbocloud.dev/deploy | bash -s -- -i server_ipv4 -d your_domain.com

How Go Deployment with TurboCloud Works

TurboCloud is a deployment toolkit that simplifies the deployment of Go projects to different cloud providers or your own hardware (for example, Raspberry Pi computers). You even shouldn't create a new account to try TurboCloud. TurboCloud includes automated HTTPS, VPN communication between servers and machines inside a project, CI/CD pipelines, and much more.

Steps to deploy in detail

  1. Start a Cloud Server:

    • Create an account/login into your cloud provider account (we recommend using Hetzner, DigitalOcean, Vultr, OVH).
    • Start a new server with:
      • Ubuntu 22.04 as the OS.
      • A Public IPv4 address.
      • Access over SSH from your development machine.

    You can deploy multiple projects on a single server using TurboCloud, as long as sufficient resources are available.

  2. How TurboCloud Deploys Go applications from local folders:

    • The command: curl https://turbocloud.dev/deploy | bash -s -- -i server_ip downloads the script from https://turbocloud.dev/deploy and runs the downloaded script. You can inspect the script by opening https://turbocloud.dev/deploy in any browser.
    • The only required parameter is -i, which specifies the IP address of the Hetzner server (of course, you can use other cloud providers too).
    • The project code is uploaded to the server using the scp utility.
    • The script logs into the server via SSH.
    • Required tools and services are installed on the server.
    • The script exits the server and starts a localhost tunnel to enable API requests to the TurboCloud API from your local machine. The default port used by the LocalCloud agent is 5445.
    • The TurboCloud agent checks whether the project contains a Dockerfile. If not, it uses Nixpacks to generate one.
    • A Docker image is built.
    • A new container is started.
    • The proxy server configuration is updated to forward requests from the domain to the container.
    • Old images and containers are removed if needed.

Summary

Finally, your Go app should be online and accessible at the URL displayed in the console. Feel free to reach out to us if you have questions or encounter issues at hey@turbocloud.dev.