46 lines
3.0 KiB
Markdown
46 lines
3.0 KiB
Markdown
# Alley-HSBC-Frontend
|
|
|
|
|
|
## Build docker image from Dockerfile
|
|
1. cd into the root of this repository.
|
|
2. On Windows
|
|
* run `docker build --tag <image-name> .`
|
|
|
|
On Linux
|
|
* run `DOCKER_BUILDKIT=1 docker build --tag <image-name> .`
|
|
|
|
Where `<image-name>` is the name you give to the image.
|
|
## Deploy in docker (docker-compose)
|
|
1. Deploy using [docker-compose.yml](/docker/docker-compose.yml).
|
|
2. Make sure both docker and docker-compose are installed.
|
|
3. If you pull image teamalley/digital-walkaround from dockerhub
|
|
* You need to first login to dockerhub by running `docker login` command. The Username and LoginToken are provided under files in the "docker" directory
|
|
|
|
If you built your own image
|
|
* Please Replace the image name in "docker-compose.yml" with `<image-name>`
|
|
|
|
4. cd into the direct where you store the "docker-compose.yml" file.
|
|
5. * run `docker-compose up -d` to start the service.
|
|
* run `docker-compose down` to stop the service
|
|
6. You can access it on port 8080 by default. To change the port number, edit docker-compose.yml. Under ports, replace `8080:8080` with `<the port number you want>:8080`. Then stop the service and start it again.
|
|
7. Node: you may exprience issues running the container on machines with limited ram.
|
|
* If you are running this container on a server with 2-3 GiB of ram, you need to uncomment the two "environment" lines that sets "--max-old-space-size=1536" to allow node to allocate up to 1.5 GiB of ram. Also make sure there are no other programs on your system that requires lots of ram. \
|
|
You should not run this container on machines with less than 2 GiB of ram
|
|
* If the container restarts unexpectedly, try running the container with `docker-compose up` without `-d` option to show the error messages.
|
|
|
|
## Deploy directly on a Server
|
|
If You prefer installing it directly or you are expriencing some issues with the docker container.
|
|
Follow the instructions bellow.
|
|
|
|
1. Make sure you have a server with node v16.14.0 and npm 8.3.1 installed (other versions may work but not guaranteed). A linux machine with `screen` installed is recommended.
|
|
2. clone the repository and `cd` into the root folder of the repository.
|
|
3. If you are installing it on a linux machine with `screen` installed, run `screen -S <name>` to create a new screen. where `<name>` can be any name you choose.
|
|
4. run `npm run start-prod`
|
|
5. if you followed step 3, press `CTRL ^A` then press `D` while holding `CTRL ^A`. The screen will detach.
|
|
6. You can then access it on port 8080
|
|
|
|
## Setup Reverse Proxy
|
|
You can use Apache, Ngnix or other tools to set up a reverse proxy and connect it to a hostname. [here](https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html) is a guide on apache reverse proxy setup.
|
|
|
|
## Enable HTTPS
|
|
You might want to enable https to secure your webapp since it includes private information (such as your username and password). [here](https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-20-04) is a guide on enabling https with Let's Entrypt on a Ubuntu server with apache. |