3 điểm bởi GN⁺ 21 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Hardcore IndieWeb là cách giữ bản gốc nội dung cùng HTML và tài sản web có thể xuất bản trên thiết bị của chính mình, không giao danh tính và quyền kiểm soát nội dung cho nhà cung cấp dịch vụ
  • Nếu làm theo quy trình xuất bản kiểu thập niên 1990 — xem trước HTML trong trình duyệt rồi tải lên host — bạn có thể vận hành site mà không cần CMS, SSG, framework, CLI hay phí thuê bao hằng tháng
  • Chỉ cần trình soạn thảo văn bản, công cụ SFTP và web host; với NearlyFreeSpeech.net, bạn có thể chạy site tĩnh với giá $0.01 mỗi ngày và nạp tiền từ $0.25
  • Có thể tự quản lý landing page, từng bài viết, archive và Atom feed dưới dạng file, thay đổi cấu trúc và thiết kế theo từng trang, đồng thời chỉ truyền các file đã thay đổi
  • Ngay cả khi host biến mất, bạn vẫn có thể đưa nguyên site đã hoàn thiện lên nơi khác; nhưng càng thêm công cụ thì phụ thuộc càng tăng, nên giữ bản gốc cục bộ và bản đã xuất bản là điều kiện để duy trì sự độc lập

Sự độc lập mà Hardcore IndieWeb đòi hỏi

  • IndieWeb là cách tiếp cận thực dụng nhằm tự sở hữu danh tính và nội dung trên web, thoát khỏi sự kiểm soát bên ngoài của doanh nghiệp
  • Các dịch vụ blog dạng thuê bao cũng có thể giúp tham gia IndieWeb, nhưng nếu nội dung chủ yếu nằm trong cơ sở dữ liệu và máy chủ của người khác thì chưa hoàn toàn độc lập
    • Dù có thể xuất ra định dạng mở, trong thời gian sử dụng dịch vụ bạn vẫn không kiểm soát hoàn toàn nội dung
    • Cách này phù hợp với những người muốn độc lập và kiểm soát hoàn toàn nội dung hơn là những người đã hài lòng với dịch vụ hiện có
  • Hardcore IndieWeb áp dụng các tiêu chí cụ thể là quyền kiểm soát và khả năng di chuyển lên các nguyên tắc IndieWeb hiện có
    • Nếu nội dung không chủ yếu nằm trên ổ cứng của bạn, khó có thể nói là bạn kiểm soát hoàn toàn
    • Nếu không có bản sao HTML đã xuất bản và tài sản web trên ổ cứng, site chưa ở trạng thái có thể di chuyển hoàn toàn
  • Nếu dịch vụ đóng cửa và không thể xuất dữ liệu, dù trên danh nghĩa bạn sở hữu nội dung thì vẫn không thể truy cập hoặc chuyển đi
  • Nếu muốn rời dịch vụ vì hành vi của bên vận hành, bạn có thể phải tìm dịch vụ khác hỗ trợ định dạng đã xuất, hoặc chuyển đổi nội dung và thay đổi công cụ, quy trình
  • Khi có bản gốc nội dung và bản xuất bản hoàn chỉnh ở cục bộ, bạn vẫn duy trì được quyền kiểm soát và khả năng di chuyển trong những tình huống này

Quy trình xuất bản web kiểu thập niên 1990

  • Hardcore IndieWeb đi theo cách xuất bản đơn giản của thời kỳ đầu của web
    1. Viết nội dung trên ổ cứng
    2. Xem trước trong trình duyệt web
    3. Khi hài lòng thì upload lên web host và lặp lại khi cần
  • Ngoài tên miền, những thứ cần thiết chỉ là trình soạn thảo văn bản, công cụ truyền file và web host
  • Không cần môi trường lập trình hay IDE, framework, shell, công cụ CLI, thuê bao hằng tháng
  • Cần biết HTML, nhưng có thể học qua tài liệu như HTML for People, và có thể bắt đầu chỉ với một số ít thẻ cùng thao tác sao chép–dán
  • SaaS, CMS, SSG, ngôn ngữ markup, hệ thống template phức tạp đều là tùy chọn; cách đơn giản là xuất bản trực tiếp các file vẫn hoạt động tốt

