Automatic Docker Installation
Guide to installing PteroCA using the Docker Automated Installer, which sets up the entire containerized environment — including web server, database, and panel - in one command.
⚠️ This project is currently in an early version (0.x.x) and may contain bugs. Use it at your own risk.
To provide a fully containerized setup experience, we’ve developed a dedicated Docker installer that automatically prepares your server, installs Docker & Compose, clones the PteroCA repository, configures the environment, and launches containers for you — all with minimal input.
Unlike the standard system installer, this method runs PteroCA inside Docker containers, making it ideal for both production and development environments.
1. Execute the Installer
The Docker installer can deploy PteroCA with a single command, handling all dependencies, Docker configuration, and initial startup automatically.
bash -c "$(wget -qO- https://pteroca.com/scripts/docker_installer.sh)"1.1 Using Installer with Custom Parameters
If you prefer to automate Docker deployments — e.g. via CI/CD pipelines, Ansible, or VPS provisioning scripts — the installer supports advanced flags that give full control over the installation process.
2. Automatic Installation Process
Once the script starts, it will:
🧩 Step 1 – Detect Operating System
Automatically identify your OS (Ubuntu, Debian, Rocky, etc.) and verify version compatibility.
🧰 Step 2 – Install Dependencies
If not already present, the installer will automatically:
Install Git
Install Docker Engine and Docker Compose Plugin (v2)
Enable and start the Docker service
📦 Step 3 – Clone the Repository
The script downloads the latest PteroCA source code from
https://github.com/PteroCA-Org/panel
If the repository already exists, it pulls the latest updates instead.
⚙️ Step 4 – Configure Environment
You’ll be prompted (or auto-configured in non-interactive mode) to select:
Environment type: Development (dev) or Production (prod)
Installation directory
Whether to reuse or replace existing
.envconfiguration
🐳 Step 5 – Run Docker Initialization
The script will automatically execute the bundled docker-init.sh, which:
Builds all Docker containers (web, database, phpMyAdmin for dev)
Configures environment variables and credentials
Runs Doctrine migrations and sets up file permissions
Starts all services automatically
🌐 Step 6 – Final Summary
At the end, the script displays:
Access URLs
Database connection info
Useful Docker management commands
Next steps to finalize installation
Example output:
3. Post-Installation Configuration
After containers are started, complete setup using one of the following methods:
🧭 Web Wizard
Visit:
or for production:
💻 CLI Wizard
Run inside the container:
Both methods allow you to set:
PteroCA admin account
Pterodactyl API credentials
Basic panel settings and domain configuration
4. Managing Containers
Stop all containers
docker compose down
View logs
docker compose logs -f
Restart services
docker compose restart
Rebuild stack
docker compose build --no-cache && docker compose up -d
For production:
5. Accessing PteroCA
Development
http://localhost:8000
PteroCA web interface
Production
http://localhost
PteroCA production instance
phpMyAdmin (dev only)
http://localhost:8080
Database management
6. PteroCA Plugin for Pterodactyl
Read more about Pterodactyl Configuration and PteroCA Plugin for Pterodactyl here.
Installing the Pterodactyl plugin is required, and without it, some PteroCA features will not be available. The PteroCA Plugin for Pterodactyl provides functionalities such as access to the server console, editing server variables directly from the server management panel, SSO Login, and more.
7. Cloudflare & CSRF Configuration
If your instance runs behind Cloudflare or any proxy, additional configuration may be required to avoid CSRF and host validation issues.
Follow the instructions here: 👉 Trusted Proxies & Cloudflare Configuration
8. Post-Installation Steps
After completing the Docker installation, configure the following to ensure full functionality:
8.1 Install PteroCA Plugin for Pterodactyl
Required for full integration
The PteroCA Plugin must be installed in your Pterodactyl panel to enable features like:
Server console access
Real-time statistics
Server variable management
SSO authentication
👉 Install PteroCA Plugin for Pterodactyl
8.2 Configure Allowed Origins (Console Access)
For the server console to work properly, you need to configure allowed_origins in your Pterodactyl Wings configuration.
This allows PteroCA to communicate with Pterodactyl Wings for console access and real-time server management.
8.3 Complete System Configuration
Configure your panel settings through the CLI wizard or Admin Panel:
General Settings - Site title, logo, locale
Email Settings - SMTP configuration for notifications
Payment Settings - Stripe integration for payments
Pterodactyl Settings - API connection and SSO setup
👉 View all configuration options
9. Troubleshooting
Docker daemon not running
Docker service inactive
systemctl start docker
Port conflict on 80/8000
Another web server is active
Stop Apache/Nginx or change ports
phpMyAdmin inaccessible
Production mode
Use dev mode (--environment dev)
Permission denied in uploads
Host volume ownership
Run docker compose exec web chown -R www-data:www-data /app/public/uploads
Cloudflare redirect errors
Missing trusted hosts
Adjust TRUSTED_PROXIES and TRUSTED_HOSTS in .env
Last updated