100% Open Source — Single Binary Go + SvelteKit — Tanpa runtime tambahan Lihat di GitHub
Open Source • Ubuntu 22.04 / 24.04 Go Backend + SvelteKit

Kendalikan VPS
Seperti Seorang
Jenderal Sejati.

Panel kontrol VPS open-source untuk server Ubuntu. Kelola website, database, SSL, Docker, firewall, backup & monitoring lewat GUI web modern — dikemas sebagai satu binary, tanpa runtime tambahan.

9+

Modul Manajemen

63

Permission RBAC

1 binary

Zero dependency

Min. 1 CPU / 1GB RAM / 10GB Butuh akses root SQLite built-in
root@server:~ — instalasi 60 detik

# Quick install Jenderal Panel

$ wget raw.githubusercontent.com/.../scripts/install.sh

$ sudo bash install.sh

OS check: Ubuntu 24.04 LTS

Dependencies: nginx, ufw, sqlite3

User jenderal created

TLS certificate generated

Service started on :8443

╔══ Jenderal Panel Installed! ══╗

Panel URL: https://<SERVER_IP>:8443

Username: admin

NGINX • PHP 8.1 – 8.4 • MYSQL • POSTGRESQL • REDIS • DOCKER & COMPOSE • LET'S ENCRYPT • UFW • FAIL2BAN • CLAMAV • SYSTEMD • WEBSOCKET • SQLITE WAL • ARGON2ID • TOTP 2FA •  NGINX • PHP 8.1 – 8.4 • MYSQL • POSTGRESQL • REDIS • DOCKER & COMPOSE • LET'S ENCRYPT • UFW • FAIL2BAN • CLAMAV • SYSTEMD • WEBSOCKET • SQLITE WAL • ARGON2ID • TOTP 2FA • 

Tanpa Panel

  • Hafal puluhan perintah CLI untuk deploy website
  • Konfigurasi Nginx & SSL manual, rawan salah ketik
  • Tidak ada visibilitas CPU / RAM / disk real-time
  • Backup & perpanjangan sertifikat sering lupa

Dengan Jenderal Panel

  • Provisioning website otomatis (state machine pending → active)
  • Editor config Nginx + validasi & rollback otomatis
  • Dashboard monitoring real-time via WebSocket
  • Backup terjadwal + auto-renewal SSL H-14

Fitur Lengkap

Satu Panel, Semua Kendali Server

Sembilan modul manajemen dalam satu GUI modern. Semua yang biasa Anda kerjakan lewat SSH, kini tinggal klik.

Manajemen Server

Dashboard Real-Time

Monitoring CPU, RAM, disk & network yang di-streaming via WebSocket. Selalu live, tanpa refresh.

Service Manager

Start / stop / restart layanan systemd: Nginx, PHP-FPM, MySQL, PostgreSQL, Redis.

Manajemen Nginx

Editor config dengan validasi + rollback, manajemen site, dan penampil log terintegrasi.

Firewall (UFW)

Kelola rules allow / deny / limit per port & IP, dengan peringatan proteksi SSH.

Process Manager

Daftar proses dengan sortir CPU/RAM, kill proses dengan pilihan signal.

Log Viewer

Baca log statis maupun streaming WebSocket dengan validasi path yang aman.

Manajemen Website

Website CRUD Otomatis

Provisioning otomatis dengan state machine: pending → active / failed.

pendingactive

Isolasi Per Website

Setiap website punya system user, home directory & PHP-FPM pool sendiri.

PHP Multi-Versi

Install & kelola PHP 8.1, 8.2, 8.3, 8.4 dengan pool per site.

8.18.28.38.4

File Manager + Domain

Browse, edit, upload & download (sandboxed) plus domain utama, alias & subdomain. Tipe app: PHP, Static, Laravel (auto-detect).

Deployment Aplikasi

  • Git Deployment — clone/pull, auto-detect tipe app, build steps
  • Laravel — composer install, artisan migrate & cache
  • Node.js — install, systemd unit, reverse proxy Nginx
  • Cron & Queue Worker — cron per user + worker systemd auto-restart

Database

  • MySQL — install, buat/hapus DB, user & privileges
  • PostgreSQL — manajemen penuh via psql / createdb
  • Redis — install, status, info & flush

