- Trải nghiệm làm mới lại mối quan hệ với công nghệ và khơi lại hứng thú với self-hosting thông qua FreeBSD và các hệ điều hành họ BSD
- Xây dựng cấu hình bằng cách tự thử nghiệm và trải qua nhiều lần thử sai, dùng BastilleBSD để thiết lập jail và vm-bhyve để cấu hình VM
- Cấu trúc đơn giản, tài liệu xuất sắc và khả năng tương thích dài hạn giúp ngay cả tài liệu cũ vẫn còn giá trị trong môi trường hệ thống hiện tại
- Sự hỗ trợ thân thiện từ cộng đồng BSD giúp giải quyết những bối rối trong quá trình học và mang lại cảm giác háo hức như người mới bắt đầu
- Nhấn mạnh niềm vui và giá trị của việc liên tục khám phá đến từ chính quá trình học công nghệ mới
Chuyển sang FreeBSD và một khởi đầu mới
- Cách sử dụng công nghệ trước đây không còn phù hợp, nên tìm kiếm một khởi đầu mới với các hệ điều hành họ BSD
- Trước đó đã thử cả FreeBSD lẫn OpenBSD; OpenBSD được dùng ổn định cho VM đơn mục đích và router
- Tuy nhiên, nó không phù hợp với hệ thống đa mục đích, nên đã chọn FreeBSD
- Có được một máy chủ phù hợp thông qua đấu giá máy chủ của Hetzner và bắt đầu xây dựng môi trường FreeBSD
- Trong quá trình học hệ thống mới, đồng thời trải nghiệm sự bối rối ban đầu và niềm vui học hỏi
Cấu hình hệ thống và lựa chọn công cụ
- Dùng BastilleBSD để quản lý môi trường jail và vm-bhyve để quản lý máy ảo
- Dù phần lớn thiết lập đều là lần đầu tiếp xúc, sau nhiều lần thử sai cuối cùng đã hoàn thiện được cấu hình phù hợp với bản thân
- Dù có phần khác với cấu hình thông thường, vẫn hài lòng với một môi trường được cá nhân hóa
- Có nhắc tới kế hoạch sẽ chia sẻ thêm cấu hình chi tiết khi môi trường ổn định hơn trong tương lai
Ưu điểm và triết lý của FreeBSD
- Tính đơn giản và tài liệu rất tốt được nhắc đến là những ưu điểm lớn nhất
- Phần lớn công việc có thể giải quyết qua SSH chỉ với vài lệnh
- Thông tin cần thiết có thể xem ngay trên trang man trực tuyến hoặc từ CLI
- Khả năng tương thích dài hạn rất ấn tượng, đến mức cả giải pháp từ diễn đàn năm 2008 vẫn còn hiệu lực
- Đồng thời, các tính năng mới vẫn liên tục được bổ sung nên hệ thống không tạo cảm giác lỗi thời
Khó khăn trong quá trình học và sự hỗ trợ từ cộng đồng
- Đã trải qua sự bối rối khi học, chẳng hạn như nhầm lẫn giữa chu kỳ phát hành và mối quan hệ giữa pkg/ports
- Việc không diễn đạt được từ khóa tìm kiếm phù hợp cũng khiến quá trình tra cứu thông tin trở nên khó khăn
- Cộng đồng BSD và người dùng Fediverse đã giúp giải quyết vấn đề
- Nhiều người đã đưa ra những câu trả lời cụ thể và hữu ích
- Tác giả cảm nhận được niềm vui như quay lại làm người mới bắt đầu và sự ấm áp từ cộng đồng
Sự hài lòng hiện tại và hướng đi sắp tới
- Vẫn chưa chắc liệu cấu hình này có được duy trì lâu dài hay không
- Tuy nhiên, hiện tại điều cốt lõi là niềm vui khi học công nghệ mới
- Thông qua học hỏi và thử nghiệm, tác giả đã tìm lại sự thú vị và tính sáng tạo của self-hosting
- Kết lại bằng thái độ: “Chính quá trình học hỏi lúc này mới là điều quan trọng”
1 bình luận
Ý kiến Hacker News
Nền tảng của homelab của tôi là OpenBSD
Tôi chạy DNS, DHCP, router tường lửa và cả một web server nhỏ trên đó
Việc cấu hình đơn giản hơn Linux rất nhiều, thậm chí còn có cảm giác dễ hơn cả FreeBSD
Chỉ cần sao chép ví dụ trong FAQ rồi chỉnh sửa là xong, không phải xử lý nhiều daemon và các file cấu hình phức tạp như trên Linux
Tuy vậy, host KVM thì tôi vẫn vận hành riêng trên nền Linux
Điểm mạnh lớn là có thể dùng yên tĩnh, tránh xa những màn kịch mua bán doanh nghiệp của Linux hay sự ồn ào trong cộng đồng
Tôi nghĩ cách tiếp cận kiểu “toxic slug” để chặn can thiệp từ bên ngoài cũng cần thiết cho các dự án mã nguồn mở khác
Có thể dễ dàng điều khiển mọi thứ bằng
rc.conf, và các thành phần không cần thiết bị loại khỏi bản cài mặc địnhTrong khi đó Linux vì theo đuổi tính đa dụng nên có xu hướng khiến cấu hình trở nên phức tạp
Nhờ vậy mà vẫn có thể tận dụng công nghệ server hiện đại ngay trên OBSD
Nếu không có nhiều linh kiện dự phòng thì việc xác định nguyên nhân khá khó, mà thời gian và sự tập trung thì lúc nào cũng thiếu
Tôi cũng đang vận hành FreeBSD cho homelab của mình
Hỗ trợ ZFS rất tuyệt vời, và việc thử làm theo một cách khác cũng rất thú vị
Cấu hình cơ bản được quản lý bằng README.md, phần còn lại được tự động hóa bằng Ansible
Mỗi dịch vụ chạy trong một jail, còn dữ liệu thì được mount các subvolume ZFS vào
/bucketNhờ vậy tôi có thể xóa rồi dựng lại jail bất cứ lúc nào, và cũng dễ truy cập riêng lẻ qua SSH
Nó vẫn chia sẻ nguyên file system của host nhưng lại giới hạn truy cập mạng
Tài liệu liên quan có trong FreeBSD Handbook và trang man
Nó không có systemd, và khái niệm container cũng đã được tích hợp từ rất lâu
Tôi rất muốn thực sự yêu thích FreeBSD, nhưng thực tế thì nỗi đau cấu hình quá lớn
Tài liệu về cấu hình tường lửa khá ít, còn pm2 thì có bug liên quan đến process ID
Cuối cùng tôi phải từ bỏ vì cứ phải phát minh lại bánh xe mỗi lần làm các tác vụ server thông thường
Với một người không phải nhà phát triển OS như tôi thì quá sức
Không biết bạn đã thử lại các vấn đề ngày xưa đó với LLM hiện nay chưa
FreeBSD cũng có các template mặc định dựa trên IPFW
Chỉ cần nhìn vào tùy chọn
firewall_typetrongrc.conflà có thể cấu hình dễ dàng từ NAT gateway đơn giản đến tường lửa cho clientChi tiết xem tại
/etc/rc.firewallTrước đây tôi từng tự xây dựng VPN server bằng FreeBSD và openvpn để phục vụ hàng trăm khách hàng
Đến giờ tôi vẫn thích pf hơn tường lửa trên Linux
Chỉ là vẫn nhớ các tính năng điều phối đa host như docker swarm
Tôi cảm thấy kiến thức FreeBSD có giá trị lâu dài hơn Linux
Nhìn môi trường hỗn loạn của Linux thì ngược lại BSD lại cho cảm giác dễ chịu hơn
Có những lúc lý do đổi công nghệ đơn giản chỉ là vì niềm vui học hỏi
Tôi cũng từng tạo một nền tảng self-hosting để theo đuổi “sự tiện lợi”, nhưng phép màu thật sự nằm ở quá trình tự mình giải quyết
Nhờ các công nghệ như docker/podman, flatpak mà giờ khả năng tiếp cận đã tốt hơn khá nhiều
Chỉ tiếc là ứng dụng CLI hiếm khi được phân phối bằng flatpak
Tôi đã yêu BSD, đặc biệt là FreeBSD, suốt 25 năm
Tôi từng thử dùng DragonflyBSD làm desktop, và thấy tiếc vì ngày nay BSD nhận được quá ít sự chú ý
Cũng không nên quên rằng BSD đã đóng vai trò rất lớn trong nền tảng của iOS và macOS
Nó ổn định và không bị cuốn theo các trào lưu doanh nghiệp như Linux
Các ứng dụng hiện đại như KDE vẫn được duy trì theo kiểu rolling, và tài liệu thì rất tuyệt
ZFS on root cũng được hỗ trợ mặc định nên tôi rất thích
Một số ít maintainer vẫn đang kiên trì duy trì rất tốt
Trước đây tôi đã nghe podcast bạn khen FreeBSD rồi mới bắt đầu tìm hiểu
Trước đây tôi dùng FreeBSD ở nhà vì muốn có một môi trường khác với công việc
Nhưng từ khi bắt đầu dùng CPU có kiến trúc big.LITTLE như ARM RockChip và Intel Alder Lake, scheduler của FreeBSD không tận dụng được đúng cách
Vì thế tôi quay lại Linux và rồi mê luôn hệ sinh thái Nix
Nếu scheduler ULE được cải thiện thì tôi sẽ quay lại
Gần đây tôi đã dựng một router dựa trên OpenBSD, và đó thực sự là một trải nghiệm rất sảng khoái
Tôi đã ghi lại chi tiết trong bài blog của mình
OpenBSD về cơ bản khuyến nghị cài toàn bộ các file set
Vì một số port có thể yêu cầu các thư viện ngoài dự kiến
Ngoài ra OpenBSD Handbook không phải tài liệu chính thức, nên tốt hơn là tham khảo trang man, openbsd.org hoặc mailing list misc@
Việc bạn hoàn tất cả cấu hình IPv6 cũng rất ấn tượng
Tôi đang tự host Jellyfin và n8n, nhưng dần dần chuyển lên cloud
Thời gian bỏ ra để duy trì độ sẵn sàng của dịch vụ quá lớn, còn blog thì tôi đã chuyển sang Cloudflare Pages
Đưa 45TB dữ liệu media lên cloud sẽ tốn khoảng $250~$1500 mỗi tháng nên thực tế là khá khó, nhưng tôi vẫn muốn chuyển một ngày nào đó
Tôi cũng self-hosting nhưng chỉ phải quản lý vài giờ mỗi năm
Xem liên kết issue
Tôi chỉ từng dùng Linux, Windows và macOS, nên muốn biết cần học gì để bắt đầu với BSD
Các lệnh coreutils có hoạt động nguyên vẹn không? Tôi cũng muốn biết tính tương thích của các gói Emacs ra sao
Nhưng trong phạm vi POSIX thì không có vấn đề gì
Bạn cũng có thể cài công cụ GNU, ví dụ
makesẽ dùng dưới têngmakeTừ 1999 đến 2015 tôi dùng mà không gặp vấn đề lớn nào
Ngay cả khi không biết gnu/coreutils thì có lẽ cũng không thấy khác biệt lớn
Tôi tò mò về mức độ hỗ trợ ứng dụng trên BSD
Hầu hết tôi chỉ thấy deb hay rpm, nên muốn biết FreeBSD Ports bao phủ được đến đâu
Tôi cũng muốn biết về driver phần cứng, đặc biệt là hỗ trợ các chip Wi‑Fi mới
Môi trường desktop thì có phần khó nhằn, nhưng BSD được tối ưu cho web server
Với các công cụ như Bastille, việc triển khai dựa trên jail khá dễ dàng
Tôi khuyên bạn nên tự cài thử FreeBSD trên VM hoặc USB
Tài liệu và diễn đàn rất thân thiện