M
Mr Sugiarto
Developer
25 Aug 2026 2 min read

Sejauh ini setiap kali kita ubah kode, kita harus stop server (Ctrl+C) lalu jalankan lagi go run main.go secara manual. Ini cukup mengganggu ritme development. Di part ini kita pasang Air, tool hot reload untuk Go yang otomatis rebuild dan restart server setiap ada perubahan file.

Instalasi Air

Air diinstall sebagai tool global (bukan dependency project), lewat go install:

go install github.com/air-verse/air@latest

Pastikan $GOPATH/bin (biasanya ~/go/bin) sudah ada di PATH, supaya command air bisa dipanggil langsung dari terminal. Cek instalasinya:

air -v

Konfigurasi Air

Generate file konfigurasi default di root project:

air init

Perintah ini membuat file .air.toml yang isinya kurang lebih:

root = "."
tmp_dir = "tmp"

[build]
  bin = "./tmp/main"
  cmd = "go build -o ./tmp/main ."
  delay = 1000
  exclude_dir = ["assets", "tmp", "vendor", "testdata"]
  exclude_regex = ["_test.go"]
  include_ext = ["go", "tpl", "tmpl", "html"]
  log = "build-errors.log"

Konfigurasi default ini sudah cukup untuk kebutuhan kita: Air akan memantau semua file .go di project, build ke folder tmp/, lalu menjalankan binary hasil build tersebut. Setiap ada file yang berubah, proses build-run diulang otomatis.

Tambahkan tmp/ dan build-errors.log ke .gitignore supaya hasil build sementara tidak ikut ter-commit:

/tmp
build-errors.log

Menjalankan Server dengan Air

Ganti go run main.go dengan:

air

Output-nya mirip menjalankan server biasa, ditambah daftar folder yang di-watch:

watching .
watching handlers
watching models
watching routes
watching validation
building...
running...

 ┌───────────────────────────────────────────────────┐
 │                  Fiber v2.52.15                    │
 │               http://127.0.0.1:3000                │
 └───────────────────────────────────────────────────┘

Testing Hot Reload

Coba ubah salah satu file .go, misalnya tambahkan komentar di main.go, lalu simpan. Tanpa perlu restart manual, terminal akan menampilkan:

main.go has changed
building...
running...

Server otomatis rebuild dan restart dengan perubahan terbaru. Ini akan sangat membantu produktivitas mulai dari part berikutnya, terutama saat kita mulai membangun fitur JWT authentication yang butuh banyak percobaan bolak-balik.

M
Mr Sugiarto

Developer

Bagian dari Series: GoFiber Dasar - Belajar Fundamental Lewat REST API Blog

Belajar konsep-konsep dasar GoFiber (routing, handler, GORM, MySQL, JWT auth) dengan membangun REST API blog sederhana dari nol - lengkap dengan auten...

Lihat Series Lengkap
Artikel Terkait
Artikel Sebelumnya
Part 6 - Validasi Request