Buat Blog Hugo Di FreeBSD

· ~al1r4d · ⮕freebsd · #hugo

TemanBSD baru migrasi ke FreeBSD dari VPS Jetorbit. Sebelumnya masih numpang Gitlab dan saya merasa ada yang janggal blog BSD tapi masih numpang dalam keadaan saya mampu beli VPS-nya.

Jadi gak perlu bertele-tele lagi, mari kita bahas cara mengatur blog Hugo di FreeBSD.

Kita unduh paket Hugo sebagai blog, Nginx sebagai web server, dan Certbot untuk mendapatkan SSL Let’s Encrypt

$ sudo pkg install gohugo nginx py39-certbot py39-certbot-nginx

Hugo

Di sini saya akan jelasin Hugo dasar aja.

Jika anda belum punya folder hugo, maka kamu bisa menggunakan perintah new site layaknya di bawah untuk membuat web berbasis Hugo.

$ mkdir blog
$ cd blog
$ hugo new site .

Nantinya kamu perlu tema yang bisa anda cari di Github, misalnya Mainroad layaknya blog ini. Silahkan kloning berkas tema dengan perintah ini.

$ cd themes
$ git clone https://github.com/Vimux/Mainroad

Setelah itu, anda akan menemukan config.toml milik Mainroad sebagai konfigurasi blog saat menggunakan tema tersebut. Pastikan anda sudah punya config.toml yang disimpan pada akar folder blog karena jika tidak, maka website hugo anda tidak bisa digunakan.

Saat anda merasa sudah cukup, maka hasilkan konten menjadi .html dengan perintah ini di folder akar blog.

$ hugo --gc

Anda akan menemukan berkas .html di folder public/ dan arahkan ke Nginx seperti bahasan selanjutnya.

Certbot

Kita belum punya SSL dan memiliknya adalah kewajiban bagi pemilik website. Gunakan Certbot untuk mendapatkan SSL Let’s Encrypt gratis.

$ sudo certbot certonly -d domain.com

Nginx

Buatkan konfigurasi baru di berkas nginx.conf.

$ sudo nvim /usr/local/etc/nginx/nginx.conf
---

server {
    server_name  domain.com;
    location / {
        root   /home/user/blog/public/;
        index  index.html index.htm;
        }
    
    listen 443 ssl; # managed by Certbot
    ssl_certificate /usr/local/etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /usr/local/etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
    ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    }

 server {
    if ($host = domain.com) {
        return 301 https://$host$request_uri;
    } 
        listen       80;
        server_name  domain.com;
    return 404; #

Setelah itu, jalankan perintah ini untuk memeriksa konfigurasi apakah sudah benar atau belum

$ sudo nginx -t
---
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

Nah, mantap, saatnya jalanin layanan Nginx.

$ sudo service nginx enable
$ sudo service nginx start

Pertanyaan atau komentar? Email kami.