URL Shortener Pribadi Menggunakan Shlink di NAT VPS

NATVPS.id – Semua orang tentu tidak suka dengan alamat URL yang panjang. Karena alasan tersebut, banyak yang menggunakan layanan pemendek URL seperti bit.ly dan cutt.ly. Namun, daripada menggunakan layanan eksternal, kita juga bisa mengatur layanan URL shortener kita sendiri, loh! Ada banyak software URL shortener yang bisa kita gunakan, salah satunya adalah Shlink.

Pada kesempatan kali ini, kita akan membahas mengenai langkah-langkah untuk melakukan deploy Shlink di NAT VPS sebagai server URL shortener kita.

Konfigurasi Port Forwarding

Mengingat kita menggunakan NAT, kita perlu menambahkan 3 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu:

  • 1 port forwarding TCP untuk mengakses backend Shlink, dan
  • 2 port forwarding HTTP dan HTTPS untuk domain URL shortener

Sebagai contoh, pada artikel ini akan menggunakan port 19008 untuk mengakses backend Shlink dan domain link.mdinata.my.id sebagai domain URL shortener kita. Anda bebas mengganti port dan domain sesuai pilihan Anda. Catat port dan domain ini, karena kita akan menggunakannya lagi pada proses deploy.

Jangan lupa untuk menambahkan DNS record yang menuju ke IP publik NAT VPS Anda, seperti ini:

Install Docker

Kita akan menggunakan Docker dan Docker Compose untuk men-deploy Dockge & Dozzle.

Pertama, Install curl menggunakan perintah:

apt update && apt install curl -y

Kemudian, jalankan script instalasi otomatis dari Docker dengan memasukkan:

curl -fsSL get.docker.com | sh

Tunggu hingga proses instalasi selesai.

Deploy Shlink

Buat direktori baru dengan nama shlink

cd ~/
mkdir shlink
cd shlink

Buat file baru dengan nama docker-compose.yml menggunakan nano:

apt install nano -y
nano docker-compose.yaml

Lalu tempelkan konfigurasi Compose berikut:

# Docker Compose untuk deploy Shlink di NAT VPS
# https://natvps.id/deploy-shlink-nat-vps
# Source: https://shlink.io/documentation/install-docker-image/ (converted to Docker Compose)

services:
    shlink:
        container_name: shlink
        ports:
            - 19008:8080
        environment:
            - DEFAULT_DOMAIN=link.mdinata.my.id
            - IS_HTTPS_ENABLED=true
        image: shlinkio/shlink:stable

Pada bagian ports, sesuaikan 19008 dengan port Shlink Anda.

ports:
  - 19008:8080

Simpan file tersebut dengan menekan Ctrl-X, y, kemudian Enter.

Terakhir, Jalankan Shlink menggunakan Docker Compose:

docker compose up -d

Tunggu hingga proses deploy selesai.

Konfigurasi NGINX (Reverse Proxy)

Agar kita dapat mengakses URL melalui domain seperti link.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.

Pertama, install NGINX melalui perintah:

# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ)
apt purge apache2* -y

# Install NGINX
apt install nginx -y

Buat konfigurasi host baru khusus untuk Shlink:

nano /etc/nginx/sites-available/shlink

Kemudian tempelkan konfigurasi berikut:

# Konfigurasi NGINX untuk deploy Shlink di NAT VPS
# https://natvps.id/deploy-shlink-nat-vps
# Source: https://shlink.io/documentation/supported-runtimes/classic-web-server/ (trimmed for proxy_pass usage)

server {
    server_name link.mdinata.my.id;
    listen 80;

    location / {
        proxy_pass http://127.0.0.1:19008;
    }
}

Sesuaikan link.mdinata.my.id dan 19008 dengan domain & port Shlink Anda.

Aktifkan konfigurasi tersebut dengan:

ln -sf /etc/nginx/sites-available/shlink /etc/nginx/sites-enabled/shlink

# Restart NGINX
systemctl restart nginx

Generate Sertifikat SSL (Let’s Encrypt)

Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.

Install Certbot dan plugin NGINX nya menggunakan perintah:

apt install python3-certbot python3-certbot-nginx

Lalu, generate sertifikat melalui Certbot dengan perintah

certbot --nginx -d link.mdinata.my.id

Ganti link.mdinata.my.id dengan domain Anda.

Selamat! Domain Anda saat ini dapat diakses melalui koneksi aman HTTPS.

Mengakses Shlink

Untuk mengelola URL pada Shlink, kita perlu menggunakan aplikasi seperti Shlink web client: https://app.shlink.io.

Klik Add a server kemudian isi informasi server sesuai dengan domain Anda.

Untuk mengisi API key, kita perlu membuatnya terlebih dahulu. Kembali ke NAT VPS Anda, kemudian masukkan command berikut:

docker exec -it shlink shlink api-key:generate

Anda akan mendapatkan informasi mengenai API key Anda. Masukkan key tersebut ke web client tadi.

Jika sudah, maka Anda akan masuk ke tampilan dashboard Shlink seperti berikut:

Selamat! Shlink telah berhasil di-deploy dan siap untuk digunakan melalui Shlink web client (https://app.shlink.io).

Penutup

Demikianlah artikel ini mengenai langkah-langkah deploy Shlink di NAT VPS untuk memperpendek URL. Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!

You May Also Like

About the Author: Hendra Manudinata