Instalasi BTunnel sebagai Service Linux dengan Perintah btunnel start|stop|status
📦 Tujuan
Artikel ini menjelaskan langkah-langkah untuk membuat BTunnel (BahalapTunnel) sebagai service Linux yang bisa dikontrol dengan perintah btunnel (tanpa sudo), lalu dikemas sebagai paket .deb agar mudah diinstal di berbagai server Debian/Ubuntu.
🛠️ Struktur File & Folder Paket btunnel
btunnel/
├── DEBIAN/
│ ├── control
│ └── postinst
├── etc/
│ ├── sudoers.d/btunnel
│ └── systemd/system/btunnel.service
├── opt/btunnel/btunnel.sh
└── usr/bin/btunnel
📁 1. Buat Struktur Folder
mkdir -p btunnel/DEBIAN
mkdir -p btunnel/etc/systemd/system
mkdir -p btunnel/etc/sudoers.d
mkdir -p btunnel/opt/btunnel
mkdir -p btunnel/usr/bin
📄 2. File control
btunnel/DEBIAN/control
Package: btunnel
Version: 1.0
Section: base
Priority: optional
Architecture: all
Maintainer: Your Name <you@example.com>
Description: BahalapTunnel Client service installer
Installs btunnel systemd service, CLI command, and sudo rules.
📄 3. File postinst
btunnel/DEBIAN/postinst
#!/bin/bash
set -e
chmod +x /opt/btunnel/btunnel.sh
chmod +x /usr/bin/btunnel
chmod 440 /etc/sudoers.d/btunnel
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable btunnel
echo "✅ BTunnel berhasil diinstal!"
chmod +x btunnel/DEBIAN/postinst
🧩 4. File Service btunnel.service
btunnel/etc/systemd/system/btunnel.service
[Unit]
Description=BTunnel (BahalapTunnel Client)
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/btunnel
ExecStart=/opt/btunnel/btunnel.sh
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
🧩 5. CLI Command /usr/bin/btunnel
btunnel/usr/bin/btunnel
#!/bin/bash
case "$1" in
start)
sudo /bin/systemctl start btunnel
;;
stop)
sudo /bin/systemctl stop btunnel
;;
restart)
sudo /bin/systemctl restart btunnel
;;
status)
sudo /bin/systemctl status btunnel
;;
*)
echo "Usage: btunnel {start|stop|restart|status}"
exit 1
;;
esac
chmod +x btunnel/usr/bin/btunnel
⚙️ 6. Dummy Client Script
btunnel/opt/btunnel/btunnel.sh
#!/bin/bash
echo "BTunnel client berjalan..."
while true; do sleep 10; done
chmod +x btunnel/opt/btunnel/btunnel.sh
🛡️ 7. Rule Sudo Tanpa Password
btunnel/etc/sudoers.d/btunnel
ALL ALL=NOPASSWD: /bin/systemctl start btunnel, /bin/systemctl stop btunnel, /bin/systemctl restart btunnel, /bin/systemctl status btunnel
chmod 440 btunnel/etc/sudoers.d/btunnel
🧱 8. Build File .deb
dpkg-deb --build btunnel
Akan menghasilkan file:
btunnel.deb
✅ 9. Instalasi Paket
sudo dpkg -i btunnel.deb
🚀 10. Menjalankan Perintah BTunnel
Sekarang kamu bisa jalankan:btunnel start
btunnel status
btunnel stop
...tanpa perlu sudo, karena aturan sudoers sudah mengizinkannya.
🗑️ 11. Uninstall
Untuk menghapus paket:sudo dpkg -r btunnel
📌 Catatan Tambahan
- Pastikan kamu membangun paket sebagai user
rootatau denganfakeroot - Kamu bisa ganti isi dari
btunnel.shsesuai dengan skrip klien tunnel kamu (misalnyalanproxy,frp, dsb) - Jika ingin membuat versi uninstall lengkap (bersihkan semua file), tambahkan file
postrm