Công cụ và hosting cần thiết

  • Có thể dùng bất kỳ trình soạn thảo văn bản nào miễn là lưu được file xuống đĩa
  • Để truyền file, cần công cụ hỗ trợ SSH hoặc SFTP
    • FileZilla là một lựa chọn hỗ trợ nhiều hệ điều hành
  • Khuyến nghị NearlyFreeSpeech.net làm host cho site tĩnh, có thể vận hành với giá $0.01 mỗi ngày
    • Adam Newbold đã dùng dịch vụ này từ năm 2008
    • Có thể nạp tiền vào tài khoản từ $0.25 và thêm site static, non-production
    • Chọn tên site trong tab Sites để xem thông tin đăng nhập dùng cho truyền file
    • Có cung cấp subdomain miễn phí, và có thể thêm tên miền riêng trong tab Domains
  • NearlyFreeSpeech không bắt buộc; cũng có thể chọn web host khác cung cấp hosting file tĩnh cơ bản

Chuẩn bị site hiện có và HTML

  • Nếu site hoặc blog hiện có ở định dạng HTML thì rất dễ bắt đầu ngay
  • Nếu đang vận hành ở định dạng khác, tùy dịch vụ có thể xuất ra hoặc chuyển đổi sang HTML
    • Với blog quy mô lớn, dùng công cụ chuyển đổi sẽ phù hợp hơn
    • Nếu quy mô nhỏ, có thể xem lại từng bài và tự tạo file HTML
  • Có thể bạn thích Markdown, nhưng HTML là ngôn ngữ của web, và trong một số trường hợp xử lý bằng HTML thuần còn đơn giản hơn vật lộn với Markdown parser
  • Nếu khó tự thiết kế từ đầu, có thể tải các thiết kế và template miễn phí như HTML5 UP rồi chỉnh sửa

Các file cấu thành một blog

  • Một blog thông thường gồm landing page, bài viết, trang archive và feed, có thể tự quản lý mà không cần dịch vụ blog chuyên dụng
  • Landing page

    • Có thể tự do sắp đặt toàn bộ hoặc một phần bài viết mới nhất, nhiều bài viết, hoặc nội dung không phải bài viết
    • Để hiển thị bài mới nhất, hãy sao chép nội dung và thêm liên kết tới trang độc lập
    • Để giữ 5 bài gần đây, dán bài mới lên trên và xóa bài cũ nhất ở dưới
    • Không bị ràng buộc bởi CMS, SSG hay template engine, nên có thể thay đổi cấu trúc và cách trình bày theo từng trang
    • Tên file của landing page phải là index.html và đặt ở web root
    • Web root của NearlyFreeSpeech là /home/public
  • Bài viết blog

    • Tạo mỗi bài viết thành một trang web; có thể viết bằng cách sao chép file bài cũ rồi đưa vào tên file riêng và nội dung mới
    • Cấu trúc file trên đĩa sẽ phản ánh vào URL, vì vậy hãy tổ chức thư mục theo hệ thống địa chỉ mong muốn
    • Nếu muốn dùng đường dẫn /blog/, hãy tạo thư mục blog ở web root
    • Có thể dùng tên file dựa trên slug như the-best-lunch-i-ever-had.html
    • Nếu đặt index.html trong thư mục riêng của từng bài, có thể ẩn phần mở rộng .html khỏi URL
    • Khi quản lý bài viết như file HTML độc lập thay vì Markdown hay bản ghi trong cơ sở dữ liệu, bạn có thể tạo phong cách, ngoại hình, layout và cá tính khác nhau cho từng bài
    • Quy ước mọi bài viết phải có cùng diện mạo bắt nguồn từ các công cụ xuất bản hiện đại; với HTML tự làm, bạn không cần tuân theo
  • Trang archive

    • Tạo thư mục tên như archive, đặt index.html bên trong rồi viết danh sách bài viết
    • Cách sắp xếp và cấu trúc là tùy ý; cũng có thể nhấn mạnh riêng các bài yêu thích ở đầu trang

