Apa yang bisa kami bantu?

A. Pendahuluan

Dalam pengelolaan server Linux, akses terminal merupakan hal yang sangat penting untuk melakukan administrasi sistem, menjalankan perintah, serta memantau layanan yang berjalan. Biasanya, akses ini dilakukan melalui SSH (Secure Shell) menggunakan aplikasi seperti PuTTY atau terminal bawaan sistem operasi. Namun, ada kalanya kita membutuhkan cara yang lebih praktis dan dapat diakses langsung melalui browser tanpa perlu aplikasi tambahan.
 

Di sinilah ttyd hadir sebagai solusi, ttyd adalah aplikasi ringan berbasis web yang memungkinkan pengguna untuk mengakses terminal Linux langsung dari browser. Dengan ttyd, administrator dapat menjalankan sesi terminal secara interaktif melalui antarmuka web, mempermudah proses remote management, demonstrasi, maupun integrasi terminal ke dalam aplikasi web.
 

Pada artikel ini, kita akan membahas langkah-langkah lengkap untuk menginstal ttyd di server Linux, mulai dari proses instalasi, konfigurasi dasar, hingga cara menjalankannya agar bisa diakses melalui browser.

 

B. Persiapan

Sebelum melakukan installasi, berikut untuk spesifikasi server yang digunakan untuk installasi ttyd.

vCPU : 2 Core
RAM : 2 GB
Storage : 60GB SSD
OS : Ubuntu 20.04

 

Melakukan update system, dengan menggunakan command berikut

apt update
gambar 1 - update

 

C. Langkah Installasi

Setelah persiapan, berikut untuk langkah installasi nya :

 

C.1 Install Dependency

Install dependency untuk ttyd service, dengan menggunakan command berikut

apt install build-essential cmake git libjson-c-dev libwebsockets-dev -y
gambar c.1 - install dependency

 

C.2 Install TTYD Service

Setelah install dependency, kita dapat melakukan tahapan install ttyd service, dengan melakukan clone repository ttyd melalui github terlebih dahulu, menggunakan commmand berikut

git clone https://github.com/tsl0922/ttyd.git
cd ttyd && mkdir buld && cd build
gambar c.2.1 - create directory

 

make && make install
gambar c,2,2 - make install

 

C.3 Verifikasi TTYD Service

Setelah installasi ttyd service, kita dapat melakukan verifikasi terlebih dahulu jika ttyd service sudah berhasil di installasi dan dapat running di browser.

ttyd --version
gambar c.2.3 - ttyd version

 

ttyd --writable bash
gambar c.2.4 - running ttyd

 

Setelah dipastikan ttyd service sudah dapat running dengan baik, kita dapat mencoba mengakses terminal service melalui browser menggunakan IP Public dan Port default ttyd service, yaitu 7681.

http://ip-publik:7681
gambar c.2.5 - verifikasi 

 

D. Secured TTYD Service

Setelah dapat akses terminal ttyd service di browser, kita perlu lakukan pengamanan ttyd service, agar tidak dapat diakses langsung menggunakan IP Public dan Port saja, dengan membuat prompt login terlebih dahulu serta menambahkan NGINX Reverse Proxy, agar ttyd service dapat diakses menggunakan domain, tidak perlu port saat mengakses nya melalui browser.

 

D.1 Pointing Domain 

Silahkan dapat dilakukan pointing domain terlebih dahulu ke IP Public Server ttyd service.

 

D.2 Installasi Nginx

Installasi service Nginx serta Certbot Let's Encrypt untuk SSL domain yang digunakan.

apt install -y build-essential cmake git nginx certbot python3-certbot-nginx
systemctl start nginx
systemctl status nginx
gambar D.2 - status nginx

 

D.3 Installasi SSL Certbot

Setelah Nginx berhasil di install, dapat lakukan 

certbot certonly --standalone -d namadomain.tld

*Note : Untuk namadomain.tld dapat diubah/disesuaikan ke nama domain yang digunakan

gambar D.3 - SSL

 

D.4 Konfigurasi TTYD Service

Untuk ttyd service, dapat melakukan konfigurasi ttyd service, seperti berikut

nano /etc/systemd/system/ttyd.service
[Unit]
Description=Secure ttyd Web Terminal (via Nginx Reverse Proxy)
After=network.target

[Service]
ExecStart=/usr/local/bin/ttyd \
  --port 7681 \
  --writable \
  --check-origin \
  --credential "username:password" \
  bash

WorkingDirectory=/root
User=root
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

*Note : Untuk username:password dapat disesuaikan dengan username dan password yang diinginkan, disarankan dapat membuat credential yang sesuai standar keamanan pembuatan password. 

gambar D.4.1 - konfigurasi ttyd

 

Reload systemd dan restart ttyd:

systemctl daemon-reload
systemctl restart ttyd
systemctl enable ttyd

 

Cek Status service ttyd

systemctl status ttyd
gambar D.4.2 - status ttyd

 

 

D.5 Konfigurasi Vhost

Untuk konfigurasi Vhost dapat menggunakan seperti berikut :

nano /etc/nginx/sites-available/namadomain.tld
server {
    listen 80;
    server_name namadomain.tld;

    # Redirect HTTP ke HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name namadomain.tld;

    # Sertifikat Let's Encrypt
    ssl_certificate /etc/letsencrypt/live/namadomain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/namadomain.tld/privkey.pem;

    # Proxy ke ttyd
    location / {
        proxy_pass http://127.0.0.1:7681;
        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # Timeout WebSocket
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;

        # CORS (optional, untuk keamanan tambahan)
        add_header Access-Control-Allow-Origin https://namadomain.tld;
    }
}

*Note : Untuk namadomain.tld dapat diubah/disesuaikan ke nama domain yang digunakan

gambar D.5.1 - konfigurasi vhost
ln -s /etc/nginx/sites-available/namadomain.tld /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
systemctl status nginx

Setelah dilakukan konfigurasi vhost dan restart nginx, pastikan service nginx masih running tanpa kendala

gambar D.5.2 - status nginx

 

D.6 Verifikasi TTYD Service - Form login + SSL Nginx Reverse Proxy

Kita dapat lakukan verifikasi terlebih dahulu, apakah ttyd service sudah dapat diakses menggunakan form login dengan langsung domain.

gambar D.6.1 - form login
gambar D.6.2 - verifikasi 

 

E. Kesimpulan

Dengan mengikuti langkah-langkah di atas, kini kamu telah berhasil menginstal dan menjalankan ttyd di server Linux. Melalui ttyd, kamu dapat mengakses terminal langsung dari browser dengan mudah, tanpa perlu menggunakan aplikasi SSH tambahan. Fitur ini sangat berguna untuk kebutuhan remote administration, presentasi interaktif, atau bahkan membangun antarmuka terminal berbasis web untuk proyek tertentu.

Meski praktis, pastikan kamu tetap memperhatikan aspek keamanan, terutama jika ttyd diakses melalui jaringan publik. Gunakan autentikasi dan konfigurasi reverse proxy (HTTPS) agar koneksi tetap aman.

Dengan konfigurasi yang tepat, ttyd dapat menjadi alat yang efisien dan fleksibel untuk mengelola server Linux dari mana saja, langsung melalui web browser.

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.