Dokumentasi
Mulai cepat + penjelasan fitur tiap bagian dan tiap perangkat (terus diperbarui)
Arsitektur & Tech Stack SSH Everywhere
> Artikel ini menjelaskan arsitektur keseluruhan, protokol, dan tech stack SSH Everywhere dengan bahasa yang mudah dipahami. Cocok untuk pembaca yang ingin tahu "sebenarnya cara kerjanya bagaimana" — tanpa latar belakang teknis pun tetap bisa mengerti.
---
Memahami seluruh proyek dalam satu kalimat
SSH Everywhere adalah panel operasional jarak jauh server/perangkat serba ada (all-in-one), setara 1Panel / Baota. Kemampuan intinya: di mana pun perangkat Anda berada di jaringan — punya IP publik, tanpa IP publik (di belakang NAT), atau bahkan ponsel Android — semuanya bisa dikelola dari satu panel ini layaknya menggunakan SSH.
Panel itu sendiri dipasang di server yang punya IP publik (mendengarkan 0.0.0.0:5501). Anda mengakses panel lewat browser, lalu panel menjangkau setiap perangkat target melalui "cara koneksi" yang berbeda-beda.
---
Arsitektur keseluruhan (satu gambar langsung paham)
┌─────────────────────────────────────────────────────────────┐
│ Frontend browser (single-page app, simulasi OS desktop) │
│ Jendela desktop · Taskbar · Menu mulai · Dasbor kartu │
│ · Terminal asli · Pustaka ikon · JS murni (tanpa framework)│
└──────────────────────────┬──────────────────────────────────┘
│ HTTP REST + SocketIO
┌──────────────────────────┴──────────────────────────────────┐
│ Backend panel (Flask + Flask-SocketIO, Python) │
│ Program utama · Server terowongan reverse · Server SocketIO · Transfer file│
│ Perlindungan crash · Manajemen situs web · Cadangan · Basis data SQLite│
└───┬───────────────┬──────────────────┬──────────────────────┘
│ SSH │ Terowongan reverse │ SocketIO
│ langsung/lewat terowongan │ (0.0.0.0:4433) │ (lewat HTTP)
▼ ▼ ▼
┌────────┐ ┌──────────────┐ ┌─────────────────┐
│ Server │ │ Linux tanpa │ │ Ponsel Android │
│ IP publik │ │ IP publik/NAS │ │ (Termux) │
└────────┘ └──────────────┘ └─────────────────┘
---
Empat cara koneksi (protokol)
Di dalam SSH Everywhere digunakan 4 protokol, masing-masing punya peran dan menyasar jenis perangkat yang berbeda:
1. SSH — jalur utama
Kegunaan: mengelola semua fungsi inti "server Linux biasa".
- Manajemen sistem (ringkasan, proses, tugas terjadwal, firewall, Docker, situs web, sumber image, perlindungan crash)
- Terminal (shell interaktif)
- Manajemen file (unggah/unduh/edit/kompres)
- Pemeriksaan kesehatan (CPU/memori/disk/suhu)
- Eksekusi perintah
Cara koneksi:
- Punya IP publik: panel terhubung langsung ke
host:port - Tanpa IP publik: panel lebih dulu membuat port proxy lokal lewat terowongan reverse, lalu SSH ke sana
> Dengan kata lain, inti terowongan reverse adalah "mengantarkan SSH ke perangkat yang tidak punya IP publik", jadi SSH adalah protokol yang akhirnya dipakai.
2. Protokol terowongan reverse — jalur penetrasi
Kegunaan: membuat "perangkat tanpa IP publik" bisa dijangkau panel. Sisi perangkat aktif "terhubung keluar" ke panel, membangun koneksi TCP panjang (long connection) terbalik, dan panel mengirim perintah serta meneruskan port melalui terowongan ini.
Ciri-ciri: koneksi TCP panjang + terenkripsi (AES-256-GCM), server mendengarkan 0.0.0.0:4433.
Skenario tipikal:
- Operasional penetrasi SSH untuk server Linux tanpa IP publik (di dalam terowongan menjalankan SSH lagi)
- Penetrasi port: memetakan port layanan di perangkat (mis.
8090) ke port publik panel
> Konsep yang mudah tertukar: penerusan port vs penetrasi port
>
> | | Penerusan port | Penetrasi port |
> |---|---|---|
> | Perangkat yang cocok | server yang punya IP publik | perangkat penetrasi tanpa IP publik |
> | Cara implementasi | DNAT firewall sistem, dikerjakan di server target sendiri | lewat terowongan reverse |
> | Alur data | pengunjung → IP publik target → port target | pengunjung → port publik panel → terowongan reverse → port perangkat |
> | Bergantung pada perangkat online | tidak | ya (perangkat harus menjaga Agent tetap online) |
>
> Satu kalimat: "Penerusan" untuk server yang punya IP publik; "Penetrasi" untuk perangkat yang tidak punya IP publik.
3. SocketIO — jalur khusus ponsel Android
Kegunaan: mengelola Termux di ponsel Android. NAT jaringan seluler ponsel sering berpindah dan SSH tidak stabil, sehingga dipakai jalur long-polling SocketIO yang stabil (solusi matang yang sudah teruji di perangkat nyata).
Agent yang berjalan di ponsel menyediakan lewat SocketIO:
- Manajemen sistem (ringkasan/proses/tugas terjadwal)
- Terminal (jembatan PTY)
- Manajemen file
- Pemantauan kesehatan (laporan setiap 30 detik: beban/memori/disk/baterai/suhu)
> Ini adalah satu-satunya jalur yang "tidak lewat SSH" di proyek ini — karena ponsel Android tidak memakai sshd, melainkan koneksi panjang SocketIO.
4. HTTP REST — antara frontend dan backend
Frontend browser memanggil backend panel melalui REST API, sekaligus memakai SocketIO untuk komunikasi dua arah real-time seperti terminal.
---
Ringkasan jalur jangkauan tiga jenis perangkat
| Jenis perangkat | Cara koneksi | Protokol akhir | Keterangan |
|---|---|---|---|
| Server Linux dengan IP publik | panel terhubung langsung | SSH | skenario paling langsung |
| Server Linux tanpa IP publik (NAS/Raspberry Pi dsb.) | terowongan reverse membuat proxy → SSH | SSH (diangkut lewat terowongan) | terowongan adalah "kurir" SSH |
| Ponsel Android (Termux) | long-polling SocketIO | SocketIO (satu-satunya tanpa SSH) | jalur stabil khusus ponsel |
---
Penyimpanan data
- Basis data SQLite (
data/ssheverywhere.db): kartu server, penerusan port, catatan penetrasi, pengguna, tugas, dan lain-lain. - Sistem file: file cadangan, kunci terowongan, sumber daya statis.
---
Bentuk deployment
- Panel: layanan systemd
ssh-everywhere.service, mendengarkan0.0.0.0:5501. - Terowongan reverse: mendengarkan
0.0.0.0:4433. - Agent di sisi perangkat target berjalan tetap sebagai layanan (di Linux memakai systemd / di Termux memakai termux-services).
---
Tentang nama proyek "SSH Everywhere"
Nama proyeknya adalah SSH Everywhere, artinya "seperti SSH, bisa dikelola di mana saja". SSH adalah cara koneksi paling utama di seluruh proyek ini: selain satu sub-skenario ponsel Android, semua fitur lainnya (manajemen server Linux, operasional penetrasi, transfer file, pemeriksaan kesehatan) pada akhirnya bermuara pada SSH. Dan inti terowongan reverse juga tepatnya "mengantarkan SSH ke mana pun". Karena itu nama "SSH Everywhere" mengungkapkan kemampuan inti proyek ini dengan akurat.