Skip to content

Commit

Permalink
Merge pull request #83 from Boy132/update
Browse files Browse the repository at this point in the history
Various little docs updates
  • Loading branch information
notAreYouScared authored Nov 4, 2024
2 parents 169a397 + 1812430 commit aa761ef
Show file tree
Hide file tree
Showing 8 changed files with 81 additions and 55 deletions.
22 changes: 13 additions & 9 deletions docs/about.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,24 @@ id: about

### Core Team

| Name | Discord | Primary Role |
|--------------------------------------------------------|-----------------|----------------------------|
| [Lance Pioch](https://github.com/lancepioch) | `shadowlancer` | Backend Maintainer |
| [Michael Parker](https://github.com/parkervcp) | `parkervcp` | Egg/Docker Maintainer |
| [Charles Morgan](https://github.com/notAreYouScared) | `areyouscared` | Documentation Maintainer |
| [Alex 'Scai' Vlad](https://github.com/alexevladgabriel)| `.scai` | Frontend Maintainer |
| Name | Discord | Role |
|--------------------------------------------------------|-----------------|-----------------------------|
| [Lance Pioch](https://github.com/lancepioch) | `shadowlancer` | Project Lead & Fullstack Dev|
| [Michael Parker](https://github.com/parkervcp) | `parkervcp` | Egg/ Docker Maintainer |
| [Charles Morgan](https://github.com/notAreYouScared) | `areyouscared` | Fullstack Dev |
| [Alex 'Scai' Vlad](https://github.com/alexevladgabriel)| `.scai` | Fullstack Dev |
| [Boy132](https://github.com/boy132) | `boy132` | Fullstack Dev |

Core members of Pelican have a light blue username in Discord.

### Community Staff

| Name | Discord |
|-------------------------------------|---------------|
| Trixter | `trixter` |
| Name | Discord | Role |
|------------------------------------------------|---------------|---------------|
| [Trixter](https://github.com/TrixterTheTux) | `trixter` | Moderator |
| [Quinten](https://github.com/QuintenQVD0) | `quintenqvd` | Egg Maintainer|
| [Red-Thirten](https://github.com/lilkingjr1) | `red_thirten` | Egg Maintainer|
| [Martin Oscar](https://github.com/RMartinOscar)| `rmartinoscar`| Developer |

Community Staff have a darker blue username in Discord.

Expand Down
29 changes: 21 additions & 8 deletions docs/comparison.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ Pelican is a fork of [Pterodactyl](https://pterodactyl.io). But over time Pelica
<Tabs>
<TabItem value="1" label="General">
* ![Planned](https://img.shields.io/badge/Planned-blue) First party Plugin & Theme system
* ![Planned](https://img.shields.io/badge/Planned-blue) Webhooks
* ![In Progress](https://img.shields.io/badge/In_Progress-orange) OAuth
* ![In Progress](https://img.shields.io/badge/In_Progress-orange) Roles & Permissions for Admins
* ![Planned](https://img.shields.io/badge/Planned-blue) Webhooks for Discord
* ![In Progress](https://img.shields.io/badge/In_Progress-orange) Rework allocations
* ![Done](https://img.shields.io/badge/Done-green) Webhooks
* ![Done](https://img.shields.io/badge/Done-green) Roles & Permissions for Admins
* ![Done](https://img.shields.io/badge/Done-green) Removal of Nests & Locations (replaced by Tags)
* ![Done](https://img.shields.io/badge/Done-green) Config option for Binary Prefix (MiB/ GiB)
* ![Done](https://img.shields.io/badge/Done-green) Improved Settings page
Expand All @@ -43,18 +43,24 @@ Pelican is a fork of [Pterodactyl](https://pterodactyl.io). But over time Pelica
* ![Done](https://img.shields.io/badge/Done-green) Uniform user transformers
* ![Done](https://img.shields.io/badge/Done-green) Rename `oom_disabled` to `oom_killer`
</TabItem>
<TabItem value="4" label="Setup">
* ![In Progress](https://img.shields.io/badge/In_Progress-orange) Easier Installation process
<TabItem value="4" label="Auth">
* ![Planned](https://img.shields.io/badge/Planned-blue) Replace Google reCAPTCHA with Cloudflare Turnstile
* ![In Progress](https://img.shields.io/badge/In_Progress-orange) OAuth
</TabItem>
<TabItem value="5" label="Setup">
* ![In Progress](https://img.shields.io/badge/In_Progress-orange) Dockerized install as preferred install method
* ![Done](https://img.shields.io/badge/Done-green) Easier Installation process (Web Installer)
* ![Done](https://img.shields.io/badge/Done-green) SQLite as Panel database
* ![Done](https://img.shields.io/badge/Done-green) "Proper" support for MariaDB as Panel database (dedicated driver)
</TabItem>
<TabItem value="5" label="Server">
<TabItem value="6" label="Server">
* ![Planned](https://img.shields.io/badge/Planned-blue) Server sorting
* ![Planned](https://img.shields.io/badge/Planned-blue) Basic Query Information (Hostname & Player Count)
* ![Planned](https://img.shields.io/badge/Planned-blue) IPv6 Support for Allocations
* ![Done](https://img.shields.io/badge/Done-green) Custom docker labels for server containers
* ![Done](https://img.shields.io/badge/Done-green) "Delete files" schedule task
</TabItem>
<TabItem value="6" label="Node">
<TabItem value="7" label="Node">
* ![Planned](https://img.shields.io/badge/Planned-blue) Node Ownership (per Node permissions)
* ![Planned](https://img.shields.io/badge/Planned-blue) More effective wings disk quota enforcement
* ![Done](https://img.shields.io/badge/Done-green) Node resource statistics
Expand All @@ -63,10 +69,17 @@ Pelican is a fork of [Pterodactyl](https://pterodactyl.io). But over time Pelica
* ![Done](https://img.shields.io/badge/Done-green) Automatic cleanup of dangling docker images
* ![Done](https://img.shields.io/badge/Done-green) Fixed `-1` overallocation
</TabItem>
<TabItem value="7" label="Eggs">
<TabItem value="8" label="Eggs">
* ![Planned](https://img.shields.io/badge/Planned-blue) Easier Egg installing
* ![Planned](https://img.shields.io/badge/Planned-blue) Change Egg format to YAML
* ![Done](https://img.shields.io/badge/Done-green) Sortable egg variables
* ![Done](https://img.shields.io/badge/Done-green) Import multiple eggs at once
* ![Done](https://img.shields.io/badge/Done-green) Easier Egg updating (usage of `update_url`)
</TabItem>
<TabItem value="9" label="Hub">
* ![Planned](https://img.shields.io/badge/Planned-blue) Marketplace for Eggs
* ![Planned](https://img.shields.io/badge/Planned-blue) Marketplace for Plugins & Themes
* ![Done](https://img.shields.io/badge/Done-green) Open Finances
* ![Done](https://img.shields.io/badge/Done-green) Support Tickets
</TabItem>
</Tabs>
4 changes: 2 additions & 2 deletions docs/panel/advanced/mysql.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ GRANT ALL PRIVILEGES ON panel.* TO 'pelican'@'127.0.0.1';

## Setup Pelican for MySQL

If you are switching to MySQL after installing the Panel you have to run the database setup command below.
You do not have to run this if this is the first time you are installing the Panel. You will provide the database data via the Web Installer.
If you are switching to MySQL after installing the Panel you have to run the database setup command below.
**You do not have to run this if this is the first time you are installing the Panel. You will provide the database data via the Web Installer.**

```sh
cd /var/www/pelican
Expand Down
3 changes: 2 additions & 1 deletion docs/panel/advanced/redis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ sudo systemctl enable --now redis-server

### Use Redis as driver

Simply run the following commands, enter your redis data and done!
If you are switching to Redis after installing the Panel you have to run the setup command below.
**You do not have to run this if this is the first time you are installing the Panel. You will provide the redis data via the Web Installer.**

```sh
cd /var/www/pelican
Expand Down
4 changes: 2 additions & 2 deletions docs/panel/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,12 @@ Ubuntu 20.04 & Debian 11 do not meet this requirement.

### Dependencies

For the Panel you need to install **PHP `8.3` (recommended) or `8.2`**, with the following **extensions**:
For the Panel you need to install **PHP `8.3` (recommended) or `8.2`**, with the following **extensions**:
`gd`, `mysql`, `mbstring`, `bcmath`, `xml`, `curl`, `zip`, `intl`, `sqlite3` and `fpm`.

You will also need a Webserver. Currently, **Apache, NGINX or Caddy** are supported.

If you want to use MySQL or MariaDB for the panel database make sure to install either **MySQL 8+ or MariaDB 10.3+**. (both client and server!)
If you want to use MySQL or MariaDB for the panel database make sure to install either **MySQL 8+ or MariaDB 10.6+**. (both client and server!)

Finally, for some commands during the installation you need `curl`, `tar` and `unzip`.

Expand Down
18 changes: 8 additions & 10 deletions docs/panel/panel-setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,11 @@ import TabItem from '@theme/TabItem';

# Panel Setup

The core environment is easily configured using a single CLI command & the web installer built into the app.

This step will cover setting up things such as sessions, caching, database credentials, and email sending.
The core environment is easily configured using a single CLI command & the web installer built into the app.
These steps will cover setting up things such as sessions, caching, database credentials, and email sending.

Running `php artisan p:environment:setup` will, if it does not exist, auto create the required `.env` file and generate a `APP_KEY`.

<Admonition type="info" title="Want to use MySQL/ MariaDB?">
Make sure to read the [MySQL guide](./advanced/mysql) first if you want to use MySQL/ MariaDB instead of SQLite!
</Admonition>

```sh
php artisan p:environment:setup
```
Expand Down Expand Up @@ -52,7 +47,10 @@ chmod -R 755 storage/* bootstrap/cache/

### Web-Installer

Once you've set the proper permissions & created the Cron & Queue worker, continue the Panel install on the web interface.

Located at `<domain>/installer` or `<ip>/installer`
Once you've set the proper permissions, continue the Panel install on the web interface.
The web installer is located at `<domain>/installer` or `<ip>/installer`.

<Admonition type="info" title="Want something advanced?">
Make sure to read the [MySQL guide](./advanced/mysql) first if you want to use MySQL/ MariaDB instead of SQLite!
If you want to use Redis make sure to read the [Redis guide](./advanced/redis) first.
</Admonition>
50 changes: 32 additions & 18 deletions docs/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Troubleshooting

## Panel errors

If you see a `500 | SERVER ERROR` or `An unexpected error was encountered while processing this request` you have to check your panel logs by running the following command.
Expand Down Expand Up @@ -36,16 +37,18 @@ You can set the correct permissions by running `chmod -R 755 /var/www/pelican/st
</TabItem>
</Tabs>

### Some common errors
<details>
<summary>Common errors</summary>

* `ErrorException: file_put_contents(_____): failed to open stream: Permission denied`: Wrong file permissions/ ownership for the panel files, see above.
* `502 Bad Gateway Error`: Make sure that php-fpm is running and that you are using the correct php version in your webserver config.
* `CSRF token mismatch`: Enable SSL for your Panel with HTTPS protocol scheme in the APP_URL, or set `SESSION_SECURE_COOKIE` to `false` in your `.env` file.
* `Connection refused [tcp://_______:6379]`: Redis isn't running or isn't reachable for some other reason. (start by checking the status of the redis service: `systemctl status redis-server`)
* `SSL: no alternative certificate subject name matches target host name '_______'`: The used SSL certificate for your panel isn't valid for your panel domain, see [this guide](./guides/ssl) for creating a new SSL certificate.
* `General error: 8 attempt to write a readonly database`: Your `database.sqlite` has wrong file permissions and is readonly. Make sure the file is writeable and owned by the correct user.
* `Class '_____' not found`: This usually means you are missing php extensions. Make sure [all needed extensions](./panel/getting-started#dependencies) are installed and that you are using the correct php version.
* `Connection timed out after 5001 miliseconds for _______:8080`: Your panel can't reach wings, see the wings connection issues steps below.
* `ErrorException: file_put_contents(_____): failed to open stream: Permission denied`: Wrong file permissions/ ownership for the panel files, see above.
* `502 Bad Gateway Error`: Make sure that php-fpm is running and that you are using the correct php version in your webserver config.
* `CSRF token mismatch`: Enable SSL for your Panel with HTTPS protocol scheme in the APP_URL, or set `SESSION_SECURE_COOKIE` to `false` in your `.env` file.
* `Connection refused [tcp://_______:6379]`: Redis isn't running or isn't reachable for some other reason. (start by checking the status of the redis service: `systemctl status redis-server`)
* `SSL: no alternative certificate subject name matches target host name '_______'`: The used SSL certificate for your panel isn't valid for your panel domain, see [this guide](./guides/ssl) for creating a new SSL certificate.
* `General error: 8 attempt to write a readonly database`: Your `database.sqlite` has wrong file permissions and is readonly. Make sure the file is writeable and owned by the correct user.
* `Class '_____' not found`: This usually means you are missing php extensions. Make sure [all needed extensions](./panel/getting-started#dependencies) are installed and that you are using the correct php version.
* `Connection timed out after 5001 miliseconds for _______:8080`: Your panel can't reach wings, see the wings connection issues steps below.
</details>

## Wings connection issues

Expand All @@ -54,13 +57,15 @@ You can set the correct permissions by running `chmod -R 755 /var/www/pelican/st
First you should make sure that the wings service is running. To do that run `systemctl status wings`.
It should say that the service is active and running. If its in a failed state run `sudo wings diagnostics` to check the wings logs for errors.

Some common errors in the wings logs are:
<details>
<summary>Common errors</summary>

* `open /etc/letsencrypt/live/_____________/fullchain.pem: no such file or directory`: The SSL certificate for wings is missing, see [this guide](./guides/ssl) for creating a SSL certificate.
* `Pool overlaps with other one on this address space`: You already have a docker network using the default subnet. (`172.18.0.0/16`) Change the subnet in your wings config file and use `systemctl stop wings && docker network rm pelican_nw && systemctl start wings` to apply the change.
* `Error response from Panel: AccessDeniedHttpException: You are not authorized to access this resource. (HTTP/403)`: Your wings token is wrong, you need [update the token in your config.yml file](./wings/install#configure)
* `Error response from Panel: _MissingResponseCode: No error response returned from API endpoint`: Your panel is not responding correctly. This usually happens when Cloudflare is blocking the connection. In that case make sure your wings ip is added to the Cloudflare firewall. If you aren't using Cloudflare it might be some other CDN/ DDoS protection service or your provider.
* `remote: could not unmarshal response: invalid character '<' looking for beginning of value`: This is basically the same error as above: Cloudflare is blocking the connection.
* `open /etc/letsencrypt/live/_____________/fullchain.pem: no such file or directory`: The SSL certificate for wings is missing, see [this guide](./guides/ssl) for creating a SSL certificate.
* `Pool overlaps with other one on this address space`: You already have a docker network using the default subnet. (`172.18.0.0/16`) Change the subnet in your wings config file and use `systemctl stop wings && docker network rm pelican_nw && systemctl start wings` to apply the change.
* `Error response from Panel: AccessDeniedHttpException: You are not authorized to access this resource. (HTTP/403)`: Your wings token is wrong, you need [update the token in your config.yml file](./wings/install#configure)
* `Error response from Panel: _MissingResponseCode: No error response returned from API endpoint`: Your panel is not responding correctly. This usually happens when Cloudflare is blocking the connection. In that case make sure your wings ip is added to the Cloudflare firewall. If you aren't using Cloudflare it might be some other CDN/ DDoS protection service or your provider.
* `remote: could not unmarshal response: invalid character '<' looking for beginning of value`: This is basically the same error as above: Cloudflare is blocking the connection.
</details>

### Check the wings port

Expand All @@ -69,7 +74,7 @@ It should say "open" if you check for your node FQDN (e.g. `node.example.com` or

### Check for NAT loop back

If your panel and wings are on the same machine or same network, and you are using domains you should check for NAT loop back issues.
If your panel and wings are on the same machine or same network, and you are using domains you should check for NAT loop back issues.
Edit the `/etc/hosts` file on your panel/ wings machine and add an entry for your ip and domain.

Example:
Expand All @@ -96,24 +101,33 @@ In both cases it should output this when wings is reachable:
```
{"error" : "The required authorization heads were not present in the request."}
```

<Admonition type="info">
Not sure what a specific error means?
Visit our [Discord](https://discord.gg/pelican-panel) and we will be happy to help you!
</Admonition>

### Check node settings

If the connection checks above were both successfull you might have misconfigured the Node settings in the Panel.
Make sure that your Node FQDN/ IP, Port and Scheme (HTTP/ HTTPS) is correct.

When using a reverse proxy you might have different external and internal ports for Wings. (e.g. `80` internally and `443` externally)
In that case make sure the Node settings in the Panel uses the external port while the Wings config file uses the internal port!

## Schedules not running

If your Schedules are stuck on `Processing` or don't execute the tasks check the following:

* Is your Schedule set to run `ONLY WHEN SERVER IS ONLINE` and the server is currently offline?
* Is your queue worker service running? (`systemctl status pelican-queue`)
* Is your queue worker service using the correct PHP version? (`php -v`)
* Is your [cronjob setup](./panel/panel-setup#crontab-configuration) correctly?
* Is your cronjob setup correctly? (`crontab -l -u www-data` should show an entry that runs `php artisan queue:work` every minute)

If your queue worker service is not running you can also check the panel logs for errors.

```sh
tail -n 100 /var/www/pelican/storage/logs/laravel-$(date +%F).log | grep "\[$(date +%Y)"
```

To recreate the queue worker service you can run `cd /var/www/pelican && php artisan p:environment:queue-service --overwrite`.
To recreate the queue worker service you can run `php /var/www/pelican/artisan p:environment:queue-service --overwrite`.
6 changes: 1 addition & 5 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,7 @@ const config: Config = {
src: "img/logo.png",
},
items: [
{
to: '/docs/panel/getting-started',
label: 'Install',
position: 'left'
},
{ to: '/docs', label: 'Docs', position: 'left' },
{ to: "/blog", label: "Blog", position: "left" },
{ to: "/donate", label: "Donate", position: "left" },
{
Expand Down

0 comments on commit aa761ef

Please sign in to comment.