0

[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 ạ. image.png quá nhiều nút qua cPanel còn nhiều nút nữa image.png Phần Email có vài thứ làm mình có chủ ý image.png 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 image.png Quả màn hình Hacker lỏ hoạt động đúng như mong đợi image.png

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 image.png 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 image.png

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

image.png 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 image.png


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí