Merge pull request #292 from DomiiBunn/pterodox

Add part of pterodox
This commit is contained in:
Jakob 2021-01-17 16:36:45 +01:00 committed by GitHub
commit b593dbc3eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 251 additions and 2 deletions

View File

@ -118,6 +118,14 @@ module.exports = {
'/community/tutorials/artisan.md',
],
},
{
title: 'Customization',
collapsable: false,
children: [
'/community/customization/panel.md',
'/community/customization/wings.md',
],
},
],
'/': [
{
@ -153,7 +161,8 @@ module.exports = {
children: [
'/getting_started',
'/webserver_configuration',
'/upgrading'
'/upgrading',
'/additional_configuration'
]
}
]
@ -201,7 +210,13 @@ module.exports = {
children: [
'/tutorials/mysql_setup.md',
'/tutorials/creating_ssl_certificates.md',
'/community/about.md',
],
},
{
title: 'Guides',
collapsable: false,
children: [
'/guides/mounts.md',
],
},
{

View File

@ -0,0 +1,43 @@
# Building Panel Assets
:::warning
Do **not** run the following steps on your production nodes.
:::
Instructions on how to build the panel are also available in the [BUILDING.md](https://github.com/pterodactyl/panel/blob/develop/BUILDING.md) file.
The frontend of the Panel is built with React. Any changes to the source files require to recompile it.
This also applies to style sheets. The following sections explain how to do so.
## Install Dependencies
The following commands will install the necessary dependencies for building the Panel assets.
The build tools require NodeJS, yarn is used as the package manager.
```bash
# Ubuntu/Debian
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
apt install -y nodejs yarn
# CentOS
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash -
sudo yum install -y nodejs yarn # CentOS 7
sudo dnf install -y nodejs yarn # CentOS 8
```
Install required javascript packages.
```bash
cd /var/www/pterodactyl
yarn # Installs panel build dependencies
```
## Build Panel Assets
The following command will rebuild the Panel frontend.
```bash
cd /var/www/pterodactyl
yarn build:production # Build panel
```

View File

@ -0,0 +1,66 @@
# Building Wings
:::warning
Do **not** run the following steps on your production nodes.
:::
Wings is written in Go. This makes it very easy to modify and compile it on your own, and distribute your own binaries.
This guide will cover the steps necessary to build it yourself.
It will not, however, explain where to look for certain aspects of Wings and which changes are necessary to achieve specific results. Knowledge of the Go language is required if you want to modify it.
Building Go programs is very easy, and the same also applies to Wings. Go is cross-platform, but Wings only supports Linux at the moment. The easiest way to compile it for Linux is to run the commands on a Linux machine.
## Build Requirements
An up to date version of Go is required to compile Wings. The minimum version can be found at the top of the [go.mod](https://github.com/pterodactyl/wings/blob/develop/go.mod) file. See the [official instructions](https://golang.org/doc/install) for help with installing Go.
## Building
Execute the following command in your local clone of the repository to compile Wings into a binary.
```bash
go build
```
You should now have a `wings` binary file in your wings directory.
## Install the new binary
:::tip Root required
Some the following commands require root permissions. Prepend them with `sudo` if you are not logged in as root.
:::
1. Backup the current installation of wings
```bash
mv /usr/local/bin/wings /usr/local/bin/wings-backup
```
2. Place the new binary in `/usr/local/bin`
```
cp ./wings /usr/local/bin
```
3. Restart wings
```
systemctl restart wings
```
## Troubleshooting
If the wings service does not start properly, you can try to start Wings in a console window.
```
wings --debug
```
Remember to stop the system service before, and re-enable it afterwards.
```
systemctl stop wings
systemctl start wings
```

52
guides/mounts.md Normal file
View File

@ -0,0 +1,52 @@
# Using Mounts
Mounts can be used to make directories on a node available to servers running on it.
## Wings Configuration
For security reasons it is not possible to mount direcotries on a node by default. Directories that should be mountable have to be specified explicitly in the Wings configuration.
In the Wings configuration file (`/etc/pterodactyl/config.yml`) the `allowed_mounts` field is used to list mountable directories. The listed directories and all their subdirectories can be mounted.
```yml
allowed_mounts:
- /example
```
## Panel Configuration
You have to configure mounts in admin panel in order to use them with your servers. They consist of a source pad on the node and a target path where it will be mounted in the container.
:::warning Path in the container
Mounts can not be mounted at `/home/container` or any subdirectory of it, as mounts cannot overlap and the server specific files are mounted at that location.
:::
### Creating a Mount
1. In the admin panel go to **Mounts**.
2. Create a new mount.
3. Fill in the details as required.
- **Name**: Name for your mount.
- **Description**: Description for your mount.
- **Source**: The directory where files are stored on the node.
- **Target**: The directory where the mount will be placed inside of your server, can **not** be `/home/container`.
- **Read Only**: Whether the mount will be read-only for the servers using it.
- **User Mountable**: Whether to allow users to self mount this mount.
4. After creating the mount you are required to add **Eggs** and **Nodes** that this mount may be used on.
:::warning Mounts used by multiple servers
All servers using the same mounts will **only** share its contents when they are on the same node. Mounts are not synchronized between servers.
:::
### Assigning a Mount to a Server
1. In the admin panel navigate to the server you would like to use a mount with
2. Go to the mounts page
3. Click the **+** button
4. Restart the server
The files of the mount should become available in the target path in the container.
:::warning Mounts cannot be Accessed
Mounts do not appear in the Panel's file manager, nor are they accessible via SFTP.
:::

View File

@ -0,0 +1,73 @@
# Additional Configuration
[[toc]]
## Backups
Pterodactyl Panel allows users to create backups of their servers. In order to create backups, backup storage has to be configured.
### Using S3 Backups
AWS S3 (or compatible storage) can be used to store backups. The following configuration options have to be set in the `.env` file in order to enable it.
```bash
# Sets your panel to use s3 for backups
APP_BACKUP_DRIVER=s3
# Info to actually use s3
AWS_DEFAULT_REGION=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_BACKUPS_BUCKET=
AWS_ENDPOINT=
AWS_BACKUPS_USE_ACCELERATE=false
# This was/is planned to be depreciated by AWS thus if set to true it will fail the request.
AWS_USE_PATH_STYLE_ENDPOINT=false
```
## reCAPTCHA
The Panel uses invisible reCAPTCHA to secure the login page from brute-force attacks. If the login attempt is considered suspicious, users may be required to perform a reCAPTCHA challenge.
### Configuring reCAPTCHA
While we provide a global Site Key and Secret Key by default, we highly recommend changing it for your own setup.
You can generate your own keys in the [reCAPTCHA Admin Console](https://www.google.com/recaptcha/admin).
The keys can then be applied using the Settings in the admin panel. The reCAPTCHA settings can be found on the **Advanced**
### Disabling reCAPTCHA
:::warning SECURITY WARNING
We do not recommend disabling reCAPTCHA. It is a security mechanism that makes it harder to perform brute-force attacks on user accounts.
:::
If users have trouble logging in, or your Panel isn't exposed to the internet, in can make sense to disable reCAPTCHA.
reCAPTCHA can easily be disabled using the admin panel. In the Settings, select the **Advanced** tab and set the **Status** of reCAPTCHA to **disabled**.
#### Using the .env file
If you cannot access the panel yourself, you can also disable reCAPTCHA using the `.env` file.
```
RECAPTCHA_ENABLED=false
```
#### Editing your database
:::danger DANGEROUS: Not Recommended
Proceed carefully. By running queries on your database directly, you can easily break your setup.
:::
If you cannot access your panel, but have used the web panel based settings already, you can modify the database directly using the following commands.
```sql
mysql -u root -p
USE panel;
UPDATE settings SET value = 'false' WHERE 'key' = 'settings::recaptcha:enabled';
```
If the command returns with `Query OK, 0 rows affected (0.000 sec)` you need to use the `.env` method to disable reCAPTCHA