Langsung ke konten

Mengenal Kutt, URL Shortener Open Source yang Bisa di-Host Sendiri

Kutt adalah URL shortener open source yang mendukung kustom domain, statistik tautan, API, dan bisa di-host sendiri dengan SQLite, Postgres, atau MySQL.

Kutt, URL shortener open source yang bisa dijalankan di server sendiri.
Kutt, URL shortener open source yang bisa dijalankan di server sendiri.
Advertisement

Membuat tautan pendek umumnya dilakukan lewat layanan pihak ketiga. Kalau tautan itu ingin tetap berada di bawah kendali sendiri, ada beberapa proyek open source yang bisa dijalankan di server pribadi, dan salah satunya adalah Kutt.

Apa Itu Kutt?

Kutt merupakan URL shortener yang dikembangkan oleh thedevs-network dan dibuat dengan mempertimbangkan kebutuhan self-host, sehingga bisa dijalankan di server sendiri. Selain memendekkan tautan, proyek ini menyediakan pengelolaan tautan, statistik, pengaturan kustom domain, sampai halaman admin untuk mengelola pengguna. Situs resminya berada di kutt.to.

Fitur yang Ditawarkan

Link bisa dibuat dan diubah, lengkap dengan kustom URL, password, deskripsi, dan waktu kedaluwarsa. Setiap tautan punya statistik, dan pengguna dapat mengelola link miliknya sendiri. Untuk kebutuhan tim, tersedia halaman admin untuk mengelola pengguna dan tautan.

Kustom domain didukung, sehingga tautan pendek bisa memakai domain sendiri dan bukan domain bawaan layanan. Registrasi dan pembuatan tautan anonim dapat dinonaktifkan, sementara login bisa diintegrasikan dengan OpenID Connect (OIDC). Dari sisi teknis, Kutt mendukung SQLite, Postgres, dan MySQL/MariaDB, serta Redis untuk cache. Tersedia juga RESTful API dan opsi tema agar tampilannya bisa disesuaikan.

Menjalankan Kutt

Prasyarat utamanya adalah Node.js versi 20 atau lebih baru. Database bawaan yang dipakai adalah SQLite, jadi tidak perlu menyiapkan database terpisah untuk mencobanya. Saat aplikasi pertama kali dijalankan, akan muncul permintaan untuk membuat akun admin.

Langkahnya secara garis besar seperti ini.

git clone https://github.com/thedevs-network/kutt.git
cd kutt
npm install
npm run migrate
npm run dev

Untuk produksi, perintah menjalankannya adalah npm start. Jika ingin memakai Postgres, MySQL/MariaDB, atau Redis, layanan tersebut perlu disiapkan lebih dulu.

Cara lain adalah lewat Docker. Dari direktori root proyek, jalankan docker compose up. Repositori menyediakan beberapa berkas konfigurasi Compose, misalnya untuk SQLite, SQLite dengan Redis, Postgres dengan Redis, dan MariaDB dengan Redis. Image resminya tersedia di Docker Hub.

Konfigurasi Aplikasi

Kutt diatur melalui environment variable, baik secara langsung maupun lewat berkas .env. Semua variabel bersifat opsional, kecuali JWT_SECRET yang wajib diisi pada produksi. Nilai ini dipakai untuk menandatangani token autentikasi, jadi sebaiknya berupa string acak yang panjang.

Beberapa variabel yang sering disesuaikan antara lain SITE_NAME, DEFAULT_DOMAIN, PORT, dan DB_CLIENT. Ada juga opsi untuk menonaktifkan registrasi (DISALLOW_REGISTRATION) atau pembuatan tautan anonim (DISALLOW_ANONYMOUS_LINKS). Untuk keperluan tertentu, nilai bisa dibaca dari berkas dengan menambahkan akhiran _FILE pada nama variabel, misalnya JWT_SECRET_FILE.

Menyesuaikan Tampilan

Tampilan Kutt bisa disesuaikan lewat folder custom. Di dalamnya ada tiga bagian: css untuk berkas gaya, images untuk mengganti logo dan favicon, serta views untuk template HTML. Penamaan berkas pada images mengikuti berkas asli di folder static/images, sedangkan views mengikuti struktur dan penamaan pada folder server/views.

Repositori juga menyediakan tema contoh bernama Crimson yang memuat gaya, gambar, dan tampilan kustom. Kumpulan tema dan kustomisasi lain tersedia di repositori kutt-customizations. Saat memakai Docker, berkas kustom bisa dimasukkan ke container dengan docker cp, lalu container perlu di-restart.

API dan Integrasi

Kutt menyediakan RESTful API yang dokumentasinya ada di docs.kutt.to. Ada pula ekstensi browser untuk Chrome dan Firefox. Beberapa alat yang bisa dihubungkan antara lain ShareX, workflow Alfred, dan shortcut iOS.

Untuk pengembang, tersedia sejumlah library pihak ketiga, di antaranya untuk C#/.NET, Python, Ruby, Rust, Node.js, Java, dan Go.

Cocok untuk Siapa?

Kutt cocok untuk pengguna yang ingin menjalankan URL shortener sendiri daripada bergantung pada layanan pihak ketiga. Dukungan domain kustom dan pilihan database yang variatif membuatnya dapat dipakai mulai dari kebutuhan pribadi sampai pengelolaan tautan untuk tim. Adanya halaman admin, OIDC, dan API juga berguna bagi yang perlu mengelola banyak pengguna atau menghubungkan layanan lain.

Kalau kebutuhan Anda mencakup tautan pendek yang dikelola sendiri, Kutt bisa dicoba lewat Docker atau instalasi Node.js biasa. Untuk melihat detail fitur, konfigurasi, dan dokumentasi API-nya, langsung saja buka repositori resminya.

Repositori: https://github.com/thedevs-network/kutt