sumarsono.com
Take it with a grain of salt


Hugo Dan Argo Tunnel Dalam Termux Bawa Blogmu Dalam Saku

Posted on

Mayoritas HP android selalu online 24 jam non stop layaknya server yang online terus-menerus. Sekarang, bayangkan seandainya kamu bisa jalanin hugo server di HP mu. Kemudian kamu jalanin cloudflare argo tunnel untuk ekspose hugo server tersebut ke internet 24 Jam non stop, keren ya.

Apakah memungkinkan? Sangat memungkinkan, mari kita cek:

  1. Kita butuh Hugo, ia ada di repo termux.
  2. Kita butuh Cloudflared, binary utk argo tunnel, ia tidak ada di repo termux, tapi kita bisa build binary-nya dengan mudah. Mereka menyediakan Makefile untuk build binary cloudflared.
  3. Kita butuh termux, silakan ambil dari repo fdroid.
  4. Kita tidak butuh root, mantap jiwa.

Ringkasan step by step setup Hugo dan cloudflared di termux

Pertama buka termux session 1

Kedua, install app yg dibutuhkan

$ pkg update
$ pkg upgrade
$ pkg install hugo vim golang wget curl git proot resolv-conf make debianutils

selanjutnya, bikin blog Hugo

$ hugo new site konvolusi.ml
$ cd konvolusi.ml
$ hugo server

...
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

Akan muncul URL untuk akses blog yang barusan dibuat, default ada di http://localhost:1313/, bisa diakses dari browser HP.

Ketiga, aku mau ekspose ke internet, aku butuh argo tunnel, maka aku compile cloudflared, buat session baru di termux sehingga sekarang ada session 1 yg jalanin hugo server dan session 2 untuk setup Cloudflared, pada jendela session 2 termux jalankan:

$ cd ~
$ git clone https://github.com/cloudflare/cloudflared.git --depth=1

$ cd cloudflared
$ sed -i 's/linux/android/g' Makefile

$ make cloudflared
$ install cloudflared /data/data/com.termux/files/usr/bin

Keempat, setup Cloudflared

$ cloudflared tunnel login
$ cloudflared tunnel create konvolusi

Kita akan mendapatkan argo tunnel id dan lokasi sertifikat argo tunnel, selanjutnya bikin config yg aku sebut konvolusi.yml

credentials-file: /data/data/com.termux/files/home/.cloudflared/long-id.json
tunnel: long-id

ingress:
  - hostname: konvolusi.ml
    service: http://127.0.0.1:1313
  - service: http_status:404

Next, bikin DNS record utk konvolusi.ml

$ cloudflared tunnel route dns long-id konvolusi.ml

Saatnya expose ke internet

$ proot -b $PREFIX/etc/resolv.conf:/etc/resolv.conf cloudflared tunnel --config konvolusi.yml run

Dengan demikian maka hugo server di hp bisa aku akses dari internet lewat https://konvolusi.ml

Apa yang kita jalankan di termux akan terus berjalan selama kita tidak kill termux.

Referensi:

  1. https://sumarsono.com/expose-local-lxd-container-ke-internet-pakai-cloudflare-argo-tunnel/
  2. https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation
  3. https://gist.github.com/Erisa/4015ae12211434b8f2f64ac1d731b830
  4. https://stackoverflow.com/a/63915298