Server Infrastructure

This document outlines the current server infrastructure in place at Jump Media, and the requirements for setting up and managing webspaces on the servers.

Jump currently have the following dedicated servers used for production and development:

Server Spec OS
Production Server
5.255.58.20
8 Core CPU - 16GB RAM - 200GB Unbuntu 20.04 - PHP - Nginx Server
Production Database Server
5.255.58.21
2 Core CPU - 4GB RAM - 200GB Unbuntu 20.04 - Maria DB Server
Staging
5.255.58.22
4 Core CPU - 4GB RAM - 100GB Unbuntu 20.04 - PHP - Nginx Server - Maria DB Server

These servers are currently secured behind a firewall. It is required that developer IP addresses are added to the firewall rules for each server to gain access.

Server Usage:

  • The production server is used to host the live website application files. It is required that production databases are not hosted on this server, and instead hosted on the production database server.
  • The production database server is used to host the databases for the applications hosted on the production server.
  • The staging server is used to host staging versions of the website applications. This environment will be used for development and client sign off before deployment to production. The databases for the staging environments are also hosted on this server.

Plesk

The production and staging servers are currently utilising Plesk to manage the server applications.

It is required that all applications and websites are set up from within the Plesk control panel as outlined in the below documentation.

Production Plesk
https://sleepy-payne.5-255-58-20.plesk.page:8443/

Staging Plesk
https://practical-pascal.5-255-58-22.plesk.page:8443/

Please contact the server administrator for access credentials to the server.

Backup Server

The servers are currently backed up every day at 01:00AM and backups are hosted on an external server managed by Hyve Hosting.

To request file restores or full server backup restores, it is required to open a support ticket with Hyve, who will be able to assist with the restore.

Local Backups

Local backups have been enabled on both production and staging will allow Jump Media to be able to revert any webspace back without affecting other webspaces if required.

The local backups are currently managed by the backup manager within Plesk. The configuration settings for this can be found at 'Tools & Settings > Backup Manager'.

Currently, the local backups are set to back up at 00:00AM every day and stored locally to the server for 4 days.

Please note

The backups have not been encrypted using Plesk's encryption key, as this would restrict the backups from only being able to be restored to the same Plesk installation.

The local backups are currently password protected, which will allow Jump to restore server backups to a fresh plesk installation if needed.

It is advised that these local backups are downloaded and stored externally from the server at regular intervals.

Please contact the server administrator for the local backup password if required.

Server Setup

This section aims to outline the current server setup on both production and staging.

PHP

Both production and staging servers have PHP 7.4.3 installed by default through CLI and is accessible by all SSH users through php.

For information regarding the php configuration and PHP extensions installed, please run the following command within CLI.

php -r "print phpinfo();" | grep ".ini"

The following versions of PHP are also installed on the website through Plesk, and are the PHP installations that the webspaces run from.

  • PHP 7.3.28
  • PHP 7.4.18
  • PHP 8.0.5

Access to these PHP versions are available through CLI by accessing the PHP configuration from the absolute path to the PHP executable. For example:

PHP 7.3.28

/opt/plesk/php/7.3/bin/php -v

PHP 7.4.18

/opt/plesk/php/7.4/bin/php -v

PHP 8.0.5

/opt/plesk/php/8.0/bin/php -v

The configuration settings for these PHP installations can be managed with the Plesk control panel by navigating "Tools & Settings > PHP Settings".

For more information, please see:
https://docs.plesk.com/en-US/obsidian/administrator-guide/web-hosting/php-management/running-php-scripts-from-the-command-line.76345/

Composer

Both production and staging servers have composer installed to manage any application PHP dependencies. This can either be managed through the Plesk control panel by navigating to the composer section for the webspace.

The current path to composer is:

/usr/lib/plesk-9.0/composer.phar

For more information, please see:
https://support.plesk.com/hc/en-us/articles/115001707605-How-to-run-Composer-with-Plesk-PHP

Node

Node is installed on both production and staging servers. Due to website requirements and dependencies for applications, multiple versions of node are required to support them.

Node is used for running application scripts and to allow access to node package manager (NPM) for application dependencies and code compiling.

Node Version Manager

Node Version Manager has been installed to allow switching between versions of node on the server.

To see the available versions of node, please use the following command:

nvm list

To switch node version on the server, please run the following command with the required version:

nvm use 12.14.1

When new versions of node are required, these can be installed through node version manager by running the following command:

nvm install 8.0.0

For full list of commands available and help how using node version manager, please use the following command:

nvm --help

Git

Git is installed on both production and staging servers to allow access to pull down and manage application code from their Git repository.

It is required that new development is correctly managed through Git and that the application on the servers are set up and configured to deploy from Git.

Please note some legacy projects and development are currently deployed and managed through FTP. Please refer to any project document for details.

SSH - Git

For access to projects managed by Git, it is required that the webspaces set up on the production and staging server are configured to allow SSH access for the webspace user.

The git repository should be managed through SSH and SSH keys for the webspace user can be managed using the SSH Key manager within Plesk. These SSH keys should then be added to the Jump Media Github access.

It is required to not pull down any files from Git using root user on the server, as this will can cause permission issues depending on the application setup.