Add the tutorials

This commit is contained in:
Dane Everitt 2018-07-23 21:50:39 -07:00
parent 208bec591e
commit 2475ab6d69
No known key found for this signature in database
GPG Key ID: EEA66103B3D71F53
6 changed files with 109 additions and 1 deletions

View File

@ -35,6 +35,7 @@ module.exports = {
collapsable: false,
children: [
'/',
'/project/terms.md',
]
},
{
@ -53,6 +54,14 @@ module.exports = {
'/',
]
},
{
title: 'Tutorials',
collapsable: false,
children: [
'/tutorials/mysql_setup.md',
'/tutorials/creating_ssl_certificates.md',
],
},
{
title: 'API Reference',
collapsable: true,

View File

@ -4,4 +4,4 @@ Pterodactyl is the open-source game server management panel built with PHP7, Nod
Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to administrators
and users.
What more are you waiing for? Make game servers a first class citizen on your platform today.
What more are you waiting for? Make game servers a first class citizen on your platform today.

BIN
images/example_setup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

18
project/terms.md Normal file
View File

@ -0,0 +1,18 @@
# Terminology
**Panel** — This refers to Pterodactyl Panel itself, and is what allows you to add additional
nodes and servers to the system.
**Node** — A node is a physical machine that runs an instance of the Daemon.
**Daemon** — A service written in Nodejs that interfaces with Docker and the Panel to provide secure access for
controlling servers via the Panel.
**Server** — In this case, a server refers to a running instance that is created by the panel. These servers are
created on nodes, and you can have multiple servers per node.
**Container** — Each server will be running inside an isolated container to enforce hardware limitations
(such as CPU and RAM) and avoid any interference between servers on one node. These are created by Docker.
## Example Setup Diagram
![](./../images/example_setup.png)

View File

@ -0,0 +1,34 @@
# Creating SSL Certificates
This tutorial briefly covers creating new SSL certificates for your panel and daemon using LetsEncrypt™. To
begin, we will be installing certbot, a simple script that will automatically renew our certificates and allow much
cleaner creation of them. The command below is for Ubuntu distributions, but you can always check [Certbot's official
site](https://certbot.eff.org/) for installation instructions.
``` bash
sudo apt-get install letsencrypt
```
## Creating a Certificate
After installing certbot, we need to then generate a certificate. There are a couple ways to do that, but the
easiest is to have letsencrypt spin-up a temporary web-server to do this. In order for this to work, you will
first need to stop NGINX or Apache.
Then, in the command below, you should replace `example.com` with the domain you would like to generate a certificate
for. If you have multiple domains you would like certificates for, simply add more `-d anotherdomain.com` flags to the
command. You can also look into generating a wildcard certificate but that is not covered in this tutorial.
Once you've generated the certificate you should start NGINX or Apache again to have the certificates applied (assuming
that you've already configured the webservers to use SSL).
``` bash
letsencrypt certonly -d example.com
```
## Auto Renewal
You'll also probably want to configure automatic renewal by adding the command below to a cronjob that runs daily.
You can add the command below to that crontab. For advanced users, we suggest installing and using [acme.sh](https://acme.sh)
which provides more options, and is much more powerful than certbot.
``` text
letsencrypt renew
```

47
tutorials/mysql_setup.md Normal file
View File

@ -0,0 +1,47 @@
# Setting up MySQL
MySQL is a core component of Pterodactyl Panel but it can be confusing to setup and use if you've never done so before.
This is a very basic tutorial that skims just enough of the surface to set MySQL up and running with the panel.
If you're interested in learning more, there are some great tutorials available on the Internet.
## Logging In
The first step in this process is to login to the MySQL command line where we will be executing some statements to get
things setup. To do so, simply run the command below and provide the Root MySQL account's password that you setup when
installing MySQL. If you do not remember doing this, chances are you can just hit enter as no password is set.
``` bash
mysql -u root -p
```
## Creating a User
For security sake, and due to changes in MySQL 5.7, you'll need to create a new user for the panel. To do so, we want
to first tell MySQL to use the mysql database, which stores such information.
Next, we will create a user called `pterodactyl` and allow logins from localhost which prevents any external connections
to our database. You can also use `%` as a wildcard or enter a numeric IP. We will also set the account password
to `somePassword`.
``` sql
USE mysql;
# Remeber to change 'somePassword' below to be a unique password specific to this account.
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'somePassword';
```
## Create a Database
Next, we need to create a database for the panel. In this tutorial we will be naming the database `panel`, but you can
substitute that for whatever name you wish.
``` sql
CREATE DATABASE panel;
```
## Assigning Permissions
Finally, we need to tell MySQL that our pterodactyl user should have access to the panel database. To do this, simply
run the command below. If you plan on also using this MySQL instance as a database host on the Panel you'll want to
include the `WITH GRANT OPTION` (which we are doing here). If you won't be using this user as part of the host setup
you can remove that.
``` sql
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```