Slim: HTTPS Lokal dan Tunnel Publik
Tools Tutorial DevOps #slim #localhost #https #dev-tools

Slim: HTTPS Lokal dan Tunnel Publik

A
Abd. Asis
5 min read
Bagikan:

Salah satu hal yang paling mengganggu saat development web adalah URL http://localhost:3000. Bukan hanya karena tidak ada HTTPS — yang artinya beberapa fitur browser seperti Service Worker atau Clipboard API tidak bisa diuji — tapi juga karena tidak bisa langsung dibagikan ke rekan tim atau klien untuk demo cepat. Solusi konvensionalnya membutuhkan mkcert untuk sertifikat, konfigurasi DNS lokal, reverse proxy seperti Caddy atau Nginx, dan kalau mau publik, masih perlu ngrok atau tools tunneling terpisah.

Slim menyatukan semua itu dalam satu CLI tool. Satu perintah untuk domain HTTPS lokal, satu perintah lagi untuk membagikan server lokal ke internet dengan URL publik. Tidak ada konfigurasi server, tidak ada edit /etc/hosts manual.

Slim Itu Apa Sebenarnya

Slim adalah CLI tool berbasis Go yang bertindak sebagai proxy layer di antara browser dan server development kita. Ketika kita jalankan slim start myapp --port 3000, Slim melakukan tiga hal secara otomatis: membuat local Certificate Authority (CA) yang dipercaya sistem, menerbitkan sertifikat TLS untuk domain myapp.test, dan mengarahkan semua request ke myapp.test ke localhost:3000.

Ini berbeda dengan pendekatan mkcert yang hanya mengurus sertifikat — Slim juga menangani routing dan DNS resolution sekaligus. Berbeda juga dengan ngrok yang primarily dirancang untuk tunneling publik; Slim lebih fokus ke pengalaman domain lokal yang bersih, dengan fitur sharing publik sebagai bonus.

Slim tersedia untuk macOS dan Linux. Windows belum didukung secara resmi per dokumentasi saat ini.

Instalasi Slim

Instalasi menggunakan satu perintah curl:

curl -sL https://slim.sh/install.sh | sh

Setelah instalasi selesai, verifikasi dengan menjalankan slim --version. Jika ingin membangun dari source, diperlukan Go 1.25 atau lebih baru:

git clone https://github.com/kamranahmedse/slim
cd slim
make build
make install

Langkah pertama setelah instalasi adalah menjalankan setup awal yang akan membuat local CA dan mendaftarkannya ke trust store sistem:

slim setup

Perintah ini yang membuat semua domain lokal yang dibuat Slim nantinya akan langsung dipercaya browser tanpa warning keamanan.

Membuat Domain HTTPS Lokal

Anggap kita sedang mengerjakan aplikasi manajemen inventaris yang berjalan di port 4000. Untuk membuat domain lokal HTTPS-nya:

slim start inventaris --port 4000

Slim langsung menerbitkan sertifikat dan domain https://inventaris.test siap diakses. Tidak perlu restart browser, tidak perlu konfigurasi tambahan.

Secara default Slim menggunakan TLD .test, tapi ini bisa dikustomisasi jika perlu menggunakan .loc atau .dev:

slim start inventaris --port 4000 --tld loc
# https://inventaris.loc → localhost:4000

Path Routing ke Port Berbeda

Satu fitur yang sangat berguna untuk arsitektur monorepo atau proyek full-stack adalah path routing — kemampuan mengarahkan path URL yang berbeda ke port yang berbeda dalam satu domain:

slim start inventaris --port 4000 --route /api=8080

Dengan perintah di atas, https://inventaris.test mengarah ke frontend di port 4000, sedangkan https://inventaris.test/api mengarah ke backend API di port 8080. Cocok untuk setup Next.js + API server terpisah tanpa perlu memodifikasi CORS configuration di development.

Konfigurasi dengan .slim.yaml

Untuk proyek yang punya banyak service, mendefinisikan semuanya di file konfigurasi jauh lebih praktis daripada mengetik ulang perintah setiap sesi. Buat file .slim.yaml di root proyek:

services:
  - domain: inventaris
    port: 4000
    routes:
      - path: /api
        port: 8080
      - path: /storage
        port: 9000
  - domain: admin
    port: 5173
log_mode: minimal
cors: true

Dengan file ini, semua service bisa dijalankan sekaligus:

slim up    # jalankan semua service
slim down  # hentikan semua service

log_mode menerima tiga nilai: full untuk logging semua request, minimal hanya menampilkan error, dan off untuk menonaktifkan log sama sekali. Field cors menambahkan CORS headers secara otomatis — berguna saat frontend dan backend berjalan di origin yang berbeda meski dalam domain lokal yang sama.

Membagikan Server Lokal ke Internet

Ketika perlu menunjukkan progress ke klien atau kolaborasi remote, Slim menyediakan fitur sharing menggunakan domain slim.show:

slim share --port 4000

Output-nya berupa URL publik sementara seperti https://xyz123.slim.show yang langsung bisa dibagikan. Untuk subdomain yang lebih mudah diingat:

slim share --port 4000 --subdomain demo-inventaris
# https://demo-inventaris.slim.show

Tambahkan flag --ttl 2h untuk mengatur berapa lama URL publik aktif. Ini membantu menghindari lupa menutup tunnel yang sudah tidak dipakai.

Fitur ini juga mendukung password protection untuk session yang lebih sensitif:

slim share --port 4000 --subdomain preview --password r4hasiaDemo

Perintah Diagnostik dan Manajemen

Slim menyediakan beberapa perintah utilitas yang berguna sehari-hari:

slim list     # lihat semua domain lokal yang sedang berjalan
slim logs     # akses log request secara real-time
slim doctor   # diagnosa: cek status CA, port forwarding, dan daemon
slim update   # update Slim ke versi terbaru

slim doctor terutama berguna saat setup pertama kali di mesin baru atau ketika tiba-tiba domain lokal tidak bisa diakses. Perintah ini memeriksa apakah CA terdaftar dengan benar, apakah port forwarding aktif, dan apakah daemon Slim berjalan normal.

Kesimpulan

Slim menyederhanakan satu area friction yang sering diabaikan dalam setup development: gap antara localhost dengan kondisi produksi yang sesungguhnya. HTTPS lokal yang bersih memungkinkan kita menguji fitur yang bergantung pada secure context, sementara fitur sharing membuat kolaborasi dan demo klien tidak perlu setup tambahan. Untuk proyek dengan banyak service, .slim.yaml membuat seluruh environment bisa dijalankan dengan satu perintah. Bagi yang sudah familiar dengan tools self-hosted seperti Coolify atau Dokploy, Slim melengkapi workflow development lokal sebelum deployment.

Referensi

  1. 1Slim - Official Documentation & Feature Overview
  2. 2kamranahmedse/slim - GitHub Repository

Tentang Penulis

Abd. Asis

Abd. Asis

Software Developer dan Laravel Programmer dari Madura, Indonesia. Passionate tentang PHP, Laravel, dan teknologi web modern.

Komentar