17 điểm bởi GN⁺ 2025-10-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • Tự lưu trữ các dịch vụ cá nhân giúp thoát khỏi sự giám sát của Big Tech và chính phủ, từ đó bảo vệ quyền riêng tư và chủ quyền dữ liệu
  • Dữ liệu cá nhân nhạy cảm như lịch, danh bạ, thông tin vị trí tiết lộ nhiều thông tin hơn ta tưởng, nên cần tự quản lý thay vì phụ thuộc vào các công ty như Google hay Apple
  • Trong bối cảnh các công ty công nghệ khóa tài khoản vô cớ hoặc ép dùng API độc quyền thay vì giao thức chuẩn, việc vận hành máy chủ riêng dựa trên các giao thức tiêu chuẩn giúp bảo đảm chủ quyền số
  • Giới thiệu các dịch vụ tự lưu trữ thiết thực như máy chủ CalDAV/CardDAV, máy chủ mail, Home Assistant, trình đọc RSS, trình theo dõi vị trí cùng các lựa chọn phần mềm cụ thể
  • Dù thiết lập ban đầu khá phức tạp, việc giành quyền kiểm soát dữ liệu về lâu dài và độ ổn định của dịch vụ là điều quan trọng đối với quyền riêng tư và sự tự chủ về công nghệ

Vì sao nên chọn tự lưu trữ

  • Gần đây khi chia sẻ môi trường Homelab của mình với đồng nghiệp, tôi nhận được câu hỏi: “Rốt cuộc vì sao lại phải tự cài máy chủ, tự cấu hình container, rồi còn tốn rất nhiều tiền cho phần cứng để vận hành theo cách phiền phức như vậy?”
  • Nhân câu hỏi này, tác giả giải thích cụ thể những động lực chính của việc tự lưu trữ và trên thực tế có thể tự lưu trữ những dịch vụ nào

Quyền riêng tư

  • Quyền riêng tư không phải là một quyền tự động được ban cho, mà là quyền phải đấu tranh mới có được
  • Các tập đoàn Big Tech và một số chính phủ (ví dụ: chat control của EU) liên tục tìm cách nhìn sâu vào toàn bộ đời sống cá nhân
  • Khi tự lưu trữ dịch vụ, ta có thể giảm hoặc loại bỏ rủi ro bị giám sát, nhưng điều này đòi hỏi kiến thức kỹ thuật
  • Có thể cung cấp dịch vụ cho gia đình hoặc người quen để giúp họ cũng có được sự độc lập về dữ liệu
  • Lịch & danh bạ

    • Lịch tiết lộ nhiều thông tin hơn ta nghĩ
      • Ngoài thông tin nhận dạng còn có các cuộc gặp định kỳ, gia đình, đồng nghiệp, các cuộc họp kinh doanh bí mật
      • Thông tin sức khỏe qua lịch hẹn y tế, thói quen ngủ nghỉ và tập luyện
      • Nghĩa vụ pháp lý, thông tin tài chính như lịch trả nợ hoặc các gói đăng ký
      • Niềm tin chính trị thông qua lịch tham gia biểu tình
      • Có thể bị dùng để xác định khi nào bạn có thể liên lạc được, từ đó phục vụ hành vi đánh cắp danh tính
    • Dữ liệu danh bạ cũng nhạy cảm tương tự
      • Có thể suy luận thông tin cá nhân thông qua social graph và metadata (lịch sử tìm kiếm, ngày tạo)
      • Ví dụ: nếu đột nhiên xuất hiện nhiều liên hệ cùng giới chỉ có tên, có thể suy đoán là đang hẹn hò; việc tạo liên hệ của nhà trị liệu có thể cho thấy bạn đang đi khám tâm lý
    • Phần lớn mọi người không ý thức được dữ liệu social graph được lưu ở đâu, trong khi thực tế nó do Google, Apple, Samsung... xử lý
    • Ngay cả Advanced Data Protection của Apple cũng không mã hóa đầu-cuối lịch và danh bạ
  • Thông tin vị trí

    • Vài năm trước, khi dùng Android và Google Maps, tác giả phát hiện trong tài khoản Google của mình có nhiều năm lịch sử vị trí chi tiết
      • Một tính năng chưa từng chủ động bật đã tự động ghi lại toàn bộ di chuyển và địa điểm ghé thăm dưới dạng tọa độ địa lý
    • Đây là một trải nghiệm vừa hấp dẫn vừa đáng sợ, khiến tác giả muốn tự kiểm soát dữ liệu và đảm bảo chỉ mình bản thân có thể truy cập
  • Những thứ khác

    • Việc liệt kê mọi cách dữ liệu bị theo dõi và lý do cần cảnh giác vượt ra ngoài phạm vi bài viết này
    • Mục tiêu là tạo động lực để bắt đầu một hành trình mới

