This is a project challenge to build website with his backend without using UI library, just raw JS/CSS. and also not using web framework, just raw NodeJS. This is project only use JS/NODEJS/DOCKER/PORTGRESQL/REDIS/NGINX.
-
The server is NGINX as reverse proxy with NodeJS and the database that is used is Postgresql and I have used Redis for sessions caching, while the frontend is just Javascript in /nginx/frontend .
-
The server is build as Monolithic architecture.
-
The Project work as CRUD app that allow :
- creating account with no pro subscription.
- update the account to pro user.
- deleting the account.
- updating the email of the account.
- reading if the user is Pro or not.
-
The project support authentication service where the accounts are saved in the postgre database and it cache the sessions in redis database.
-
to connect the project to github:
git clone <repository-URL>
to start the git with branch master that is connected to origin/master
-
To run the project and all the containers I use docker-compose.yml file to configure the images and run it.
- to run them
docker compose up -d
. - to stop them
docker compose down
. - to rebuild the images(apply the changes)
docker compose build
.
- to run them
-
NGINX configured to be the only server that is available to public and hide other servers, We have used HTTPS with OPENSSL.
-
In case the binded-mount docker volumes doesnt work or readed, run
sudo chmod -R 777 volumeDirName
.
- To secure the passwords that are stored in the database, We hashed them with Bcrypt algorithm.