https://github.com/2hoch1/pterodactyl-installer
Automated installer for Pterodactyl Panel and Wings.
https://github.com/2hoch1/pterodactyl-installer
installer pterodactyl pterodactyl-api pterodactyl-panel
Last synced: about 1 month ago
JSON representation
Automated installer for Pterodactyl Panel and Wings.
- Host: GitHub
- URL: https://github.com/2hoch1/pterodactyl-installer
- Owner: 2hoch1
- License: mit
- Created: 2026-05-15T10:47:30.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-24T21:34:51.000Z (about 2 months ago)
- Last Synced: 2026-05-24T23:25:26.166Z (about 2 months ago)
- Topics: installer, pterodactyl, pterodactyl-api, pterodactyl-panel
- Language: Shell
- Homepage: https://pterodactyl.2hoch1.dev/get.sh
- Size: 57.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pterodactyl Installer
Automated installer for [Pterodactyl Panel](https://pterodactyl.io) and Wings.
## Supported operating systems
| OS | Version |
| ------ | ----------------------------------------- |
| Debian | 11 (Bullseye), 12 (Bookworm), 13 (Trixie) |
| Ubuntu | 22.04 (Jammy), 24.04 (Noble) |
## Requirements
- **Access:** Root
- **DNS:** Panel domain (and Wings FQDN if used) must point to the server IP before running
- **Ports:** 80 and 443 open
## Install
```bash
curl -sSL pterodactyl.2hoch1.dev/get.sh | sudo bash
```
Or directly from GitHub without the custom domain:
```bash
curl -sSL https://raw.githubusercontent.com/2hoch1/pterodactyl-installer/main/get.sh | sudo bash
```
Both commands run the same `get.sh` script which auto-detects the CPU architecture (amd64 or arm64), verifies the SHA256 checksum of the binary, and then runs it.
## Non-interactive install
Pass `--yes` (or `-y`) to skip all prompts and read config from environment variables. Useful for CI pipelines and automated provisioning.
```bash
PANEL_DOMAIN=panel.example.com \
LE_EMAIL=you@example.com \
curl -sSL pterodactyl.2hoch1.dev/get.sh | sudo bash -s -- --yes
```
| Variable | Required | Default | Description |
| -------------- | -------- | --------------- | ------------------------------------- |
| `PANEL_DOMAIN` | Yes | - | Panel domain (no `https://`) |
| `LE_EMAIL` | Yes | - | Let's Encrypt email |
| `DB_PASSWORD` | No | auto-generated | MariaDB password |
| `TIMEZONE` | No | `Europe/Berlin` | PHP timezone identifier |
| `WINGS_DOMAIN` | No | server hostname | Wings FQDN; omit to use `hostname -f` |
| `NO_WINGS` | No | - | Set to `1` to skip Wings installation |
## What gets installed
| Component | Details |
| --------- | -------------------------------------------------------------- |
| PHP 8.3 | Sury repo (Debian), Ondrej PPA (Ubuntu 22), native (Ubuntu 24) |
| MariaDB | Panel database |
| Redis | Cache, session, queue |
| NGINX | Webserver with TLS |
| Certbot | Let's Encrypt SSL |
| Composer | PHP dependency manager |
| Docker | Required for Wings |
| Wings | Pterodactyl node daemon (optional) |
## Prompts
| Prompt | Default | Notes |
| ------------------- | --------------- | ------------------------------- |
| Operating system | auto-detected | Debian 11/12/13 or Ubuntu 22/24 |
| Panel domain | - | Must have DNS pointed here |
| Wings FQDN | server hostname | This node, custom FQDN, or skip |
| MariaDB password | auto-generated | Shown before prompt |
| Let's Encrypt email | - | Required for SSL cert |
| Timezone | `Europe/Berlin` | PHP timezone identifier |
| Admin user(s) | optional | Create one or more, or skip |
## After install
The installer automatically creates the Wings node via the panel API and starts the Wings service. If automatic configuration fails for any reason, the installer prints manual fallback instructions:
1. Log into the panel and go to **Admin > Nodes > Create New**
2. Set the FQDN to the Wings hostname, enable SSL
3. On the node's **Configuration** tab, generate a token and run it on the server
4. Start Wings: `sudo systemctl enable --now wings`
# Notice
This CLI tool contains a few vibe‑coded sections. Please use it at your own risk until the full rewrite is finished.