Belajar Linux dan keamanan siber melalui terminal interaktif di browser
Mulai dari perintah dasar Linux, lanjutkan ke investigasi keamanan, dan selesaikan skenario incident response.
LinuxLab Cyber adalah aplikasi latihan Linux dengan alur pembelajaran bertahap. Setiap room menyediakan materi, tugas, petunjuk, dan terminal untuk mempraktikkan perintah secara langsung.
Seluruh latihan berjalan sebagai simulasi di browser. Perintah diproses oleh mesin shell aplikasi dan mengubah keadaan host virtual, tanpa menjalankan perintah pada sistem operasi perangkat atau server.
- Pemula yang ingin memahami perintah dasar Linux.
- Pelajar keamanan siber yang ingin berlatih membaca log dan memeriksa host.
- Pengajar yang membutuhkan latihan bertahap tanpa menyiapkan VM untuk setiap peserta.
- 15 room interaktif dengan 58 tugas praktik.
- Tiga learning path dengan prasyarat untuk membuka room berikutnya.
- Terminal berbasis xterm.js dengan simulasi filesystem, proses, dan jaringan.
- Validasi tugas berdasarkan hasil perubahan host virtual dan riwayat perintah.
- XP, badge, petunjuk, dan indikator progres pembelajaran.
- Progres tersimpan di browser melalui
localStorage. - Ekspor statis untuk deployment melalui GitHub Pages.
- Tema biru tua dan kuning yang seragam dengan Simple Toolkit Pentest, navigasi cepat antarjalur, dan tombol lanjut belajar.
| Learning Path | Jumlah Room | Materi |
|---|---|---|
| Linux Basics | 8 | Navigasi, operasi file, membaca teks, pencarian, permission, proses, pipes, dan identitas sistem. |
| Linux for Cybersecurity | 6 | Hardening, investigasi log, SUID, proses mencurigakan, jaringan, dan persistence. |
| Incident Response | 1 | Skenario gabungan untuk investigasi, containment, dan pencatatan hasil. |
Rincian materi tersedia di Curriculum Map.
Untuk mengakses situs, gunakan browser modern. Untuk menjalankan dan membangun aplikasi secara lokal, siapkan:
- Node.js 22 atau lebih baru dan npm.
- Git untuk mengambil source repository.
git clone https://github.com/cakgup/linuxlab.git
cd linuxlab
npm ci
npm run devBuka http://localhost:3000, lalu pilih Start Linux Basics. Hentikan server dengan Ctrl+C pada terminal.
Tidak diperlukan konfigurasi environment untuk penggunaan lokal. Contoh variabel deployment tersedia di .env.example.
- Pada repository GitHub, buka Settings → Pages → Build and deployment.
- Pilih GitHub Actions sebagai Source.
- Push perubahan ke branch
main, atau jalankan workflow Deploy to GitHub Pages dari tab Actions. - Setelah workflow berhasil, buka LinuxLab Cyber.
Workflow di .github/workflows/pages.yml menginstal dependensi, menjalankan tes simulator, membangun aplikasi, memeriksa tautan dan aset hasil ekspor, lalu menerbitkan folder out ke GitHub Pages. Gunakan Source GitHub Actions, agar deployment tidak bersamaan dengan publikasi langsung dari branch.
Base path diambil otomatis dari konfigurasi Pages. Pada URL repository ini, tautan dan aset menggunakan awalan /linuxlab/. Semua halaman room dibuat saat build agar dapat dibuka langsung dan di-refresh.
Untuk membangun aplikasi pada jalur root:
npm run buildUntuk membangun aplikasi dengan jalur GitHub Pages di PowerShell:
$env:NEXT_PUBLIC_BASE_PATH = "/linuxlab"
npm run build
Remove-Item Env:NEXT_PUBLIC_BASE_PATHHasil build tersedia sebagai file statis di folder out. Sajikan folder tersebut dengan server statis; npm start menggunakan next start, yang tidak mendukung mode ekspor statis ini. Untuk pratinjau build dengan base path /linuxlab, sajikan folder out pada jalur /linuxlab/.
linuxlab/
|-- .github/workflows/pages.yml # Build dan deployment GitHub Pages
|-- app/ # Halaman, layout, dan gaya aplikasi
|-- components/ # Dashboard, room, navigasi, dan terminal
|-- lib/ # Kurikulum, shell, host virtual, dan validator
|-- docs/ # Dokumentasi arsitektur dan pembelajaran
|-- scripts/core-test.cjs # Pengujian simulator dan tugas
|-- next.config.ts # Konfigurasi ekspor statis dan base path
|-- package.json # Dependensi dan perintah proyek
`-- README.md
npm run test:core
npm run build
npm run test:exporttest:core memeriksa skenario perintah dan penyelesaian tugas. build memeriksa kompilasi aplikasi serta pembuatan halaman statis. test:export memeriksa keberadaan halaman, tujuan tautan, dan aset. Jalankan dengan nilai NEXT_PUBLIC_BASE_PATH yang sama dengan saat build.
| Kendala | Pemeriksaan |
|---|---|
| Situs Pages belum tampil | Pastikan Source adalah GitHub Actions dan workflow deployment berhasil. |
| CSS atau JavaScript tidak dimuat | Periksa base path saat build; URL repository ini membutuhkan /linuxlab. |
| URL room menghasilkan 404 | Pastikan artifact yang diterbitkan berasal dari folder out hasil build terbaru. |
| Room masih terkunci | Selesaikan tugas pada room prasyarat terlebih dahulu. |
| Progres berbeda di perangkat lain | Progres tersimpan pada browser dan origin yang digunakan, tanpa sinkronisasi akun. |
- Architecture — struktur aplikasi dan mekanisme simulasi.
- Curriculum Map — materi dan urutan pembelajaran.
- Pro Bash Coverage — cakupan perintah dan batasan shell.
- Roadmap — rencana pengembangan.
Shell simulator mendukung sebagian perintah Linux dan tidak menggantikan lingkungan Bash lengkap. Progres di localStorage ditujukan untuk latihan mandiri. Menghapus data situs atau menggunakan Reset learning progress akan menghapus progres tersimpan.
Proyek ini menggunakan MIT License.
developed with love by cakgup