Cara Menginstal WireGuard VPN + Antarmuka Web di Ubuntu


Pengungkapan: Artikel ini berisi tautan afiliasi. Saya mungkin mendapatkan komisi ketika Anda melakukan pembelian melalui tautan ini tanpa biaya tambahan bagi Anda.

Saat Anda terhubung ke WiFi di kedai kopi atau mengakses internet dari jaringan publik mana pun, data Anda melewati infrastruktur yang tidak Anda kendalikan. Siapa pun yang berada di antara Anda dan situs web yang Anda kunjungi berpotensi menyadap lalu lintas Anda, bahkan di jaringan rumah Anda, penyedia layanan internet Anda dapat melihat setiap situs yang Anda kunjungi.

VPN menyelesaikan masalah ini dengan membuat terowongan terenkripsi antara perangkat Anda dan server yang Anda percayai. Alih-alih lalu lintas Anda langsung menuju internet, itu pertama-tama melewati terowongan aman ini ke server VPN Anda, yang kemudian meneruskannya ke tujuan, sehingga siapa pun yang mengamati jaringan hanya akan melihat data terenkripsi yang menuju server VPN Anda, tidak lebih.

WireGuard adalah protokol VPN modern yang melakukan pekerjaan ini dengan sangat baik. Tidak seperti teknologi VPN lama yang memerlukan ratusan ribu baris kode, WireGuard menyelesaikan tugas yang sama hanya dengan sekitar 4.000 baris, yang berarti lebih sedikit bug, kinerja lebih baik, dan audit keamanan yang lebih mudah.

Tapi begini: meskipun WireGuard itu sendiri sederhana, mengelola banyak klien VPN, membuat file konfigurasi, dan melacak siapa yang memiliki akses bisa menjadi membosankan hanya melalui baris perintah, itulah mengapa memiliki antarmuka web sangat berguna.

Dalam panduan ini, kami akan menyiapkan server WireGuard VPN lengkap dengan antarmuka web yang ramah pengguna yang memungkinkan Anda mengelola semuanya melalui browser, seperti menambahkan perangkat baru, menghasilkan kode QR untuk klien mobile, dan memantau koneksi tanpa harus menyentuh satu pun file konfigurasi secara manual.

Yang Anda Butuhkan

Sebelum kita mulai, pastikan Anda memiliki:

  • Server Linux dengan alamat IP publik (VPS dari penyedia seperti DigitalOcean, Linode, atau AWS bekerja dengan sempurna).
  • Akses root atau hak istimewa sudo di server ini.
  • Pemahaman dasar tentang SSH (Anda harus tahu cara terhubung ke server Anda).

Panduan ini mengasumsikan Anda menggunakan Ubuntu 22.04 atau Ubuntu 24.04, tetapi langkah-langkahnya bekerja serupa pada Debian dan distribusi lain dengan beberapa penyesuaian kecil.

Memahami Arsitektur

Mari luangkan waktu sejenak untuk memahami apa yang akan kita bangun sebelum kita mulai mengetik perintah.

Sebuah setup WireGuard terdiri dari peer – perangkat yang dapat saling berkomunikasi melalui terowongan terenkripsi.

Dalam kasus kita, kita akan memiliki:

  • Server: Mesin Linux Anda dengan alamat IP publik, yang berfungsi sebagai pusat utama tempat semua perangkat Anda terhubung.
  • Klien: Laptop, ponsel, tablet, atau perangkat lain yang ingin Anda lindungi, setiap klien mendapatkan pasangan kunci kriptografi dan konfigurasi sendiri.
  • Antarmuka Web: Aplikasi web ringan (kami akan menggunakan WireGuard-UI) yang berjalan di server Anda dan memberikan dasbor untuk mengelola semuanya.

Ketika seorang klien ingin terhubung, ia membuat terowongan terenkripsi langsung ke server dan kemudian server mengarahkan lalu lintas internet klien atau cukup memberikan akses ke sumber daya di jaringan lokal server, tergantung pada bagaimana Anda mengonfigurasinya.

