Membuat Installer .deb dan menbuat Instalasi BTunnel sebagai Service Linux

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 root atau dengan fakeroot
  • Kamu bisa ganti isi dari btunnel.sh sesuai dengan skrip klien tunnel kamu (misalnya lanproxy, frp, dsb)
  • Jika ingin membuat versi uninstall lengkap (bersihkan semua file), tambahkan file postrm

إرسال تعليق