# FAQ

### **1. How does PteroCA work?**

PteroCA (short for **Pterodactyl Client Area**) is a standalone hosting management panel that connects directly to your **Pterodactyl panel** through its API.\
It acts as the **frontend system for your clients** — handling registration, authentication, server rental, payments, and automated provisioning.

The workflow looks like this:

1. A customer visits your website and selects a product or server plan.
2. PteroCA automatically creates a matching user account in Pterodactyl.
3. When the customer completes payment, PteroCA creates the server in Pterodactyl and links it to their account.
4. The customer then manages their server entirely **through the PteroCA panel** (start, stop, reinstall, console, etc.).

If the customer doesn’t renew on time, PteroCA automatically suspends and later deletes the server according to your billing settings.

***

### 2. What does the name “PteroCA” mean?

The name **PteroCA** comes from:

* **“Ptero”** → referring to **Pterodactyl**, the open-source game server management panel that PteroCA integrates with.
* **“CA”** → meaning **Client Area**, the interface where your customers manage their services.

So, **PteroCA = Pterodactyl Client Area** — a bridge between your users and your Pterodactyl infrastructure.

***

### 3. Does it handle user management, payments, and automatic server allocation?

Yes — that’s exactly what PteroCA is built for.\
It acts as the **user system**, **billing system**, and **server provisioning layer** on top of Pterodactyl.

In other words:

* It replaces the need for a separate billing or client panel (like WHMCS or Blesta).
* It automatically manages user accounts and server creation in Pterodactyl.
* It handles payments and renewals based on your pricing configuration.

Think of PteroCA as the **“CtrlPanel++”** style system — but fully open-source, Symfony-based, and integrated directly with your Pterodactyl setup.

***

### 4. What payment methods are supported?

PteroCA natively supports **Stripe** for payments and renewals.\
Customers can pay using credit/debit cards, Apple Pay, or Google Pay through Stripe Checkout.

Starting with **v0.6**, PteroCA includes a **plugin system** that allows developers and hosting providers to add **custom payment gateways** (e.g., PayPal, Mollie, Coinbase, etc.) as plugins. An example PayPal payment provider plugin is included with PteroCA.

For more information, see [Plugins](/customization-and-extensions/plugins/plugins.md).

***

### 5. What is the PteroCA Plugin for Pterodactyl?

The **PteroCA Plugin** is a small integration package installed directly inside your **Pterodactyl panel**.\
It’s required for full synchronization between both systems.

It allows PteroCA to:

* Automatically create **user API keys** in Pterodactyl when a user registers in PteroCA,
* Keep account and access data synchronized between both panels,
* Securely communicate between the systems during server provisioning and management.

Installation takes only one command. [You can read more about the plugin here.](/core-configuration/pterodactyl-integration/addon-installation.md)

***

### 6. Is PteroCA similar to CtrlPanel or other client systems?

Conceptually, yes — it serves a similar purpose as panels like **CtrlPanel**, **Dashactyl**, or **WISP Client Area**, but:

* it’s built from scratch using **Symfony 7 / PHP 8.x**,
* fully **open-source** under the MIT license,
* and designed for scalability, transparency, and community-driven development.

Unlike closed panels, you can host it yourself, modify the code, and contribute improvements.

***

### 7. How is PteroCA built?

PteroCA is developed on the **Symfony 7 framework** with **EasyAdmin** for administration.\
It communicates with Pterodactyl via API for:

* user synchronization,
* server creation and management,
* suspension, deletion, and renewal automation.

Both the client area and admin area are rendered using Twig templates, which makes customization straightforward.

***

### 8. **Is there a demo available?**

Yes! You can explore the panel by visiting our demo: <https://demo.pteroca.com/>

***

### **9. Where can I find project updates?**

Project updates and release notes are published in several places:

