Danu Andrean, 13 Jun 2025

Cara Deploy Golang Dengan Domain Di VPS

Penjelasan Gambar

Masih bingung gimana si caranya deploy Go di VPS?. kali ini kita akan membahas secara detail dan mudah dipahami, untuk menambahkan domain ke VPS dan mengamankannya dengan SSL menggunakan Let’s Encrypt, serta mengatur reverse proxy menggunakan Nginx untuk aplikasi Go (Golang), ikuti langkah-langkah berikut:

Arahkan Domain ke IP VPS

Pastikan domain kamu sudah diarahkan ke IP publik VPS:

  • Login ke pengelola DNS domain (misalnya Cloudflare, Niagahoster, dll).
  • Tambah record A:
    Type: A
    Name: @
    Value: <IP VPS Kamu>
    TTL: Auto
    
    (Tambahkan juga record www jika ingin mendukung www.domain.com).
  • tunggu beberapa menit dan lakukan ping domain.com untuk memastikan domain resolve ke IP VPS.

Install Nginx di VPS

login vps dengan SSH dan ketikan pada terminal di vps kmu

$ sudo apt update
$ sudo apt install nginx -y

check statu nginx

$ sudo systemctl status nginx

Install Certbot untuk Let’s Encrypt

$ sudo apt install certbot python3-certbot-nginx -y

Tambah Konfigurasi Domain di Nginx

Buat file konfigurasi domain di /etc/nginx/sites-available/namadomain.com:

$ sudo nano /etc/nginx/sites-available/namadomain.com

Isi dengan:

server {
    listen 80;
    server_name namadomain.com www.namadomain.com;

    location / {
        proxy_pass http://localhost:8080; # Port aplikasi Go kamu
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Lalu aktifkan konfigurasi dengan membuat symlink:

$ sudo ln -s /etc/nginx/sites-available/namadomain.com /etc/nginx/sites-enabled/

Cek konfigurasi:

$ sudo nginx -t

pastikan semua ok dan tidak failed ya. kemudian restart nginx

$ sudo systemctl restart nginx

Generate SSL dengan Let’s Encrypt

$ sudo certbot --nginx -d namadomain.com -d www.namadomain.com

Ikuti proses interaktif, pilih redirect HTTP to HTTPS saat diminta.

Cek Otomatisasi Perpanjangan SSL

Let’s Encrypt hanya berlaku 90 hari, tapi bisa diperpanjang otomatis:

$ sudo certbot renew --dry-run

Jalankan Aplikasi Go

untuk kali ini kita gunakan code yang sederhana saja ya, codenya seperti dibawah ini

package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "Hello, World")
}

func main() {
	http.HandleFunc("/", handler)
	fmt.Println("Server running on http://localhost:8080")
	http.ListenAndServe(":8080", nil)
}

simpan dengan nama main.go dan jalankan dengan cara seperti biasa

$ go run main.go

Selesai

dengan melakukan cara seperti ini kamu akan menjalankan program go dengan domain yang sudah kamu siapkan, baca artikel menarik lainnya di web kami.

Happy Hacking 🚀🚀🚀



#website #golang #deployment