Cecep Purwana

I am a Personal fun

Cecep Purwana

Seorang Driver Dump Truck Yang Menjadikan Computer Sebagai Hobi Dan Memiliki Ketertarikan Akan Dunia IT,Serta Ingin Selalu Mencoba Sesuatu Yang Baru Untuk Menambah Pengetahuan Dan Pengalaman Diri. "Computer is my hobby, the street is my life"

  • Jalan Raya Badau Km.11 Rt.006.Rw.002 Tanjung Pandan Belitung 33451
  • +628197887769
  • purwana.cecep@gmail.com
  • www.ceceppurwana.blogspot.co.id
Me

My Professional Skills

Web Development 90%
Internet Marketing 95%
Computer Technician 95%
Blogger 95%
Driver 97%

Jasa Pembuatan Website

Menerima jasa pembuatan website Usaha,Pribadi,Organisasi,Sekolah,Berita,Iklan Online,Toko Online,dll sesuai dengan permintaan anda

Service Computer

Jasa Service komputer belitung terpercaya dan berpengalaman.Kami memberikan service dan layanan terbaik sehingga customer merasa puas akan layanan yang kami berikan

Perakitan Computer

Jasa Perakitan Komputer kantor, pribadi, maupun game/warnet, Kami Memenuhi kebutuhan anda berdasarkan budget dengan mengutamakan kualitas

Internet Marketing

Merancang cara pemasaran atau modern marketing plan yang fokus mendapatkan prospek atau leads hingga meningkatkan convertion rate merupakan pilihan yang cepat, tepat dan murah.

Pemasangan CCTV

Menerima Jasa Setting CCTV , Jasa Pemasangan CCTV dan Perawatan CCTV untuk Rumah, Kafe, Hotel, Penginapan, Rumah Makan, Kantor, Warnet dan lain-lainnya.Keterangan lebih lanjut hubungi kami.

Maintenance Computer

Jasa Maintenance komputer untuk perkantoran,sekolah atau warnet,khusus bagi anda yang menghargai waktu berharga anda.Serahkan urusan ini kepada kami.Yang terbaik hanya untuk anda