Chủ quyền

  • Chủ quyền số nghĩa là kiểm soát dữ liệu của mình, quyết định sẽ làm gì với dữ liệu đó và kiểm soát sẽ chia sẻ với ai
  • Vấn đề khóa tài khoản

    • Các trường hợp công ty công nghệ khóa tài khoản không có lý do rõ ràng vẫn liên tục được ghi nhận, và tác giả từng trực tiếp gặp chuyện này với Google
    • Tác giả không muốn phụ thuộc vào lòng thương của các tập đoàn công nghệ khổng lồ, nơi thậm chí không thể liên hệ được hoặc chỉ phải vật lộn với chatbot AI
    • Tác giả đặt câu hỏi vì sao cơ quan quản lý lại không yêu cầu các công ty công nghệ cung cấp cách liên hệ với người thật
  • Giao thức và tiêu chuẩn

    • Tác giả ưu tiên giao thức và tiêu chuẩn tệp
      • Dùng SMTP và IMAP thay vì API “Gmail” (dù cũ nhưng hiện vẫn là lựa chọn tốt nhất; sáng kiến JMAP mới cũng rất đáng hoan nghênh)
    • Big Tech như Microsoft đang ép người dùng dùng phần mềm Office 365 tích hợp AI-Copilot, và gần đây còn vô hiệu hóa truy cập SMTP của tài khoản Office 365

