Skip to content

Commit

Permalink
add centos 8
Browse files Browse the repository at this point in the history
This is a base install for centos 8.

Covers the Panel and Daemon.
Uses packages provided by redhat. (no extra repos other than docker.)

Many changes in CentOS 8 make this a much easier install.
  • Loading branch information
parkervcp committed Sep 29, 2019
1 parent 1d3fd32 commit 7f4d34c
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.idea/
.vuepress/dist
node_modules/

yarn-error.log
6 changes: 4 additions & 2 deletions .vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,21 @@ module.exports = {
collapsable: false,
children: [
'/community/installation-guides/panel/centos7.md',
'/community/installation-guides/panel/ubuntu1804.md',
'/community/installation-guides/panel/centos8.md',
'/community/installation-guides/panel/debian9.md',
'/community/installation-guides/panel/debian10.md',
'/community/installation-guides/panel/ubuntu1804.md',
]
},
{
title: 'Daemon Installation',
collapsable: false,
children: [
'/community/installation-guides/daemon/centos7.md',
'/community/installation-guides/daemon/ubuntu1804.md',
'/community/installation-guides/daemon/centos8.md',
'/community/installation-guides/daemon/debian9.md',
'/community/installation-guides/daemon/debian10.md',
'/community/installation-guides/daemon/ubuntu1804.md',
]
},
{
Expand Down
48 changes: 48 additions & 0 deletions community/installation-guides/daemon/centos8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# CentOS 8
In this guide we will install Pterodactyl's Daemon (wings) — including all of it's dependencies — and configure it to use a SSL connection.

[[toc]]

::: tip
This guide is based off the [official installation documentation](/daemon/installing.md) but is tailored specifically for CentOS 8.
:::

## Install Requirements
We will first begin by installing all of the Daemon's [required](/daemon/installing.md#dependencies) dependencies.

### General Requirements
```bash
dnf install -y tar unzip make gcc gcc-c++ python2

alternatives --set python /usr/bin/python2
```

### Docker

```bash
dnf install -y dnf-utils device-mapper-persistent-data lvm2

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

dnf install -y docker-ce --nobest

systemctl enable docker
systemctl start docker
```

### Nodejs

```bash
dnf install -y nodejs
```

### Server Ports
```bash
firewall-cmd --add-port 8080/tcp --permanent
firewall-cmd --add-port 2022/tcp --permanent
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --reload
```

## Installing the Daemon
Great, now all of the dependencies and firewall rules have been dealt with. From here follow the [official Daemon installation documentation](/daemon/installing.md#installing-daemon-software).
132 changes: 132 additions & 0 deletions community/installation-guides/panel/centos8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# CentOS 8
In this guide we will install Pterodactyl — including all of it's dependencies — and configure our webserver to serve it using SSL.

[[toc]]

::: tip
This guide is based off the [official installation documentation](/panel/getting_started.md) but is tailored specifically for CentOS 8.
:::

## Install Requirements and Additional Utilities
We will install all of Pterodactyl's [required](/panel/getting_started.md#dependencies) dependencies and a few aditional utilities.

::: tip
If you run `sestatus` and it shows `SELinux status: enabled` you should install the following packages for later
:::

### SELinux tools
```bash
dnf install -y policycoreutils selinux-policy selinux-policy-targeted setroubleshoot-server setools setools-console mcstrans
```

### MariaDB
```bash
dnf install mariadb mariadb-server

## Start maraidb
systemctl start mariadb
systemctl enable mariadb
```

### PHP 7.2
We recommend the remi repo to get the latest php packages.

```bash
## Get dnf updates
dnf update -y

## Install PHP 7.2
dnf install -y php php-common php-fpm php-cli php-json php-mysqlnd php-gd php-mbstring php-pdo php-zip php-bcmath php-dom php-opcache
```

### Composer
```bash
dnf install -y zip unzip tar # Required for Composer
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
```

## Install Utility Pakcages


### Nginx
```bash
dnf install -y nginx

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
```

### Redis
```bash
dnf install -y redis

systemctl start redis
systemctl enable redis
```

#### SELinux commands

The following command will allow nginx to work with redis and
```bash
setsebool -P httpd_can_network_connect 1
setsebool -P httpd_execmem 1
setsebool -P httpd_unified 1
```

## Server Configuration
This following section covers the configuration of parts of the server to run the panel.

### Configuring MariaDB
The fastest way to set up mariadb is to use the `mysql_secure_installation` command and follow prompts

```bash
mysql_secure_installation
```

The following are safe defaults.

Change to your own secure password
`Set root password? [Y/n] Y`

Get rid of users that could access the db by default
`Remove anonymous users? [Y/n] Y`

Keep root off the external interfaces
`Disallow root login remotely? [Y/n] Y`

Extra databases that aren't needed
`Remove test database and access to it? [Y/n] Y`

Clears and sets all the changes made
`Reload privilege tables now? [Y/n] Y`

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

#### Adding MariaDB user
To add your first user to the database, see our tutorial on [setting up MySQL](/tutorials/mysql_setup.md).

### Setup PHP
Place the contents below in a file inside the `/etc/php-fpm.d` folder. The file can be named anything, but a good standard is `www-pterodactyl.conf`. This config will match the nginx config later in the guide.

<<< @/.snippets/php-fpm/pterodactyl-centos.conf

Start and enable php-fpm on the system.
```bash
systemctl enable php-fpm
systemctl start php-fpm
```

### Nginx
Please check our [tutorial](/tutorials/creating_ssl_certificates.md) on generating SSL certificates for more information.

#### SSL Configuration
<<< @/.snippets/webservers/nginx-centos.conf{5,11,26-27}

### Redis Setup
The default Redis install is perfectly fine for the panel. If you have Redis already in use you may want to look into
[running another Redis instance](https://community.pivotal.io/s/article/How-to-setup-and-run-multiple-Redis-server-instances-on-a-Linux-host).

## Installing the Panel
Excellent, we now have all of the required dependencies installed and configured. From here, follow the [official Panel installation documentation](/panel/getting_started.md#download-files).

0 comments on commit 7f4d34c

Please sign in to comment.