Tự quản lý Atom feed

  • RSS feed không phải hệ thống đặc biệt mà là file lưu trên đĩa, nên có thể chỉnh sửa trực tiếp bằng trình soạn thảo văn bản
  • Có thể sao chép feed mẫu trên trang Atom của Wikipedia) và bắt đầu với file feed.xml
    • Atom tương thích với RSS và được hỗ trợ rộng rãi
    • Thay các giá trị như example.com, <title>, <subtitle> bằng tên miền và thông tin của bạn
    • Tạo <entry> cho mỗi bài muốn đưa vào feed và nhập ngày giờ, tiêu đề, tóm tắt, v.v.
    • Với <id>, lấy UUID mới từ UUID Generator để dùng
  • Có thể dán feed hoàn chỉnh vào W3C Feed Validation Service để kiểm tra khả năng parse
    • Nếu phát hiện lỗi, dịch vụ kiểm tra sẽ cho biết các mục cần sửa

Xuất bản và cập nhật

  • Lần xuất bản đầu tiên, dùng chương trình truyền file kết nối tới máy chủ và sao chép toàn bộ site lên web host
  • Sau đó, chỉ cần truyền các file mới phát sinh hoặc đã thay đổi
    • Các mục thường cần cập nhật là landing page, bài viết mới, feed và trang archive
  • Quy trình xuất bản có thể đơn giản như kéo thả file cục bộ sang máy chủ từ xa

Ranh giới giữa khả năng di chuyển và công cụ bổ sung

  • Vì site hoàn chỉnh nằm trên máy tính của bạn, nếu host hiện tại biến mất, bạn có thể upload nguyên trạng lên host khác
  • Không cần quản lý lỗ hổng bảo mật nghiêm trọng của phần mềm blog hay phụ thuộc SSG, và có thể tự kiểm soát mọi khía cạnh của nội dung
  • Chỉ cần duy trì nguyên quy trình này là có thể tiếp tục vận hành một website hoàn toàn độc lập
  • Có thể thêm công cụ và quy trình hỗ trợ workflow, nhưng mỗi công cụ được thêm vào cũng tạo ra một phụ thuộc mới
  • Nếu bản gốc nội dung nằm trên thiết bị của bạn và bạn có bản sao toàn bộ site có thể xuất bản, bạn đáp ứng các điều kiện của Hardcore IndieWeb

Quyền tự chủ khi trực tiếp xử lý HTML

  • Quy trình cốt lõi là tự viết HTML và upload lên web server
  • Các lớp công nghệ, quy trình và kỳ vọng được thêm vào trong 30 năm qua đã làm công việc web trở nên phức tạp và khiến quyền kiểm soát, sự độc lập bị chuyển giao cho người khác
  • Ngay cả khi dùng dịch vụ IndieWeb, nếu bạn giao bản sao duy nhất của toàn bộ sự hiện diện trên web cho bên vận hành dịch vụ thì vẫn chưa hoàn toàn độc lập
  • Hardcore IndieWeb không dành cho tất cả mọi người, nhưng phù hợp với những ai coi trọng việc ai nắm giữ bài viết của mình và chúng được xuất bản ở đâu, dưới hình thức nào
  • Việc trực tiếp xử lý HTML và sao chép file vào không gian web host của mình mang lại một trải nghiệm trực tiếp và tự chủ, kết nối lại với niềm vui của web thời kỳ đầu

