An open API service indexing awesome lists of open source software.

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.

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.