When using the PNNL-hosted Technical Resilience Navigator (TRN), the user is consenting to securely storing their data on the PNNL network. Individual organizational policy may not allow business sensitive data to be hosted on other organization’s IT infrastructure. The TRN Team is providing a way to download and install the application allowing use of the tool on an organization’s internal network. This is not a standard desktop application, but a full copy of the website. It is suggested that users work with their IT department to install this on their internal network. It can alternatively be installed on a single computer, but knowledge of the web programming services used will be necessary to successfully install it.
The TRN is a web-based tool written utilizing the Laravel Framework for PHP. This can be installed on a server on a private network following these instructions. These instructions expect some experience with setting up web servers; if they are unclear PNNL can provide additional support.
Overall, downloading and installing the TRN application is a small lift for most IT departments, requiring a small web server virtual machine, with 5GB of hard drive space for the database, application, and user uploads. The following web configuration is needed. If the IT department is more comfortable with Docker, a docker-compose.yml file is available in the github repository as an alternate to this setup.
- Web Server (PNNL uses Red Hat Enterprise Linux 8)
- PHP 8
- MariaDB 10.2+
- Composer (to install application dependencies)
- Git (optional, to automatically pull the code, otherwise a way to copy the application code)
- Network Firewall rules and SSL Certificate to allow https access to the application
Note: the requesting organization will need to have a user with a GitHub account prior to requesting download access who can download the TRN application. https://github.com/
- Email firstname.lastname@example.org to request access to the Github repository to download. Include your Github account information in the request. The PNNL team will reply once your request has been granted.
- Either use the git command line tools to clone or download the zip from the private github repository (https://github.com/pnnl-trn/trn) into the apache web root.
- Set Apache web root. The Laravel application builds to the public directory, with an .htaccess file in the directory for url rewriting. In order to not require the /public in the url for users, the apache web root can be changed in the apache configuration to: DocumentRoot "/var/www/html/public"
- Follow the readme in the repository for specific commands, as some may change as code is updated. The steps will generally include:
- Run composer install for installing dependencies. Note: if this is on a secure network that cannot use composer install, the composer command can be run on a different computer, after which the vendor folder can be copied to the secure network.
- Set Apache permissions – Apache should have read and execute access to all files in the application, as well as write to the cache and storage directories for user uploaded files.
- Set up database – create a mysql user for the application and put the connection information in the .env file.
Alternate Installation on a stand-alone computer
To install the TRN on a single computer that does not need to be a web host for an internal network, Laravel Sail can be used to manage a docker installation to simplify this process. If this option is selected, it is intended for a single user to access the application.
First, Docker Desktop needs to be installed to host the required TRN software support containers.
If using Windows, install and enable Windows Subsystem for Linux 2 (WSL2). It will allow you run Linux binary executables natively on your Windows OS. Also, make sure to configure Docker Desktop to use the WSL2 backend. See Laravel - Getting Started On Windows for more details.
On a command prompt (inside the WSL install if using windows), and navigate to the appropriate installation location. Then follow the TRN installation instructions, noting the Sail specific instructions.
The TRN is periodically updated; to ensure you have the most up-to-date version of the tool, follow the GitHub repository. Additionally, the TRNHelp email account will email all users who requested access to the Git to ensure they are aware that updates have been made and of the type of changes included. Types of updates include:
- New features
- Security updates
Contact information: email@example.com