Langkah 1: Menginstal WireGuard di Server Ubuntu

Pertama, mari pastikan sistem Anda diperbarui dan memiliki alat yang diperlukan terpasang menggunakan perintah berikut, yang akan memperbarui daftar paket Anda dan meningkatkan perangkat lunak yang usang.

sudo apt update && sudo apt upgrade -y

Selanjutnya, instal WireGuard itu sendiri:

sudo apt install wireguard -y

Karena WireGuard sudah terintegrasi ke dalam kernel Linux (untuk kernel 5.6 ke atas), perintah ini terutama menginstal alat pengguna yang dibutuhkan untuk mengonfigurasi dan mengelola antarmuka WireGuard.

Pasang WireGuard di Ubuntu

Langkah 2: Mengaktifkan IP Forwarding di Ubuntu

Secara default, Ubuntu tidak meneruskan paket antara antarmuka jaringan, yang merupakan fitur keamanan agar server Anda tidak bertindak sebagai router kecuali Anda secara eksplisit memberitahunya, tetapi untuk server VPN, kita memerlukan fungsionalitas ini.

Saat ponsel Anda terhubung ke VPN dan mencoba mengunjungi sebuah situs web, server perlu meneruskan permintaan itu dari antarmuka WireGuard ke antarmuka jaringan publiknya, kemudian meneruskan respons kembali.

Untuk mengaktifkan penerusan IP secara permanen, kita perlu mengedit file konfigurasi sistem:

sudo nano /etc/sysctl.conf

