3.7 KiB
Deighton AR Training System
This is the repository for the Deighton AR Training System.
Development
Pre-requisites
Install locally:
- NodeJS
- MongoDB
- RabbitMQ
- Redis
The backend systems for this project have been developed and tested on macOS and Ubuntu systems.
Follow the instructions for additional dependencies for the canvas NPM package.
For iOS development install Xcode. For Android development install Android Studio.
Website, Server and Mobile Bundler
Ensure the snap-tool is installed with npm install -g snap-tool.
Clone this repository, and from the root do:
snap install
snap start
This will start the website, server and the Metro bundler for development builds of the mobile apps.
iOS App
You'll need Xcode fully installed and running. To run the iOS mobile app, start Xcode, open the DeightonAR.xcproject, plug in a iPhone and run the project.
Android App
To run the Android mobile app, start Android Studio, open the mobile/android project, plug in an Android device and run the project.
Production
Website
To deploy the website for the 1st time do the following.
- Install
nginx,mongodb,rabbitmqand configure as desired. - Order SSL certificate for site and install under
/etc/nginx/ssl. - Install
.conffile for the site (see below for example)
The .conf file for the site will look something like:
server {
listen 443 ssl;
server_name dar.kss.us.com;
ssl_certificate /etc/nginx/ssl/dar_kss_us_com_chained.crt;
ssl_certificate_key /etc/nginx/ssl/dar_kss_us_com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /home/ubuntu/deighton-ar/website;
# Any route that starts with /api/ is for the backend
location /api/ {
proxy_pass http://127.0.0.1:3001/;
proxy_buffering off;
proxy_redirect off; # The backend doesn't redirect
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# Any route containing a file extension
location ~ ^.+\..+$ {
try_files $uri =404;
}
# Any route that doesn't have a file extension
location / {
try_files $uri $uri/ /index.html;
}
}
Run nginx -t to check configuration, then nginx -s reload to load it. API service will need to be set up to login (see next section).
Create admin and user users with passwords for the MongoDB database.
Install the deighton-ar.service file by copying it to the /lib/systemd/system directory and run sudo systemctl --now enable deighton-ar to start the service.
Create a service/config/local-production.json5 file an insert an MongoDB URI with appropriate password.
For subsequent deployments, you can simply run:
cd website
npm run build
npm run deploy
Service
These instructions are for installation on Ubuntu. See Install_Ubuntu_16.04_LTS_Service_Instance for detailed instructions on setting up a system appropriately.
First, create a log file directories:
sudo mkdir /var/log/deighton-ar
sudo chown ubuntu:ubuntu /var/log/deighton-ar
Then do:
cd server
npm run build
npm run deploy
Then, on the server run:
iOS App
You'll need an Apple Developer account. Set up appropriate AppID's in the developer port with plus signing keys installed correctly. Adjust project to use appropriate siging keys.
TBD.
Android App
TBD.