Skip to main content

Siri Vibe Coding #5: Setup Tailscale — Sambung AI Box Anda dari Mana-Mana Sahaja

Siri Vibe Coding #5: Setup Tailscale — Sambung AI Box Anda dari Mana-Mana Sahaja

Ini artikel KELIMA dalam siri Vibe Coding saya. Kalau belum baca Artikel 1-4, sila baca dulu — terutama Artikel 4 (Bina AI Box), sebab artikel ni khas untuk sambungkan AI Box tu dari mana-mana lokasi, bukan sekadar rumah.

😄 Nota jenaka: Rangkaian ni topik yang boleh buat kepala pening — banyak istilah (CGNAT, VPN, ACL). Saya cuba terjemah semua ke bahasa manusia biasa. Kalau masih pening, itu normal — rangkaian memang subjek yang buat ramai engineer bergaduh sesama sendiri pun.


📑 Kandungan (Table of Content)


Kenapa Perlu Tailscale?

Dalam Artikel 4, kita bina AI Box — tapi setakat ni, ia hanya boleh diakses dalam rangkaian rumah (WiFi/LAN sama). Bagaimana kalau awak nak akses dari pejabat, dari kampung masa cuti raya, atau dari mana-mana guna hotspot telefon?

Masalah "CGNAT" — Kenapa Cara Biasa Tak Jalan

Kebanyakan rumah di Malaysia TIADA IP awam sendiri — ISP (Unifi, Maxis, dll) letak beberapa rumah berkongsi satu IP awam (dipanggil CGNAT, Carrier-Grade NAT). Ini bermakna cara "port forwarding" tradisional (yang mungkin awak pernah dengar) TAK BOLEH jalan — router awak tak ada kawalan penuh ke IP awam sebenar.

Tailscale selesaikan masalah ni secara elegant — ia cipta "rangkaian peribadi maya" antara semua peranti berdaftar awak, seolah-olah mereka semua dalam satu rumah, walaupun sebenarnya berselerak merentasi bandar/negara.

😄 CGNAT tu macam awak tinggal dalam apartmen dengan alamat surat berkongsi — surat sampai ke bangunan, tapi tak boleh terus ke unit awak tanpa "penjaga" (Tailscale) hantar terus.


BAHAGIAN 1: Daftar Akaun Tailscale

  1. Pergi ke https://tailscale.com
  2. Klik Get Started / Sign Up
  3. Daftar guna akaun Google, Microsoft, GitHub, atau email — pilih yang awak sudah ada 2FA (Two-Factor Authentication) diaktifkan untuk keselamatan tambahan
  4. Selesai — awak akan sampai ke Admin Console Tailscale (dashboard kawalan)

📸 [AMBIL SCREENSHOT DI SINI] — halaman Tailscale Admin Console selepas daftar

⚠️ PENTING: Akaun yang awak guna untuk daftar Tailscale (Google/Microsoft/dll) WAJIB ada 2FA aktif — sebab akaun ni jadi "kunci induk" kepada semua peranti dalam rangkaian peribadi awak (termasuk AI Box). Kalau akaun ni "jatuh", seluruh rangkaian terdedah.

🆘 Jika Tersekat (Bahagian 1)

Saya cuba daftar akaun Tailscale tapi [nyatakan masalah]. Tolong bantu 
step by step.

BAHAGIAN 2: Install di AI Box (Linux)

Di AI Box (rujuk Artikel 4), buka terminal:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

Hasil sebenar yang patut keluar — link untuk login dan "approve" peranti ni:

To authenticate, visit:
    https://login.tailscale.com/a/xxxxxxxxxxxx

Buka link tu (dalam browser mana-mana peranti), login dengan akaun Tailscale dari Bahagian 1, klik Connect.

Verify berjaya:

tailscale status

Patut tunjuk IP Tailscale AI box awak (bermula 100.x.x.x).

🆘 Jika Tersekat (Bahagian 2)

Saya cuba install Tailscale di AI Box (Ubuntu/Linux) tapi [nyatakan 
masalah]. Ni error sebenar: [paste]. Tolong bantu diagnosa.

BAHAGIAN 3: Install di Laptop Windows

  1. Pergi ke https://tailscale.com/download/windows
  2. Download dan install (Next → Next → Finish)
  3. Ikon Tailscale akan muncul di system tray (bawah kanan)
  4. Klik ikon tu → Log in → guna akaun sama dari Bahagian 1

📸 [AMBIL SCREENSHOT DI SINI] — ikon Tailscale system tray Windows dengan status Connected

🆘 Jika Tersekat (Bahagian 3)