* On the [GitHub Releases page](https://github.com/PteroCA-Org/panel/releases).
* On our [Discord server](https://discord.com/invite/Gz5phhuZym) under the `#announcements` channel.
* In the Admin Area of your PteroCA panel, where you can check if a new version is available.

***

### 10. Is PteroCA free to use?

Yes! PteroCA is fully **open-source** and free to use under the MIT License.\
You are free to modify, self-host, and customize it according to your needs.

***

### 11. Can I contribute to the project?

Absolutely!\
You can:

* Contribute code or translations via [GitHub Pull Requests](https://github.com/PteroCA-Org/panel/pulls).
* Help expand the documentation.
* Join our developer community on Discord and discuss ideas or improvements.

All contributions are welcome and appreciated ❤️

Not a developer? You can still help by:

* ⭐ [Starring the repository](https://github.com/PteroCA-Org/panel) to show your support
* Spreading the word about PteroCA
* Reporting bugs and suggesting features

***

### 11.5. How can I join the Beta Testing Program?

You can join the PteroCA Beta Testing Program to get early access to new features and help improve quality before release.

**To join:**

1. Join the [PteroCA Discord](https://discord.com/invite/Gz5phhuZym)
2. Create a ticket in the `#❓︱request-help` channel
3. State that you want to join as a **Beta Tester**
4. Wait for approval

**As a beta tester you'll receive:**

* Early access to new features and bug fixes
* Dedicated beta testing Discord channel
* Direct communication with developers
* Step-by-step testing instructions
* Recognition in release notes

For complete details, see the [Beta Testing Guide](/contributing/contributing/beta-testing.md).

***

### 12. Can I extend PteroCA with custom functionality?

**Yes!** PteroCA v0.6+ includes a comprehensive plugin system that allows you to:

* Add custom payment providers (like PayPal, Coinbase, Mollie, etc.)
* Create new features and integrations
* Add custom widgets and dashboard components
* Extend the admin panel with new CRUD interfaces
* Integrate with external services (Discord, Telegram, webhooks, etc.)

The plugin system provides powerful capabilities including:

* **Routes**: Custom HTTP endpoints and controllers
* **Entities**: Database tables and models
* **Migrations**: Database schema management
* **UI**: Dashboard widgets, server tabs, menu items
* **Console Commands**: CLI commands for automation
* **Cron Tasks**: Scheduled background jobs
* **Security Scanning**: Automatic vulnerability detection
* **Health Monitoring**: Automated health checks

**Example plugins included:**

* **hello-world**: Demonstrates all plugin capabilities
* **paypal-payment**: PayPal payment provider integration

For more information:

* User guide: [Plugins](/customization-and-extensions/plugins/plugins.md)
* Developer guide: [Plugin Development](https://github.com/PteroCA-Org/pteroca-homepage/blob/docs/for-developers/plugins/README.md)

**Finding Plugins:**

* [**PteroCA Marketplace**](https://marketplace.pteroca.com) (Under Development) — Curated, security-scanned plugins (recommended when available)
* **Discord** — `#plugins-releases` channel at <https://discord.com/invite/Gz5phhuZym>
* **GitHub** — Search for repositories tagged "pteroca-plugin"

***

### 13. How do I install plugins?

Installing a plugin is straightforward:

1. **Place plugin files** in the `/plugins/` directory of your PteroCA installation
2. **Scan for plugins:**

   ```bash
   php bin/console pteroca:plugin:scan
   ```
3. **Enable the plugin:**

   ```bash
   php bin/console pteroca:plugin:enable plugin-name
   ```
4. **Configure plugin settings** in Settings → Plugins

PteroCA automatically handles:

* Security scanning
* Dependency resolution
* Asset publishing
* Database migrations
* Health monitoring

You can also manage plugins through the Admin Panel UI.

For detailed instructions, see the [Plugins Guide](/customization-and-extensions/plugins/plugins.md).

***

### 14. Can I create my own themes?

**Yes!** PteroCA supports custom themes that allow you to completely customize the panel's appearance.

**Quick start:**

```bash
php bin/console pteroca:dev:make-theme
```

This creates a new theme based on the default, which you can then customize:

* **Override templates**: Customize any page, component, or CRUD interface
* **Style with CSS**: Add your colors, layouts, and typography
* **Add JavaScript**: Enhance functionality with custom scripts
* **Customize emails**: Brand email templates with your design

**Theme structure:**

* Templates: `themes/your-theme/`
* Assets: `public/assets/theme/your-theme/`

**What you can customize:**

* Panel layout and navigation
* Colors and styling
* CRUD interfaces (using EasyAdmin)
* Email templates
* Dashboard widgets

**Activate your theme:** Go to Settings → Appearance → Current theme, select your theme, and save.

For complete documentation:

* User guide: [Themes](/customization-and-extensions/themes/themes.md)
* Developer guide: [Theme Development](https://github.com/PteroCA-Org/pteroca-homepage/blob/docs/for-developers/themes/README.md)

***

### 15. Are there security concerns with plugins?

PteroCA includes comprehensive security features to protect your panel:

**Automatic Security Scanning:**

* Static code analysis for dangerous patterns
* Detection of dangerous functions (eval, exec, shell\_exec, etc.)
* SQL injection pattern detection
* Path traversal vulnerability checks
* Hardcoded credential detection
* Composer audit for known CVE vulnerabilities

**Security Levels:**

* **CRITICAL**: Plugin cannot be enabled (immediate risk)
* **HIGH**: Warning shown, enable at your own risk
* **MEDIUM**: Warning shown, monitoring recommended
* **LOW**: Logged for review

**Best Practices:**

* Only install plugins from trusted sources
* Review security scan results before enabling
* Keep plugins updated
* Monitor plugin health regularly
* Disable unused plugins

PteroCA's security scanner runs automatically before enabling any plugin, helping protect your panel from malicious code.

For more information, see [Plugin Security](https://github.com/PteroCA-Org/pteroca-homepage/blob/docs/customization/plugins/README.md#plugin-security).

***

### 16. Where do I find plugins and themes?

**Plugins:**

* [**PteroCA Marketplace**](https://marketplace.pteroca.com) (Under Development) — Will be the primary source for curated plugins
* **Discord `#plugins-releases`** — Current distribution channel for example and community plugins
* **GitHub** — Search for "pteroca-plugin" topic for open-source plugins

**Themes:**

* **Discord** — Theme sharing in Discord community
* **GitHub** — Search for "pteroca-theme" topic

See the [Customization Guide](/customization-and-extensions/customization.md) for installation instructions.

***

### 17. Why does my server show an IP address like 0.0.0.0 or 127.0.0.1?

Server IP addresses displayed in PteroCA come from **Pterodactyl's node configuration**, not from PteroCA itself.

When you create a server, Pterodactyl automatically assigns an IP and port from the **node's allocation pool**. PteroCA simply displays whatever IP Pterodactyl assigned.

**Common scenarios:**

* **0.0.0.0** - Your Pterodactyl node's allocation uses this IP (often from Wings config)
* **127.0.0.1** - Node configured with localhost
* **192.168.x.x or 10.x.x.x** - Node using internal network IP

**This is NOT a PteroCA bug.** The IP comes directly from your Pterodactyl panel's node settings.

**To fix:**

1. Log into your Pterodactyl panel as admin
2. Go to Admin → Nodes → \[Your Node] → Allocations
3. Add your correct public IP address
4. Configure proper port ranges
5. Future servers will use the new allocations

**Need detailed help?** See our [Server IP Allocation Guide](/core-configuration/pterodactyl-integration/server-ip-allocation.md).

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pteroca.com/help-and-maintenance/faq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
