Dokumentasi
Mulai cepat + penjelasan fitur tiap bagian dan tiap perangkat (terus diperbarui)
Pemasangan & penghapusan
Artikel ini menjelaskan secara rinci cara memasang, meningkatkan, dan menghapus panel SSH Everywhere, dengan penekanan pada "bagaimana menghapus jika direktori instalasi diubah" serta detail format dalam perintah (spasi, tanda kutip).
1. Pemasangan (satu baris perintah)
Jalankan di server Linux yang punya IP publik:
curl -fsSL https://ssheverywhere.com/install.sh | bash
Skrip akan otomatis: mendeteksi sistem → memasang dependensi (Python3 / venv / pip / git / curl) → mengunduh kode → membuat virtual environment → memasang dependensi Python → mendaftarkan dan menjalankan layanan systemd.
Mendukung Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (otomatis beralih ke mode latar belakang jika tidak ada systemd).
Parameter Instalasi
| Parameter | Keterangan | Contoh |
|---|---|---|
--lang <kode> | Bahasa pesan + bahasa bawaan panel (secara bawaan dideteksi otomatis dari locale sistem; nomor 1-16 juga diterima) | --lang ja |
--dir <direktori> | Direktori instalasi (bawaan /opt/ssh-everywhere; bila tidak bisa ditulis, otomatis mundur ke ~/ssh-everywhere dan dijelaskan di output) | --dir /opt/my-panel |
--port <port> | Port panel (bawaan 5501) | --port 8080 |
--ascii | Memaksa keluaran simbol ASCII murni ([ok] / [..] / [!] / [x]), tidak akan berantakan di terminal mana pun | --ascii |
--unicode | Memaksa keluaran simbol Unicode (✓ ⟳ ⚠️ ❌); di lingkungan UTF-8 ini sudah menjadi bawaannya | --unicode |
--yes / -y | Konfirmasi otomatis saat upgrade, tanpa interaksi | --yes |
Kode bahasa yang didukung (16 bahasa)
| Kode | Bahasa | Kode | Bahasa | Kode | Bahasa | Kode | Bahasa |
|---|---|---|---|---|---|---|---|
zh | 中文 | en | English | ja | 日本語 | ko | 한국어 |
es | Español | fr | Français | de | Deutsch | ru | Русский |
pt | Português | it | Italiano | ar | العربية | tr | Türkçe |
vi | Tiếng Việt | th | ไทย | id | Bahasa Indonesia | hi | हिन्दी |
Bila --lang tidak diberikan, bahasa dideteksi otomatis dari locale sistem (misalnya LANG=ja_JP.UTF-8 → pesan bahasa Jepang). Bila locale server atau terminal bukan UTF-8 (image ringkas dari penyedia cloud besar sering memakai LANG=C), skrip otomatis beralih ke simbol ASCII murni [ok], dan bila bahasa tidak ditentukan secara eksplisit teks pesannya juga mundur ke bahasa Inggris, dengan penjelasan alasannya di awal — semua ini untuk mencegah teks berantakan. Untuk memaksa bahasa Anda, gunakan: --lang xx --unicode.
Saat meneruskan parameter lewat pipe, tambahkan bash -s --:
# Pesan bahasa Jepang + panel bahasa Jepang curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja # Pesan bahasa Rusia + direktori dan port khusus curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080 # Terminal lama / terminal GBK yang takut berantakan: keluaran ASCII murni (pesan bahasa Mandarin + simbol [ok]) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii # Bahasa Arab (antarmuka RTL) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar
Anda juga bisa mengunduhnya dulu lalu menjalankannya (interaktif — akan menanyakan bahasa, direktori, dan konfirmasi upgrade satu per satu):
curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh
> Penyedia cloud besar (Tencent Cloud / Alibaba Cloud) menonaktifkan login root secara bawaan. --dir yang diberikan secara eksplisit selalu diutamakan; hanya bila pengguna saat ini tidak punya izin tulis pada direktori tersebut, skrip akan beralih otomatis ke direktori HOME Anda (~/ssh-everywhere) dan menyatakan dengan jelas di output direktori mana yang Anda berikan, mengapa diganti, dan bahwa Anda harus menjalankannya sebagai root bila ingin memasang di sana.
2. Peningkatan
Cukup jalankan perintah pemasangan sekali lagi; skrip punya deteksi versi bawaan dan akan menawarkan peningkatan jika menemukan versi baru (data dipertahankan, sepenuhnya otomatis):
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes
--yes berarti konfirmasi otomatis saat peningkatan, tanpa interaksi.
3. Penghapusan
Penghapusan direktori default (interaktif, direkomendasikan)
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh
Skrip akan menampilkan daftar yang akan dihapus terlebih dahulu lalu meminta konfirmasi; perintah baru dijalankan setelah Anda mengetik yes.
Penghapusan non-interaktif / ter-skrip
Tambahkan --yes untuk melewati konfirmasi (validasi keamanan tetap dijalankan):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes
Parameter penghapusan
| Parameter | Keterangan |
|---|---|
--dir <direktori> | direktori instalasi (default /opt/ssh-everywhere, wajib ditentukan jika direktorinya diubah) |
--keep-data | mencadangkan data (konfigurasi server / basis data) menjadi paket tar sebelum penghapusan |
--yes | konfirmasi penghapusan dalam mode non-interaktif |
4. Bagaimana menghapus jika direktori instalasi diubah? (penting)
Jika saat pemasangan Anda memakai --dir untuk mengubah direktori, saat penghapusan wajib menentukan --dir yang sama; jika tidak, skrip tidak akan menemukan direktori instalasi dan berhenti otomatis (ini perlindungan keamanan untuk mencegah penghapusan yang keliru).
Path direktori tanpa spasi
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel
Cara pipe (--dir diletakkan setelah bash -s --):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes
Path direktori mengandung spasi
Jika nama direktori mengandung spasi, path lengkapnya wajib dibungkus dengan tanda kutip ganda; jika tidak, shell akan memecah path menjadi dua bagian dan skrip tidak menemukan direktorinya:
bash uninstall.sh --dir "/opt/my panel"
Cara pipe juga sama (kutip membungkus seluruh path, jangan hanya sebagian):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes
Ingin mempertahankan data sebelum menghapus
bash uninstall.sh --dir /opt/my-panel --keep-data
data (konfigurasi server / basis data) akan dicadangkan ke <direktori-instalasi>-data-backup-<timestamp>.tar.gz, dan bisa ditemukan kembali setelah penghapusan.
> 💡 Saran: sejak saat pemasangan, hindari memakai spasi pada nama direktori; gunakan tanda hubung atau garis bawah (mis. my-panel, my_panel) untuk menghindari repotnya tanda kutip.
5. Penjelasan keamanan
Skrip penghapusan punya tiga lapis perlindungan bawaan untuk mencegah penghapusan yang keliru:
1. Validasi path absolut —— menolak path relatif.
2. Daftar hitam direktori penting sistem —— menolak /, /root, /etc, /usr, /var dan sejenisnya.
3. Validasi sidik jari direktori instalasi —— hanya akan dihapus jika VERSION dan app.py sama-sama ada; jika tidak, proses dibatalkan.
> Penghapusan hanya menghapus panel itu sendiri; Agent di server/perangkat target tidak terpengaruh (setelah panel dihapus, mereka akan menampilkan offline).