Nên tự lưu trữ những gì

  • Phần cứng

    • Tác giả làm việc tại một công ty tên là enum.co, nơi coi trọng chủ quyền số
    • Hiện đang vận hành cụm Kubernetes có tính sẵn sàng cao gồm 3 mini server (được sếp hỗ trợ thiết lập)
  • Lịch & danh bạ

    • Vì là dữ liệu nhạy cảm nên tác giả đang tự lưu trữ máy chủ CalDAV/CardDAV
    • Các lựa chọn máy chủ:
      • Radicale: dựa trên Python, web UI cơ bản, chỉ hỗ trợ một người dùng, không tương thích với thiết bị Apple
      • ⭐ Khuyến nghị Baïkal: dựa trên PHP, phát triển tích cực, web UI nâng cao, hỗ trợ nhiều người dùng
      • DAViCal: dựa trên PHP, chưa thử
      • Xandikos: dựa trên Python, không có xác thực tích hợp, không có web UI
      • Nextcloud: dựa trên PHP, ổn nếu bạn đã dùng sẵn, nhưng quá nặng
    • Việc chú ý đến dữ liệu lịch và danh bạ cũng bao gồm cả việc xem lại ứng dụng nào đang có quyền truy cập
  • Mail

    • Tự lưu trữ máy chủ mail từ lâu bị xem là điều cấm kỵ, nhưng thực ra không khó đến vậy
    • Các giải pháp gần đây như Stalwart hay Mailcow giúp việc tự lưu trữ hộp thư cá nhân trở nên dễ dàng hơn (không phải mail marketing)
    • Không khuyến nghị lưu trữ tại nhà (cần IP tĩnh và phải truy cập được từ toàn bộ Internet)
    • Các bước cấu hình:
      • Chọn nhà cung cấp hosting đáng tin cậy
      • Có được địa chỉ IP sạch (kiểm tra blacklist mail rồi lặp lại nếu cần)
      • Sau khi cấu hình máy chủ, xác nhận có thể nhận mail và mọi giao thức đã được thiết lập đúng
      • Kiểm tra bằng công cụ online internet.nl
      • Gửi mail tới địa chỉ Google, Microsoft, Yahoo để xem có bị vào spam không
      • Kiểm tra lặp đi lặp lại DNS, DMARC, SPF, TLS...
    • Tác giả dự định sẽ viết một bài blog chi tiết hơn sau
  • Nhà thông minh

    • Tác giả bắt đầu tự lưu trữ một instance Home Assistant từ nhiều năm trước; khi đó Apple Homekit là đủ nhưng đây là một thử nghiệm
    • Từ đó đến nay, nhiều công ty nhà thông minh đã phá sản, đóng dịch vụ cloud, tăng giá hoặc biến dịch vụ miễn phí thành trả phí
    • Vài tuần trước, khi nghe tin Philips Hue bắt buộc người dùng tạo tài khoản, Home Assistant thực sự phát huy giá trị
      • Cần tài khoản để dùng đầy đủ mọi tính năng của hệ thống đèn mà người dùng đã trả tiền
      • Tác giả luôn thiết lập quy tắc firewall để chặn lưu lượng mạng ra ngoài của các thiết bị nhà thông minh
      • Có vẻ ngay cả trong mạng nội bộ cũng không thể dùng các tính năng chỉ có trên ứng dụng Philips Hue (như hiệu ứng mô phỏng ánh nến)
      • Tác giả hy vọng có plugin cộng đồng mô phỏng được tính năng này
    • Tác giả sẽ không bao giờ tạo tài khoản online cho thiết bị chỉ dùng cục bộ
    • Hiện tác giả đang rất hứng thú với theo dõi mức tiêu thụ năng lượng, và dự định phát triển một thiết bị Raspberry Pi + camera để theo dõi mức tiêu thụ gas bằng machine vision
  • Trình tổng hợp RSS

    • Tác giả đăng ký theo dõi nhiều trang tin và blog qua RSS, và bản thân RSS đã là thứ phi tập trung và mang tính chủ quyền
    • Vì vậy, tự lưu trữ trình tổng hợp RSS là lựa chọn tùy chọn và là bước cuối cùng
    • Tác giả đang dùng NetNewsWire trên iPhone và Mac
      • Đây là trình đọc RSS tốt nhất, mã nguồn mở và được duy trì bởi những con người tuyệt vời
      • Có tích hợp gốc với FreshRSS
    • FreshRSS là trình tổng hợp feed, cung cấp thêm nhiều tính năng như lọc
      • Có thể đăng ký cả những nguồn không cung cấp RSS feed mặc định
  • Trình theo dõi vị trí

    • Tác giả đã triển khai một instance dawarich (trong tiếng Đức nghĩa là “tôi đã ở đó”)
      • Đây là máy chủ để thu thập và xem dữ liệu vị trí địa lý
      • Có thể chọn nhiều ứng dụng di động khác nhau để gửi vị trí hiện tại lên máy chủ
    • Các ứng dụng có thể dùng:
      • Ứng dụng dawarich chính thức: luôn hiển thị biểu tượng điều hướng trên notch của iOS
      • Overland: tiêu tốn pin nhiều
      • Owntracks: hoạt động tốt nhất trên iOS nhưng phần cấu hình ứng dụng rất khó hiểu
      • PhoneTrack

Ý tưởng & triển vọng

  • Gần đây tác giả đã tái cấu trúc homelab, chuyển từ một máy chủ lớn duy nhất sang cụm Kubernetes 3 node
    • Nhờ đó có nhiều linh hoạt hơn rất nhiều về loại ứng dụng có thể lưu trữ
  • Danh sách ứng dụng và công cụ muốn tìm hiểu thêm:
    • EteSync: CalDAV & CardDAV được mã hóa đầu-cuối
    • AnyType: tự lưu trữ instance máy chủ AnyType
    • Immich hoặc ente: chuyển từ ảnh iCloud sang tự lưu trữ
    • Passbolt: trình quản lý mật khẩu (không thích Bitwarden)
    • BirdNET: giám sát các loài chim bên ngoài bằng micro
    • penpot: tương tự Figma nhưng miễn phí & mã nguồn mở
    • Habitica: trình quản lý thói quen
    • vert: trình chuyển đổi tệp
    • InvoiceShelf: trình quản lý hóa đơn
  • selfh.st là một nguồn tài nguyên tuyệt vời để tìm các ứng dụng có thể tự lưu trữ

