A powerful and lightweight Virtual Private Server (VPS) egg for Pterodactyl Panel
Supporting multiple architectures and 20+ Linux distributions
π Quick Start β’ π§ Commands β’ π SSH Setup β’ π₯οΈ GUI/VNC Setup β’ π€ Contributing
- π Easy Deployment - One-click installation and setup
- π§ Customizable - Flexible configurations for various use cases
- ποΈ Multi-Architecture - Support for AMD64, ARM64, and RISCV64
- π§ 20+ Linux Distros - Wide range of operating systems supported
- π Port Management - TCP/UDP support with dynamic port mapping
- π₯οΈ GUI/Remote Desktop - VNC server with browser access via noVNC
| Architecture | Status | Notes |
|---|---|---|
| amd64 | β Full Support | Recommended for most users |
| arm64 | β Full Support | Ideal for ARM-based servers |
| riscv64 | β Full Support | Ideal for RISCV-based servers |
Note
This egg supports most rootfs images for the riscv64 architecture, including native support for Chimera Linux.
Rocky Linux
AlmaLinux
CentOS
Oracle Linux
Ubuntu
Debian
Kali Linux
Devuan Linux
Alpine Linux
Arch Linux
Gentoo Linux
Void Linux
Slackware Linux
openSUSE
Fedora
Chimera Linux
Amazon Linux
Plamo Linux
Linux Mint
Alt Linux
Funtoo Linux
openEuler
Springdale Linux
-
Download the Egg
- Download the
egg-vps.jsonconfiguration file from this repository.
- Download the
-
Import to Pterodactyl
- Navigate to your Pterodactyl Admin Panel
- Go to Nests > Import Egg
- Upload the
egg-vps.jsonfile - Configure the egg settings as needed
-
Deploy Your VPS
- Create a new server using the VPS egg
- Configure system resources (RAM, CPU, Disk, etc.)
- Start your instance
Once your VPS is running:
- Access the Console - Use the Pterodactyl web console to interact with your VPS
- Run
help- View all available custom commands - Customize Settings - Configure your environment as needed
The VPS egg includes several built-in commands to help you manage your server:
| Command | Description | Usage |
|---|---|---|
help |
Display available commands | help |
clear / cls |
Clear the screen | clear or cls |
exit |
Shutdown the server | exit |
history |
Show command history | history |
reinstall |
Reinstall the operating system | reinstall |
install-ssh |
Install the custom SSH server | install-ssh |
status |
Show system status information | status |
backup |
Create a system backup | backup |
restore |
Restore a system backup | restore <backup_file> |
install-gui |
Install desktop environment + VNC server | install-gui |
start-vnc |
Start the VNC server | start-vnc |
stop-vnc |
Stop the VNC server | stop-vnc |
start-novnc |
Start noVNC for browser access | start-novnc |
stop-novnc |
Stop noVNC | stop-novnc |
start-tunnel |
Start Cloudflare tunnel (public URL) | start-tunnel |
stop-tunnel |
Stop Cloudflare tunnel | stop-tunnel |
gui-status |
Show GUI server status | gui-status |
Note
All commands are available immediately after the server starts. Use help to view this list anytime.
Warning
The reinstall command will completely wipe all data on the server. Use with caution.
- After installing the desired distro, use the
install-sshcommand to install our custom SSH server.
The configuration file is located at /ssh_config.yml and supports the following options:
| Option | Description | Default |
|---|---|---|
port |
Port number for SSH server | 2222 |
user |
Username for SSH authentication | root |
password |
Password for SSH authentication (supports plain text, bcrypt hash, or argon2 hash) | password |
timeout |
Connection timeout in seconds (comment out or set to 0 to disable) | 300 |
| Option | Description | Default |
|---|---|---|
enable |
Enable or disable SFTP support | true |
Note
The timeout setting is optional and can be omitted from the configuration.
Warning
The default password "password" is insecure and MUST be changed immediately after installation for security reasons.
Here is an example configuration file:
ssh:
port: "2222"
user: "root"
password: "password"
# timeout: 30
sftp:
enable: trueThe VPS egg supports full GUI/remote desktop functionality with VNC server and browser-based access via noVNC.
- After installing the desired distro, use the
install-guicommand to install a desktop environment and VNC server.
| Desktop Environment | Description | Approximate Size |
|---|---|---|
| XFCE4 | Lightweight and full-featured | ~200MB |
| LXDE | Very lightweight | ~100MB |
| LXQt | Modern lightweight Qt-based | ~150MB |
| MATE | Traditional desktop experience | ~300MB |
| Distribution | Status |
|---|---|
| Debian/Ubuntu/Kali/Devuan/Linux Mint | β Full Support |
| Alpine/Chimera | β Full Support |
| Arch Linux | β Full Support |
| Fedora | β Full Support |
| Void Linux | β Full Support |
| CentOS/Rocky/AlmaLinux/Oracle Linux | β Not Supported |
| openSUSE | β Not Supported |
The configuration file is located at /gui_config.yml and is automatically created during installation:
| Option | Description | Default |
|---|---|---|
environment |
Selected desktop environment | User selected |
startup_command |
Command to start the DE | Auto-detected |
| Option | Description | Default |
|---|---|---|
port |
Port number for VNC server | 5901 |
password |
Password for VNC authentication | User defined |
resolution |
Screen resolution | 1280x720 |
depth |
Color depth | 24 |
| Option | Description | Default |
|---|---|---|
enable |
Enable noVNC web access | true |
port |
Port number for noVNC web interface | 6080 |
Note
Remember to configure the VNC and noVNC ports in your Pterodactyl panel allocations!
Warning
The default VNC password should be changed immediately after installation for security reasons.
Here is an example configuration file:
desktop:
environment: "xfce4"
startup_command: "startxfce4"
vnc:
port: "5901"
password: "your_secure_password"
resolution: "1280x720"
depth: "24"
novnc:
enable: true
port: "6080"- Via VNC Client: Connect to
<server-ip>:<vnc_port>using any VNC client - Via Browser (noVNC): Navigate to
http://<server-ip>:<novnc_port>in your web browser - Via Cloudflare Tunnel: Use
start-tunnelfor a public URL (useful when behind NAT)
Contributions are welcome! If you have any suggestions, improvements, or bug fixes, feel free to submit a pull request or open an issue.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open-source and available under the MIT License. See the LICENSE file for more details.