PhpMyAdmin
Database management for Pterodactyl Panel with one-click auto-login.
Features
- Auto-Login: Automatically signs users into phpMyAdmin for their database.
- No Core Edits: Native extension package (
.pteroext) that does not modify core panel files. - Multi-Node Support: Works with local and remote database hosts.
- Secure: Session cookies are isolated and decrypted safely.
- Easy Install: Upload through the panel admin UI or the terminal.
Requirements
| Requirement | Supported Versions |
|---|---|
| Pterodactyl Panel | 2.0.0-dev / 2.0.0-alpha / 2.0.0-beta or newer |
| PHP | 8.3 or newer |
| Database | MySQL 5.7+, MySQL 8.0+, MariaDB 10.3+ |
| Docker | Required to run the phpMyAdmin container |
1. Extension Installation
Option A: Admin Web Interface
- In your panel, go to Admin > Extensions.
- Click Install Extension in the top right.
- Upload
phpmyadmin-1.0.0.pteroext(or.zip). - Enable the extension when prompted.
Option B: Terminal (CLI)
Upload phpmyadmin-1.0.0.pteroext to your panel directory and run:
bash
cd /var/www/pterodactyl
php artisan p:extension:install phpmyadmin-1.0.0.pteroext --enable2. Docker Setup
Automated Setup
Run this command on your panel server:
bash
cd /var/www/pterodactyl
php artisan phpmyadmin:install-dockerINFO
This command automatically deploys the phpmyadmin/phpmyadmin:latest container on port 8085 and sets up routing.
Manual Setup
If you prefer running Docker manually:
bash
docker run -d \
--name pterodactyl-pma \
--restart always \
-p 127.0.0.1:8085:80 \
-e PMA_ARBITRARY=1 \
-e PMA_ABSOLUTE_URI=https://your-panel-domain.com/pma/ \
phpmyadmin/phpmyadmin:latest3. Nginx Reverse Proxy Setup
Add this block inside the HTTPS server { ... } block in /etc/nginx/sites-available/pterodactyl.conf:
nginx
location ^~ /pma/ {
proxy_pass http://127.0.0.1:8085/;
proxy_set_header Host $host;
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 https;
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options "SAMEORIGIN";
}Test and reload Nginx:
bash
nginx -t && systemctl reload nginx4. Panel Configuration
- In your panel, go to Admin > Extensions > phpMyAdmin > Settings.
- Configure phpMyAdmin URL:
- If using reverse proxy: enter
/pma(orhttps://your-domain.com/pma/). - If using a subdomain: enter
https://pma.your-domain.com.
- If using reverse proxy: enter
- Click Save Settings.
5. Database Routing
Database connections are routed automatically:
- Local Databases (
127.0.0.1/localhost): Routed to172.17.0.1so the container can reach your local MySQL server. - Remote Nodes: Connects using the Database Host IP set in Admin > Databases.
- Arbitrary Servers:
PMA_ARBITRARY=1allows one container to handle databases across all nodes.
Troubleshooting
Login button opens the login page instead of auto-logging in
- Make sure your panel uses HTTPS. Session cookies require HTTPS.
- Verify that
proxy_set_header X-Forwarded-Proto https;is in your Nginx config.
Unable to connect to database
- Verify that MySQL accepts connections from the panel server IP (or
172.17.0.1for local databases). - In
/etc/mysql/mariadb.conf.d/50-server.cnf(ormysqld.cnf), ensurebind-addressis set to0.0.0.0or includes the bridge IP.
Permission Denied during upload
Fix file permissions on your panel:
bash
chown -R www-data:www-data /var/www/pterodactyl/extensions /var/www/pterodactyl/storage
chmod -R 775 /var/www/pterodactyl/extensions /var/www/pterodactyl/storageSupport
- Documentation: https://docs.axtonbuilds.xyz/
- Support: Open a ticket on our support portal or Discord.