Saya install Tailscale di Windows tapi [nyatakan masalah: "tak boleh 
login", "status tak Connected"]. Tolong bantu diagnosa.

BAHAGIAN 4: Install di Mac

  1. Download dari Mac App Store (cari "Tailscale"), atau https://tailscale.com/download/mac
  2. Buka app, login guna akaun sama
  3. Ikon akan muncul di menu bar atas skrin

BAHAGIAN 5: Install di Android

  1. Buka Google Play Store, cari "Tailscale", install
  2. Buka app, login guna akaun sama
  3. Benarkan permission "VPN" bila diminta (Tailscale beroperasi macam VPN peribadi)

🆘 Jika Tersekat (Bahagian 5)

Saya install Tailscale di Android tapi [nyatakan masalah]. Tolong 
bantu diagnosa.

BAHAGIAN 6: Install di iOS (iPhone/iPad)

  1. Buka App Store, cari "Tailscale", install
  2. Buka app, login guna akaun sama
  3. Benarkan permission VPN bila diminta

BAHAGIAN 7: Peranti Huawei — Nota Penting

Ini kena dijelaskan dengan jujur, sebab situasi Huawei berbeza ikut model:

Jenis Peranti Huawei Boleh Guna Tailscale?
HarmonyOS lama (berasaskan Android, sebelum ~2024) Boleh, tapi perlu sideload APK Tailscale (bukan dari AppGallery, sebab GMS/Google Play tiada) — download APK dari laman rasmi Tailscale atau APKMirror/APKPure yang dipercayai
HarmonyOS NEXT (Huawei 2024 ke atas, tiada sokongan Android APK langsung) TIDAK boleh — Tailscale belum ada versi rasmi untuk HarmonyOS NEXT (ada permintaan rasmi di GitHub Tailscale, masih belum diselesaikan setakat artikel ni ditulis)

⚠️ Nota jujur: Kalau telefon Huawei awak model terbaru (HarmonyOS NEXT), tiada cara mudah/rasmi setakat ni untuk pasang Tailscale terus. Alternatif: akses AI box melalui browser (buka Open WebUI terus — tapi ini hanya jalan kalau peranti lain dalam rangkaian yang sama Tailscale "route" traffic untuk awak, agak kompleks untuk pemula). Cadangan paling senang: guna peranti lain (Android/iOS/laptop) untuk akses jauh, simpan Huawei untuk kegunaan harian biasa.

🆘 Jika Tersekat (Bahagian 7)

Telefon Huawei saya model [nyatakan model] tak boleh pasang Tailscale. 
Tolong cadangkan cara alternatif untuk saya akses AI box dari telefon ni.

BAHAGIAN 8: MagicDNS — Nama Senang Ingat

Selepas semua peranti disambung, awak boleh aktifkan MagicDNS supaya tak perlu ingat IP panjang (100.x.x.x) — cukup guna nama peranti.

  1. Dalam Admin Console Tailscale (https://login.tailscale.com/admin/dns)
  2. Aktifkan MagicDNS
  3. AI box awak (contoh nama peranti aibox) sekarang boleh diakses guna http://aibox:11500 (contoh) dari mana-mana peranti dalam Tailscale awak — bukan perlu IP lagi

😄 MagicDNS ni macam bagi "nama gelaran" kat setiap ahli keluarga — dari "panggil nombor telefon panjang" jadi "panggil nama je, terus jawab".

🎮 Cheat Code: Lepas MagicDNS aktif, semua config lama yang guna IP (192.168.x.x atau 100.x.x.x) boleh ditukar ke nama peranti (aibox) — lebih senang diingat dan tak berubah walaupun IP Tailscale bertukar.

🆘 Jika Tersekat (Bahagian 8)

Saya dah aktifkan MagicDNS tapi [nama peranti] tak boleh diakses. 
Tolong bantu diagnosa.

BAHAGIAN 9: User Management — Kongsi AI Box dengan Selamat

Kalau awak nak benarkan rakan guna AI box awak (dengan kebenaran mereka sendiri tentunya), ini kena disetup dengan rapi — bocor sikit boleh bawa padah.

9.1 Fahami Dulu: Tailscale TAK Guna "Password Kongsi"

Salah faham biasa: Tailscale bukan macam WiFi rumah (satu password dikongsi semua). Setiap orang yang awak jemput perlu akaun Tailscale sendiri (Google/Microsoft/email mereka sendiri), dan setiap peranti mereka perlu diluluskan (approve) secara individu oleh awak dalam Admin Console.

9.2 Jemput Rakan ke Tailnet Awak

  1. Dalam Admin Console → UsersInvite external user
  2. Masukkan email rakan awak
  3. Mereka terima jemputan, daftar/login Tailscale (akaun mereka sendiri)
  4. Peranti mereka akan menunggu approval — awak WAJIB approve manual setiap peranti baharu (jangan auto-approve sesiapa sahaja)

📸 [AMBIL SCREENSHOT DI SINI] — halaman Users dalam Admin Console dengan status "pending approval"

9.3 Hadkan Akses Guna ACL (Access Control List)

Jangan bagi rakan awak akses penuh ke semua port/servis AI box awak — hadkan hanya ke servis yang mereka perlukan (contoh Open WebUI di port 8080), bukan SSH (port 22) yang bagi kawalan penuh sistem.

  1. Dalam Admin Console → Access Controls
  2. Edit policy file (format JSON), contoh ringkas:
{
  "acls": [
    {
      "action": "accept",
      "src": ["autogroup:member"],
      "dst": ["tag:aibox:22"]
    },
    {
      "action": "accept",
      "src": ["rakan@email.com"],
      "dst": ["tag:aibox:8080", "tag:aibox:11500"]
    }
  ]
}

Komen penerangan:

Rule pertama: HANYA "member" (awak sendiri, akaun utama) boleh akses 
    port 22 (SSH) — kawalan sistem penuh
Rule kedua: "rakan@email.com" (rakan yang dijemput) HANYA boleh akses 
    port 8080 (Open WebUI) dan 11500 (proxy AI) — TIADA akses SSH

⚠️ PENTING: Ini tepat sebab awak sebut — kalau bocor, boleh bawa padah. ACL yang tak disetup (default: semua ahli tailnet boleh akses semua) bermakna rakan boleh akses SSH sistem awak, bukan sekadar chat AI. Sentiasa hadkan port secara eksplisit.

9.4 Password "Military Grade" — Untuk Servis DI BELAKANG Tailscale

Tailscale sendiri tak guna password tradisional (guna kunci kriptografi WireGuard + akaun identity provider) — tapi servis DI BELAKANG Tailscale (contoh akaun login Open WebUI, SSH password AI box) WAJIB password kuat:

# Jana password rawak 20 aksara guna PowerShell (tak perlu tool tambahan)
-join ((33..126) | Get-Random -Count 20 | ForEach-Object { [char]$_ })

🎮 Cheat Code: Password "military grade" = panjang (16+ aksara) + rawak (bukan perkataan kamus) + unik (tak guna sama kat tempat lain). password123 = alamat rumah terbuka luas untuk hacker, jangan sekali-kali.

🆘 Jika Tersekat (Bahagian 9)

Saya nak kongsi akses AI box saya dengan rakan tapi risau isu keselamatan. 
Tolong bantu saya setup ACL Tailscale yang selamat untuk situasi ni: 
[terangkan siapa perlu akses apa].

BAHAGIAN 10: Update Semua Config Lama ke Tailscale

Sekarang tukar semua config dari Artikel 1-4 yang guna localhost atau LAN IP kepada nama Tailscale (MagicDNS):

Config Lama Tukar Kepada
Cline Base URL: http://192.168.x.x:11500 http://aibox:11500
Open WebUI Connections: http://192.168.x.x:11434 http://aibox:11434
FreeLLMAPI dashboard: http://localhost:11500 http://aibox:11500 (dari peranti lain)

💡 Tips & Trick: Kalau ada firewall aktif di AI Box (Ubuntu ufw), pastikan port yang diperlukan (11500, 8080, 11434) dibenarkan hanya dari rangkaian Tailscale (100.64.0.0/10), bukan dibuka terus ke internet:

sudo ufw allow from 100.64.0.0/10 to any port 11500

🆘 Jika Tersekat (Bahagian 10)

Saya dah tukar Base URL ke nama Tailscale tapi [nyatakan masalah: 
tak boleh sambung]. Tolong bantu diagnosa.

BAHAGIAN 11: App Mudah Alih — Chat dengan AI Box dari Telefon

Sekarang bahagian seronok — chat dengan AI box awak terus dari telefon, di mana-mana sahaja (selagi ada internet).

Android

App Jenis Nota
Off Grid Mobile Percuma, Open Source (MIT) Chat, image gen, boleh sambung ke Ollama jauh
MyOllama Percuma, Open Source Ringkas, sambung terus guna IP/nama Ollama

iOS

App Jenis Nota
Serval (dulu ChatOllama) Percuma Client native iOS untuk Ollama, sokong chain-of-thought dan LaTeX
Ollama Mobile Percuma Sambung ke endpoint Ollama custom, privasi fokus (data tak lalu server mereka)

Cara Setup (Konsep Sama untuk Semua App Di Atas)

  1. Buka app, cari setting "Server" / "Endpoint" / "Custom URL"
  2. Masukkan: http://aibox:11434 (guna nama Tailscale/MagicDNS dari Bahagian 8)
  3. Save, dan model AI dalam AI box awak patut muncul untuk dipilih

📸 [AMBIL SCREENSHOT DI SINI] — setting endpoint dalam app mudah alih pilihan awak

⚠️ Nota jujur: Saya tak dapat sahkan kewujudan app bernama tepat "LocalMind" semasa semakan — kalau awak jumpa app dengan nama tu dan ia berfungsi baik untuk awak, teruskan guna. Cadangan di atas (Off Grid Mobile, MyOllama, Serval, Ollama Mobile) adalah yang disahkan wujud dan aktif semasa artikel ni ditulis.

😄 Bayangkan — awak duduk kat kedai kopi, buka telefon, chat dengan AI yang jalan di rumah awak sendiri. Ini definisi "power dalam poket" sebenar.

🆘 Jika Tersekat (Bahagian 11)

Saya cuba sambung app [nama app] ke AI box saya guna [nama Tailscale] 
tapi [nyatakan masalah]. Tolong bantu diagnosa.

BAHAGIAN 12: Ujian

Ujian 1: Akses dari Rangkaian Lain

Matikan WiFi laptop, guna hotspot telefon sebagai internet, cuba akses http://aibox:11500 atau Open WebUI.

📋 Expected Result: Boleh akses sama macam di rumah — bukti Tailscale betul-betul jalan merentasi rangkaian berbeza.

Ujian 2: Test dari Telefon

Buka app mudah alih (Bahagian 11), chat dengan model AI box awak, guna data mobile (bukan WiFi rumah).

📋 Expected Result: Respons AI keluar sama macam di rumah, walaupun awak "jauh" secara fizikal.

🆘 Jika Tersekat (Bahagian 12)

Saya jalankan ujian [nombor] tapi [nyatakan masalah]. Tolong bantu 
diagnosa.

BAHAGIAN 13: Bacaan Lanjut

  1. Dokumentasi Rasmi Tailscale — https://tailscale.com/kb — panduan lengkap ACL, MagicDNS, dan ciri lanjutan
  2. Tailscale ACL Guide — https://tailscale.com/kb/1018/acls — mendalami access control
  3. Rujuk Artikel 1-4 siri ni untuk asas yang disambungkan dalam artikel ni

Penutup

Sekarang AI box awak betul-betul "milik anda, akses dari mana-mana" — bukan terkurung dalam rumah sahaja. Dengan ACL yang rapi dan password kuat, awak juga boleh kongsi dengan rakan tanpa risau keselamatan terjejas.

😄 Dari laptop yang "basikal" (Artikel 1-2), ke gudang AI sendiri (Artikel 4), sekarang dengan Tailscale, gudang tu ada "talian terus" ke mana-mana awak pergi — lengkap sudah!

Nantikan Artikel 6 — lengkapkan perbandingan 4 pilihan otak AI dengan bahasan mendalam AI Berbayar!


Artikel ini sebahagian dari siri "Vibe Coding". Semua arahan telah disahkan berdasarkan dokumentasi rasmi Tailscale terkini.

Comments

Popular posts from this blog

AI Tools 12 For Marketing

 AI Tools 12 For Marketing

AI Tools 10

 AI Tools 10

Visual Studio 2022 & IIS 10 dalam Localhost dev. dengan error ERR_HTTP2_PROTOCOL_ERROR

 Salam geng. Pening seharian aku, selepas hari semalam aku update semua NuGet Packages dalam VS, tiba2 buka project dan run F5 dalam debug mode keluar error ERR_HTTP2_PROTOCOL_ERROR. Ah sudah naya pak karim. Apa dah jadi selepas update VS NuGet? Puas mencari solution untuk fix masalah tu. Aku tenung2, aku rasa VS aku tak ada masalah sebab aku boleh Build/Rebuild Solution aku without error. Aku mula syak IIS10 aku kaput. Tapi aku test dengan cara yang paling simple. Aku create satu subdirectory dan letak satu fail default.asp. File simple asp classic je. Try cuba run page tu. Masih lagi keluar ERR_HTTP2_PROTOCOL_ERROR. So aku rasa betullah IIS aku kaput. So aku mula nak baiki IIS. Terpikir aku dulu2 aku pernah repair dengan cara run ".../aspnetreg.exe -i". Tapi untuk kes ni, aplikasi tu tak mau jalan sebab aku pakai framework .NET 4.8. Kes aspnetreg tu hanya untu FW 2.0 atau 3.5 aje. Aku rehat sekejap, bertenang minum air masak. Semasa solat aku berdoa kat Allah supaya ber...