0
completed project
0
my client
0
facebook like
0
work partners
Tampilkan postingan dengan label VPS. Tampilkan semua postingan
Tampilkan postingan dengan label VPS. Tampilkan semua postingan
  • Streaming Facebook Via VPS

    stream_facebook_via_vps
    Berikut adalah panduan cara streaming facebook via vps lengkap dari awal hingga cara masuk kembali ke layar streaming:
    Langkah 1: Update dan Install FFmpeg
    apt update && apt upgrade -y
    Install FFmpeg:
    apt install ffmpeg -y
    Langkah 2: Install TMUX
    Agar streaming tidak terputus saat menutup terminal:
    apt install tmux -y
    Langkah 3: Persiapan Folder
    Buat folder penyimpanan dan masuk ke dalamnya:
    mkdir -p /root/video
    cd /root/video
    Untuk melihat file ketikan
    ls
    Langkah 4: Membuat File Playlist
    Buat file teks yang berisi daftar video.
    1.Ketik perintah ini:
    nano playlist.txt
    2.Isi dengan daftar video (gunakan kutip satu '). Contoh:
    file 'Video Satu.mp4'
    file 'Video Dua (Lagu).mp4'
    file 'Video Tiga.mp4'
    3.Simpan: Tekan Ctrl + X, lalu Y, lalu Enter.
    Langkah 5: Upload Video
    Buka FileZilla, login sebagai root, masuk ke folder /root/video, lalu upload semua file video yang tercantum di playlist.txt tersebut.
    Langkah 6: Masuk ke Sesi TMUX Baru (Nama: stream360)
    Kita akan membuat layar bernama stream360 agar nanti mudah dimasuki kembali.
    tmux new -s stream360
    Langkah 7: Jalankan Skrip Streaming
    Sekarang jalankan perintah FFmpeg kamu (pastikan masih berada di folder /root/video):
    ffmpeg -re -f concat -safe 0 -stream_loop -1 -i playlist.txt \
    -vf scale=640:-2 \
    -c:v libx264 -preset ultrafast -tune zerolatency -b:v 350k -maxrate 350k -bufsize 700k -pix_fmt yuv420p -g 30 -threads 1 \
    -c:a aac -b:a 64k -ar 44100 \
    -f flv "rtmps://live-api-s.facebook.com:443/rtmp/FB-25673775738930917-0-Ab6a6EuzqQhALumB1JgAeiCj"
    PENTING : Ganti kode API Facebook diatas dengan API Facebook milik mu
    Langkah 8: Keluar tmux dan biarkan streaming berjalan.
    Agar kamu bisa menutup laptop tapi stream tetap jalan:
    1.Tekan Ctrl + B.
    2.Lalu tekan D.
    Langkah 9: Menghentikan Streaming
    tmux attach -t stream360
    Setelah masuk ke Tmux,tekan ctrl + c ,kemudian ketik exit,kamu akan berhenti dari mode streaming.
  • Cara Non Aktifkan IPV6 Pada Server Atau VPS

    Ini adalah metode yang paling umum,aman,dan mudah untuk dikembalikan (revert). Perubahan akan bertahan setelah reboot.
    Langkah 1: Cek Status IPv6 Saat Ini Apakah Sedang Aktif
    ip a | grep inet6
    Langkah 2: Edit File Konfigurasi sysctl.conf
    sudo nano /etc/sysctl.conf
    Langkah 3: Tambahkan Baris Konfigurasi
    Gulir ke bagian paling bawah file, lalu tambahkan baris-baris berikut:
    # Menonaktifkan IPv6 untuk semua interface
    net.ipv6.conf.all.disable_ipv6 = 1
    # Menonaktifkan IPv6 untuk interface baru yang akan ditambahkan
    net.ipv6.conf.default.disable_ipv6 = 1
    # Menonaktifkan IPv6 untuk interface loopback (lo)
    net.ipv6.conf.lo.disable_ipv6 = 1
    Langkah 4: Simpan dan Tutup File
    Langkah 5: Terapkan Perubahan Tanpa Reboot
    sudo sysctl -p
    Langkah 6: Verifikasi bahwa IPv6 Telah Dinonaktifkan
    Jika berhasil, perintah ini tidak akan menampilkan output apa pun.
    ip a | grep inet6
    Anda juga bisa memeriksanya langsung dari file sistem kernel:
    cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    Outputnya harus angka 1, yang berarti IPv6 telah dinonaktifkan.
    Cara Mengembalikan (Mengaktifkan Kembali) IPv6
    1.Buka kembali file sysctl.conf: sudo nano /etc/sysctl.conf
    sudo nano /etc/sysctl.conf
    2.Hapus tanda # di depan baris yang Anda tambahkan, atau ubah angka 1 menjadi 0, atau berikan tanda komentar # di setiap barisnya.
    #net.ipv6.conf.all.disable_ipv6 = 1
    #net.ipv6.conf.default.disable_ipv6 = 1
    #net.ipv6.conf.lo.disable_ipv6 = 1
    3.Simpan file (Ctrl+X, Y, Enter).
    4.Terapkan perubahan: sudo sysctl -p
    sudo sysctl -p
  • Membuat Menu Panel ZIVPN

    Cara Instalasi Pada Server atau VPS :
    1.Buka editor nano dengan perintah :
    sudo nano /usr/local/bin/zivpanel
    2.Salin dan tempel seluruh script kedalam nano.
    3.Berikan izin eksekusi dengan perintah :
    sudo chmod +x /usr/local/bin/zivpanel
    4.Jalankan panel dengan perintah :
    zivpanel
    Script Panel
    #!/bin/bash
    
    # --- VARIABEL KONFIGURASI ---
    MANUAL_DIR="/root/zivpn_manual"
    MANUAL_ACCOUNTS_FILE="$MANUAL_DIR/manual_accounts.txt"
    
    # Buat direktori jika belum ada
    mkdir -p "$MANUAL_DIR"
    
    # --- VARIABEL WARNA ---
    RESET="\033[0m"
    BLACK="\033[0;30m"
    RED="\033[0;31m"
    GREEN="\033[0;32m"
    YELLOW="\033[0;33m"
    BLUE="\033[0;34m"
    PURPLE="\033[0;35m"
    CYAN="\033[0;36m"
    WHITE="\033[0;37m"
    
    # --- WARNA TERANG ---
    LIGHT_CYAN="\033[1;36m"
    LIGHT_GREEN="\033[1;32m"
    LIGHT_YELLOW="\033[1;33m"
    LIGHT_PURPLE="\033[1;35m"
    LIGHT_GRAY="\033[0;37m" # Sama dengan WHITE untuk opsi
    
    # --- FUNGSI-FUNGSI ---
    
    # Fungsi untuk mengambil informasi sistem (IP, CPU, RAM)
    get_system_info() {
        # Dapatkan IP Publik VPS
        VPS_IP=$(curl -s --connect-timeout 3 ifconfig.me)
        if [ -z "$VPS_IP" ]; then
            VPS_IP="N/A"
        fi
    
        # Dapatkan Penggunaan CPU
        CPU_USAGE_RAW=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
        CPU_USAGE=$(printf "%.1f" "$CPU_USAGE_RAW")
    
        # Dapatkan Penggunaan RAM
        RAM_USAGE=$(free -m | awk 'NR==2{printf "%.1f%%", $3*100/$2}')
    }
    
    # Fungsi untuk membersihkan layar dan menampilkan menu utama
    tampilkan_menu() {
        clear
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_CYAN}        ZIVPN Management Panel${RESET}"
        echo -e "${LIGHT_GRAY}       Dekeng Ane Biak Belitong${RESET}" # Subtitle baru
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_PURPLE}IP VPS: ${RESET}${YELLOW}$VPS_IP${RESET} | ${LIGHT_PURPLE}CPU: ${RESET}${GREEN}$CPU_USAGE%${RESET} | ${LIGHT_PURPLE}RAM: ${RESET}${GREEN}$RAM_USAGE${RESET}"
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_GRAY}1. Tambah Akun${RESET}"                     # Teks diperbarui
        echo -e "${LIGHT_GRAY}2. Hapus Akun${RESET}"                     # Teks diperbarui
        echo -e "${LIGHT_GRAY}3. List Akun${RESET}"                      # Teks diperbarui
        echo -e "${LIGHT_GRAY}4. Kelola Akun Manual${RESET}"
        echo -e "${CYAN}--------------------------------------------${RESET}"
        echo -e "${LIGHT_GRAY}5. Download Script${RESET}"                # Teks diperbarui
        echo -e "${LIGHT_GRAY}6. Install Script${RESET}"                 # Teks diperbarui
        echo -e "${LIGHT_GRAY}7. Speedtest & Monitor${RESET}"
        echo -e "${LIGHT_GRAY}8. Info VPS${RESET}"
        echo -e "${CYAN}--------------------------------------------${RESET}"
        echo -e "${LIGHT_GRAY}0. Keluar${RESET}"
        echo -e "${CYAN}============================================${RESET}"
    }
    
    # Fungsi untuk menampilkan menu kelola akun manual
    tampilkan_menu_manual() {
        clear
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_CYAN}     Kelola Akun Manual (Catatan Pribadi)${RESET}"
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_GRAY}1. Tambah Akun Manual${RESET}"
        echo -e "${LIGHT_GRAY}2. Hapus Akun Manual${RESET}"
        echo -e "${LIGHT_GRAY}3. Lihat Daftar Akun Manual${RESET}"
        echo -e "${LIGHT_GRAY}4. Perpanjang Akun Manual${RESET}"
        echo -e "${LIGHT_GRAY}0. Kembali ke Menu Utama${RESET}"
        echo -e "${CYAN}============================================${RESET}"
    }
    
    # Fungsi untuk menampilkan menu monitor
    tampilkan_menu_monitor() {
        clear
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_CYAN}        Speedtest & Monitor${RESET}"
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_GRAY}1. Speedtest (Ookla)${RESET}"
        echo -e "${LIGHT_GRAY}2. Monitor Traffic (vnstat)${RESET}"
        echo -e "${LIGHT_GRAY}0. Kembali ke Menu Utama${RESET}"
        echo -e "${CYAN}============================================${RESET}"
    }
    
    # Fungsi untuk menampilkan menu vnstat
    tampilkan_menu_vnstat() {
        clear
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_CYAN}        Monitor Traffic (vnstat)${RESET}"
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_GRAY}1. Traffic Per Jam${RESET}"
        echo -e "${LIGHT_GRAY}2. Traffic Per Hari${RESET}"
        echo -e "${LIGHT_GRAY}3. Traffic Per Bulan${RESET}"
        echo -e "${LIGHT_GRAY}4. Traffic Per Tahun${RESET}"
        echo -e "${LIGHT_GRAY}5. Top 10 Hari (Penggunaan Tertinggi)${RESET}"
        echo -e "${LIGHT_GRAY}0. Kembali${RESET}"
        echo -e "${CYAN}============================================${RESET}"
    }
    
    # Fungsi untuk menampilkan menu info VPS
    tampilkan_menu_info_vps() {
        clear
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_CYAN}        Informasi VPS${RESET}"
        echo -e "${CYAN}============================================${RESET}"
        echo -e "${LIGHT_GRAY}1. System Resource (htop)${RESET}"
        echo -e "${LIGHT_GRAY}2. System Overview (neofetch)${RESET}"
        echo -e "${LIGHT_GRAY}3. Disk Usage${RESET}"
        echo -e "${LIGHT_GRAY}4. Memory Usage${RESET}"
        echo -e "${LIGHT_GRAY}5. System Info (uname)${RESET}"
        echo -e "${LIGHT_GRAY}0. Kembali ke Menu Utama${RESET}"
        echo -e "${CYAN}============================================${RESET}"
    }
    
    
    # --- FUNGSI-FUNGSI AKUN MANUAL ---
    
    # Fungsi untuk menghitung sisa hari
    hitung_sisa_hari() {
        local expiry_date=$1 # Format: YYYY-MM-DD
        local today=$(date +%Y-%m-%d)
        
        local sisa_detik=$(( ($(date -d "$expiry_date" +%s) - $(date -d "$today" +%s)) ))
        local sisa_hari=$((sisa_detik / 86400))
    
        if [ "$sisa_hari" -lt 0 ]; then
            echo -e "${RED}EXPIRED${RESET}"
        else
            echo "$sisa_hari"
        fi
    }
    
    tambah_akun_manual() {
        echo -e "${LIGHT_CYAN}--- Tambah Akun Manual Baru ---${RESET}"
        read -p "Masukkan Username: " username
        read -p "Masukkan masa aktif (dalam hari): " jumlah_hari
    
        if ! [[ "$jumlah_hari" =~ ^[0-9]+$ ]]; then
            echo -e "${RED}❌ Input tidak valid. Harap masukkan angka.${RESET}"
            read -p "Tekan Enter untuk kembali..."
            return
        fi
    
        local expiry_date=$(date -d "$jumlah_hari days" +%Y-%m-%d)
        echo "$username:$expiry_date" >> "$MANUAL_ACCOUNTS_FILE"
        echo ""
        echo -e "${GREEN}✅ Akun '$username' berhasil ditambahkan. Expired: $(date -d "$expiry_date" +%d-%m-%Y)${RESET}"
        read -p "Tekan Enter untuk kembali..."
    }
    
    hapus_akun_manual() {
        if [ ! -s "$MANUAL_ACCOUNTS_FILE" ]; then
            echo -e "${YELLOW}Belum ada akun manual yang terdaftar.${RESET}"
            read -p "Tekan Enter untuk kembali..."
            return
        fi
        
        echo -e "${LIGHT_CYAN}--- Hapus Akun Manual ---${RESET}"
        tampilkan_list_manual
        echo ""
        read -p "Masukkan Username yang ingin dihapus: " username_to_delete
    
        if ! grep -q "^$username_to_delete:" "$MANUAL_ACCOUNTS_FILE"; then
            echo -e "${RED}❌ Akun dengan username '$username_to_delete' tidak ditemukan.${RESET}"
            read -p "Tekan Enter untuk kembali..."
            return
        fi
    
        sed -i "/^$username_to_delete:/d" "$MANUAL_ACCOUNTS_FILE"
        
        if grep -q "^$username_to_delete:" "$MANUAL_ACCOUNTS_FILE"; then
            echo -e "${RED}❌ Gagal menghapus akun '$username_to_delete'. Silakan coba lagi.${RESET}"
        else
            echo ""
            echo -e "${GREEN}✅ Akun '$username_to_delete' berhasil dihapus.${RESET}"
        fi
        read -p "Tekan Enter untuk kembali..."
    }
    
    tampilkan_list_manual() {
        echo -e "${LIGHT_CYAN}--- Daftar Akun Manual ---${RESET}"
        if [ ! -s "$MANUAL_ACCOUNTS_FILE" ]; then
            echo -e "${YELLOW}Belum ada akun manual yang terdaftar.${RESET}"
            return
        fi
    
        printf "%-15s | %-12s | %-10s\n" "Username" "Expired" "Sisa Hari"
        echo -e "${CYAN}---------------------------------------------${RESET}"
    
        while IFS=: read -r username expiry_date; do
            sisa_hari=$(hitung_sisa_hari "$expiry_date")
            formatted_date=$(date -d "$expiry_date" +%d-%m-%Y)
            printf "%-15s | %-12s | %-10s\n" "$username" "$formatted_date" "$sisa_hari"
        done < "$MANUAL_ACCOUNTS_FILE"
    }
    
    renew_akun_manual() {
        if [ ! -s "$MANUAL_ACCOUNTS_FILE" ]; then
            echo -e "${YELLOW}Belum ada akun manual yang terdaftar.${RESET}"
            read -p "Tekan Enter untuk kembali..."
            return
        fi
    
        echo -e "${LIGHT_CYAN}--- Perpanjang Akun Manual ---${RESET}"
        tampilkan_list_manual
        echo ""
        read -p "Masukkan Username yang ingin diperpanjang: " username_to_renew
    
        local old_expiry=$(grep "^$username_to_renew:" "$MANUAL_ACCOUNTS_FILE" | cut -d':' -f2)
        
        if [ -z "$old_expiry" ]; then
            echo -e "${RED}❌ Akun dengan username '$username_to_renew' tidak ditemukan.${RESET}"
            read -p "Tekan Enter untuk kembali..."
            return
        fi
    
        read -p "Masukkan jumlah hari perpanjangan: " jumlah_hari
    
        if ! [[ "$jumlah_hari" =~ ^[0-9]+$ ]]; then
            echo -e "${RED}❌ Input tidak valid. Harap masukkan angka.${RESET}"
            read -p "Tekan Enter untuk kembali..."
            return
        fi
    
        local new_expiry=$(date -d "$old_expiry + $jumlah_hari days" +%Y-%m-%d)
        sed -i "s|^$username_to_renew:.*|$username_to_renew:$new_expiry|" "$MANUAL_ACCOUNTS_FILE"
        
        echo ""
        echo -e "${GREEN}✅ Akun '$username_to_renew' berhasil diperpanjang.${RESET}"
        echo -e "   Expired baru: $(date -d "$new_expiry" +%d-%m-%Y)"
        read -p "Tekan Enter untuk kembali..."
    }
    
    kelola_akun_manual() {
        while true
        do
            tampilkan_menu_manual
            read -p "Pilih menu [0-4]: " pilihan_manual
    
            case $pilihan_manual in
                1) echo ""; tambah_akun_manual ;;
                2) echo ""; hapus_akun_manual ;;
                3) echo ""; tampilkan_list_manual; echo ""; read -p "Tekan Enter untuk kembali..." ;;
                4) echo ""; renew_akun_manual ;;
                0) break ;;
                *) echo -e "${RED}Pilihan tidak valid! Silakan pilih 0-4.${RESET}"; read -p "Tekan Enter untuk melanjutkan..." ;;
            esac
        done
    }
    
    # --- FUNGSI-FUNGSI FITUR BARU ---
    
    menu_monitor() {
        while true
        do
            tampilkan_menu_monitor
            read -p "Pilih menu [0-2]: " pilihan_monitor
    
            case $pilihan_monitor in
                1)
                    echo ""
                    # PERUBAHAN: Memeriksa perintah 'speedtest' (Ookla)
                    if ! command -v speedtest &> /dev/null; then
                        echo -e "${RED}❌ 'speedtest' (Ookla) tidak ditemukan.${RESET}"
                        echo -e "${YELLOW}Silakan install terlebih dahulu:${RESET}"
                        echo -e "${CYAN}  wget https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz${RESET}"
                        echo -e "${CYAN}  tar -xvf ookla-speedtest-1.2.0-linux-x86_64.tgz${RESET}"
                        echo -e "${CYAN}  sudo mv speedtest /usr/local/bin/${RESET}"
                        echo -e "${CYAN}  sudo chmod +x /usr/local/bin/speedtest${RESET}"
                    else
                        echo -e "${LIGHT_CYAN}Menjalankan Speedtest...${RESET}"
                        # PERUBAHAN: Menjalankan perintah 'speedtest'
                        speedtest
                    fi
                    read -p "Tekan Enter untuk kembali..."
                    ;;
                2)
                    menu_vnstat
                    ;;
                0)
                    break
                    ;;
                *)
                    echo -e "${RED}Pilihan tidak valid! Silakan pilih 0-2.${RESET}"
                    read -p "Tekan Enter untuk melanjutkan..."
                    ;;
            esac
        done
    }
    
    menu_vnstat() {
        while true
        do
            tampilkan_menu_vnstat
            read -p "Pilih menu [0-5]: " pilihan_vnstat
    
            case $pilihan_vnstat in
                1) echo ""; echo -e "${LIGHT_CYAN}--- Traffic Per Jam ---${RESET}"; vnstat -h; read -p "Tekan Enter untuk kembali..." ;;
                2) echo ""; echo -e "${LIGHT_CYAN}--- Traffic Per Hari ---${RESET}"; vnstat -d; read -p "Tekan Enter untuk kembali..." ;;
                3) echo ""; echo -e "${LIGHT_CYAN}--- Traffic Per Bulan ---${RESET}"; vnstat -m; read -p "Tekan Enter untuk kembali..." ;;
                4) echo ""; echo -e "${LIGHT_CYAN}--- Traffic Per Tahun ---${RESET}"; vnstat -y; read -p "Tekan Enter untuk kembali..." ;;
                5) echo ""; echo -e "${LIGHT_CYAN}--- Top 10 Hari ---${RESET}"; vnstat -t; read -p "Tekan Enter untuk kembali..." ;;
                0) break ;;
                *) echo -e "${RED}Pilihan tidak valid! Silakan pilih 0-5.${RESET}"; read -p "Tekan Enter untuk melanjutkan..." ;;
            esac
        done
    }
    
    menu_info_vps() {
        while true
        do
            tampilkan_menu_info_vps
            read -p "Pilih menu [0-5]: " pilihan_info
    
            case $pilihan_info in
                1)
                    echo ""
                    echo -e "${LIGHT_CYAN}Menjalankan htop... (tekan 'q' untuk keluar)${RESET}"
                    htop
                    ;;
                2)
                    echo ""
                    if ! command -v neofetch &> /dev/null; then
                        echo -e "${RED}❌ 'neofetch' tidak ditemukan.${RESET}"
                        echo -e "${YELLOW}Silakan install terlebih dahulu:${RESET}"
                        echo -e "${CYAN}  Ubuntu/Debian: apt install neofetch${RESET}"
                        echo -e "${CYAN}  CentOS/RHEL:   yum install neofetch${RESET}"
                    else
                        neofetch
                    fi
                    read -p "Tekan Enter untuk kembali..."
                    ;;
                3) echo ""; echo -e "${LIGHT_CYAN}--- Disk Usage ---${RESET}"; df -h; read -p "Tekan Enter untuk kembali..." ;;
                4) echo ""; echo -e "${LIGHT_CYAN}--- Memory Usage ---${RESET}"; free -h; read -p "Tekan Enter untuk kembali..." ;;
                5) echo ""; echo -e "${LIGHT_CYAN}--- System Info ---${RESET}"; uname -a; read -p "Tekan Enter untuk kembali..." ;;
                0) break ;;
                *) echo -e "${RED}Pilihan tidak valid! Silakan pilih 0-5.${RESET}"; read -p "Tekan Enter untuk melanjutkan..." ;;
            esac
        done
    }
    
    
    # --- PROGRAM UTAMA ---
    
    while true
    do
        # Ambil data sistem terbaru sebelum menampilkan menu
        get_system_info
    
        # Tampilkan menu yang sudah termasuk info sistem
        tampilkan_menu
        
        read -p "Pilih menu [0-8]: " pilihan
    
        case $pilihan in
            1) echo ""; echo -e "${LIGHT_CYAN}Sedang memproses penambahan akun...${RESET}"; bash <(wget -qO- https://raw.githubusercontent.com/potatonc/zivpn-udp/refs/heads/main/zi.sh) add; echo ""; read -p "Tekan Enter untuk kembali ke menu..." ;;
            2) echo ""; echo -e "${LIGHT_CYAN}Sedang memproses penghapusan akun...${RESET}"; bash <(wget -qO- https://raw.githubusercontent.com/potatonc/zivpn-udp/refs/heads/main/zi.sh) del; echo ""; read -p "Tekan Enter untuk kembali ke menu..." ;;
            3) echo ""; echo -e "${LIGHT_CYAN}Menampilkan daftar akun...${RESET}"; bash <(wget -qO- https://raw.githubusercontent.com/potatonc/zivpn-udp/refs/heads/main/zi.sh) list; echo ""; read -p "Tekan Enter untuk kembali ke menu..." ;;
            4) kelola_akun_manual ;;
            5)
                echo ""
                echo -e "${LIGHT_CYAN}Mendownload script ZIVPN...${RESET}"
                wget https://raw.githubusercontent.com/potatonc/zivpn-udp/refs/heads/main/zi.sh -O zi.sh
                echo -e "${LIGHT_CYAN}Mengubah permission script...${RESET}"
                chmod +x zi.sh
                echo -e "${LIGHT_CYAN}Menampilkan bantuan script...${RESET}"
                ./zi.sh help
                echo ""
                echo -e "${GREEN}✅ Script berhasil didownload. Anda bisa menjalankannya dengan ./zi.sh${RESET}"
                read -p "Tekan Enter untuk kembali..."
                ;;
            6)
                echo ""
                echo -e "${LIGHT_CYAN}Memulai instalasi ZIVPN...${RESET}"
                bash <(wget -qO- https://raw.githubusercontent.com/potatonc/zivpn-udp/refs/heads/main/zi.sh) install
                echo ""
                echo -e "${GREEN}✅ Proses instalasi selesai.${RESET}"
                read -p "Tekan Enter untuk kembali..."
                ;;
            7)
                menu_monitor
                ;;
            8)
                menu_info_vps
                ;;
            0) echo -e "${LIGHT_GREEN}Terima kasih, sampai jumpa!${RESET}"; exit 0 ;;
            *) echo -e "${RED}Pilihan tidak valid! Silakan pilih 0-8.${RESET}"; read -p "Tekan Enter untuk melanjutkan..." ;;
        esac
    done
  • Membuat Panel Monitoring UDP Pada VPS V2

    Panduan Lengkap: Membuat Panel Monitoring custom untuk VPS UDP Anda

    Halo, sobat sysadmin! Pada artikel sebelumnya saya sudah pernah membahas tutorial Membuat UDP Log Di VPS Linux.Dalam tutorial kali ini yang merupakan kelanjutan dari tutorial sebelumnya, kita akan membangun sebuah panel monitoring custom dari nol yang dapat di jalankan dalam satu tempat terpusat untuk memantau semua aktivitas user di VPS Anda dan ini akan membuat pekerjaan Anda jauh lebih mudah.

    Kita akan membuat tiga perintah baru:

    • udplog: Untuk melihat daftar user yang sedang aktif.
    • checkmultilogin: Untuk mendeteksi user yang login dari lebih dari satu IP.
    • monitorpanel: Sebuah panel menu interaktif yang menggabungkan semua fungsi di atas.

    Yang terbaik dari semuanya, kita akan melakukannya dengan cara yang sangat aman, tanpa mengubah skrip asli Anda sama sekali. Yuk, kita mulai!


    Langkah 1: Membuat Perintah udplog (Cek User Aktif)

    Pertama, kita buat folder untuk menyimpan semua skrip kita.

    sudo mkdir -p /opt/udp-proxy/bin

    Sekarang, buat file untuk skrip udplog.

    sudo nano /opt/udp-proxy/bin/show_users.sh

    Salin dan tempel kode berikut ke dalamnya:

    #!/bin/bash
    
    echo "════════════════════════════════════════════════"
    echo "                [ USER LOGIN UDP ]               "
    echo "════════════════════════════════════════════════"
    echo "┌──────────────────────────────────────────────┐"
    
    if LOG_OUTPUT=$(sudo journalctl -u udp-custom.service --since "5 minutes ago" --no-pager | grep "Client connected" | awk '
        /\[src:/ && /\[user:/ {
            match($0, /\[src:([^]]+)\]/, m)
            ip = m[1]
            match($0, /\[user:([^]]+)\]/, u)
            user = u[1]
            if (ip && user) {
                printf "%-15s %-20s\n", user, ip
            }
        }' | sort -u); then
        if [ -n "$LOG_OUTPUT" ]; then
            printf " %-15s %-15s %-20s\n" "Status" "Username" "IP Address"
            echo "$LOG_OUTPUT" | while read -r user ip; do
                printf " %-15s %-15s %-20s\n" "Aktif" "$user" "$ip"
            done
        else
            echo " Tidak ada user yang terhubung dalam 5 menit terakhir."
        fi
    else
        echo " Gagal mengambil log. Pastikan Anda menjalankan dengan sudo."
    fi
    
    echo "└──────────────────────────────────────────────┘"
    

    Simpan file (Ctrl+X, lalu Y dan Enter), lalu berikan izin eksekusi:

    sudo chmod +x /opt/udp-proxy/bin/show_users.sh

    Terakhir, buat perintah pintasannya:

    sudo ln -s /opt/udp-proxy/bin/show_users.sh /usr/local/bin/udplog

    Langkah 2: Membuat Perintah checkmultilogin (Deteksi Multi-Login)

    Buat file untuk skrip deteksi multi-login.

    sudo nano /opt/udp-proxy/bin/check_multilogin.sh

    Salin dan tempel kode berikut:

    #!/bin/bash
    
    echo "════════════════════════════════════════════════"
    echo "            [ CEK USER MULTI-LOGIN ]            "
    echo "════════════════════════════════════════════════"
    echo "Menganalisis log dalam 1 jam terakhir..."
    echo ""
    
    if MULTI_LOGIN=$(sudo journalctl -u udp-custom.service --since "1 hour ago" --no-pager | grep "Client connected" | awk -F'[][]' '
        {
            for (i=1; i<=NF; i++) {
                if ($i ~ /user:/) {
                    split($i, u, ":")
                    username = u[2]
                }
                if ($i ~ /src:/) {
                    split($i, s, ":")
                    ip = s[2]
                }
            }
            if (username && ip) {
                ips[username] = ips[username] " " ip
            }
        }
        END {
            for (user in ips) {
                split(ips[user], ip_list, " ")
                delete unique_ips
                for (i in ip_list) {
                    if (ip_list[i] != "") {
                        unique_ips[ip_list[i]] = 1
                    }
                }
                if (length(unique_ips) > 1) {
                    printf "User: %-15s | Jumlah IP: %d | IP: %s\n", user, length(unique_ips), ips[user]
                }
            }
        }'); then
        if [ -n "$MULTI_LOGIN" ]; then
            echo ">>> DITEMUKAN USER YANG MELAKUKAN MULTI-LOGIN! <<<"
            echo "-----------------------------------------------"
            echo "$MULTI_LOGIN"
        else
            echo "Tidak ada user yang terdeteksi melakukan multi-login dalam 1 jam terakhir."
        fi
    else
        echo "Gagal mengambil log. Pastikan Anda menjalankan dengan sudo."
    fi
    echo "════════════════════════════════════════════════"
    

    Simpan file (Ctrl+X, Y, Enter), berikan izin eksekusi, dan buat perintah pintasannya:

    sudo chmod +x /opt/udp-proxy/bin/check_multilogin.sh
    sudo ln -s /opt/udp-proxy/bin/check_multilogin.sh /usr/local/bin/checkmultilogin

    Langkah 3: Membuat Panel Utama monitorpanel

    Sekarang, kita akan menggabungkan semuanya ke dalam satu panel yang mudah digunakan. Buat file untuk panel utama.

    sudo nano /opt/udp-proxy/bin/monitorpanel.sh

    Salin dan tempel kode menu interaktif berikut:

    #!/bin/bash
    
    function show_header() {
        clear
        echo "═══════════════════════════════════════════════════════════════"
        echo "                   [ UDP MONITOR PANEL ]                       "
        echo "═══════════════════════════════════════════════════════════════"
        echo "                     POWERED by HAXOR                          "
        echo "═══════════════════════════════════════════════════════════════"
        echo ""
    }
    
    function show_menu() {
        echo "Pilih menu monitoring yang Anda inginkan:"
        echo "1. Cek User Login (Real-time Dashboard)"
        echo "2. Cek User Multi-Login"
        echo "3. Tampilkan User Aktif Saat Ini"
        echo "4. Tampilkan Alur Log Koneksi (Live Stream)"
        echo "5. Keluar"
        echo ""
    }
    
    while true; do
        show_header
        show_menu
        read -p "Masukkan pilihan Anda [1-5]: " choice
    
        case $choice in
            1)
                echo "Menjalankan dashboard user login (update setiap 5 detik)..."
                echo "Tekan Ctrl+C untuk kembali ke menu."
                sleep 2
                watch -n 5 udplog
                ;;
            2)
                echo "Mengecek user yang melakukan multi-login..."
                sleep 1
                checkmultilogin
                echo ""
                read -p "Tekan Enter untuk kembali ke menu."
                ;;
            3)
                echo "Menampilkan user yang sedang aktif..."
                sleep 1
                udplog
                echo ""
                read -p "Tekan Enter untuk kembali ke menu."
                ;;
            4)
                echo "Menampilkan alur log koneksi secara langsung..."
                echo "Hanya menampilkan koneksi yang berhasil. Tekan Ctrl+C untuk kembali."
                sleep 2
                sudo journalctl -u udp-custom.service -f | grep "Client connected"
                ;;
            5)
                echo "Keluar dari Monitor Panel. Sampai jumpa!"
                sleep 1
                exit 0
                ;;
            *)
                echo "Pilihan tidak valid, silakan coba lagi."
                sleep 2
                ;;
        esac
    done
    

    Simpan file (Ctrl+X, Y, Enter), berikan izin eksekusi, dan buat perintah pintasannya:

    sudo chmod +x /opt/udp-proxy/bin/monitorpanel.sh
    sudo ln -s /opt/udp-proxy/bin/monitorpanel.sh /usr/local/bin/monitorpanel

    Langkah 4: Gunakan Panel Baru Anda!

    Sekarang, Anda memiliki tiga perintah baru. Yang paling powerful adalah monitorpanel. Coba jalankan:

    monitorpanel

    Taraa... Sekarang Anda akan disajikan dengan menu interaktif yang memudahkan monitoring VPS Anda. Selamat mencoba!

    Baca juga Update Script Monitoring UDP V3
  • Membuat UDP Log Di VPS Linux

    Panduan Lengkap: Cara Membuat Perintah udplog untuk Melihat User Aktif di VPS Linux

    Halo, teman-teman sysadmin! Pernahkah Anda merasa kesulitan untuk memantau user mana saja yang sedang aktif terhubung ke layanan UDP tunneling Anda di VPS? Anda mungkin sudah bisa melihatnya lewat log systemctl status, tapi tentu akan jauh lebih mudah jika ada perintah khusus yang menampilkannya dalam bentuk tabel yang rapi.

    Pada tutorial kali ini, kita akan membuat sebuah perintah kustom bernama udplog. Dengan mengetik udplog di terminal, Anda bisa langsung melihat daftar user yang sedang online beserta alamat IP mereka. Cara ini aman karena tidak akan merusak atau mengubah skrip asli Anda sama sekali.

    Mari kita mulai dari awal!

    1. Langkah 1: Buat Folder untuk Menyimpan Skrip

      Pertama, kita perlu membuat sebuah folder khusus untuk menyimpan skrip baru kita agar terorganisir. Buka terminal VPS Anda dan jalankan perintah berikut:

      sudo mkdir -p /opt/udp-proxy/bin

      Penjelasan: Perintah ini membuat folder /opt/udp-proxy dan sub-folder bin di dalamnya. Folder ini akan menjadi tempat kita menyimpan file skrip.

    2. Langkah 2: Buat File Skrip Panel

      Sekarang, kita akan membuat file kosong untuk skrip panel kita menggunakan editor teks nano.

      sudo nano /opt/udp-proxy/bin/show_users.sh

      Penjelasan: Perintah ini akan membuka editor teks nano dan membuat file baru bernama show_users.sh di dalam folder yang baru kita buat.

    3. Langkah 3: Tulis Kode ke Dalam Skrip

      Salin seluruh kode di bawah ini, lalu tempel ke dalam jendela nano yang terbuka.

      #!/bin/bash
      
      echo "════════════════════════════════════════════════"
      echo "                [ USER LOGIN UDP ]               "
      echo "════════════════════════════════════════════════"
      echo "┌──────────────────────────────────────────────┐"
      
      # Gunakan awk yang lebih kuat untuk mencari pola [src:...] dan [user:...]
      # Ini akan menemukan IP dan username di mana saja mereka berada di baris log
      if LOG_OUTPUT=$(sudo journalctl -u udp-custom.service --since "5 minutes ago" --no-pager | grep "Client connected" | awk '
          /\[src:/ && /\[user:/ {
              # Cari dan ambil IP Address
              match($0, /\[src:([^]]+)\]/, m)
              ip = m[1]
              # Cari dan ambil Username
              match($0, /\[user:([^]]+)\]/, u)
              user = u[1]
              # Cetak username dan IP jika keduanya ditemukan
              if (ip && user) {
                  printf "%-15s %-20s\n", user, ip
              }
          }' | sort -u); then
      
          if [ -n "$LOG_OUTPUT" ]; then
              printf " %-15s %-15s %-20s\n" "Status" "Username" "IP Address"
              echo "$LOG_OUTPUT" | while read -r user ip; do
                  printf " %-15s %-15s %-20s\n" "Aktif" "$user" "$ip"
              done
          else
              echo " Tidak ada user yang terhubung dalam 5 menit terakhir."
          fi
      else
          echo " Gagal mengambil log. Pastikan Anda menjalankan dengan sudo."
      fi
      
      echo "└──────────────────────────────────────────────┘"

      Penjelasan: Kode ini akan membaca log sistem, memfilternya untuk menemukan pesan "Client connected" dalam 5 menit terakhir, lalu menampilkannya dalam format tabel yang rapi.

    4. Langkah 4: Simpan File Skrip

      Setelah Anda menempelkan kode di atas, simpan filenya dengan cara:

      1. Tekan Ctrl + X di keyboard.
      2. Akan muncul pertanyaan di bagian bawah, ketik Y lalu tekan Enter.
    5. Langkah 5: Buat Skrip Bisa Dieksekusi

      Secara default, file yang baru dibuat belum bisa dijalankan. Kita perlu memberinya izin eksekusi dengan perintah:

      sudo chmod +x /opt/udp-proxy/bin/show_users.sh

      Penjelasan: Perintah chmod +x memberikan izin "eksekusi" pada file, sehingga bisa dijalankan seperti sebuah program.

    6. Langkah 6: Buat Perintah Pintasan udplog

      Agar kita bisa memanggil skrip tersebut hanya dengan mengetik udplog, kita akan membuat "jalan pintas" atau symbolic link.

      sudo ln -s /opt/udp-proxy/bin/show_users.sh /usr/local/bin/udplog

      Penjelasan: Perintah ln -s membuat symbolic link (jalan pintas) yang bernama udplog di folder /usr/local/bin. Folder ini sudah ada di "path" perintah Linux, jadi Anda bisa memanggilnya dari mana saja.

    7. Langkah 7: Uji Perintah Baru Anda

      Ini adalah langkah terakhir untuk memastikan semuanya berjalan dengan benar. Coba jalankan perintah baru Anda:

      udplog

      Jika semua langkah diikuti dengan benar, Anda akan langsung melihat output panel user yang sudah kita buat, mirip seperti ini:

      ════════════════════════════════════════════════
                      [ USER LOGIN UDP ]               
      ════════════════════════════════════════════════
      ┌──────────────────────────────────────────────┐
       Status          Username        IP Address      
       Aktif           suhartono       140.213.5.69   
       Aktif           tiotio          140.213.5.225  
       Aktif           yunidodo        112.215.170.75 
      └──────────────────────────────────────────────┘

    Kesimpulan

    Selamat! Sekarang Anda memiliki perintah udplog yang bisa dipanggil kapan saja untuk melihat daftar user yang sedang aktif terhubung ke VPS Anda. Ini adalah cara yang aman, efektif, dan rapi untuk memantau aktivitas user tanpa harus mengotak-atik skrip utama Anda. Selamat mencoba!

  • Menjalankan Ulang Dan Mematikan HAProxy Pada Server Linux Ubuntu

    Halo, para administrator sistem dan pengguna VPS!

    Pernahkah Anda merasa bahwa layanan HAProxy di VPS Anda, meskipun sangat bermanfaat, terus mengonsumsi sumber daya berharga seperti RAM, bahkan saat tidak ada traffic yang sama sekali? Ini adalah masalah umum, terutama bagi mereka yang mengelola server dengan spesifikasi kecil.

    Postingan kali ini akan memandu Anda langkah demi langkah untuk menghentikan HAProxy, mencegahnya berjalan otomatis saat restart, dan tentu saja, cara mengaktifkannya kembali hanya ketika Anda benar-benar membutuhkannya. Dengan cara ini, Anda memiliki kontrol penuh atas sumber daya VPS Anda.

    Mengapa Harus Mengontrol HAProxy Secara Manual?

    HAProxy dirancang untuk berjalan terus-menerus sebagai load balancer yang andal. Namun, dalam skenario berikut, mengontrolnya secara manual sangat menguntungkan:

    • Menghemat RAM: Seperti yang kita bahas sebelumnya, HAProxy menggunakan RAM untuk setiap koneksi dan prosesnya. Mematikannya saat tidak digunakan akan membebaskan RAM untuk aplikasi lain atau proses sistem.
    • VPS Pengembangan atau Testing: Jika VPS Anda hanya digunakan untuk pengujian sesekali, tidak ada alasan untuk menjalankan HAProxy 24/7.
    • Kontrol Penuh: Anda memutuskan kapan layanan harus aktif, memberikan fleksibilitas maksimal dalam manajemen server.

    Langkah 1: Menghentikan dan Menonaktifkan HAProxy

    Untuk mencapai tujuan kita, kita perlu melakukan dua tindakan: menghentikan layanan yang sedang berjalan dan mencegahnya start otomatis saat boot. Kita akan menggunakan systemctl, alat standar di distribusi Linux modern.

    Penting untuk memahami perbedaan dua perintah utama:

    Perintah Fungsi Keterangan
    sudo systemctl stop haproxy Menghentikan Layanan Mematikan proses HAProxy yang sedang berjalan saat ini.
    sudo systemctl disable haproxy Menonaktifkan Auto-Start Mencegah HAProxy start otomatis saat VPS dinyalakan ulang.

    Jalankan kedua perintah ini secara berurutan di terminal Anda:

    sudo systemctl stop haproxy
    sudo systemctl disable haproxy

    Langkah 2: Verifikasi Status HAProxy

    Setelah menjalankan perintah di atas, ada baiknya untuk memverifikasi bahwa semuanya sudah berubah sesuai keinginan.

    1. Cek apakah layanan sudah berhenti:

    sudo systemctl status haproxy

    Output yang diharapkan adalah Active: inactive (dead).

    2. Cek apakah auto-start sudah dinonaktifkan:

    sudo systemctl is-enabled haproxy

    Output yang diharapkan adalah disabled.

    Jika kedua output tersebut muncul, HAProxy sudah berhasil Anda "matikan" dan tidak akan mengganggu lagi saat restart.

    Langkah 3: Mengaktifkan Kembali HAProxy

    Sekarang, tiba saatnya Anda membutuhkan HAProxy lagi. Untuk mengaktifkannya, Anda cukup melakukan kebalikan dari Langkah 1: aktifkan auto-start, lalu jalankan.

    Perintah Fungsi Keterangan
    sudo systemctl enable haproxy Mengaktifkan Auto-Start Mengizinkan HAProxy untuk start otomatis saat boot.
    sudo systemctl start haproxy Menjalankan Layanan Memulai proses HAProxy saat ini.

    Jalankan perintah berikut untuk mengaktifkannya kembali:

    sudo systemctl enable haproxy
    sudo systemctl start haproxy

    Untuk memastikannya berjalan, Anda bisa kembali menjalankan sudo systemctl status haproxy dan seharusnya melihat Active: active (running).

    Ringkasan Perintah

    Sebagai referensi cepat, berikut adalah ringkasan semua perintah yang Anda butuhkan:

    Tujuan Perintah yang Dijalankan
    Menghentikan & Menonaktifkan sudo systemctl stop haproxy
    sudo systemctl disable haproxy
    Mengaktifkan & Menjalankan sudo systemctl enable haproxy
    sudo systemctl start haproxy

    Kesimpulan

    Mengontrol layanan seperti HAProxy secara manual adalah keterampilan penting untuk mengelola VPS dengan sumber daya terbatas. Dengan memahami perbedaan antara stop, start, enable, dan disable, Anda memiliki kekuatan penuh untuk mengoptimalkan penggunaan RAM dan CPU sesuai kebutuhan.

    Metode ini memastikan bahwa HAProxy hanya mengonsumsi sumber daya ketika Anda benar-benar membutuhkannya, membuat VPS kecil Anda jauh lebih efisien. Semoga panduan ini bermanfaat! Jika ada pertanyaan atau tips lain seputar manajemen layanan, tinggalkan komentar di bawah ya!

  • Panduan Lengkap Cara Install Nano di Ubuntu untuk Pemula

    Halo, sobat blogger dan pengguna Linux pemula!

    Jika Anda baru saja memasang Ubuntu atau distribusi Linux lainnya, salah satu alat pertama yang akan Anda butuhkan adalah teks editor berbasis terminal. Alat ini sangat penting untuk mengedit file konfigurasi, menulis skrip sederhana, atau membuat catatan cepat tanpa harus meninggalkan jendela terminal.

    Dari banyak pilihan, Nano adalah yang paling direkomendasikan untuk pemula karena antarmukanya yang intuitif dan mudah digunakan. Postingan kali ini akan memandu Anda langkah demi langkah tentang cara menginstal Nano di Ubuntu dengan sangat mudah.

    Apa Itu Nano Editor?

    Nano adalah sebuah editor teks berbasis command-line (CLI) yang dirancang agar mudah digunakan dan intuitif. Tidak seperti editor lain yang memiliki kurva pembelajaran yang curam (seperti Vim), Nano menampilkan daftar perintah penting langsung di bagian bawah layar, sehingga Anda tidak perlu menghafal semua shortcut dari awal.

    Inilah alasan mengapa Nano sering menjadi editor default di banyak distribusi Linux dan sangat direkomendasikan bagi siapa saja yang baru memulai perjalanan di dunia command line.

    Cara Install Nano di Ubuntu

    Proses instalasi Nano di Ubuntu sangatlah sederhana dan hanya membutuhkan beberapa perintah di terminal. Berikut adalah panduan lengkapnya.

    Cara Cepat (Untuk yang sudah terbiasa)

    Jika Anda sudah terbiasa dengan terminal, cukup jalankan dua perintah berikut secara berurutan:

    sudo apt update
    sudo apt install nano

    Panduan Lengkap Langkah demi Langkah

    Bagi Anda yang masih pemula, ikuti langkah-langkah detail di bawah ini.

    1. Langkah 1: Buka Terminal

      Anda bisa membuka terminal dengan menekan shortcut Ctrl + Alt + T secara bersamaan, atau mencarinya melalui menu aplikasi.

    2. Langkah 2: Perbarui Daftar Paket

      Sebelum menginstal perangkat lunak apa pun, selalu baik untuk memperbarui daftar paket sistem. Ini memastikan Anda mendapatkan versi terbaru dari Nano yang tersedia di repository Ubuntu. Jalankan perintah berikut:

      sudo apt update

      Masukkan password Anda saat diminta (karakter tidak akan terlihat) dan tekan Enter. Tunggu hingga proses selesai.

    3. Langkah 3: Pasang (Install) Nano

      Setelah daftar paket diperbarui, sekarang saatnya untuk menginstal Nano. Gunakan perintah berikut:

      sudo apt install nano

      Terminal akan menampilkan paket-paket yang akan diinstal dan meminta konfirmasi. Ketik Y lalu tekan Enter untuk melanjutkan proses instalasi.

    4. Langkah 4: Verifikasi Pemasangan

      Untuk memastikan Nano telah terpasang dengan benar, Anda bisa memeriksa versinya dengan perintah:

      nano --version

      Jika instalasi berhasil, Anda akan melihat informasi versi Nano yang terinstal.

    Cara Dasar Menggunakan Nano

    Sekarang Nano sudah terinstal, berikut adalah cara paling mendasar untuk menggunakannya:

    • Membuka/Membuat File: Ketik nano [nama_file]. Contoh: nano coba.txt. Jika file tidak ada, Nano akan membuatnya.
    • Menyimpan dan Keluar: Tekan Ctrl + X. Nano akan bertanya apakah Anda ingin menyimpan perubahan. Ketik Y untuk menyimpan, lalu tekan Enter untuk mengkonfirmasi nama file.

    Di bagian bawah layar Nano, selalu ada daftar pintasan. Simbol ^ berarti tombol Ctrl.

    Kesimpulan

    Selamat! Anda telah berhasil menginstal Nano di sistem Ubuntu Anda. Kini Anda memiliki alat yang powerful dan mudah digunakan untuk mengedit file langsung dari terminal.

    Kunci untuk menguasainya adalah dengan berlatih. Coba buat file baru, edit, dan simpan. Semakin sering Anda menggunakannya, semakin familiar Anda akan dengan semua fiturnya. Semoga panduan ini bermanfaat!

  • Panduan Lengkap: Membuat VPS Admin Panel

    Halo, sobat sysadmin dan pengguna VPS!

    Pernahkah Anda merasa kewalahan mengelola VPS karena harus bergantian antara berbagai perintah di terminal untuk memantau sumber daya, bandwidth, hingga melakukan reboot? Jika ya, maka Anda perlu sebuah Admin Panel yang terintegrasi.

    Postingan kali ini akan menjadi panduan lengkap Anda untuk membuat sebuah panel administrasi VPS yang powerful dan mudah digunakan langsung dari terminal. Kita akan menambahkan fitur monitoring real-time dengan Netdata, kontrol sistem, dan tentu saja, semua dalam satu perintah yang sederhana.

    Fase 1: Instalasi Alat Pendukung

    Pertama, kita akan menginstal beberapa alat yang akan digunakan oleh panel.

    1. Instal Speedtest by Ookla

      Digunakan untuk melakukan tes kecepatan internet dari VPS.

      curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
      sudo apt-get install speedtest -y
    2. Instal Vnstat dan Nload
      • vnstat: Untuk memantau penggunaan bandwidth secara historis.
      • nload: Untuk memantau trafik jaringan secara real-time.
      sudo apt-get install vnstat nload -y
    3. Inisialisasi Database Vnstat

      vnstat perlu membuat database untuk mulai mencatat data. Ganti eth0 jika nama interface jaringan Anda berbeda (cek dengan ip a).

      vnstat -i eth0 --create

    Fase 2: Membuat Skrip Panel Utama

    Kita akan membuat file skrip baru bernama panel yang akan menjadi menu utama.

    1. Buat File Skrip

      Buka editor teks nano untuk membuat file baru di /usr/bin/panel.

      nano /usr/bin/panel
    2. Salin dan Tempel Kode Berikut
      #!/bin/bash
      
      # Fungsi untuk menampilkan header panel
      header() {
          clear
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -e "\E[44;1;39m             • VPS ADMIN PANEL •             \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
      }
      
      # Fungsi untuk menampilkan menu utama panel
      menu_panel() {
          header
          echo -e "\E[36m1)\E[0m \033[1;37mInformasi VPS Lengkap\033[0m"
          echo -e "\E[36m2)\E[0m \033[1;37mCek Kecepatan Internet (Speedtest)\033[0m"
          echo -e "\E[36m3)\E[0m \033[1;37mMonitor Bandwidth (Vnstat)\033[0m"
          echo -e "\E[36m4)\E[0m \033[1;37mSystem Monitoring Center (Netdata)\033[0m"
          echo -e "\E[36m5)\E[0m \033[1;37mKelola Layanan Monitoring\033[0m"
          echo -e "\E[36m6)\E[0m \033[1;37mPenggunaan Sumber Daya (CPU/RAM/Disk)\033[0m"
          echo -e "\E[36m7)\E[0m \033[1;37mCek Pembaruan Sistem\033[0m"
          echo -e "\E[36m8)\E[0m \033[1;37mPengguna yang Sedang Login\033[0m"
          echo -e "\E[36m9)\E[0m \033[1;37mAuto Reboot VPS\033[0m"
          echo -e "\E[36m10)\E[0m \033[1;37mRestart VPS Sekarang\033[0m"
          echo -e "\E[36m0)\E[0m \033[1;37mKeluar\033[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -ne "\033[1;32mPilih menu: \033[0m"
          read option
          case $option in
              1) vps_info ;;
              2) run_speedtest ;;
              3) run_vnstat ;;
              4) netdata_info ;;
              5) manage_services_menu ;;
              6) system_resources ;;
              7) check_updates ;;
              8) current_users ;;
              9) auto_reboot_menu ;;
              10) restart_vps ;;
              0) clear ; exit ;;
              *) echo "Pilihan tidak valid!"; sleep 2; menu_panel ;;
          esac
      }
      
      # Fungsi Informasi VPS
      vps_info() {
          header
          echo -e "\E[44;1;39m           • INFORMASI VPS LENGKAP •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          
          OS=$(hostnamectl | grep "Operating System" | cut -d':' -f2 | xargs)
          KERNEL=$(uname -r)
          UPTIME=$(uptime -p)
          IP_PUB=$(wget -qO- ipinfo.io/ip)
          CPU_CORE=$(nproc)
          CPU_MODEL=$(lscpu | grep "Model name" | cut -d':' -f2 | xargs)
          RAM_TOTAL=$(free -h | awk 'NR==2{print $2}')
          DISK_TOTAL=$(df -h / | awk 'NR==2 {print $2}')
          
          echo -e "\E[36mSistem Operasi:\E[0m \033[1;37m$OS\033[0m"
          echo -e "\E[36mVersi Kernel:\E[0m \033[1;37m$KERNEL\033[0m"
          echo -e "\E[36mIP Publik:\E[0m \033[1;37m$IP_PUB\033[0m"
          echo -e "\E[36mUptime:\E[0m \033[1;37m$UPTIME\033[0m"
          echo -e "\E[36mCPU:\E[0m \033[1;37m$CPU_MODEL ($CPU_CORE Core)\033[0m"
          echo -e "\E[36mTotal RAM:\E[0m \033[1;37m$RAM_TOTAL\033[0m"
          echo -e "\E[36mTotal Disk:\E[0m \033[1;37m$DISK_TOTAL\033[0m"
          
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
      
      # Fungsi Speedtest
      run_speedtest() {
          header
          echo -e "\E[44;1;39m           • SPEEDTEST BY OOKLA •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          speedtest
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
      
      # Fungsi Vnstat
      run_vnstat() {
          header
          echo -e "\E[44;1;39m           • MONITOR BANDWIDTH (VNSTAT) •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo "Penggunaan per jam (Interface eth0):"
          vnstat -i eth0 -h
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo "Penggunaan per hari (10 hari terakhir):"
          vnstat -i eth0 -d | tail -n 11
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo "Penggunaan per bulanan:"
          vnstat -i eth0 -m
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
      
      # Fungsi Info Netdata
      netdata_info() {
          header
          echo -e "\E[44;1;39m           • SYSTEM MONITORING CENTER (NETDATA) •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -e "\E[36mDashboard Netdata sudah berjalan di VPS Anda.\E[0m"
          echo ""
          echo -e "\E[32mCara Akses yang Aman (Menggunakan SSH Tunnel):\E[0m"
          echo -e "\033[1;37m1. Buka terminal di KOMPUTER Anda.\E[0m"
          echo -e "\033[1;37m2. Jalankan perintah: \E[0m \E[33mssh -L 19999:127.0.0.1:19999 root@IP_VPS_ANDA\E[0m"
          echo -e "\033[1;37m3. Buka browser dan akses: \E[0m \E[33mhttp://localhost:19999\E[0m"
          echo ""
          echo -e "\E[31mPERINGATAN: Jangan membuka port 19999 ke publik!\E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
      
      # Fungsi Menu Kelola Layanan
      manage_services_menu() {
          header
          echo -e "\E[44;1;39m           • KELOLA LAYANAN MONITORING •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -e "\E[36m1)\E[0m \033[1;37mHidupkan/Matikan Netdata\033[0m"
          echo -e "\E[36m2)\E[0m \033[1;37mHidupkan/Matikan Vnstat\033[0m"
          echo -e "\E[36m3)\E[0m \033[1;37mStatus Semua Layanan\033[0m"
          echo -e "\E[36m0)\E[0m \033[1;37mKembali ke Menu Utama\033[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -ne "\033[1;32mPilih menu: \033[0m"
          read option
          case $option in
              1) toggle_service "netdata" ;;
              2) toggle_service "vnstat" ;;
              3) check_all_services_status ;;
              0) menu_panel ;;
              *) echo "Pilihan tidak valid!"; sleep 2; manage_services_menu ;;
          esac
      }
      
      # Fungsi untuk menghidupkan/mematikan layanan
      toggle_service() {
          local service_name=$1
          if [[ $(systemctl is-active $service_name) == 'active' ]]; then
              systemctl stop $service_name
              echo -e "\E[31mLayanan $service_name telah dihentikan untuk menghemat RAM.\E[0m"
          else
              systemctl start $service_name
              echo -e "\E[32mLayanan $service_name telah dihidupkan kembali.\E[0m"
          fi
          sleep 2
          manage_services_menu
      }
      
      # Fungsi untuk mengecek status semua layanan
      check_all_services_status() {
          header
          echo -e "\E[44;1;39m           • STATUS SEMUA LAYANAN •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          
          services=("netdata" "vnstat")
          for service in "${services[@]}"; do
              if [[ $(systemctl is-active $service) == 'active' ]]; then
                  echo -e "\E[32mStatus $service: \E[0m \033[1;37mActive (Running)\033[0m"
              else
                  echo -e "\E[31mStatus $service: \E[0m \033[1;37mInactive (Stopped)\033[0m"
              fi
          done
          
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali..."
          manage_services_menu
      }
      
      # Fungsi Sumber Daya
      system_resources() {
          header
          echo -e "\E[44;1;39m           • PENGGUNAAN SUMBER DAYA •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          
          echo -e "\E[36mPenggunaan CPU (5 Proses Teratas):\E[0m"
          ps aux --sort=-%cpu | head -n 6 | awk 'NR==1 {print $0} NR>1 {printf "%-10s %5s%% %s\n", $1, $3, $11}'
          echo ""
          
          echo -e "\E[36mPenggunaan RAM:\E[0m"
          free -h
          echo ""
          
          echo -e "\E[36mPenggunaan Disk:\E[0m"
          df -h
          
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
      
      # Fungsi Cek Pembaruan
      check_updates() {
          header
          echo -e "\E[44;1;39m           • CEK PEMBARUAN SISTEM •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo "Mencari pembaruan yang tersedia..."
          apt list --upgradable 2>/dev/null
          if [ $? -eq 0 ]; then
              echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
              echo -e "\E[36mUntuk memperbarui, jalankan: \E[0m \033[1;37msudo apt update && sudo apt upgrade -y\033[0m"
          else
              echo -e "\E[32mTidak ada pembaruan yang tersedia.\E[0m"
          fi
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
      
      # Fungsi Pengguna Login
      current_users() {
          header
          echo -e "\E[44;1;39m           • PENGGUNA YANG SEDANG LOGIN •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          w
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
      
      # Fungsi Menu Auto Reboot
      auto_reboot_menu() {
          header
          echo -e "\E[44;1;39m           • AUTO REBOOT VPS •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -e "\E[36m1)\E[0m \033[1;37mJadwalkan Reboot dalam 1 Jam\033[0m"
          echo -e "\E[36m2)\E[0m \033[1;37mJadwalkan Reboot dalam 6 Jam\033[0m"
          echo -e "\E[36m3)\E[0m \033[1;37mJadwalkan Reboot dalam 12 Jam\033[0m"
          echo -e "\E[36m4)\E[0m \033[1;37mJadwalkan Reboot dalam 24 Jam\033[0m"
          echo -e "\E[36m5)\E[0m \033[1;37mBatalkan Jadwal Reboot\033[0m"
          echo -e "\E[36m6)\E[0m \033[1;37mLihat Log Reboot\033[0m"
          echo -e "\E[36m7)\E[0m \033[1;37mHapus Log Reboot\033[0m"
          echo -e "\E[36m0)\E[0m \033[1;37mKembali ke Menu Utama\033[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -ne "\033[1;32mPilih menu: \033[0m"
          read option
          case $option in
              1) schedule_reboot 1 ;;
              2) schedule_reboot 6 ;;
              3) schedule_reboot 12 ;;
              4) schedule_reboot 24 ;;
              5) cancel_reboot ;;
              6) view_reboot_log ;;
              7) clear_reboot_log ;;
              0) menu_panel ;;
              *) echo "Pilihan tidak valid!"; sleep 2; auto_reboot_menu ;;
          esac
      }
      
      # Fungsi Restart VPS
      restart_vps() {
          header
          echo -e "\E[44;1;39m           • RESTART VPS SEKARANG •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -e "\E[31mPERINGATAN: Ini akan mem-boot ulang VPS Anda sekarang juga!\E[0m"
          echo -e "\E[31mSemua koneksi akan terputus.\E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -p "Apakah Anda yakin? (y/n): " confirm
          if [[ "$confirm" == "y" || "$confirm" == "Y" ]]; then
              echo -e "\E[32mVPS akan reboot dalam 5 detik...\E[0m"
              sleep 5
              reboot
          else
              echo -e "\E[33mDibatalkan.\E[0m"
              sleep 2
              menu_panel
          fi
      }
      
      # Fungsi untuk menjadwalkan reboot
      schedule_reboot() {
          local hours=$1
          local reboot_time=$(date -d "$hours hours" +"%Y-%m-%d %H:%M:%S")
          local cron_time=$(date -d "$hours hours" +"%M %H %d %m *")
          
          (crontab -l 2>/dev/null | grep -v "shutdown -r now") | crontab -
          (crontab -l 2>/dev/null; echo "$cron_time /sbin/shutdown -r now") | crontab -
          echo "Auto Reboot dijadwalkan pada: $reboot_time" > /etc/auto_reboot.log
          
          echo -e "\E[32mVPS akan di-reboot otomatis pada: \E[0m \033[1;37m$reboot_time\033[0m"
          sleep 3
          auto_reboot_menu
      }
      
      # Fungsi untuk membatalkan reboot
      cancel_reboot() {
          (crontab -l 2>/dev/null | grep -v "shutdown -r now") | crontab -
          rm -f /etc/auto_reboot.log
          echo -e "\E[32mJadwal auto reboot berhasil dibatalkan.\E[0m"
          sleep 2
          auto_reboot_menu
      }
      
      # Fungsi untuk melihat log
      view_reboot_log() {
          if [ -f /etc/auto_reboot.log ]; then
              echo -e "\E[36mLog Reboot:\E[0m"
              cat /etc/auto_reboot.log
          else
              echo -e "\E[33mTidak ada jadwal reboot yang aktif.\E[0m"
          fi
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali..."
          auto_reboot_menu
      }
      
      # Fungsi untuk menghapus log
      clear_reboot_log() {
          rm -f /etc/auto_reboot.log
          echo -e "\E[32mLog reboot berhasil dihapus.\E[0m"
          sleep 2
          auto_reboot_menu
      }
      
      # Jalankan menu panel
      menu_panel
    3. Simpan dan Berikan Izin Eksekusi
      • Simpan file: Tekan Ctrl + X, lalu Y, lalu Enter.
      • Buat file bisa dijalankan:
        chmod +x /usr/bin/panel
    4. Coba Panel

      Ketik panel di terminal. Menu utama seharusnya sudah muncul.

      panel

    Fase 3: Mengubah Zona Waktu VPS (WIB)

    Agar vnstat dan log lainnya menggunakan waktu yang sama dengan Anda (WIB), ikuti langkah ini.

    1. Ubah Zona Waktu ke Asia/Jakarta
      sudo timedatectl set-timezone Asia/Jakarta
    2. Verifikasi Perubahan

      Jalankan perintah ini untuk memastikan zona waktu sudah berubah. Pada baris Time zone, seharusnya sudah tertulis Asia/Jakarta (WIB, +0700).

      timedatectl
    3. Restart Vnstat

      Agar vnstat segera menggunakan zona waktu baru.

      systemctl restart vnstat

    Fase 4: Instalasi dan Keamanan Netdata

    Netdata akan menjadi pusat monitoring real-time Anda.

    1. Instal Netdata

      Gunakan installer resmi dari Netdata.

      bash <(curl -Ss https://my-netdata.io/kickstart.sh)
    2. Amankan Akses Netdata (SANGAT PENTING!)

      Secara default, Netdata bisa diakses publik. Kita akan batasi aksesnya hanya dari VPS itu sendiri.

      • Buat konfigurasi lengkap:
        netdatacli dumpconfig > /etc/netdata/netdata.conf
      • Edit konfigurasi:
        nano /etc/netdata/netdata.conf
      • Cari bagian [web] (tekan Ctrl+W, ketik [web], Enter).
      • Cari dan Ubah baris bind to:

        Cari baris # bind to = * dan ubah menjadi:

        bind to = 127.0.0.1
      • Simpan dan Restart Netdata:
        • Simpan: Ctrl+X, Y, Enter.
        • Restart layanan:
          systemctl restart netdata

    Fase 5: Mengintegrasikan Netdata ke Panel

    Sekarang kita akan menambahkan menu Netdata ke dalam panel utama.

    1. Buka Kembali File Panel
      nano /usr/bin/panel
    2. Tambahkan Menu Netdata

      Di dalam fungsi menu_panel(), tambahkan baris berikut di antara menu lainnya. Contohnya, setelah menu "Monitor Bandwidth".

      echo -e "\E[36m3)\E[0m \033[1;37mMonitor Bandwidth (Vnstat)\033[0m"
      echo -e "\E[36m4)\E[0m \033[1;37mSystem Monitoring Center (Netdata)\033[0m" # Tambahkan ini
      echo -e "\E[36m5)\E[0m \033[1;37mPenggunaan Sumber Daya (CPU/RAM/Disk)\033[0m"

      Jangan lupa untuk menyesuaikan nomor menu lainnya di bawahnya.

    3. Tambahkan Logika Menu

      Di dalam struktur case $option in, tambahkan logika untuk menu baru tersebut.

      case $option in
          1) vps_info ;;
          2) run_speedtest ;;
          3) run_vnstat ;;
          4) netdata_info ;; # Tambahkan ini
          5) system_resources ;;
          # ...dan seterusnya
      esac
    4. Tambahkan Fungsi Bantuan Netdata

      Tempelkan fungsi ini di bagian paling akhir file, sebelum baris terakhir menu_panel.

      # Fungsi Info Netdata
      netdata_info() {
          header
          echo -e "\E[44;1;39m           • SYSTEM MONITORING CENTER (NETDATA) •          \E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          echo -e "\E[36mDashboard Netdata sudah berjalan di VPS Anda.\E[0m"
          echo ""
          echo -e "\E[32mCara Akses yang Aman (Menggunakan SSH Tunnel):\E[0m"
          echo -e "\033[1;37m1. Buka terminal di KOMPUTER Anda.\E[0m"
          echo -e "\033[1;37m2. Jalankan perintah: \E[0m \E[33mssh -L 19999:127.0.0.1:19999 root@IP_VPS_ANDA\E[0m"
          echo -e "\033[1;37m3. Buka browser dan akses: \E[0m \E[33mhttp://localhost:19999\E[0m"
          echo ""
          echo -e "\E[31mPERINGATAN: Jangan membuka port 19999 ke publik!\E[0m"
          echo -e "\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m"
          read -n 1 -s -r -p "Tekan tombol apa saja untuk kembali ke menu..."
          menu_panel
      }
    5. Simpan dan Selesai

      Simpan file (Ctrl+X, Y, Enter).

    Cara Menggunakan Panel Anda

    • Untuk membuka panel di VPS:
      panel
    • Untuk mengakses Dashboard Netdata:
      1. Dari komputer Anda, buka terminal.
      2. Jalankan perintah: ssh -L 19999:127.0.0.1:19999 root@IP_VPS_ANDA
      3. Buka browser dan akses: http://localhost:19999

    Anda sekarang memiliki sistem monitoring VPS yang lengkap, aman, dan mudah digunakan. Selamat mencoba!

  • Panduan Lengkap Perintah Dasar Nano Editor untuk Pemula

    perintah dasar nano

    Halo, sobat blogger dan pengguna Linux!

    Pernahkah Anda berada di dalam terminal Linux dan perlu mengedit file konfigurasi, skrip shell, atau sekadar catatan cepat? Jika ya, maka Anda pasti membutuhkan editor teks yang andal. Di antara banyak pilihan seperti vim atau emacs, ada satu nama yang selalu menjadi favorit bagi pemula karena kemudahannya: Nano.

    Postingan kali ini akan menjadi panduan lengkap Anda untuk menguasai editor teks yang simpel namun powerful ini. Kita akan membahas apa itu Nano, cara menggunakannya, dan tentu saja, daftar perintah (shortcut) paling umum yang akan membuat pekerjaan Anda di terminal jauh lebih cepat dan efisien.

    Apa Itu Nano Editor?

    Nano adalah sebuah editor teks berbasis command-line (CLI) yang dirancang agar mudah digunakan dan intuitif. Tidak seperti editor lain yang memiliki kurva pembelajaran yang curam, Nano menampilkan daftar perintah penting langsung di bagian bawah layar, sehingga Anda tidak perlu menghafal semua shortcut dari awal.

    Inilah alasan mengapa Nano sering menjadi editor default di banyak distribusi Linux dan sangat direkomendasikan bagi siapa saja yang baru memulai perjalanan di dunia command line.

    Cara Membaca Perintah di Nano

    Sebelum kita masuk ke daftar perintahnya, penting untuk memahami simbol yang digunakan:

    • ^ (Caret): Simbol ini berarti tombol Ctrl. Contohnya, ^X artinya Anda harus menekan tombol Ctrl dan X secara bersamaan.
    • M- (Meta): Simbol ini berarti tombol Meta, yang pada kebanyakan keyboard modern adalah tombol Alt. Contohnya, M-U artinya Anda harus menekan tombol Alt dan U.

    Perintah Dasar Nano (Wajib Diketahui)

    Ini adalah 4 perintah fundamental yang harus Anda kuasai untuk bisa menggunakan Nano.

    Perintah Fungsi Keterangan
    nano [nama_file] Membuka/Membuat File Perintah ini dijalankan dari terminal, bukan di dalam Nano. Contoh: nano config.txt
    ^G Bantuan (Get Help) Menampilkan jendela bantuan lengkap. Jika lupa, tekan ini!
    ^X Keluar (Exit) Untuk menutup Nano. Jika ada perubahan, Anda akan ditanya apakah ingin menyimpan.
    ^O Simpan (Write Out) Menyimpan perubahan ke file.

    Navigasi Kursor: Bergerak Tanpa Mouse

    Bergerak di dalam teks adalah hal yang sering dilakukan. Selain menggunakan tombol panah, ada beberapa shortcut yang bisa mempercepat pekerjaan Anda.

    Perintah Fungsi Keterangan
    Panah (↑↓←→) Bergerak Cara paling dasar untuk bergerak.
    ^A Ke Awal Baris Sama seperti fungsi tombol Home.
    ^E Ke Akhir Baris Sama seperti fungsi tombol End.
    ^V Halaman Selanjutnya Gulir ke bawah satu layar penuh (Page Down).
    ^Y Halaman Sebelumnya Gulir ke atas satu layar penuh (Page Up).
    M-\ Ke Awal File Langsung loncat ke baris pertama.
    M-/ Ke Akhir File Langsung loncat ke baris terakhir.

    Mengedit Teks: Copy, Cut, dan Paste

    Ini adalah fitur editing yang paling sering digunakan. Prosesnya sedikit berbeda dengan editor grafis, tapi sangat mudah.

    Perintah Fungsi Keterangan
    ^6 Mulai/Stop Seleksi Tekan untuk menandai awal seleksi, lalu gerakkan kursor. Tekan lagi untuk berhenti.
    ^K Potong (Cut) Memotong baris saat ini. Jika ada teks terseleksi, akan memotong teks tersebut.
    ^U Tempel (Uncut/Paste) Menempelkan teks terakhir yang dipotong.
    M-6 Salin (Copy) Menyalin teks yang terseleksi ke buffer.

    Cara Melakukan "Copy All" (Salin Semua):

    Nano tidak memiliki tombol "Select All". Anda bisa melakukannya secara manual:

    1. Pindah ke awal file dengan menekan M-\.
    2. Mulai seleksi dengan menekan ^6.
    3. Pindah ke akhir file dengan menekan M-/. Sekarang seluruh teks akan terblokir.
    4. Salin teks yang terseleksi dengan menekan M-6.

    Sekarang seluruh konten file sudah tersalin dan bisa Anda tempel di mana saja dengan ^U.

    Mencari dan Mengganti Teks

    Tidak perlu scroll manual jika Anda ingin menemukan kata atau kalimat tertentu.

    Perintah Fungsi Keterangan
    ^W Cari (Where Is) Mencari teks. Nano akan meminta Anda memasukkan kata kunci.
    M-W Cari Lagi Mencari kemunculan berikutnya dari kata yang sama.
    ^\ Ganti (Replace) Mencari dan mengganti teks secara otomatis.

    Perintah Berguna Lainnya

    Perintah Fungsi Keterangan
    M-G Go to Line Langsung loncat ke nomor baris tertentu. Sangat berguna untuk debugging kode.
    ^R Read File Menyisipkan isi dari file lain ke posisi kursor.
    M-U Undo Membatalkan perubahan terakhir.
    M-E Redo Mengulang perubahan yang telah dibatalkan.

    Kesimpulan

    Nano adalah alat yang sangat powerful di tangan yang tepat. Kesederhanaannya membuatnya menjadi pilihan ideal untuk melakukan pengeditan teks cepat di terminal tanpa harus menghafal puluhan perintah rumit.

    Kunci untuk menguasainya adalah dengan berlatih. Coba buat file baru, salin teks dari file lain, cari kata tertentu, dan gunakan semua perintah yang telah dibahas di atas. Semakin sering Anda menggunakannya, semakin hafal dan cepat Anda akan menjadi terbiasa.

    Semoga panduan ini bermanfaat! Jika ada pertanyaan atau perintah favorit Anda yang tidak tercantum di sini, tinggalkan komentar di bawah ya! Bye...

  • My Profile In Youtube

    ADDRESS

    Jalan Raya Badau Km.11 Rt.06/02 Tanjung Pandan Belitung 33451

    EMAIL

    purwana.cecep@gmail.com
    uraxarixteamxxx@gmail.com

    Telephone

    +628197887769