SETUP - Development
- Clone the repository from BigMac:
- Add your public key to BigMac account.
- Clone the repository:
git clone "ssh://git@bigmac.northgrum.com:8010/saipt/portal-webapp.git"
- Create/Edit
settings.xmlin your.m2folder (see next section for example) - This project requires ngas-commons to be built prior to building this application
- Checkout
ngas-commons("ssh://git@bigmac.northgrum.com:8010/saipt/ngas-commons.git") - Change directories into
ngas-commonsand runmvn clean install
- Checkout
- Change directories into the project and run
mvn clean install(This might take awhile) - Once the server launches, you should be able to access the webapp by browsing to
http://localhost:8080/portal/
Yarn
Yarn is the the new package manager used with node.js in replacement of npm it uses the same package.json file.
To download a new client side library use the command yarn add <package_name> --save. This will add the files to the node_modules library.
Next include the appropriate file into the assets.js file inside portal_client to make sure it will be injected into the index.html file during run time.
The assets.js file specifies all the vendor libraries that have to be included into the client code during build.
Settings.xml
If developing on the NGGN the proxy settings are needed to download the libraries
Sample:
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<proxies>
<proxy>
<id>ngas-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>eastproxy.northgrum.com</host>
<port>80</port>
<username>(your MyID)</username>
<password>(your login password)</password>
</proxy>
<proxy>
<id>ngas-proxy2</id>
<active>true</active>
<protocol>https</protocol>
<host>eastproxy.northgrum.com</host>
<port>80</port>
<username>(your MyID)</username>
<password>(your login password)</password>
</proxy>
</proxies>
<servers>
<server>
<id>flyway-localhost</id>
<username>root</username>
<password>(mysql root password)</password>
</server>
<server>
<!-- in tomcat conf/tomcat-users.xml specify a user that has role manager-script -->
<id>tomcat-localhost</id>
<username>(manager-script username)</username>
<password>(manager-script password)</password>
</server>
</servers>
<profiles>
<profile>
<id> local-deploy </id>
<properties>
<tomcat-home>C:\development\apache-tomcat-8.5.24-portal</tomcat-home>
<tomcat-version>8.5.24</tomcat-version>
<tomcat-base-url>http://localhost:8080</tomcat-base-url>
</properties>
</profile>
</profiles>
</settings>
Configuring Tomcat
Tomcat cannot run on port 80 or 443 unless it is is running as root (big security concern with that). It is suggested to use proxy services like NGINX or Apache to proxy 80 or 443 traffic to redirect to tomcat
NGINX
-
In the default /etc/nginx/conf.d add a file called portal.conf
-
Populated it with the values below
proxy_cache_path /tmp/NGINX_cache/ keys_zone=backcache:10m;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream tomcat {
# Use IP Hash for session persistence
ip_hash;
# List of Tomcat application servers
server 127.0.0.1:8080;
}
server {
listen 80;
server_name portal.viprcenter.com;
client_max_body_size 0;
# Redirect all HTTP requests to HTTPS
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2;
server_name portal.viprcenter.com;
client_max_body_size 0;
ssl_certificate /etc/nginx/ssl/portal.viprcenter.com.crt;
ssl_certificate_key /etc/nginx/ssl/portal.viprcenter.com.key;
ssl_session_cache shared:SSL:1m;
ssl_prefer_server_ciphers on;
# WebSocket configuration
location / {
proxy_pass http://tomcat;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
}
}
-
Save the file
-
Modify
/etc/nginx/nginx.conf -
In the http section of the conf file add
include /etc/nginx/conf.d/portal.conf -
Restart NGINX
-
Navigate to the url. It should redirect to 443
Apache
- In apaches
httpd.conffile add the following
Listen 80
Listen 443
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ https://%1$1 [R=Permanent,L,QSA]
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache/ssl/portal.viprcenter.com.crt
SSLCertificateKeyFile /etc/apache/ssl/portal.viprcenter.com.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
- Restart and try navigating