1 bình luận

 
Các ý kiến trên Hacker News
  • Tôi đã host site tĩnh miễn phí trên GitHub Pages và Cloudflare Pages và rất hài lòng. Dù có trả tiền cho NearlyFreeSpeech thì cuối cùng vẫn phụ thuộc vào hosting của bên thứ ba, nên tự host dường như không có nhiều giá trị ngoài sự thỏa mãn về kỹ thuật.
    Điều quan trọng là tự quản lý các tài sản như HTML và hình ảnh dưới dạng những file đơn giản trên đĩa. Nhờ tích hợp Git nên cũng có bản sao lưu bên ngoài, và chỉ cần push lên master từ VS Code là được xuất bản trong vòng 30 giây, tiện hơn nhiều so với FTP/SFTP ngày trước.

    • GitHub Pages và Cloudflare Pages có ưu điểm là site có khả năng tồn tại lâu hơn cả người vận hành. Nếu tự host, trừ khi có kế hoạch kế thừa, một ngày nào đó chắc chắn sẽ ngừng hoạt động vì domain hết hạn hoặc thẻ bị hủy; còn với dịch vụ miễn phí thì chỉ dừng ở khả năng chúng có thể biến mất.
    • Khác biệt giữa việc trả tiền để trở thành khách hàng, chứ không phải sản phẩm, là khá lớn.
    • Blog của tôi cũng vận hành theo cách này: https://gigatexal.blog
  • NearlyFreeSpeech cũng là một dịch vụ tốt, nhưng không hoàn toàn độc lập. Nếu không có hạ tầng Internet riêng mà muốn tiến gần nhất tới tính độc lập, có thể chạy site ở nhà bằng port forwarding hoặc bằng dịch vụ ẩn Tor.
    Thiết lập cổng trong torrc không khó, nhưng khách truy cập cũng cần Tor Browser, và việc giải thích rằng site nằm trên “dark web” thì khá rắc rối. Có thể vận hành tại nhà trên phần cứng mình sở hữu và còn ẩn được IP máy chủ, nên thật bất ngờ là cách này không được dùng rộng rãi hơn trong cộng đồng web độc lập. Cũng có thể chuyển hướng domain thông thường sang địa chỉ .onion.
    Beaker Browser, trình duyệt từng cho phép tạo và host site trực tiếp trong trình duyệt, đã ngừng hoạt động, nhưng nếu có công cụ như plugin tạo site cho Tor thì có lẽ sẽ giúp phổ biến hơn.

    • Có thể dựng dịch vụ .onion khá dễ, an toàn hơn web thông thường, và thậm chí chạy được trên điện thoại.
      Nanogram: https://gitlab.com/here_forawhile/nanogram
      Spreadsheet Server: https://gitlab.com/here_forawhile/spreadsheet
      Library Server: https://gitlab.com/here_forawhile/libraryserver
      Torum: https://gitlab.com/here_forawhile/torum
    • Tor Browser hỗ trợ Onion-LocationAlt-Svc để phát hiện địa chỉ .onion trên Internet thông thường. Onion-Location cho phép một site HTTPS thông thường thông báo về dịch vụ Onion, còn Alt-Svc tự động phát hiện và chuyển đổi mà không cần thao tác riêng từ người dùng.
      Trong tương lai cũng có khả năng kết nối Onion dựa trên DNS hoặc DNSSEC: https://onionservices.torproject.org/research/proposals/usab...
    • Hoàn hảo là kẻ thù của cái tốt nhất. Trong thực tế vẫn phải phụ thuộc vào nhà mạng và nhà sản xuất thiết bị, NearlyFreeSpeech là một phương án thỏa hiệp ít rủi ro; họ cũng không có tiền lệ lạm dụng niềm tin của người dùng, và chi phí thì gần như không đáng kể.
    • Tor không phải là trình duyệt mà là một dịch vụ. Tor Browser chỉ là gói tiện lợi kết hợp một trình duyệt bảo vệ quyền riêng tư với dịch vụ Tor, nên vẫn có thể vận hành site Tor trên máy chủ headless mà không cần trình duyệt.
    • Lý do dịch vụ ẩn hiếm gặp là vì chúng đòi hỏi quá nhiều công sức từ khách truy cập. Khác biệt về khả năng tiếp cận giữa việc đưa cho ai đó myfirstnamelastname.com và việc gửi một địa chỉ .onion ngẫu nhiên dài 56 ký tự rồi còn phải cài Tor Browser trên điện thoại cho họ là rất lớn.
  • Rào cản lớn nhất trong xu hướng này là tên miền cần để sở hữu nội dung; dù rẻ thì cũng tốn khoảng 6 USD mỗi năm. Site tĩnh có thể được host miễn phí ở rất nhiều nơi, và với cá nhân thì gói miễn phí của CDN là đủ.
    Điều quan trọng hơn tự host máy chủ là sở hữu domain như một định danh duy nhất; domain đó trỏ tới đâu thì ít quan trọng hơn nhiều.

    • Kỹ nghệ phần mềm được dẫn dắt bởi những người thông minh làm điều gì đó không phải vì cần, mà vì tò mò. Khi tuyển dụng, tôi cũng coi trọng sự tò mò và động lực hơn bằng cấp.
    • 6 USD mỗi năm tương đương khoảng 0,016 USD mỗi ngày; tuy đắt hơn nhưng vẫn rẻ.
    • Thật ra tôi không biết bài viết có đoạn nào nói rằng nên tự host máy chủ.
  • Thật buồn cười khi việc đưa file của mình lên máy chủ web lại bị xem như một khái niệm mới.

    • Trong thời đại mà nhiều người thậm chí không biết file là gì, việc tiếp nối tinh thần đó là quan trọng.
    • Thật đáng tiếc khi toàn bộ Internet đã biến thành một con quái vật do vài tập đoàn khổng lồ host và kiểm soát, đến mức cần cả một khái niệm mới gọi là IndieWeb. File hosting lẽ ra không nên là đặc quyền, mà ngay từ đầu đã nên gần với một quyền của con người.
      Kỹ thuật để tự host vẫn còn đó, nhưng tư duy đã chuyển sang chỉ dùng cloud.
    • Ngày trước, chỉ cần đặt file vào thư mục public_html là lập tức có website cá nhân. Điều đó không có nghĩa là phải tiếp tục viết HTML thủ công mãi, nhưng khi ấy đó là cách nhanh và tự nhiên để tham gia vào web.
      Tài khoản Unix còn cung cấp cả chat giữa cá nhân với nhau: dùng finger để xem bạn bè có đang đăng nhập không, rồi trò chuyện bằng talk hoặc ytalk; ngay cả khi bạn ngồi ở máy bên cạnh, cảm giác vẫn như phép màu.
    • Hãy chờ đến khi trẻ em biết đến phần cứng.
  • Nếu NearlyFreeSpeech, nơi bạn trả 0,01 USD mỗi ngày, được gọi là “vận hành độc lập 100%” thì trông cũng không khác mấy so với hosting tĩnh của Vercel, Netlify, GitHub hay Cloudflare.
    Bài viết không nói khi cần cơ sở dữ liệu, biểu mẫu phản hồi, bản xem trước trên mạng xã hội, tối ưu hóa công cụ tìm kiếm thì làm thế nào; có lẽ chính những thiếu vắng này là điều kiện của “web độc lập” cũng nên.

    • Trên NearlyFreeSpeech có thể dùng PHP và cơ sở dữ liệu
    • Nếu NFS và Vercel không khác nhau nhiều thì người dùng đáng lẽ phải chia đôi, nên tôi tò mò vì sao đa số lại chọn Vercel
    • NFS cung cấp một môi trường Linux đầy đủ đã cài nhiều ngôn ngữ lập trình, nên cũng hỗ trợ website động, nhưng chi phí cao hơn
    • Cũng từng có người nhận hóa đơn Netlify 100.000 USD dù dùng gói miễn phí
  • Tôi cần tên miền cho website sự kiện, và Infomaniak cũng cung cấp 10MB dung lượng lưu trữ kèm tên miền. Khoảng 5 euro mỗi năm để có cả tên miền lẫn website thì cũng không tệ

  • Tôi đã tạo một plugin JavaScript cho bình luận, lưu toàn bộ dữ liệu trong kho Git: https://github.com/est/req4cmt. Có thể dùng nếu dịch vụ Git hỗ trợ HTTP, chạy trên Cloudflare Worker miễn phí, còn sao lưu và di chuyển chỉ cần git clonepush là xong
    Cũng có một dự án thay thế Twitter dựa trên Git: https://github.com/est/gitweets
    Demo ở https://f.est.im/, và cũng hỗ trợ bình luận dùng Git notes. Nhờ Cloudflare Workers và GitHub Pages nên tất cả hoàn toàn miễn phí

  • sdf.org hữu ích cho các nhà phát triển muốn tự học hệ thống Unix. Nó cung cấp tài khoản shell NetBSD Unix miễn phí, và theo tôi nhớ thì chỉ cần quyên góp một lần một khoản nhỏ là có thể dùng không gian web cùng các tính năng bổ sung
    Tên đăng nhập sẽ trở thành subdomain của không gian web, nên cần chọn cẩn thận

  • Thật vui khi một trang đưa ra lập luận như vậy lại không được đưa lên Cloudflare hay GitHub Pages

    • GitHub Pages là hosting miễn phí cung cấp tên miền và SSL, không phát sinh hóa đơn, triển vọng dài hạn cũng tốt. Nếu không muốn bận tâm đến site tĩnh, các nhà cung cấp lớn như GitHub và Cloudflare có vẻ là phù hợp nhất
    • Tôi thường khuyên dùng GitHub Pages, nhưng cũng đã viết cách host bằng Raspberry Pi trong phòng ngủ: https://joeldare.com/private-analytics-and-my-raspberry-pi-4...
    • Tôi biết ơn vì Cloudflare vẫn tiếp tục giữ cho các trang vi phạm bản quyền sống sót
    • Vercel hay Netlify cũng vậy
  • Tôi thích học và sở hữu quy trình hơn là một công cụ cụ thể. Chỉ cần học cách tạo HTML từ các định dạng dễ đọc và dễ viết như Markdown bằng các công cụ như Pandoc, học cách upload hoặc đồng bộ HTML·CSS·JavaScript lên dịch vụ hosting, sở hữu tên miền và học cách trỏ DNS tới GitHub Pages hay Cloudflare Pages
    Vì không bị khóa vào một công cụ·dịch vụ·nền tảng·công ty cụ thể, bạn có thể chuyển các file nội dung sang nơi khác bất cứ lúc nào. Quá trình chuyển Markdown gốc thành HTML có thể được tự động hóa bằng trình tạo site tĩnh
    Biết HTML là hữu ích và thú vị, nhưng không nhất thiết phải là điều kiện bắt buộc để “vận hành site độc lập 100%”. Có thể chạy trên GitHub và Cloudflare với 0 USD/tháng, rồi nếu dịch vụ đóng cửa hoặc chuyển sang thu phí thì chuyển sang nơi khác

    • Điểm chính của bài là nếu để bài viết dưới dạng các file HTML riêng lẻ, thay vì Markdown hay mục trong cơ sở dữ liệu, thì mỗi trang có thể có phong cách, diện mạo, bố cục và cá tính riêng. Có thể thoát khỏi khuôn blog đồng nhất do các công cụ xuất bản hiện đại tạo ra và làm cho mỗi bài viết khác nhau
    • HTML là một định dạng thân thiện để con người đọc và viết. Ngay cả trước khi có các công cụ phù hợp, không chỉ sinh viên ngành khoa học máy tính mà cả những người khác cũng trực tiếp xử lý HTML, JavaScript, CSS trong trình soạn thảo văn bản; với site đơn giản thì không khó
      Nếu muốn sở hữu quy trình và có sự độc lập hoàn toàn, bạn cần có khả năng tự hiểu và thao tác các ngôn ngữ web. Trình tạo site tĩnh như Nikola thì tiện lợi, nhưng nếu không hiểu hoặc không thể trực tiếp chỉnh sửa đầu ra, thì vẫn là đang phụ thuộc vào công cụ của bên thứ ba