This is my personal home page's code base which is at villesaarinen.me.
These websites are currently running at the moment on a single Raspberry Pi 3B+ board. I have plans to create RPi cluster whish would act as a more sophisticated hardware solution. Later when I mention server it means this board.
Production instances of the NodeJS servers are created and managed with PM2 and can be reviewed (by me) from pm2.io.
The server uses following programs to ensure better security. Reports generated by Logwatch and Fail2Ban are send to my email via Sendmail and SendinBlue SMTP server.
Please do not try to hack my site or my server!
If you still try to hack me and even succeed in it, please make an issue to this repo covering the vulnerabilities :slightly_smiling_face:
I'm not going into too much detail here for security reasons. If you want to know more feel free to contact me directly.
Domain name (villesaarinen.me) is from GoDaddy.
Nameservers are moved to CloudFlare, which handles the routing to my site. CloudFlare provides also CDN service and extra security to the application.
DNS is updated to CloudFlare using ddclient on the server, which then requests DNS-O-Matic to update CloudFlare.
My router forwards requests to the server's private ip address. This is setup to be static in the local network.
On the server is Nginx reverse-proxy server which recives the requests and forwards them to the port where the application is running.
This section mainly discusses about the code itself.
To be continued...
To be continued...
To be continued...
This section is about the continuous integration and deployment that the project has. This consists of Github action and 3rd party applications reviewing the code base.
To be continued...
Mainly using these products to test them out and learn about them:
Unit testing is done in both frontend and backend cases with Jest.
To be continued...
Integration testing is also done using Jest and it mainly consists of API testing for backend.
To be continued...
E2E-testing is done by using Cypress. Also npm package "start-server-and-test" is used in CI pipeline to run these tests easily.
To be continued...
Testing coverage is generated by Jest combined from unit and integration testing and it is then uploaded to CodeCov for further investigation.
Graph from CodeCov for coverage:
You can contact me any time through any of these:
Email - villesaarinendev@gmail.com
Telegram - @vikidi
I am not currently accepting PRs to this project, since it is part of my own portfolio. If you want to help, you can leave an issue or contact me directly.
Open source rules! This project is under MIT license, which means you can freely use the code. If you use this project and feel generous, please include my name and website in your project: Ville Saarinen, villesaarinen.me.