My Personal Website
This repo contains the source code for my personal website made using Hugo.
Requirements
You only need to install Hugo to be able to run the website locally, develop, build and deploy it.
Development
- Clone the repo:
git clone https://github.com/hazemKrimi/personal-website
cd personal-website
- To run the webserver that reloads on saved changes you can use the following command:
hugo server
Deployment
I am using nginx with certbot as a seemless webserver with an SSL certificate to get HTTPS. Here is how I setup the deployment assuming you already have nginx and certbot installed:
-
Create a file to to be the webserver config under
/etc/nginx/sites-availablewith its content being what is indeploy/nginx.confof the repo. (You will need to use your own domain) -
Symlink the config into
/etc/nginx/sites-enabled:
sudo ln -s /etc/nginx/sites-available/<webserver-config> /etc/nginx/sites-enabled/<webserver-config>
- Restart
nginxand its service if you're usingsystemd:
sudo nginx -t
sudo systemctl restart nginx
- Run
certbotto get an SSL certificate for your domain:
sudo certbot --nginx
-
If you forked this repo you can use the actions workflow that I am using but you will need to add an SSH private key as an action secret. You will find this setting under repo settings > security > secrets and variables > actions. You will add your key as
DEPLOY_SSH_KEYin repository secrets. -
If you are not using GitHub Actions or not deploying on a VPS you can refer to the Hugo Deployment Guides.