41 điểm bởi GN⁺ 2025-04-29 | 11 bình luận | Chia sẻ qua WhatsApp
  • Viết bài trên máy cục bộ bằng Obsidian, sau đó triển khai blog cá nhân nhanh chóng và miễn phí với tổ hợp Hugo + giao diện Bear Blog + Cloudflare Pages
  • Quản lý phiên bản qua GitHub và triển khai tự động giúp việc vận hành rất tiện. Chỉ cần viết bài, lưu và commit là có thể xuất bản ngay
  • Thiết lập ban đầu cần một chút kiến thức phát triển nhưng sau đó quy trình làm việc trở nên rất đơn giản
  • Phù hợp với những ai đang tìm kiếm một cách viết blog gọn nhẹ và bền vững

Cấu hình chi tiết

  • Sử dụng Obsidian để viết toàn bộ bài viết
    • Lưu dưới dạng tệp cục bộ nên mọi dữ liệu đều thuộc sở hữu của chính bạn
    • Giao diện Minimal mang lại trải nghiệm gọn gàng, không gây xao nhãng
    • Có thể đồng bộ không giới hạn giữa nhiều thiết bị thông qua iCloud (cũng có thể dùng Dropbox, Google Drive)
  • Xuất bản
    • Hugo: trình tạo trang tĩnh siêu nhanh
    • giao diện Bear Blog: giao diện blog tối giản và nhanh
    • GitHub + Cloudflare Pages: có thể triển khai website miễn phí
    • Ưu điểm: không mất phí thuê bao, không bị phụ thuộc nhà cung cấp, không lo rủi ro do chính sách nền tảng thay đổi

Thiết lập hệ thống

  • Sau khi cài Hugo, tạo một site mới
    hugo new site myblog  
    cd myblog  
    
  • Thêm giao diện Bear Blog
    git init  
    git submodule add https://github.com/janraasch/hugo-bearblog.git themes/hugo-bearblog  
    
  • Cấu hình tệp config.toml để dùng giao diện Bear Blog
    theme = 'hugo-bearblog'  
    
  • Kết nối Obsidian với Hugo
    • Viết bài trong thư mục content/blog của Hugo
    • Trong Obsidian, dùng tính năng "Open folder as vault" để liên kết với thư mục đó
    • Làm như vậy thì các bài viết được tạo trong Obsidian sẽ được nối trực tiếp thành bài đăng trên site Hugo
  • Thêm mẫu Front Matter cho Hugo ở đầu bài viết khi soạn trong Obsidian
    +++  
    title= "Your Post Title"  
    date= YYYY-MM-DD  
    tags= ["post"]  
    draft= true  
    +++  
    
  • Khi đã sẵn sàng xuất bản, đổi giá trị draft thành false
  • Dùng tính năng máy chủ cục bộ của Hugo để xem trước bài viết trên trình duyệt
    hugo server -D  
    
  • Tạo một repository GitHub mới và kết nối dự án cục bộ
    git remote add origin https://github.com/yourusername/yourblog.git  
    git add .  
    git commit -m "Initial commit"  
    git push -u origin main  
    
  • Sau khi đăng ký Cloudflare, tạo dự án Pages
    • Kết nối repository GitHub và áp dụng cấu hình build sau
      • Lệnh build: hugo --minify
      • Thư mục đầu ra: public

Quy trình xuất bản

  • Viết bài trong Obsidian
  • Đổi draft: true thành draft: false trong mẫu Front Matter
  • Commit và push lên GitHub
    git add . git commit -m "Publish new post" git push
  • Cloudflare Pages sẽ tự động phát hiện thay đổi và build lại site, áp dụng trong vòng 1–2 phút

11 bình luận

 
codject 2025-05-05

Tôi cũng đang vận hành blog bằng Hugo.
Sau khi viết bài trong Obsidian, tôi dùng cách lấy việc push lên GitHub repository làm trigger để host trên Cloudflare Pages.
Ngoài ra tôi còn tích hợp dịch vụ tìm kiếm Algolia, và mỗi khi viết bài mới thì tạo một file sh để phục vụ indexing, nhét hết các lệnh liên quan như git, indexing, v.v. vào đó rồi chạy lệnh sh để xuất bản bài viết.

Tôi chủ yếu dùng Obsidian vì thỉnh thoảng có cái thú gom các bài đã viết lại và xem chúng trong graph view.

 
sungchi 2025-04-30

Tôi cũng đã làm theo cách tương tự, nhưng giờ thì đang viết trực tiếp trong kho lưu trữ trên github.com. (tận dụng tính năng github pages tự động build jekyll)

https://plan9.kr/

 
jk34011 2025-05-02

