HexTyl adalah panel berbasis Pterodactyl yang difokuskan untuk operasi aman (security-first), termasuk hardening API, root application API, anti-DDoS baseline, dan alur IDE gateway.
- Last verified: 2026-02-28
- Source of truth untuk installer:
setup.sh --help - Jika ada selisih antara README dan script, ikuti output
setup.sh --help
- OS: Ubuntu 22.04 / 24.04
- PHP: 8.2+ (project saat ini memakai Laravel 11)
- Node.js: 22+ (lihat
package.json) - Akses root/sudo
- Domain yang mengarah ke server
- Port publik minimal:
80,443
sudo bash setup.sh \
--domain panel.example.com \
--db-name hextyl \
--db-user hextyl \
--db-pass 'STRONG_DB_PASS' \
--ssl y \
--email admin@example.com \
--strict-options ysudo bash setup.shKalau kamu tidak mau full-stack install, komponen bisa dipasang terpisah.
sudo bash setup.sh \
--domain panel.example.com \
--db-name hextyl \
--db-user hextyl \
--db-pass 'STRONG_DB_PASS' \
--build-frontend n \
--install-wings y \
--install-antiddos n \
--install-waf n \
--install-flood-guard n \
--install-pressure-guard n \
--install-ide-wings n \
--install-ide-gateway nsudo bash setup.sh \
--domain panel.example.com \
--db-name hextyl \
--db-user hextyl \
--db-pass 'STRONG_DB_PASS' \
--install-wings y \
--install-ide-wings y \
--install-ide-gateway nGunakan script dedicated:
sudo bash scripts/install_ide_gateway.sh \
--ide-domain ide.example.com \
--panel-url https://panel.example.com \
--root-api-token PTLR_xxxOpsional auto-generate token dari panel lokal:
sudo bash scripts/install_ide_gateway.sh \
--ide-domain ide.example.com \
--panel-url https://panel.example.com \
--auto-ptlr y \
--panel-app-dir /var/www/pterodactylJalankan
sudo bash setup.sh --helpuntuk daftar lengkap terbaru.
--app-dir <path>lokasi install panel--domain <fqdn>domain panel--db-name <name>nama database--db-user <user>user database--db-pass <pass>password database--ssl <y|n>aktifkan certbot/HTTPS--email <email>email certbot--build-frontend <y|n>build asset frontend
--install-wings <y|n>install Docker + Wings--install-antiddos <y|n>baseline anti-DDoS (nginx + fail2ban)--install-waf <y|n>ModSecurity + OWASP CRS--install-flood-guard <y|n>flood detector + auto-ban--install-pressure-guard <y|n>CPU/RAM pressure guard
--install-ide-wings <y|n>enable Wings-native IDE flow--install-ide-gateway <y|n>install IDE gateway service--ide-domain <fqdn|url>domain IDE gateway--auto-ptlr <y|n>auto-generate PTLR token untuk IDE gateway--ide-root-api-token <token>gunakan token root API existing--ide-node-map <pairs>mapping node ke URL IDE--ide-node-port <port>default18080(8080/2022 reserved)
--behind-proxy <y|n>jika panel di belakang proxy/CDN--panel-origin <fqdn|url>origin domain untuk wings/internal traffic--nginx-site-name <name>nama file site nginx--strict-options <y|n>fail jika ada opsi tidak dikenal
sudo systemctl status nginx php8.3-fpm mariadb redis-serversudo systemctl status wings
docker infophp artisan route:list --path=api/rootapplication
php artisan route:list --path=root
php artisan route:list --path=admin/api/root- Binary:
/usr/local/bin/wings - Config:
/etc/pterodactyl/config.yml - Service:
wings
sudo systemctl status wings
sudo test -f /etc/pterodactyl/config.yml && echo "config ok" || echo "config missing"
docker info- Buat node dari panel.
- Ambil generated config Wings dari panel.
- Simpan ke
/etc/pterodactyl/config.yml. - Jalankan:
sudo systemctl restart wingsGunakan flag ini saat setup.sh:
--wings-panel-url <url>--wings-node-id <id>--wings-node-ids <csv>untuk multi node, contoh1,2,3--wings-api-token <token>--wings-auto-token <y|n>auto-generate Application API token bootstrap--wings-allow-insecure <y|n>
Jika --wings-node-ids berisi lebih dari satu ID, installer akan:
- bootstrap node pertama di host saat ini
- generate helper script
/root/.hextyl/wings_multi_node_bootstrap.shuntuk node lainnya
HexTyl punya 2 bagian IDE:
- IDE Wings: menjalankan
code-serverper node. - IDE Gateway: endpoint validasi/session untuk panel.
- Root role: bisa akses
/root/*, ubah setting root security, dan kelola root account. - Admin role: akses
/admin/*sesuai scope (mis.user.read,server.update), tidak bisa root-only settings. - User role: hanya client panel, tidak punya akses admin/root.
- PTLR (Root Application API token): dipakai server-to-server/automation (mis. installer IDE gateway), bukan dipakai browser user.
- IDE session token: token sementara per launch IDE dari panel (mengikuti
IDE Session TTL), ini yang dipakai URL IDE user.
- code-server service:
hextyl-code-server - default port node IDE:
18080 - port
8080dan2022reserved (tidak dipakai untuk IDE)
sudo systemctl status hextyl-code-server
ss -ltnp | rg 18080sudo systemctl status nginx
sudo nginx -tJika auto-generate token aktif (--auto-ptlr y), token root API untuk gateway disimpan di:
/root/.hextyl/ide_root_api_token
--install-ide-wings <y|n>--install-ide-gateway <y|n>--ide-domain <fqdn|url>--ide-root-api-token <token>--ide-code-server-url <url>--ide-node-map <pairs>--ide-auto-node-fqdn <y|n>--ide-node-scheme <http|https>--ide-node-port <port>
sudo bash scripts/set_antiddos_profile.sh normal /var/www/HexTyl
sudo bash scripts/set_antiddos_profile.sh elevated /var/www/HexTyl
sudo DDOS_WHITELIST_IPS="YOUR.IP/32,127.0.0.1,::1" bash scripts/set_antiddos_profile.sh under_attack /var/www/HexTylphp artisan security:ddos-profile normal
php artisan security:ddos-profile elevated
php artisan security:ddos-profile under_attackEndpoint:
POST /api/rootapplication/security/settings
Contoh key:
ddos_lockdown_modeddos_whitelist_ipsddos_rate_web_per_minuteddos_rate_api_per_minuteddos_rate_login_per_minuteddos_rate_write_per_minuteddos_burst_threshold_10sddos_temp_block_minutes
- Docs UI:
/doc,/documentation - Root panel:
/root - Root API key management:
/admin/api/root - Root application API:
/api/rootapplication/*
cp .env.example .env
composer install
yarn install
php artisan key:generate
php artisan migrate --seed
yarn run build:production
php artisan serveUntuk frontend build detail: lihat BUILDING.md.
php artisan optimize:clear
php artisan view:clearphp artisan migrate --forceyarn install
yarn run build:productionsudo nginx -t
sudo systemctl restart nginxsudo journalctl -u wings -n 200 --no-pager
sudo journalctl -u hextyl-code-server -n 200 --no-pager
sudo systemctl restart wings
sudo systemctl restart hextyl-code-serverLihat CONTRIBUTING.md.
Lihat SECURITY.md.
Lihat SUPPORT.md.
Built on top of Pterodactyl Panel.
Lihat LICENSE.