Backup & Restore

Backup website (tar), database (mysqldump/pg_dump), config — terjadwal via cron dengan retensi + restore sekali klik.

Docker

  • Container: list, start/stop/restart, remove, logs, inspect
  • Images: pull & remove • Volumes & Networks: create & remove
  • Compose: up, down & status langsung dari panel

Monitoring & Alert

Rule CPU, RAM, disk, SSL expiry & service down. Notifikasi Webhook, Telegram, Discord, Email + auto-resolve.

Web Terminal, Self-Update & Mode Gelap/Terang

Eksekusi perintah via WebSocket (khusus admin), update sekali klik dari GitHub releases, dan tema yang mengikuti perangkat + toggle manual.

Coba Sekarang

SSL & Keamanan

Security Center: Berlapis, Aman, Bisa Rollback

Keamanan bukan tempelan. Setiap operasi istimewa berjalan lewat sudo whitelist dengan argumen terpisah — tanpa sh -c, tanpa injeksi shell.

Let's Encrypt Otomatis

Issue / renew / revoke via lego (ACME). Worker latar memperpanjang H-14 sebelum kedaluwarsa.

Security Center

Ringkasan postur terpadu, event persisten & panduan pemulihan yang actionable.

Fail2ban Safe Mode

Install eksplisit, config milik panel tervalidasi, ban temporer & rollback saat gagal.

Malware Scanner

ClamAV mode hemat memori / daemon, scan terjadwal, karantina privat & review false-positive via hash.

Traffic Guard

Bukti anomali HTTP per website, profil trusted proxy, Observe Mode 24 jam & limit Nginx terbatas.

Auth & Audit

2FA/TOTP, API token Bearer, RBAC 63 permission, CSRF double-submit, rate limit & audit log lengkap.

// Safe Setup & Posture — read-only checks

UFW status✓ active
AppArmor✓ enforced
SSH root-login✓ disabled
Nginx config✓ valid
Security updates! 3 pending
Panduan Operasi Ubuntu 24.04 (Safe-mode, verifikasi, recovery lockout)

# Contoh sudoers whitelist — hanya perintah predefinisi

jenderal ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart *

jenderal ALL=(ALL) NOPASSWD: /usr/sbin/ufw *

jenderal ALL=(ALL) NOPASSWD: /usr/bin/nginx -t

# Tidak ada sh -c → tidak ada injeksi shell ✓

Arsitektur

Satu Binary, Nol Drama

Frontend SvelteKit di-embed ke binary Go via go:embed. State internal di SQLite (WAL). Tanpa Docker, tanpa runtime Node di server.

jenderal — single binary

SvelteKit UI (embedded via go:embed)

Chi HTTP Router

Session Auth + CSRF + RBAC

Service Layer (Go)

website • nginx • php • ssl • firewall • docker • backup …

Command Executor

sudo whitelist, tanpa sh -c

SQLite (WAL)

internal state

Linux System

systemd, ufw, nginx …

Single Binary

Frontend embedded, tidak butuh runtime eksternal.

SQLite Zero-Config

Database internal panel, langsung jalan.

Sudo Whitelist

Operasi privileged hanya via /etc/sudoers.d/jenderal.

Anti Injeksi

Semua perintah memakai argumen terpisah via os/exec.

Instalasi

Online dalam Hitungan Menit

Syarat: Ubuntu 22.04 / 24.04 LTS • 1 CPU • 1 GB RAM • 10 GB disk • akses root.

quick install

Opsi 1 — Download lalu jalankan

wget https://raw.githubusercontent.com/mohammadirham37/jenderal_panel/main/scripts/install.sh
sudo bash install.sh

Opsi 2 — One-liner

wget https://raw.githubusercontent.com/.../scripts/install.sh && sudo bash install.sh

Opsi 3 — Non-interaktif

sudo bash install.sh \
  --hostname panel.example.com \
  --email admin@example.com \
  --password MySecurePass123 \
  --port 8443 --force

bash install.sh --help # lihat semua opsi

Apa yang dilakukan installer?

  1. 1Cek OS, arsitektur & resource
  2. 2Install dependensi (curl, nginx, ufw, openssl, sqlite3)
  3. 3Buat system user jenderal
  4. 4Download binary dari GitHub releases / build dari source
  5. 5Generate TLS self-signed + tulis /etc/jenderal/jenderal.yaml
  6. 6Konfigurasi sudoers, migrasi DB, buat admin
  7. Install & start systemd service + firewall UFW