Ồ, bạn là người đã làm ra Text Battle phải không?
Trước đây tôi từng thấy trên cộng đồng và chơi rất vui haha, rất vui được gặp bạn

 
zxshinxz 2025-04-29

Tôi cũng đang làm blog bằng Hugo nên thấy vui ghê!
Tôi cũng từng định dùng Obsidian làm trình biên tập chính, nhưng nếu ở môi trường có máy tính thì có vẻ VSCode tốt hơn.
Vì các thay đổi được phản ánh ở mức mili giây nên tôi không thật sự cảm thấy cần đến Obsidian lắm.

 
halfenif 2025-04-29

Tôi không hiểu lý do phải kết nối Hugo với Obsidian.

Nếu là người dùng Hugo thì có vẻ VSCode tự nhiên hơn.

 
bobross0 2025-04-29

Cái này thật sự rất thú vị.

 
gdaw3440 2025-04-29

Plugin digital garden cũng rất tiện.

 
haejuk99 2025-04-29

Cảm ơn bạn đã chia sẻ nội dung. Mình mới bắt đầu dùng obsidian nên chắc cũng phải thử dùng cùng mới được.

 
ethanhur 2025-04-29

Cảm ơn vì thông tin hữu ích. Dạo này tôi cũng dùng Obsidian khá nhiều và có vẻ đây là một tổ hợp rất hợp với tôi.

 
tequila 2025-04-29

Tôi vừa mới tạo một blog bằng Hugo cách đây vài ngày nên thấy nội dung này thật sự rất đáng mừng.
Tôi đang thiết lập để khi push thì sẽ được triển khai lên GitHub Pages và sử dụng như vậy. haha
Tôi cũng rất thích Obsidian, nhưng cũng khuyên bạn nên dùng tiện ích mở rộng tên là "Front Matter" trong vscode.
Nó cung cấp các chức năng CMS đơn giản; tuy không hoàn hảo lắm nhưng dùng cũng khá ổn.

 
GN⁺ 2025-04-29
Ý kiến trên Hacker News
  • Stack này mang lại quyền kiểm soát hoàn toàn: không đăng ký thuê bao, không bị khóa vào nhà cung cấp, không có rủi ro nền tảng biến mất hoặc thay đổi chính sách
    • Tác giả cho thấy qua điều này rằng ý nghĩa của "quyền kiểm soát hoàn toàn" đã thay đổi rất nhiều
  • Vận hành một blog tĩnh là một trong những kịch bản dễ tự host nhất
  • Cảm giác hơi kỳ khi nói về "quyền kiểm soát hoàn toàn" và "không có rủi ro nền tảng biến mất" trong khi vẫn phụ thuộc vào tầng miễn phí của hai công ty bên ngoài
  • Mong chờ bài đăng blog tiếp theo sau một năm với tiêu đề "tôi đã xây dựng lại blog của mình như thế nào"
  • Google những bài kiểu "tôi đã làm blog của mình bằng [next.js/Gatsby v.v.] như thế nào" là một thú vui khá vui
  • Hàng trăm blog của lập trình viên không có bài đăng nào ngoài bài viết công bố cách họ dựng blog
  • Việc chọn Obsidian trong bối cảnh này hơi lạ nhưng thú vị
    • Thay vì mở thư mục con của dự án Hugo trong Obsidian, có thể mở toàn bộ dự án bằng VSCode hoặc IDE tương tự
    • Trải nghiệm chỉnh sửa Markdown của Obsidian khác với IDE thông thường
    • Nếu bạn thích bộ tính năng của Obsidian thì lựa chọn này là dễ hiểu
    • Một trong những điểm mạnh của Markdown là được nhiều trình soạn thảo khác nhau hỗ trợ
  • Tôi có thiết lập tương tự, nhưng đã viết một plugin Obsidian tùy chỉnh để nén tài nguyên/chuyển đổi frontmatter/đẩy bundle lên kho blog Github
  • Github dùng Pelican để chuyển đổi sang HTML và triển khai lên VPS
    • Có thể dễ dàng có giao diện WYSIWYG
    • VSCode là đủ cho việc viết blog bằng Markdown
    • Hugo biên dịch trang khi lưu nên có thể lặp lại rất nhanh
  • Rủi ro nền tảng biến mất hoặc thay đổi chính sách vẫn còn tồn tại
  • Jekyll chậm với nội dung lớn, còn Hugo thì nhanh
  • Có thể dễ dàng chuyển đổi giữa Github Pages, CloudFlare Pages, Netlify và Vercel
  • Kirby CMS là lựa chọn phù hợp nhất
  • SSG có thể bị mục ruỗng phần mềm nếu bị bỏ mặc trong vài năm
  • Có thể dùng Obsidian Publish để loại bỏ Hugo, Github và Cloudflare