# Alley-HSBC-Frontend ## Build docker image from docker file 1. cd into the root of this repository. 2. On Windows * run `docker build --tag .` On Linux * run `DOCKER_BUILDKIT=1 docker build --tag .` Where `` is the name you give to the image. ## Deploy in docker (docker-compose) 1. Deploy using [docker-compose](/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 docker directory If you built your own image * Please Replace the image name in "docker-compose.yml" with `` 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 3000 by default. To change the port number, edit docker-compose.yml. Under ports, replace `3000:3000` with `:3000`. Then stop the service and start it again. 7. Node: you may exprience issues running the container in machines with limited ram. If the container restarts unexpectedly, try running `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 ` to create a new screen. where `` 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 3000 ## 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.