The all-in-one dashboard built from the legacy of Heliactyl. A high performance user interface, full built-in panel for managing servers, coins system, resources store and more.
Before deploying Prism, you must configure each node's Wings configuration!
- On each node, edit the Wings configuration file (usually at
/etc/pterodactyl/config.yml
) - Locate the
allowed-origins
section - Change:
to either:
allowed-origins: []
or:allowed-origins: ['*'] # recommended for simplicity
allowed-origins: ['https://your-dashboard-domain.com'] # more restrictive option
If you don't do this, Prism can't communicate with your nodes.
- Modern, responsive user interface
- Built-in panel, goodbye Pterodactyl
- Integrated coins/credits system
- User/password authentication
- Resource allocation system
- Real-time stats and charts
- Support tickets (pending reimplementation)
- Admin area with users, nodes and more
- Bun v1.1.42 or higher
- Node.js v18+ (for frontend only, backend runs on Bun)
- Redis
- Nginx
- SSL certificate (recommended)
- Install Redis:
# For Ubuntu/Debian
sudo apt update
sudo apt install redis-server
# For CentOS/RHEL
sudo dnf install epel-release
sudo dnf install redis
# Start and enable Redis
sudo systemctl start redis
sudo systemctl enable redis
- Install Bun:
# Install Bun
curl -fsSL https://bun.sh/install | bash
# Install Node.js
# This depends on your system, find how to via https://nodejs.org
# Upgrade to Bun Canary (important!)
bun upgrade --canary
# Reload shell configuration to use Bun
source ~/.bashrc
- Clone the repository:
git clone https://github.com/PrismFOSS/Prism
cd Prism
- Install dependencies:
bun install
- Create configuration file:
cp example_config.toml config.toml
-
Configure your
config.toml
file -
Build & Start Prism:
cd app
npm install
npm run build
cd ../
bun run app.js
This is required to host Prism on a public URL.
server {
listen 80;
listen [::]:80;
server_name dashboard.yourdomain.com;
# Redirect HTTP to HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name dashboard.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# SSL configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# HSTS (uncomment if you're using HTTPS)
# add_header Strict-Transport-Security "max-age=63072000" always;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# WebSocket support
location /ws {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket specific settings
proxy_read_timeout 86400; # Prevents timeout for long-lived connections
proxy_send_timeout 86400; # Prevents timeout for long-lived connections
proxy_buffering off; # Disable buffering for real-time communication
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
# Optimize SSL
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
}
This project is licensed under the Prism Public Use License - see the LICENSE file for details.
For support, please open an issue on the GitHub repository or join our Discord community.
To report security vulnerabilities, please email security@xeh.sh