Ultimate Linux Tool Project Manager adalah asisten terminal (TUI) yang dirancang untuk mempermudah alur kerja pengembangan perangkat lunak di lingkungan Linux. Aplikasi ini mengotomatiskan manajemen layanan sistem, basis data, integrasi Git, dan manajemen proyek melalui satu antarmuka terpusat.
Berikut adalah sekilas tampilan antarmuka elegan DevMenu Pro di dalam terminal:
- FZF Project Browser Pro (dengan Live Preview & Proteksi .env): Fitur pencarian proyek yang dirombak total menjadi browser proyek TUI yang interaktif dan informatif.
- Informasi Kolom Instan (Left Panel): Menampilkan daftar proyek terformat lengkap:
Nama Proyek | Tipe/Framework | Cabang Git (Simbol * jika kotor) | Ukuran Folder | Tech Stack. - Detail Preview Dinamis (Right Panel): Menampilkan detail metadata proyek secara real-time yang tersinkronisasi dengan tema warna aktif.
- Proteksi Keamanan Ketat: Membaca berkas
.envproyek dan menyensor otomatis kata kunci kredensial sensitif (PASSWORD, SECRET, TOKEN, KEY, PASS, PRIVATE, CREDENTIAL) menjadi******** [TERPROTEKSI]. - Pintasan Keyboard Terpadu:
- [ENTER] ➔ Membuka sub-menu proyek (Submenu Action Hub).
- [CTRL-O] ➔ Membuka folder proyek secara instan di editor modern pilihan Anda (VS Code, Cursor, Windsurf, Nano).
- [CTRL-S] ➔ Membuka terminal tab baru di dalam direktori kerja proyek secara instan.
- [ESC] ➔ Membatalkan navigasi dan kembali dengan aman.
- Informasi Kolom Instan (Left Panel): Menampilkan daftar proyek terformat lengkap:
- Port Commander Pro: Pemantauan port dengan Live Process Detail Preview. Hentikan proses zombie dengan satu klik secara interaktif dan instan.
- Environment Guard (.env Manager): Pusat pencarian seluruh file
.envdi direktori kerja. Dilengkapi Auto-Masking Preview (Otomatis menyensor variabel PASSWORD/SECRET) sebelum membuka file di editor spesifik. - Interactive Database Explorer X: Penjelajahan database di dalam terminal yang tidak lagi pasif. Menyediakan jendela preview fzf langsung (Mode Pro) untuk intip tabel secara real-time tanpa perlu eksekusi kuery manual.
- Minimalist Industrial Aesthetic: Tidak ada lagi elemen norak. Desain terminal menggunakan indikator blok status (█/░), simbol hierarki profesional (❯, ◈), dan aksen warna solid untuk alur kerja elit.
- Multi-Language Support (i18n): Dukungan penuh untuk Bahasa Indonesia dan Bahasa Inggris. Ganti bahasa secara instan melalui sistem tanpa harus restart aplikasi (Live Reload).
- N-Tier Monorepo Orchestrator: Arsitektur adaptif untuk direktori
apps/apimaupunapps/web. Dilengkapi menu interaktif untuk merilis Multi-Terminal Dev Server seketika. - Local Domain & SSL Router: Mengarahkan ekosistem proyek seketika ke sub-domain HTTPS mandiri (mis:
https://traderpro.test), dijalin bersama mkcert & proksi lokal. - Interactive Settings Hub: Control panel terminal yang canggih. Anda bisa mengganti Editor IDE default (VS Code, Cursor, Windsurf), mengubah direktori Workspace, hingga memperbarui kredensial MySQL secara on-the-fly lewat antarmuka grafis terminal yang aman ([ESC] cancellation).
- Project X-Ray Scanner: Memindai jenis framework, memeriksa Git Branch & Status, serta menangkap konfigurasi repositori eksternal sebagai detail dashboard.
- Smart Interactive Runner: Menganalisis package.json (NPM Scripts) atau composer dan memfasilitasi menu
fzfagar Anda tepat dalam menjalankan peladen (server). - Auto-Docker Engine: Deteksi detil siklus kontainer (
docker-compose.yml) per-proyek (Up, Down, Logs, Restart) diintegrasikan langsung pada menu sub-proyek (Submenu Action Hub). - Pembukaan proyek otomatis pada alat IDE andalan (VS Code/Cursor) maupun Multi-Session Tmux langsung.
Aplikasi ini menggunakan arsitektur pure directory-based — seluruh isi modules/ adalah direktori, tanpa flat file. Setiap direktori memiliki init.sh sebagai entry-point loader-nya sendiri.
devmenu.sh memuat modul secara deterministik menggunakan LOAD_ORDER:
core → i18n → service → ports → database → project → snapshot → devutils → git → system → search → monitor → menu
Setiap direktori diload via <nama-modul>/init.sh-nya masing-masing.
Semua berkas init.sh di dalam modul hanya diperbolehkan untuk melakukan pemuatan berkas (source) dan pendefinisian fungsi (function). Berkas init.sh tidak boleh menjalankan aksi interaktif langsung (seperti meminta masukan user dengan read), memicu verifikasi/eksekusi sudo, melakukan koneksi jaringan (curl), melakukan pemasangan dependensi (npm install/composer install), eksekusi perintah database (mysql), maupun modifikasi layanan aktif (systemctl) ketika di-source oleh loader.
| Direktori | File Utama | Fungsi |
|---|---|---|
core/ |
logging.sh, ui.sh, system.sh, security.sh, plugin_engine.sh, credentials.sh, bootstrap.sh |
Fondasi sistem: log, UI, validasi, keamanan/masking, plugin, kredensial, inisialisasi |
i18n/ |
init.sh, id.sh, en.sh |
Internasionalisasi: Dukungan multi-bahasa bahasa Indonesia & Inggris secara dinamis |
service/ |
engine.sh, manager.sh, dashboard.sh |
Kontrol layanan sistem (MariaDB, Redis, Apache, dst.) |
ports/ |
ports.sh |
Manajemen port: lihat aktif, bebaskan, kill proses |
database/ |
database.sh |
Backup, restore, buat, dan hapus database |
project/ |
detection.sh, runner.sh, creator.sh, scanner.sh, docker.sh, monorepo.sh, submenu.sh, actions/info.sh, actions/build.sh, actions/db.sh, actions/github.sh, actions/delete.sh |
Engine proyek lengkap: deteksi, jalankan, buat, scan, docker, monorepo, submenu, dan aksi-aksi (info, build, db, github, delete) |
devutils/ |
sdk.sh, cleaner.sh, keys.sh, menu.sh |
Utilitas developer: versi SDK, cache cleaner, SSH keys |
git/ |
git.sh |
Git status, commit, dan pull untuk semua proyek |
system/ |
system.sh |
Info sistem, dependensi, cleanup, edit config, credentials |
search/ |
search.sh |
Fuzzy search proyek via fzf |
monitor/ |
health.sh |
Live Health-Check Dashboard: Monitor HTTP, DB, dan Git Status proyek secara real-time |
menu/ |
menu.sh |
Render menu utama dan main loop navigasi |
core/init.shmemuat sub-modul inti dengan urutan ketat (logging wajib pertama):logging.sh→ui.sh→system.sh→security.sh→plugin_engine.sh→credentials.sh→bootstrap.shCatatan:
bootstrap.shadalah file inisialisasi startup (core_init(),init_directories(), dll.).
-
Jalankan Skrip Instalasi Buka terminal di direktori ini dan jalankan: bash ./setup.sh
-
Muat Ulang Konfigurasi Jalankan perintah berikut untuk mengaktifkan alias: source ~/.bashrc
-
Menjalankan Aplikasi Gunakan perintah berikut di direktori mana pun:
devmenu- Konfigurasi Bahasa
Secara default aplikasi menggunakan Bahasa Indonesia. Anda dapat mengubahnya ke Bahasa Inggris melalui menu
SYSTEMS>Developer Utils Hub>Ganti Bahasa(atau langsung melalui menu Settings jika tersedia di versi Anda).
Sistem ini mendukung perluasan fitur (third-party extensions) tanpa memodifikasi kode inti arsitektur. Anda dapat membuat fitur khusus, sinkronisasi API luar, hingga pemantauan memori lanjutan dengan cukup membuat modul di folder plugins/.
Untuk standar baku pemrograman, pedoman pendaftaran API, serta konvensi elemen UI, silakan rujuk:
👉 Buku Panduan Ekstensibilitas Plugin (Developer Guide)
Informasi kredensial disimpan pada file ~/.project_manager_creds dengan izin akses terbatas (600) untuk keamanan maksimal.
DevMenu mematuhi standar keamanan modern:
- Tidak Ada Eksekusi Kredensial: Berkas kredensial dibaca dan diparsing menggunakan parser kustom berbasis teks murni tanpa memicu
sourceatauevaldi bash shell. - Whitelist Kunci Ketat: Hanya kunci whitelist yang diperbolehkan (
MYSQL_USER,MYSQL_PASS,SUDO_PASS,GITHUB_USER,GITHUB_TOKEN). - Penyensoran Sandi: Semua rahasia disensor sebagai
******** [TERPROTEKSI]secara aman dalam panel peninjauan berkas.env. - Verifikasi Izin: Sistem secara otomatis mendeteksi dan memperbaiki izin akses berkas kredensial yang terlalu longgar ke tingkat akses aman (
600). - Caching Memori Kredensial: Mengurangi I/O disk dengan mekanisme caching global (
_CREDS_LOADED) yang secara cerdas tetap valid di lingkup shell induk dan subshell untuk kinerja optimal. - Perlindungan Terhadap Interupsi (Signal Traps): Pembuatan berkas kredensial sementara (seperti
.cnfMySQL atau config API GitHub) selalu dibungkus dalam subshell dan dilindungi oleh signal traps (EXIT ERR INT TERM), memastikan berkas rahasia selalu terhapus bersih jika skrip dihentikan paksa. - Escaping Karakter Khusus: Mengamankan penulisan kredensial yang mengandung karakter khusus (seperti backslash
\) pada berkas opsi MySQL guna menghindari kerusakan karakter secara diam-diam (silent password corruption). - Eksekusi Perintah Aman: Menggunakan pembungkus perintah (
try_execute_cmd&safe_execute_cmd) berbasis pemetaan argumen/array, menggantikan fungsi lawasevalataubash -cguna meniadakan kerentanan shell/command injection.
Alfan Zaky






