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.