Setelah instalasi:

Panel URL: https://<SERVER_IP>:8443

Username: admin • Password: (generated/diisi)

Instalasi Manual (Build dari Source)

1. Build dari source
git clone https://github.com/mohammadirham37/jenderal_panel.git
cd jenderal_panel
make build # butuh Go 1.23+, Node 18+, npm
2. Install di server
sudo useradd --system --no-create-home --shell /usr/sbin/nologin jenderal
sudo cp /tmp/jenderal /opt/jenderal/jenderal && sudo chmod +x /opt/jenderal/jenderal
sudo /opt/jenderal/jenderal migrate --config /etc/jenderal/jenderal.yaml
sudo /opt/jenderal/jenderal admin create --config /etc/jenderal/jenderal.yaml
sudo systemctl enable jenderal && sudo systemctl start jenderal
3. CLI yang tersedia
jenderal serve # jalankan HTTP server
jenderal migrate # migrasi database
jenderal admin create # buat admin
jenderal version • jenderal restart
sudo /opt/jenderal/jenderal restart # via SSH (root)

Konfigurasi & Development

server:
  host: "0.0.0.0"
  port: 8443
database:
  path: "/var/lib/jenderal/jenderal.db"
auth:
  session_ttl: "24h"
logging:
  level: "info"

File: /etc/jenderal/jenderal.yaml • Override via env JENDERAL_* (cth: JENDERAL_SERVER_PORT=9443)

make dev make test make lint make build

Prasyarat dev: Go 1.23+, Node.js 18+, npm, gcc (CGO/SQLite). Struktur: cmd/ • internal/ (20+ service) • web/ • scripts/ • systemd/ • configs/

Tech Stack

Dibangun dengan Teknologi Modern

Backend — Go 1.23+

Chi router SQLite WAL (mattn/go-sqlite3) gorilla/websocket lego ACME pquerna/otp TOTP argon2id log/slog JSON

Frontend — SvelteKit + Svelte 5

TypeScript Tailwind CSS v4 (dark) adapter-static go:embed binary

API & Real-Time

REST + WebSocket Siap Integrasi

Semua endpoint di bawah /api/v1/. Autentikasi via cookie sesi atau header Authorization: Bearer <token>.

  • WS/ws/metrics — metrik server real-time
  • WS/ws/logs?path=… — streaming log
  • WS/ws/terminal — eksekusi perintah (admin)

// Response sukses

{"data": {...}, "meta": {"page": 1, "per_page": 20}}

// Response error

{"error": {"code": "VALIDATION_ERROR",
  "message": "domain is required"}}

// Auth header

Authorization: Bearer <api-token>

FAQ

Pertanyaan Umum

Apakah Jenderal Panel gratis?

Ya, 100% open-source. Lisensi detail masih TBD — kontribusi via issue GitHub sangat diterima.

OS apa yang didukung?

Ubuntu 22.04 LTS dan 24.04 LTS dengan akses root. Kebutuhan minimum: 1 CPU, 1 GB RAM, 10 GB disk.

Apakah aman untuk production?

Dirancang aman: tanpa shell injection, sudo whitelist, path sandboxing, RBAC 63 permission, session HttpOnly+Secure+SameSite=Strict, CSRF double-submit, rate limiting, audit log, hashing Argon2id, dan 2FA/TOTP opsional.

Bagaimana SSL & backup bekerja?

SSL Let's Encrypt diterbitkan via ACME (lego) dan diperpanjang otomatis H-14. Backup mencakup website, database & config, terjadwal via cron dengan kebijakan retensi dan restore sekali klik.

Apakah perlu Docker / Node di server?

Tidak. Panel dikirim sebagai satu binary (frontend SvelteKit sudah di-embed). Docker hanya opsional jika Anda ingin mengelolanya lewat modul Docker.

Jenderal Panel logo

Siap Memimpin Server Anda?

Install dalam satu perintah, akses via https://<IP>:8443, dan kelola semuanya dari browser.

Kontribusi diterima — buka issue dulu untuk diskusi perubahan.