Homelab #22 Tạo Blog của riêng mình với Hexo
HOMELAB

Homelab #22 Tạo Blog của riêng mình với Hexo

Thất Nghiệp Thất Nghiệp
Oct 27, 2025 4 min read 0 views
Back to Blog

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 ạ.
Làm quen với giao diện Hosting - 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
quá nhiều nút
qua cPanel còn nhiều nút nữa
Làm quen với giao diện Hosting - 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
Phần Email có vài thứ làm mình có chủ ý
Làm quen với giao diện Hosting - 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
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
Bắt đầu thử nghiệm - Lúc đầu vào mình như con khỉ ấy, nút nhiều quá ngộp ạ
Quả màn hình Hacker lỏ hoạt động đúng như mong đợi
Bắt đầu thử nghiệm - Lúc đầu vào mình như con khỉ ấy, nút nhiều quá ngộp ạ

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
Tiếp cận bằng workflows trên Git - 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ì ...
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
Tiếp cận bằng workflows trên Git - Giờ thì đã xác nhận được việc chuyển file

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ạ?

Cloudfly FTP hơi lạ? - Thế là hoạt động trơn tru rồi đó
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
Thành quả - Sau này Themes có update thì nó cũng sẽ update cho bạn luôn

Share this article

Thất Nghiệp

Written by Thất Nghiệp

A developer sharing thoughts on clean code, creative freedom, and the pursuit of the perfect dev environment. Building digital sanctuaries one component at a time.

Comments

Join the conversation

Leave a comment

Won't be published

You might also like