Self-hosted game server management panel. Terinspirasi dari Pterodactyl, dibangun dari nol pakai Laravel.
Dikembangkan oleh Julak Junior (@Julakk) — dicoding langsung dari HP via Termux. 🐧📱
DockPanel punya 2 komponen terpisah, di repo yang berbeda:
┌───────────────────┐ HTTP + JWT ┌──────────────────────┐
│ PANEL (repo ini) │ ◄─────────────► │ WINGS (daemon Go) │
│ Laravel 11 │ │ Docker control │
│ MySQL + Redis │ │ SFTP + WebSocket │
└───────────────────┘ └──────────────────────┘
- Panel (repo ini): web UI, auth, database user/server/egg, kirim perintah ke node.
- Wings: daemon yang beneran jalan di tiap node/VPS, spawn Docker container per server game. Repo terpisah: Julakk/DockWings — baru skeleton awal (routing, auth middleware, interface Docker stub), implementasi Docker asli masih nunggu VPS buat testing.
| Tabel | Fungsi |
|---|---|
nodes |
Server fisik/VPS yang jalanin Wings |
nests |
Kategori game (Minecraft, SA-MP, FiveM, dst) |
eggs |
Template docker image + startup command per game |
egg_variables |
Variabel yang bisa diisi user per egg (ex: SERVER_JARFILE) |
servers |
Instance server game milik user |
server_variables |
Nilai variable egg yang di-set per server |
allocations |
Kombinasi IP:port yang di-assign ke server |
server_subusers |
Akses terbatas user lain ke satu server |
- 🔐 Auth — login/logout, dashboard, proteksi khusus admin (
root_adminmiddleware) - 🖥️ CRUD Node — kelola VPS/node, auto-generate daemon token
- 🔌 Allocation Management — tambah range IP:port per node (max 100 port sekaligus), assign/lepas dari server
- 🌐 CRUD Nest — kategori game
- 🥚 CRUD Egg — template docker image + startup command, manage variable per egg, import dari JSON kompatibel format Pterodactyl
- 📦 CRUD Server — nyatuin Node + Nest/Egg + Allocation jadi satu instance server, isi variable per server, tombol provisioning ke Wings
- 🎨 Sidebar navigasi ala Pterodactyl — section Basic Administration / Management / Service Management, responsive (collapse jadi hamburger di HP)
- ⚙️ CI otomatis (GitHub Actions) — install dependency, migrate, code style check (Pint), test (PHPUnit) tiap push
Semua fitur di atas 100% bisa dites tanpa VPS — murni Laravel + database, nggak nyentuh Docker sama sekali.
- Login sebagai admin
- Bikin Node (VPS/server fisik)
- Tambah Allocation (IP:port) di halaman detail Node
- Bikin Nest (kategori game) dan Egg (template startup), atau import Egg dari JSON
- Bikin Server — pilih owner, node, egg, allocation, resource limit
- Isi Variable server (mis.
SERVER_JARFILE) - Klik Provision ke Wings — bakal gagal graceful sampai ada VPS dengan Wings aktif
Development flow yang disarankan:
Termux (nulis kode Panel) → git push → GitHub Actions (test otomatis)
│
▼
deploy ke VPS (Wings jalan di sini)
- Skeleton migration + model (nodes, servers, eggs, nests, allocations)
-
WingsService— service class buat komunikasi ke daemon - Auth + role admin/user
- CRUD Node (admin) + Allocation management
- CRUD Egg/Nest + import format JSON (kompatibel format Pterodactyl)
- CRUD Server (admin-facing) + provisioning skeleton
- Redesign UI — sidebar navigasi, status badge, icon SVG, resource bar placeholder
- Skeleton repo
DockWings(Go) -
DockerEnvironmentasli di DockWings — butuh VPS - WebSocket console real-time — butuh VPS
- File manager (proxy ke SFTP Wings) — butuh VPS
- Testing
WingsService↔ DockWings end-to-end — butuh VPS - Billing/expiry integration (opsional, buat dipakai di Ahmad Store)
Mau bantu development DockPanel? Cek CONTRIBUTING.md.
MIT