[Homelab] #22 Tạo Blog của riêng mình với Hexo
Bài này không hẳn là Homelab, nhưng mà cũng nằm trong những thứ mình vọc vạch. Trước giờ là chỉ toàn làm trên On-Prem với IaaS rồi, nay thì cũng nên thử PaaS như thế nào?
Làm quen với giao diện Hosting
Lúc đầu vào mình như con khỉ ấy, nút nhiều quá ngộp ạ.
quá nhiều nút
qua cPanel còn nhiều nút nữa
Phần Email có vài thứ làm mình có chủ ý
Cái này sẽ giúp mình làm được một email kiểu danielnguyen@domain.com cái này thì mình me khá là lâu rồi, chưa có dịp làm. Nay thấy cái này nên cũng vào làm luôn
Giao diện thì khá dễ làm, còn việc nó chạy được hay không thì mình chưa kiểm tra.
Bắt đầu thử nghiệm
Theo như những gì mình tìm hiểu, sau khi Add Domain mới của mình vào và trỏ DNS về thì có thể truy cập rồi. Nhưng để có thứ gì đó hiện ra thì phải thêm vào /public của hosting đã.
Thế là mình thử thêm vào file index.html ở bài 4 Custom Intro
Quả màn hình Hacker lỏ hoạt động đúng như mong đợi

Tiếp cận bằng workflows trên Git
Giờ thì đã xác nhận được việc chuyển file .html vào thì nó sẽ hoạt động rồi. Tiếp theo cần chính là Build Page Hexo => FTP vào trong /public
Trải qua hàng loạt đợt chỉnh sửa và bị spam email liên tục thì cuối cùng cũng ra được file config workflow hoàn chỉnh
name: Deploy Hexo to CloudFly
on:
push:
branches:
- main
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source (with submodules)
uses: actions/checkout@v3
with:
submodules: true
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Build Hexo site
run: npx hexo generate
- name: Deploy via FTP
uses: SamKirkland/FTP-Deploy-Action@v4.3.3
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
local-dir: ./public/
server-dir: /../
protocol: ftp
exclude: |
**/.git*
**/.github*
Sau đó vào setting của repo để thiết lập các biến username, pass, server

Thế là hoạt động trơn tru rồi đó.
Một vài lỗi gặp trong lúc làm
Cloudfly FTP hơi lạ?
Mình sử dụng đúng config mà cloudfly cho để FTP vào nhưng không được. Nó không resolve đc IP của domain đấy. Thế là mình đẩy DNS từ domain mình vào IP của hosting, còn trên var của workflows mình đẩy luôn IP cho tiện.
Lỗi Themes của Hexo
Vì sử dụng Repo cũ, nên mình cứ nghĩ là nó chạy tốt, ai ngờ nó không push cái Themes Hexo mình lên vì là submodule. Cách sửa cũng đơn giản.
git submodule add https://github.com/theme-particlex/hexo-theme-particlex themes/particlex
Dùng lệnh này nó sẽ tạo cho bạn một cái .gitmodules
Sau này Themes có update thì nó cũng sẽ update cho bạn luôn
Thành quả
Trông cũng dễ thương ấy chứ nhỉ? Tạm thời dùng như thế này đi, sau này mình sẽ sửa lại. Nhiều lúc nghĩ cái Viblo của mình đúng ra là dinhkarate. Nhưng mà viết ở đây nhiều quá rồi, thôi thì dùng luôn vậy. Coi như bút danh haha

All rights reserved