1 bình luận

 
GN⁺ 2025-10-11
Ý kiến trên Hacker News
  • Tôi muốn nói rằng không chỉ các dịch vụ cá nhân tự self-host, mà cả các công ty phần mềm hoặc SaaS nhỏ cũng nên cân nhắc cách tự vận hành trực tiếp hơn
    Các nhà cung cấp cloud luôn nói rằng họ là bắt buộc vì độ phức tạp và quy mô, nhưng thực tế đa số dự án phần mềm hay doanh nghiệp không cần đến mức đó
    Ví dụ, để triển khai NextJS thì không nhất thiết phải phụ thuộc vào Vercel hay Netlify, chỉ cần chạy Nginx hoặc Caddy (tôi thích cái này) trên một VPS cài Ubuntu là được
    Gần như hơn 90% dự án hoàn toàn có thể tự host theo cách sau

    • VPS được bảo mật tốt và áp dụng các kiểm soát bảo mật thiết yếu như tắt đăng nhập root, dùng SSH key thay cho mật khẩu

    • Thiết lập reverse proxy như Caddy/Nginx để phục vụ file tĩnh hoặc website, nếu không phải hàng triệu request mỗi ngày thì thậm chí không cần CDN

    • Chạy backend/API bằng Supervisor hoặc systemd

    • Cùng reverse proxy đó cũng có thể proxy cho backend và các dịch vụ khác

    • Tự chạy cơ sở dữ liệu mysql/postgres và áp dụng cấu hình bảo mật

    • Có thể backup mọi thứ bằng script/cron, nhưng cần kiểm tra định kỳ

    • Nếu muốn chống DOS/DDOS thì có thể thêm một lớp Cloudflare
      Cuối cùng kiến trúc sẽ là Cloudflare/DNS→Reverse Proxy(Caddy/Nginx)→app
      Triển khai thì đa phần chỉ cần git pull, nếu cần có thể build thêm
      Docker hay container cũng không phải bắt buộc, với dự án nhỏ đến trung bình thì không có cũng được
      Nghe có vẻ khó nhưng thực tế không khó như nghĩ, phần lớn dự án không cần web scale cỡ lớn

    • Điều khiến tôi bất an nhất là rủi ro bảo mật khi phải quản lý toàn bộ OS, bao gồm kernel lẫn userland
      Tôi lo không biết mình đã cấu hình firewall đúng chưa, có phản ứng đủ nhanh với các CVE mới nhất hay không
      Vì vậy tôi lại thấy yên tâm hơn khi dựng workflow bằng GitHub Actions → build container image rồi push vào private registry → dùng cấu hình k8s để deploy image đó lên dịch vụ
      Nó đơn giản gần như việc tự đưa lên VM, mà như vậy tôi chỉ cần chịu trách nhiệm cho app và giao diện của mình

    • Lý do tôi tạo ra canine.sh là vì muốn biến toàn bộ quy trình thiết lập ở trên thành one-click
      Trước đây khi đồng sáng lập một SaaS nhỏ, chi phí cloud của chúng tôi vượt quá 500.000 đô mỗi năm
      Chúng tôi nhanh chóng nhận ra sentry là thứ thiết yếu trong vận hành production, và dùng cloud sentry tốn khoảng 40 đô/tháng, tốt hơn nhiều so với việc tự lục log server để tìm lỗi
      Để giám sát dữ liệu còn cần datadog, khoảng 300 đô/tháng
      Các công cụ BI như Looker/Tableau/Omni cho dashboard trình bày với khách hàng tốn khoảng 20.000 đô/năm
      Data warehouse và replication tốn khoảng 150.000 đô/năm
      Chi phí cho các dịch vụ bên ngoài cứ tiếp tục cộng dồn, và cuối cùng tôi đi đến kết luận rằng tốt nhất là duy trì và vận hành toàn bộ các dịch vụ ngoài đó trên hạ tầng của chính mình
      Ví dụ Cloud Sentry→Self Hosted Sentry, Datadog→Prometheus/Grafana, Looker→Metabase, Snowflake→Clickhouse, ETL→Airbyte
      Đó là lý do phần lớn công ty rốt cuộc chọn Kubernetes
      Có thể indie hacker không hiểu vì sao lại cần sự phức tạp của Kubernetes, nhưng đó chính là lý do không thể nhét mọi thứ lên một VPS duy nhất

    • Tôi đồng ý với ý rằng "phần lớn dự án không cần web scale"
      Marketing của các nền tảng cloud lớn hiện nay thật ra cho cảm giác như YAGNI (You Ain't Gonna Need It) đang được áp vào cả hạ tầng
      Tôi làm sysadmin từ đầu những năm 2000, nên thấy việc mọi người đột nhiên coi tự host dịch vụ như một điều gì đó mới mẻ thật thú vị
      Trước cả khi Docker xuất hiện, người ta đã chạy cô lập code bằng LXC, BSD Jails rồi, đó là một truyền thống lâu đời khác còn trước cả DevOps
      Xem các lập trình viên ngày nay như đang khám phá lại điều này cũng khá thú vị
      Cuối cùng, sẽ rất tốt nếu có thể cộng tác hoặc ngồi uống cà phê với các sysadmin kỳ cựu để nhận trợ giúp
      Rất nhiều người vẫn sẵn lòng quản lý hạ tầng theo kiểu cũ và có nhiều kinh nghiệm thực chiến

    • Một lợi ích khác của self-host là khác với dịch vụ cloud, kỹ năng và kiến thức hệ thống có tính di động rất cao
      Nếu đã biết cách dùng systemd, ufw, ssh thì có thể áp dụng ngay sang hệ thống khác
      Ngược lại, tôi nghĩ thời gian và chi phí để học Docker, build nhiều lớp container cùng đủ loại mẹo còn lớn hơn quản trị một web server Debian thông thường

    • Tôi nhìn chung đồng ý, và cảm ơn vì đã chia sẻ quan điểm
      Có một chỗ tôi nghĩ khác là phần "CDN chỉ cần khi quy mô lớn"
      Theo tôi, CDN không chỉ dùng để giảm tải request cho origin mà chủ yếu còn để giảm độ trễ trong trải nghiệm người dùng
      Cảm giác nhanh nhạy thực ra là một tính năng rất quan trọng; dù cần cẩn trọng với việc tối ưu hóa quá sớm, nhưng ít nhất thì phục vụ static asset từ edge gần người dùng đã là mức mặc định từ hơn 10 năm nay

  • Chủ đề rất hay, tôi có thể chia sẻ góc nhìn từ kinh nghiệm của mình
    Khi tự vận hành homelab, lợi ích lớn nhất không hẳn là tiết kiệm chi phí hay quyền riêng tư dữ liệu, mà là có được kiến thức thực hành thật sự sâu
    Một chuyện là học về Docker, networking, quản trị Linux qua bài viết; nhưng cảm giác tự vận hành dịch vụ gia đình đang dùng, rồi phải tự xử khi DNS chết hoặc container Docker không khởi động lại được thì bài học nhận được hoàn toàn ở đẳng cấp khác
    Nhưng ở đây cũng có một thực tế khác
    Ban đầu nó là một dự án vui, nhưng khi bạn bắt đầu tự host cả những dịch vụ quan trọng như password manager hay đồng bộ file thì bạn đã trở thành người trực on-call 24/7
    Backup, bản vá bảo mật, uptime, tất cả đều do bạn chịu trách nhiệm, và từ lúc đó nó không còn chỉ là sở thích mà đã thành một "công việc"
    Cuối cùng, self-host có thể đem lại quyền kiểm soát dữ liệu và cảm giác thành tựu rất lớn, nhưng đánh đổi là thay chi phí SaaS bằng thời gian và gánh nặng tinh thần của chính bạn trong vai trò IT
    Nhưng với người dùng HN thì tôi nghĩ rất đáng để thử

  • Có người viết rằng mình may mắn vì công ty (enum.co) coi trọng chủ quyền số, nhưng khi tra mail server bằng info.addr.tools thì MX lại là smtp.google.com và trong TXT record cũng có nhiều thuộc tính của Google
    Đây không chỉ là một "khẩu hiệu", mà là thực tế thể hiện ngay trên DNS
    Nói rằng coi trọng chủ quyền số nhưng lại phụ thuộc vào dịch vụ mail của Google là mâu thuẫn
    https://info.addr.tools/enum.co

    • Nói để bênh enum một chút thì dịch vụ họ cung cấp là k8, storage tương thích S3 và DevOps
      Nếu họ rao bán self-hosting/chủ quyền email mà lại dùng gmail thì mới là chuyện hoàn toàn khác
      Họ cũng chưa hoàn toàn độc lập 100%, và thực tế OP cũng có nhắc rằng "self-host mail server thường bị coi là điều cấm kỵ lớn, nhưng không đáng sợ như người ta nghĩ"
      Mọi người đều nhận thức được vấn đề này và vẫn còn chỗ để cải thiện

    • Xin chào, tôi là nhà sáng lập enum
      Nhận xét đó hoàn toàn hợp lý và là một điểm rất hay
      Thành thật mà nói, việc chúng tôi dùng Google Workspace cho email nội bộ là một lựa chọn thực dụng trong giai đoạn đầu để tập trung vào phát triển sản phẩm cốt lõi
      Đây là lựa chọn rất phổ biến ở startup, và chúng tôi sẽ chuyển đi trong vài tuần tới
      Tuy nhiên, nền tảng phục vụ khách hàng và toàn bộ dữ liệu của họ thì luôn được giữ chủ quyền 100%
      Hạ tầng của chúng tôi hoàn toàn độc lập với Big Tech
      Cảm ơn bạn đã chỉ ra vấn đề này

    • Riêng email thì tôi xem là ngoại lệ của self-host
      Tôi self-host mọi dịch vụ, nhưng email thì giao cho bên thứ ba

    • Tôi rất ấn tượng vì bạn soi ra cả việc DNS có record liên quan đến Google
      Thật sự đáng nể

    • Phần TXT google-site-verification=... không hẳn là thứ gì đó "xấu xa", mà là một sự thỏa hiệp để Google không đánh dấu mail gửi đi là spam

  • Nếu self-host email mà chủ quyền số quan trọng hơn quyền riêng tư
    Tôi dùng miền tùy chỉnh với gmail, đồng thời tự host mail server riêng rồi dùng mbsync để liên tục tải mail từ gmail về
    Việc lưu trữ và đọc mail diễn ra trên server của tôi, còn gửi mail thì vẫn dùng gmail
    Kể cả khi Google chặn quyền truy cập tài khoản của tôi thì tôi vẫn giữ email trong tay, và khi đổi nhà cung cấp thì chỉ cần đổi DNS
    Cũng không gặp vấn đề về khả năng gửi tới nơi của mail đã gửi

    • Tôi bắt đầu self-host mail từ 6 năm trước với các thiết lập DNS như SPF, DMARC
      Chỉ có một hai lần gặp sự cố, mà đa số là do dịch vụ khác, lỗi ngẫu nhiên, thay đổi IP, tự động hóa backup chứ không phải do mail server
      Thật ra mail server cứ thế hoạt động ổn định

    • Nếu hỏi vì sao không self-host luôn cả việc gửi mail đi
      Có lẽ là vì vấn đề deliverability?

    • Chủ quyền email thực sự phụ thuộc vào miền tùy chỉnh
      Nếu giữ được phần này an toàn thì lúc nào cũng có thể chọn giữa nhiều nhà cung cấp và dễ dàng chuyển đổi công việc

  • Self-host thật sự rất tuyệt
    Một năm trước, khi chuyển từ kỹ sư phần mềm sang khởi nghiệp SaaS, tôi bắt đầu tự host Postgres, bản Minio cũ, Nuxt, NextJs, Umami analytics, Open WebUI, static site và nhiều thứ khác bằng Coolify trên server Hetzner 20 đô
    Ban đầu đúng là cần thời gian để học, nhưng sau khi setup xong thì việc bật thêm dịch vụ mới dễ như plug-and-play
    Tài nguyên server thậm chí còn chưa dùng tới 1/4 (vì ít người dùng thôi haha)
    https://coolify.io/docs/

  • Tôi làm chuyên gia IT, nhưng ở nhà thì cứ trì hoãn việc self-host hay dựng NAS mãi, cuối cùng mua ngay một chiếc Ugreen NAS 4-bay và cài TrueNAS CE luôn
    Tôi còn đưa cho ChatGPT cả context như file docker-compose riêng của mình để cùng thiết lập
    Ngoài chút ít kinh nghiệm về Docker và networking từ thời còn đi học, trước đó tôi gần như không biết gì nhiều
    Nhưng hiện tại tôi đang vận hành

    • nhiều ứng dụng Dockerized
    • mạng độc lập cho từng app stack
    • quản lý việc công khai web UI bằng Traefik + Docker labels
    • chỉ mở Traefik cổng 443 ra ngoài, chỉ port-forward khi thật sự cần
    • Cloudflare Tunnel dùng tùy chọn
    • tự động TLS termination bằng Traefik cho domain, cả LAN/WAN
    • Split-DNS cho LAN/WAN
    • áp dụng CrowdSec cho toàn bộ container được public
    • áp MFA cho dịch vụ public bằng Cloudflare
    • DHCP/DNS cục bộ bằng Technitium
    • snapshot ZFS tự động/backup từ xa
    • dữ liệu dễ mất như DB, log thì để trên SSD, file lớn thì để trên HDD
  • Self-host rất tốt, nhưng vấn đề là backup và nâng cấp
    Tôi tự host đủ loại tài nguyên, nhưng không tự host dữ liệu quan trọng hoặc thứ mà người khác phải phụ thuộc vào
    Nếu việc khôi phục app hay nâng cấp không dễ thì tôi sẽ không dựa vào nó
    Trên thực tế không có nhiều app self-host mà backup/restore chỉ gói gọn trong một hai dòng lệnh
    Nhân tiện, Tailscale và Pangolin gần như là món quà từ trời cho khi muốn self-host an toàn tại nhà

    • Tôi tò mò không biết giải pháp backup mà bạn kỳ vọng là gì
      Tôi chạy toàn bộ app self-host bằng Docker, nên chỉ cần backup thư mục volume của container và file docker-compose.yml là đủ
      Khi restore thì đặt lại thư mục rồi chạy docker compose up là xong
      Tôi không nghĩ từng app phải tự triển khai cơ chế backup riêng, như vậy chỉ tốn thời gian của developer

    • Tôi cực kỳ khuyến nghị self-host netbird thay vì Tailscale
      Dự án đang được phát triển rất tích cực và UI cũng rất đẹp
      https://github.com/netbirdio/netbird

    • Tôi tò mò Pangolin là gì
      Tìm trên mạng thì chỉ thấy con tê tê

  • Stack self-host của tôi

    1. immich
    2. jellyfin
    3. ghost
    4. wallabag
    5. freshrss
    6. vaultwarden
    7. nextcloud
    8. overleaf/sharelatex
    9. server matrix
    10. pds cho atproto
    • Tôi muốn biết bạn nâng cấp thế nào, áp dụng bản vá bảo mật ra sao, backup thế nào và có thực sự kiểm tra định kỳ hay không
      Có những trường hợp thông báo nâng version hoặc bản vá bảo mật rất sơ sài, hoặc bắt buộc phải đi qua tất cả các version trung gian
  • Nếu giới hạn "self-hosting" chỉ trong phạm vi server tại nhà thì nó sẽ mãi là thiểu số
    Cần khuyến khích mọi hình thức không phải SaaS, như ứng dụng mã nguồn mở không theo mô hình thuê bao, ứng dụng Windows kiểu cũ, hay cloud app dễ di chuyển
    Dù theo cách nào, tránh lock-in và trao quyền kiểm soát cho người dùng mới là mục tiêu thực sự của self-hosting

    • Dù vậy, ý nghĩa của từ này cũng không nên bị làm loãng
      Dù là cloud app có thể di chuyển nhờ standard protocol, nếu server đó không thuộc sở hữu/kiểm soát của tôi thì nhà vận hành vẫn có thể thay đổi chính sách dữ liệu hoặc cách thu thập theo ý họ
      Bạn không thể chắc rằng dữ liệu sẽ không bị thu thập ngoài dự kiến, hay trước khi dịch vụ đóng cửa bạn có thực sự chuyển đi kịp hay không

    • Phần mềm cài đặt trên Windows cũng có thể được xem là thuộc phạm vi self-hosting
      Trên thực tế, nhiều người bắt đầu từ file thực thi Windows hoặc Docker rồi dần dần tiến xa hơn

    • Tối thiểu thì tôi cho rằng việc tự cầm quyền root trên server đặt trong data center của người khác, như colocate chẳng hạn, cũng được tính là self-hosting

  • Chỉ 20 năm trước thôi, ngay cả các cụ già cũng có thể tải setup.exe từ limewire.com rồi bấm next->next->next là có ngay một file server và client hoàn chỉnh
    Năm 2007, 1/3 số máy tính trên thế giới dùng limewire
    Nhưng bây giờ, ngay cả phần mềm self-hosting rất cơ bản cũng gần như chỉ kỹ sư chuyên nghiệp mới cài nổi
    Phải dùng SSH, Docker, Tailscale, chứng chỉ TLS và đủ thứ cấu hình phức tạp, chưa kể backup cùng hàng loạt tự động hóa khác…
    Tôi thật sự thắc mắc tại sao lại hiếm có phần mềm "self-hosting" kiểu chỉ cần apt-get install là xong
    Đó là lý do chẳng mấy ai tự host cả
    https://en.wikipedia.org/wiki/LimeWire

    • Một số phần mềm đúng là có thể cài xong bằng apt-get install, nhưng nếu muốn public dịch vụ lên Internet thì còn phải cấu hình domain name và HTTPS
      Các client như Limewire hay BitTorrent có thể dùng không cần domain vì phía sau có server trung tâm như tracker hỗ trợ

    • Nhiều người sẽ không xem trình cài kiểu limewire là self-hosting
      Nó chỉ là cài một chương trình cục bộ thôi

    • Ubuntu từng cố giúp việc cài server-side app trở nên dễ hơn bằng snap, nhưng cộng đồng phản đối dữ dội nên thất bại
      Snap cũng có nhược điểm, nhưng đó là định dạng được tạo ra để đơn giản hóa việc phân phối ứng dụng server
      Ví dụ như đến bây giờ vẫn có thể cài nextcloud bằng snap
      Vì không hoàn hảo nên người ta đã bác bỏ luôn cả mức "đủ tốt" trong thực tế

    • Limewire chỉ là client chứ không phải server
      Muốn upload cho đúng nghĩa thì vẫn phải cấu hình firewall/port forwarding và có thể cần bật UPnP (không khuyến nghị)
      Self-host server là một phạm trù hoàn toàn khác
      Từ chỗ người mới có thể làm mọi thứ tự động, thế giới giờ đã trở nên khó hơn nhiều vì hacker độc hại
      Ngay cả chuyên gia cũng không có khả năng tự vệ trước pentester chuyên nghiệp hay hacker cấp quốc gia

    • Tôi nghĩ bản thân việc phát triển phần mềm ngày nay đã trở nên quá phức tạp
      Nó ngày càng giống kiểu quan liêu tạo thêm vấn đề vô ích để duy trì công việc
      Phần lớn mọi người không cần self-host đến mức đó, chỉ cần chạy trên máy tính cá nhân và thỉnh thoảng truy cập từ mạng nội bộ là đủ
      Nhưng vì thiếu mô hình kinh doanh, các developer cứ bám vào những lớp đặc thù và kiến trúc phức tạp không cần thiết
      Kết quả là toàn bộ mọi thứ biến thành phần mềm server, webview, tách rời dữ liệu khỏi môi trường cục bộ, và chỉ làm tăng thêm số thiết bị phải quản lý
      Trong khi phần lớn máy tính đang nhàn rỗi, các tầng quản trị lại cứ chồng chất thêm
      Tôi nghĩ xu hướng laptop cũng là một phần của sự hỗn loạn đó
      Ứng dụng local tốt cho Mac cũng dần biến mất, thay vào đó là thuê bao cloud ở khắp nơi
      Ngay cả mã nguồn mở cuối cùng cũng thành Docker image, cấu hình phức tạp và vô số gotcha
      Nếu việc cài đặt và quản trị đơn giản thì trả tiền cho nó cũng đáng
      Nhưng hiện giờ không ai biết sẽ tốn bao nhiêu thời gian, nên rốt cuộc mọi người cứ giao hết cho Big Tech
      Công nghệ web đúng là tốt cho tài liệu tương tác, nhưng ngoài mục đích đó ra thì vẫn còn rất nhiều vấn đề lớn về khả năng sử dụng