Skip to content

vikidi/Homepages

Repository files navigation

My Home Pages

Full Test codecov Code Climate maintainability Code Climate technical debt GitHub

This is my personal home page's code base which is at villesaarinen.me.

Server

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.

Security

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.

  • UFW
  • Logwatch
  • Fail2Ban
  • (ClamAV - Not enough RAM, not using...)

Hacking Me

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 🙂

Overall System

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.

About The Code

This section mainly discusses about the code itself.

Get Started

To be continued...

Frontend

To be continued...

Backend

To be continued...

CI/CD

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.

Github actions

To be continued...

3rd Party Applications

Mainly using these products to test them out and learn about them:

Unit Testing

Unit testing is done in both frontend and backend cases with Jest.
To be continued...

Integration Testing

Integration testing is also done using Jest and it mainly consists of API testing for backend.
To be continued...

End-2-End Testing

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...

Coverage

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:

GitHub Logo

Contact

You can contact me any time through any of these:
Email - villesaarinendev@gmail.com
Telegram - @vikidi

Contributing

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.

License

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.

About

My personal home page - React front and NodeJS back.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published