Prerequisites
- A Clouddley account
- An AWS account
- AWS CLI installed and configured on your local machine
- AWS Access Keys with permissions to create and manage EC2 instances
- Golang installed on your local machine
- Git installed locally
- Basic familiarity with the Linux command line
Create a Golang Application
First, create a simple Golang application to deploy. If you already have one, you can skip this step.Create a new directory for your application
Initialize a new Go module
Create a main.go file
Run your application locally
http://localhost:3007 to see "Hello, World!, This Go application runs on Clouddley"Push Your Code to GitHub
Create a New Repository on GitHub
Initialize Git
Add and Commit Your Code
Create branch and add Remote Repository
Push code
Create an AWS EC2 Instance
Now create an EC2 instance to host your app. With AWS CLI, you can quickly create one. First, create a VPC and security group if you don’t want to use the default ones.- Create a VPC by running the command:

Create a VPC on AWS
- Create a security group by running the command:
vpc_id with the one created in the previous step. 
Create a Security group on AWS
- Allow inbound traffic on port 22 (SSH) and port 3007 (your application port)
sg_id with the one created in the previous step. - To create an EC2 instance, you need to have an SSH key pair. If you don’t have one, you can generate and import one below.
How to Generate and Import SSH Keys to AWS
How to Generate and Import SSH Keys to AWS
- Step 1: To generate an SSH key, run the command:
- Step 2: To add your SSH key to AWS, run:
- Finally, create the EC2 instance.
- Replace ami-xxxxxxxx with regions’s compatible AMI
- Replace my-key with your key pair name
- Replace sg_id with your security group id

Create a EC2 instance on AWS
Once the instance is running, note the Public IP address of the instance. You’ll need it later.
Deploy
Your Golang application and EC2 instance are ready. Now, you can deploy your application.- Open your browser and log in to your Clouddley account
- Click on Apps at the left sidebar
- Click on Deploy App

Accessing Apps
Step 1: Configure Service
- Choose your Git hosting service which can be Github or Bitbucket. We will use Github in this tutorial.
- Click on Continue with Github and authorize Clouddley to access your Github account.

Choose your Git hosting service
Step 2: Configure Git
- To connect your Github user or organization account, click on the Select username/organization dropdown and Add Github account.
- Select your repository and the branch from the dropdown list or quickly search.
- Click on Next.

Setup the Golang application repository on Clouddley
Step 3: Configure your Virtual Machine
- From the Choose or add server dropdown, select your VM if it appears in the list. If not, click + Add Virtual Machine.
- To add your VM, enter your instance’s IP address as VM host, VM user, and the VM port for SSH access.
- Once you’ve entered the details, verify the connection using the Clouddley CLI(recommended) or SSH.
How to Install Clouddley CLI to Verify your AWS EC2 Instance
How to Install Clouddley CLI to Verify your AWS EC2 Instance
- Open your local machine’s command line, then connect to the remote VM you want to configure with Clouddley. Use this command to SSH into your EC2 instance:
- Install Clouddley CLI by running the command:
- To add the SSH public key, run the command:
- Click on Verify. This verifies the connection to your VM.
- Once verified, click on Next to proceed.

Configure virtual machine on Clouddley
Step 4: Configure app settings
- Enter the name of your application and its port number.
- Click on Next to continue.

Configure the App name and port
- Click on Add Variable
- Choose an ENV mode: either a single variable or import variables mode. Learn more here.
- Single Variable
- Import Variables

- Add the key-value pairs and click on Save.
- Click on Next to continue.

Adding environment variables
Step 6: Setup Notifications (optional)
- To configure the notifications settings of the application, click on Add Alert
- Select the Alert type. For this tutorial, we will set up Email Alerts.
- Toggle on the buttons of the deployment event (failed, timed out, or success) you want to be notified of.
- Enter the Email address where you want to receive alerts. (You can add multiple email addresses)
- Click on Save
- Click on Deploy

Notifications set up and creation of Golang application on Clouddley
Step 7: Test and Verify the app
- Click on Go to Dashboard to see your application on the apps dashbaord.
- Once the deployment is complete, the app status changes from
DeployingtoOnline.

Golang application dashboard overview
- Click on 🌐 Website at the top right corner of the webpage, this opens the URL of your application in your browser.
- You should see your Golang application running successfully.

Golang application running from Clouddley on an AWS EC2 instance
Post-deployment: Managing your application
Once your Golang application is up and running on an AWS EC2 instance using Clouddley, management is simple.The apps dashboard lets you handle key tasks without touching the server. You can adjust the settings, scale your app, roll back to earlier versions, pause or resume the app, or remove the app if needed. You’ll also find helpful features to view your deployment history, check logs, manage environment variables, and connect a custom domain, all in one place.
Golang Application Best Practices
Golang Application Best Practices
Don’t add layers of complexity you don’t need. Go’s standard library is powerful, use it before reaching for third-party tools. Structure your project well
Use a folder layout that makes sense. Group related filed together, separate internal logic from public code, and avoid clutter. Clear structure saves time when your project grows. Write Go the Go way
Stick to Go’s style conventions. Run gofmt or goimports so your code looks same everywhere. The goal is clarity and consistency. Handle errors properly
In Go, errors don’t hide. Check and return them instead of ignoring them. Use clear messages so you (or your team) can quickly fix issues later. Secure your configuration
Don’t hardcode values like API keys or database passwords. Load them from environment variables or a secure config file. Write tests
Use Go’s testing tools to write unit tests and integration tests. Keep them simple and make sure they explain what they’re checking. Use meaningful logs
Good logging tells the story of your app. Capture the details that matter, but avoid spamming your logs with unnecessary data. Limit external dependencies
Only add libraries when they solve a real problem. Too many dependencies can make your project harder to maintain and less secure. Use concurrency when it fits
Goroutines and channels are great, but they add complexity. Apply them where they truly help, and watch out for race conditions. Lock down your builds
Manage dependencies with Go modules (go mod) so builds are repeatable across different environments.
Conclusion
You’ve successfully deployed a Golang application on an AWS EC2 instance using Clouddley. Clouddley eliminates the usual headaches of deploying on a server, letting you focus on building great applications. If you’ve got feedback or ideas to make Clouddley even better, let us know here. We’re excited to see the cool things you’ll deploy with it!Getting started with Clouddley?
Additional Resources
- Clouddley Documentation
- Run Dockerfile on Clouddley
- AWS EC2 Documentation
- Golang Documentation
- GitHub Docs
Updated on August 21, 2025
