Because i use jigsaw for this blog, i want to share with you how i setup the deployment of my blog.
The problem with the static site is, we does not have an editor that we can use on the fly. Like wordpress for example they have admin dashboard we can compose out blog post from the admin and click button publish when we are ready.
Using git for static site is perfect and i think it is really easy. So this is the step by step how i setup git server for this blog. Server
This blog post i post to my $5 private server on vultr. And i have full control over my server. So this is how i setup my application.
Git
The first one will always to install a git. By the way i use ubuntu on my server.
sudo apt install gitAdd git user
And then next add new git user on my server.
sudo adduser gitAnd then create ssh folder.
su git
cd
mkdir .ssh
touch .ssh/authorized_keysAnd then go to local computer and copy public ssh keys.
cat .ssh/id_rsa.pubThen paste into the .ssh/authorized_keys.
And now let's verify if the configuration was running successfully.
ssh git@ahmadrosid.comCreate Repository
Now we already completed server configuration let's create the repository.
mkdir blog.git
cd blog.git
git init --bareAnd one more thing we need to create hooks to extract the file from the git repository in our server. Save into hooks/post-receive.
#!/bin/sh
git --work-tree=/var/www/blog --git-dir=/home/git/blog.git checkout -f masterAnd make it executable.
chmod +x hooks/post-receiveAdd remote deploy to local.
git remote add deploy git@ahmadrosid.com:/home/git/blog.gitAnd then just push the code.
git push deployNginx Configuration
One last thing we need to config static server configuration. The config it's really simple. Just create file /etc/nginx/config/blog.conf.
And the config is look like this.
server {
listen 80;
server_name ahmadrosid.com;
root /var/www/blog/public;
index index.html;
}And then activate the server.
sudo nginx -s reloadMake it https
And this is also important don't forget to make it secure with ssl. Luckily it so easy to install ssl to nginx server.
Let's install certbot.
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx -yAnd then install the ssl.
sudo certbot --nginx -d ahmadrosid.comThis is will need you to add your email and agreement. After that we are done.