transport-passenger

Assignment Database System - Transport Passenger


Project maintained by huynhsamha Hosted on GitHub Pages — Theme by huynhsamha

Instruction to deploy on Amazon AWS

Register account on AWS for free tier 1 year

EC2 on AWS

alt text

alt text

alt text

After launch instance

SSH to VPS

On Linux/Mac

ssh -i /path/to/file/.pem ubuntu@ec2-18-188-252-203.us-east-2.compute.amazonaws.com

For Window (use PuTTy)

Install packages

sudo apt-get update
sudo apt-get upgrade

# change timezone to Ho Chi Minh
sudo dpkg-reconfigure tzdata

# install git
sudo apt-get install git

# install Node 8 (or lastest)
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

# install npm
sudo apt-get install npm

Install & Config Nginx (Engine-X)

Reference: http://voidcanvas.com/setup-and-configure-nginx-in-aws-ec2-linuxubuntu-instance/

Nginx ?

Install

sudo apt-get install nginx
sudo service nginx start

Configure

cd /etc/nginx
ls

# lưu ý 2 cái này:
## sites-available
## sites-enabled
## sites-enabled trỏ tới sites-available
### + sửa trong sites-available
### + tham chiếu từ sites-enabled tới sites-available

cd sites-available

# file default is configure to nginx

sudo cp default myapp
# fork default to file myapp

cd ../sites-enabled
sudo ln -s /etc/nginx/sites-available/myapp myapp
# reference file from enabled to available

cd ../sites-available
sudo vim myapp

Reference: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04

Restart nginx

sudo service nginx restart

Create server Node

# create new foler
cd ~
mkdir Home
cd Home
# clone repository
git clone ...
cd myapp
npm install

Install pm2

Instead of npm start, use pm2.

# install
sudo npm install pm2 -g

# start
pm2 start npm -- start

# restart server
pm2 restart all

Test

Vào địa chỉ IP public sẽ thấy cái welcome to nginx (do trong file nginx config server_name không có cái phần địa chỉ ip)

Còn vào public ipv4 domain, sẽ thấy cái app node (do server_name có dùng location ở port 4200 của localhost)

Test server node (dùng pm2)

pm2 log

Nếu không dùng pm2, lúc npm start ta phải giữ terminal chỗ đó, không tắt được (cái này là 1 lý do dùng pm2)

Free domain remote to instance EC2

Domain Freenom (dot.tk)

Go freenom sign up an account, register new free domain, example transport-passenger.tk

alt text alt text alt text

Fix and restart Nginx

... {
	...
	server_name transport-passenger.tk;
	...
}

Restart nginx, pm2

sudo service nginx restart
pm2 restart all

Test

APIs

View APIs here

Documents - Contributing

View Documents here

Deploy on Heroku

View here