Cari baris ini (mungkin dikomentari dengan # di awal):

#net.ipv4.ip_forward=1

Hapus # untuk mengaktifkannya kembali, atau tambahkan barisnya jika tidak ada:

net.ipv4.ip_forward=1

Simpan file tersebut lalu terapkan perubahan tanpa melakukan reboot:

sudo sysctl -p

Aktifkan Penerusan IP di Ubuntu

Langkah 3: Konfigurasi Firewall dan Routing untuk WireGuard

Server VPN Anda perlu menerima koneksi masuk pada port yang digunakan WireGuard (secara default, port UDP 51820). Server juga harus dapat mengarahkan lalu lintas dengan benar antara antarmuka VPN dan antarmuka jaringan publik Anda.

Pertama, mari kita identifikasi antarmuka jaringan publik Anda:

ip route | grep default

Anda akan melihat keluaran seperti:

default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100

Nama antarmuka di sini adalah `eth0`, tetapi bisa berbeda di sistem Anda, bisa `ens3`, `enp0s3`, atau yang serupa.

Sekarang mari kita konfigurasikan firewall ufw (firewall default Ubuntu):

# Allow SSH (if you haven't already)
sudo ufw allow 22/tcp

# Allow WireGuard
sudo ufw allow 51820/udp

# Allow the web interface (we'll use port 5000)
sudo ufw allow 5000/tcp

Selanjutnya, kita perlu menambahkan aturan NAT (Network Address Translation) yang memberi tahu server Anda untuk menyamarkan lalu lintas VPN seolah-olah berasal dari server itu sendiri saat mengirimkannya ke internet.

sudo nano /etc/ufw/before.rules

Tambahkan baris-baris ini di bagian atas file, tepat setelah komentar header, tetapi sebelum baris *filter dan ganti eth0 dengan nama antarmuka Anda yang sebenarnya:

# NAT table rules for WireGuard
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
COMMIT

Ini artinya:

  • *nat: Kami sedang bekerja dengan tabel NAT.
  • -s 10.0.0.0/24: Untuk paket yang berasal dari jaringan VPN kami (10.0.0.0/24 adalah subnet yang akan kami beri ke klien VPN).
  • -o eth0: Keluar melalui antarmuka eth0.
  • -j MASQUERADE: Ubah alamat IP sumber menjadi IP publik server.

Simpan dan keluar, lalu aktifkan dan muat ulang UFW:

sudo ufw enable
sudo ufw reload

Langkah 4: Menginstal WireGuard-UI di Server Ubuntu

Sekarang bagian yang menarik, yaitu menyiapkan antarmuka web menggunakan WireGuard-UI, yang merupakan aplikasi web yang bersih dan sederhana yang ditulis dalam bahasa Go.

Pertama, buat direktori untuk WireGuard-UI:

sudo mkdir -p /opt/wireguard-ui
cd /opt/wireguard-ui

Selanjutnya, unduh rilis terbaru WireGuard-UI dari halaman rilis GitHub, tetapi pada saat penulisan, perintah wget mendapatkan versi stabil terbaru:

sudo wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.6.2/wireguard-ui-v0.6.2-linux-amd64.tar.gz

Setelah diunduh, ekstrak dan buat menjadi dapat dijalankan:

sudo tar -xzf wireguard-ui-v0.6.2-linux-amd64.tar.gz
sudo chmod +x wireguard-ui

Sebelum kita memulai antarmuka, mari buat layanan systemd agar berjalan otomatis saat boot.

sudo nano /etc/systemd/system/wireguard-ui.service

Tempel konfigurasi ini:

[Unit]
Description=WireGuard UI
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/wireguard-ui
ExecStart=/opt/wireguard-ui/wireguard-ui
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Simpan dan keluar, lalu aktifkan dan mulai layanan:

sudo systemctl daemon-reload
sudo systemctl enable wireguard-ui
sudo systemctl start wireguard-ui

Periksa apakah sedang berjalan:

sudo systemctl status wireguard-ui

Periksa Status Wireguard-UI

Langkah 5: Mengakses Wireguard-UI

Buka browser web Anda dan buka URL berikut, pastikan untuk mengganti YOUR_SERVER_IP dengan alamat IP publik server Anda yang sebenarnya.

http://YOUR_SERVER_IP:5000

Anda akan melihat halaman login, di mana Anda dapat menggunakan kredensial default berikut:

Username: admin
Password: admin

Dasbor Wireguard-UI

Penting: Ubah ini segera setelah masuk. Klik pada nama pengguna Anda di kanan atas, lalu “Pengaturan,” dan perbarui kata sandi Anda.

Langkah 6: Mengonfigurasi Server WireGuard Anda

Setelah Anda masuk, Anda akan dibawa ke dasbor WireGuard-UI. Untuk mulai mengonfigurasi server Anda, klik pada «WireGuard Server» di bilah sisi kiri dan atur Nama Antarmuka menjadi 10.0.0.1/24 (antarmuka WireGuard default), dan Port Mendengar menjadi 51820.

Di kolom Post Up Script, masukkan:

iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

dan di bidang Post Down Script, masukkan:

iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Pastikan untuk mengganti eth0 dengan nama antarmuka jaringan Anda yang sebenarnya jika berbeda dan atur Address menjadi 10.0.0.1/24, yang akan menjadi alamat IP VPN internal server.

Saat Anda mengklik Apply Config, WireGuard akan membuat antarmuka wg0, mendengarkan koneksi VPN di port 51820, menetapkan IP VPN untuk server Anda, dan mengonfigurasi aturan firewall untuk meneruskan lalu lintas VPN dengan benar.

Antarmuka pengguna juga akan secara otomatis menghasilkan kunci pribadi dan publik server Anda. Setelah menerapkan pengaturan, antarmuka harus ditampilkan sebagai Aktif, menunjukkan bahwa server WireGuard Anda sedang berjalan.

Konfigurasikan Server WireGuard

Langkah 7: Tambahkan Klien WireGuard Pertama Anda

Sekarang mari kita tambahkan perangkat ke VPN Anda, bisa berupa laptop, ponsel, atau perangkat klien lainnya. Dari bilah sisi kiri, klik “Clients”, lalu klik “Add New Client”.

Berikan nama deskriptif untuk klien seperti “My Laptop” atau “iPhone”, dan opsional masukkan email untuk membantu mengidentifikasi perangkat nanti. Klik “Auto” untuk secara otomatis menetapkan alamat IP berikutnya yang tersedia (kemungkinan 10.0.0.2).

Untuk IP yang diizinkan, masukkan 0.0.0.0/0, ::/0, yang memastikan semua lalu lintas klien dialihkan melalui VPN; jika Anda hanya ingin mengakses jaringan internal server, Anda bisa menentukan subnet tersebut (misalnya, 10.0.0.0/24).

Setelah semuanya siap, klik “Submit” dan antarmuka web akan secara otomatis menghasilkan konfigurasi WireGuard lengkap untuk klien ini, termasuk pasangan kunci kriptografinya sendiri.

Tambahkan Klien WireGuard

Langkah 8: Menghubungkan Perangkat Klien Anda

Sekarang Anda perlu memasang konfigurasi ke perangkat Anda dan WireGuard-UI mempermudah ini dengan kode QR untuk perangkat seluler dan file konfigurasi yang bisa diunduh untuk komputer.

Untuk Perangkat Mobile (Ponsel/Tablet):

  • Pasang aplikasi WireGuard dari toko aplikasi Anda (tersedia untuk iOS dan Android).
  • Di antarmuka web WireGuard-UI, temukan klien yang baru saja Anda buat dan klik ikon kode QR.
  • Buka aplikasi WireGuard di ponsel Anda, ketuk tombol "+", dan pilih “Buat dari kode QR“.
  • Pindai kode QR yang ditampilkan di browser Anda.
  • Beri nama koneksi Anda dan ketuk “Buat Terowongan“.

Itu dia! Geser sakelar untuk menghubungkan, dan perangkat selulermu sekarang mengarahkan semua lalu lintasnya melalui server VPN-mu.

Untuk Desktop/Laptop:

  • Pasang WireGuard dari wireguard.com/install.
  • Di antarmuka WireGuard-UI, klik ikon unduh di sebelah klien Anda untuk mengunduh file .conf.
  • Buka aplikasi WireGuard di komputer Anda, klik “Impor tunnel dari file“, dan pilih file konfigurasi yang telah diunduh.
  • Klik “Aktifkan” untuk menghubungkan.

Langkah 9: Menguji VPN Anda

Mari pastikan semuanya berfungsi dengan baik. Pertama, saat VPN Anda terputus, kunjungi whatismyipaddress.com dan catat alamat IP yang ditampilkan.

Kemudian, sambungkan ke WireGuard VPN Anda dan segarkan halaman, alamat IP Anda sekarang seharusnya menampilkan IP publik server Anda alih-alih IP asli Anda, yang menandakan bahwa lalu lintas sedang dialihkan melalui VPN.

Untuk memastikan lebih lanjut bahwa DNS berfungsi dengan benar, Anda dapat menjalankan perintah berikut pada perangkat yang terhubung:

ping google.com

Jika Anda melihat respons, VPN Anda mengarahkan lalu lintas dengan benar.

Untuk melihat koneksi aktif di server Anda, masuk melalui SSH dan jalankan:

sudo wg show

Anda akan melihat keluaran seperti:

interface: wg0
  public key: [your server's public key]
  private key: (hidden)
  listening port: 51820

peer: [client's public key]
  endpoint: [client's IP]:random_port
  allowed ips: 10.0.0.2/32
  latest handshake: 45 seconds ago
  transfer: 2.50 MiB received, 15.23 MiB sent

Ini menunjukkan bahwa klien Anda terhubung, kapan terakhir kali berkomunikasi dengan server, dan berapa banyak data yang telah ditransfer.

Langkah 10: Gunakan HTTPS untuk WireGuard-UI

Saat ini, ketika Anda mengakses antarmuka web WireGuard Anda di http://YOUR_SERVER_IP:5000, kredensial login dan semua data konfigurasi Anda berjalan di internet dalam bentuk teks biasa dan siapa pun yang mencegat lalu lintas antara browser dan server Anda dapat melihat kata sandi admin Anda dan berpotensi membajak sesi Anda.

Solusinya adalah menempatkan antarmuka web Anda di belakang reverse proxy dengan HTTPS diaktifkan. Reverse proxy ini berada di depan aplikasi Anda, menangani semua koneksi HTTPS terenkripsi dari klien, lalu meneruskan permintaan ke aplikasi Anda melalui jaringan lokal di mana penyadapan bukan menjadi masalah.

Kita akan menggunakan Nginx (web server berkinerja tinggi) sebagai reverse proxy dan Let’s Encrypt untuk mendapatkan sertifikat SSL gratis sehingga Anda dapat mengakses antarmuka WireGuard Anda di https://vpn.yourdomain.com alih-alih alamat IP menggunakan HTTP.

Pasang Server Web Nginx

Pertama, Anda perlu membuat DNS record untuk domain Anda (https://vpn.yourdomain.com) yang mengarah ke alamat IP server Anda dan kemudian menginstal web server Nginx.

sudo apt update
sudo apt install nginx -y

Setelah instalasi, Anda dapat mengunjungi http://vpn.yourdomain.com di browser Anda dan Anda akan melihat halaman sambutan Nginx default, yang berarti Nginx berfungsi dan dapat diakses dari internet.

Periksa Halaman Nginx

Pasang Certbot untuk Let’s Encrypt

Selanjutnya, pasang Let’s Encrypt, yang merupakan otoritas sertifikat gratis yang menyediakan sertifikat SSL dan certbot adalah alat yang mengotomatiskan proses mendapatkan dan memperbarui sertifikat tersebut.

sudo apt install certbot python3-certbot-nginx -y

Paket python3-certbot-nginx menyertakan plugin yang dapat secara otomatis mengonfigurasi Nginx untuk Anda, sehingga prosesnya menjadi jauh lebih sederhana.

Konfigurasi Nginx sebagai Reverse Proxy

Sekarang, mari buat konfigurasi Nginx yang meneruskan permintaan dari https://vpn.yourdomain.com ke aplikasi WireGuard-UI Anda yang berjalan di localhost:5000.

Buat file konfigurasi baru.

sudo nano /etc/nginx/sites-available/wireguard-ui

Tempel konfigurasi ini (ganti vpn.yourdomain.com dengan domain Anda yang sebenarnya):

server {
    listen 80;
    listen [::]:80;
    server_name vpn.yourdomain.com;

    # This will be used by Certbot for the SSL certificate challenge
    location /.well-known/acme-challenge/ {
        root /var/www/html;
    }

    # Redirect all other HTTP traffic to HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name vpn.yourdomain.com;

    # SSL certificate paths (Certbot will fill these in)
    ssl_certificate /etc/letsencrypt/live/vpn.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vpn.yourdomain.com/privkey.pem;

    # Modern SSL configuration
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # Security headers
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;

    # Proxy settings
    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        
        # WebSocket support (if WireGuard-UI uses it)
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # Forward real client information
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # Timeouts
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

Sekarang aktifkan konfigurasi ini dengan membuat tautan simbolik:

sudo ln -s /etc/nginx/sites-available/wireguard-ui /etc/nginx/sites-enabled/

Uji konfigurasi Nginx Anda untuk kesalahan sintaks:

sudo nginx -t

Kamu harus melihat:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jika Anda melihat ada kesalahan, kembalilah dan periksa file konfigurasi Anda untuk kesalahan pengetikan.

Dapatkan Sertifikat SSL

Setelah semuanya dikonfigurasi dengan benar, sekarang saatnya menjalankan perintah certbot yang akan secara otomatis memperoleh sertifikat SSL dari Let’s Encrypt dan mengonfigurasi Nginx untuk menggunakannya.

sudo certbot --nginx -d vpn.yourdomain.com

Seluruh proses memakan waktu sekitar 30 detik, dan ketika selesai, Anda akan melihat pesan sukses:

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/vpn.yourdomain.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/vpn.yourdomain.com/privkey.pem

Sekarang muat ulang Nginx untuk menerapkan semuanya:

sudo systemctl reload nginx

Perpanjangan Sertifikat Otomatis

Sertifikat Let’s Encrypt hanya berlaku selama 90 hari, yang memang disengaja untuk mendorong pembaruan secara rutin dan membatasi potensi kerusakan jika kunci pribadi pernah disusupi.

Untungnya, Certbot secara otomatis mengatur timer pembaruan saat diinstal, dan Anda dapat memastikan bahwa layanan pembaruan aktif dengan menjalankan:

sudo systemctl status certbot.timer

dan Anda harus melihatnya tercantum sebagai aktif (sedang berjalan), timer ini memeriksa dua kali sehari dan akan secara otomatis memperbarui sertifikat apa pun yang akan habis masa berlakunya dalam 30 hari.

Untuk memverifikasi bahwa semuanya bekerja tanpa melakukan pembaruan sebenarnya, jalankan:
sudo certbot renew –dry-run

Jika tes selesai dengan sukses, pembaruan sertifikat otomatis Anda telah sepenuhnya dikonfigurasi, dan Anda tidak perlu khawatir tentang sertifikat Anda kedaluwarsa.

Perbarui Firewall Anda

Karena sekarang kita mengakses WireGuard-UI melalui Nginx pada port HTTPS standar (443), kita perlu mengizinkan ini di firewall kita dan opsional menutup akses langsung ke port 5000.

sudo ufw allow 443/tcp

Sebagai opsi, jika Anda ingin mencegah akses langsung ke WireGuard-UI di port 5000 (memaksa semua orang menggunakan antarmuka HTTPS), Anda dapat menghapus aturan itu:

sudo ufw delete allow 5000/tcp

Muat ulang firewall:

sudo ufw reload

Langkah 11: Konfigurasikan WireGuard-UI untuk Hanya Mendengarkan di Localhost

Karena Nginx sekarang menangani semua koneksi eksternal, kita harus mengonfigurasi WireGuard-UI agar hanya menerima koneksi dari mesin lokal, yang mencegah siapa pun mengaksesnya langsung di port 5000, bahkan jika mereka mengetahui port tersebut terbuka.

Hentikan layanan WireGuard-UI:

sudo systemctl stop wireguard-ui

Edit file layanan:

sudo nano /etc/systemd/system/wireguard-ui.service

Ubah baris ExecStart agar hanya terikat ke localhost:

[Unit]
Description=WireGuard UI
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/wireguard-ui
Environment="BIND_ADDRESS=127.0.0.1:5000"
ExecStart=/opt/wireguard-ui/wireguard-ui
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Simpan dan keluar, lalu muat ulang systemd dan restart layanan:

sudo systemctl daemon-reload
sudo systemctl start wireguard-ui
sudo systemctl status wireguard-ui

Akhirnya, buka peramban Anda dan arahkan ke:

https://vpn.yourdomain.com

Anda seharusnya melihat ikon gembok di bilah alamat browser Anda, Anda dapat mengklik ikon gembok tersebut untuk melihat detail sertifikat. Anda akan melihat bahwa sertifikat tersebut diterbitkan oleh Let’s Encrypt dan berlaku selama 90 hari.

Ringkasan

Saat ini, Anda telah berhasil men-deploy server WireGuard VPN yang sepenuhnya operasional dengan antarmuka manajemen berbasis web yang aman. Alih-alih menangani kunci, file konfigurasi, dan aturan routing secara manual, WireGuard-UI memberikan dashboard sederhana untuk menambahkan perangkat baru, menghasilkan kode QR, dan memantau koneksi yang aktif.