🐦 The best way to install Pelican Panel & Wings — better than pterodactyl-installer.se
NEW — Every /installer wizard field is now a CLI flag: --cache-driver (file|redis) --redis-host, --redis-port, --redis-user, --redis-password --session-driver (file|database|cookie|redis) --queue-driver (database|redis|sync) --app-name --admin-email, --admin-user, --admin-pass (skip web installer entirely) NEW — Redis auto-install: When cache/session/queue uses redis + host is localhost → installs redis-server Configures redis password if provided Installs php-redis extension alongside other PHP extensions NEW — Wings reverse proxy for all 3 web servers: --wings-domain, --wings-port, --wings-proxy, --wings-ssl Nginx: full config with websocket upgrade for console/file manager Apache: mod_proxy + mod_proxy_wstunnel + RewriteEngine for WS Caddy: reverse_proxy with flush_interval -1 for websockets SSL certs obtained for both panel + wings domains in one pass Post-install instructions tell user to set api.ssl.enabled: false NEW — Admin user auto-creation: If --admin-email/user/pass are all set, creates user via artisan tinker Sets APP_INSTALLED=true so /installer redirects to dashboard Shows admin credentials in green box IMPROVED — Interactive menus now ask for all options: App name, cache driver, session driver, queue driver Redis connection details when redis is selected Wings proxy setup during wings install Admin user creation (optional, can still use web installer) Health checks now verify: CACHE_STORE, SESSION_DRIVER, QUEUE_CONNECTION in .env Health checks now verify: Redis running (when redis driver selected) |
||
|---|---|---|
| install.sh | ||
| README.md | ||
🐦 Pelican Installer
The best way to install Pelican Panel & Wings — one script, fully automated, production-ready.
Quick Start
# Interactive install (asks you everything)
sudo bash <(curl -sSL https://raw.githubusercontent.com/everestmcarthur/pelican-installer/main/install.sh)
# Or download first
curl -sSL -o install.sh https://raw.githubusercontent.com/everestmcarthur/pelican-installer/main/install.sh
sudo bash install.sh
Automated Install (No Prompts)
# Panel with Nginx + PostgreSQL + SSL
sudo bash install.sh install --panel \
--domain panel.example.com \
--webserver nginx \
--database postgres \
--ssl --email admin@example.com \
--timezone America/New_York \
-y
# Wings only
sudo bash install.sh install --wings -y
# Panel + Wings on same machine
sudo bash install.sh install --both \
--domain panel.example.com \
--webserver caddy \
--database postgres \
-y
All CLI Flags
| Flag | Description | Default |
|---|---|---|
install / update / uninstall |
Action to perform | install |
--panel |
Install/update Panel | — |
--wings |
Install/update Wings | — |
--both |
Install/update Panel + Wings | — |
--domain FQDN |
Panel domain name | (asked) |
--webserver WS |
nginx, apache, or caddy |
(asked) |
--database DB |
sqlite, mysql, mariadb, or postgres |
(asked) |
--db-host HOST |
Database host | 127.0.0.1 |
--db-port PORT |
Database port | auto from DB type |
--db-name NAME |
Database name | pelican |
--db-user USER |
Database user | pelican |
--db-password PASS |
Database password | auto-generated |
--ssl |
Enable SSL via Let's Encrypt | (asked) |
--no-ssl |
Disable SSL | — |
--email EMAIL |
Email for Let's Encrypt | (asked if --ssl) |
--timezone TZ |
Server timezone | UTC |
--yes, -y |
Skip all confirmation prompts | false |
Environment Variables
Every flag can also be set via environment variable:
export FQDN="panel.example.com"
export WEBSERVER="nginx"
export DB_CHOICE="postgres"
export DB_PASSWORD="my_secure_password"
export CONFIGURE_SSL=true
export EMAIL="admin@example.com"
export ASSUME_YES=true
sudo -E bash install.sh install --panel
Features
| Feature | This Installer | pterodactyl-installer.se |
|---|---|---|
| Pelican Panel support | ✅ | ❌ (Pterodactyl only) |
| Full CLI flags (automated installs) | ✅ | ❌ |
| Environment variable config | ✅ | ❌ |
| Nginx | ✅ | ✅ |
| Apache | ✅ | ✅ |
| Caddy (auto-SSL) | ✅ | ❌ |
| SQLite | ✅ | ❌ |
| MySQL | ✅ | ✅ |
| MariaDB | ✅ | ✅ |
| PostgreSQL | ✅ | ❌ |
Auto-configures .env |
✅ | ❌ |
| Runs database migrations | ✅ | ❌ |
PostgreSQL pg_hba.conf auth |
✅ | ❌ |
Writes DB password to .env |
✅ | ❌ |
| Let's Encrypt SSL | ✅ | ✅ |
| Post-install health checks | ✅ | ❌ |
| HTTP connectivity check | ✅ | ❌ |
| Queue worker systemd service | ✅ | ❌ |
| Cron auto-setup | ✅ | ❌ |
| Step-by-step progress (X/Y) | ✅ | ❌ |
| Update command | ✅ | ❌ |
| Uninstall command | ✅ | ❌ |
| ARM64 support | ✅ | ❌ |
| Comprehensive logging | ✅ | ❌ |
| Single script (no deps) | ✅ | ✅ |
Update & Uninstall
# Update panel
sudo bash install.sh update --panel
# Update wings
sudo bash install.sh update --wings
# Update both
sudo bash install.sh update --both -y
# Uninstall (interactive)
sudo bash install.sh uninstall
Supported Systems
| OS | Versions |
|---|---|
| Ubuntu | 22.04, 24.04 |
| Debian | 11, 12 |
| AlmaLinux | 8, 9 |
| Rocky Linux | 8, 9 |
| CentOS Stream | 9 |
Both x86_64 and ARM64 architectures supported.
Logs
All installer output is logged to /var/log/pelican-installer.log.
tail -f /var/log/pelican-installer.log
License
GPL-3.0 — See LICENSE