Bạn có mong muốn sở hữu một trang web của riêng mình nhưng lại lo ngại về chi phí thuê hosting hàng tháng? Nhiều người đang tìm kiếm giải pháp tương tự. Bài viết này từ tinmoicongnghe.com sẽ hướng dẫn bạn cách thiết lập một website nhanh chóng tại nhà bằng cách sử dụng Docker, Nginx Proxy Manager và nền tảng blog Ghost, giúp bạn kiểm soát hoàn toàn trang web của mình mà không tốn kém chi phí hosting truyền thống. Đây là một giải pháp hiệu quả cho những ai muốn tự mình xây dựng và quản lý sự hiện diện trực tuyến, từ blog cá nhân đến các dự án công nghệ riêng.
Những Yếu Tố Cốt Lõi Cần Có Để Vận Hành Website Cá Nhân
Để vận hành một website cá nhân tại nhà, bạn sẽ cần chuẩn bị một vài yếu tố quan trọng. Khi đã sẵn sàng, bạn sẽ có một tên miền, một máy chủ để lưu trữ website (có thể là một chiếc laptop cũ, NUC, hoặc Raspberry Pi), Docker và một số container được triển khai.
Đầu tiên là máy chủ để host website của bạn. Thiết bị này không cần phải quá mạnh mẽ; thậm chí một chiếc máy tính bạn đang có sẵn tại nhà cũng có thể hoạt động tốt. Một chiếc Raspberry Pi, NUC, máy tính để bàn cũ hoặc thậm chí một chiếc laptop đời cũ có thể là lựa chọn tuyệt vời cho dịch vụ này. Bạn chỉ cần một thiết bị được sản xuất trong khoảng 15 năm trở lại đây và vẫn có thể chạy một hệ điều hành hiện đại (lý tưởng nhất là Linux, nhưng Windows hoặc macOS cũng có thể hoạt động).
Tiếp theo là tên miền riêng. Bạn có thể mua tên miền từ bất kỳ nhà cung cấp nào, nhưng chúng tôi khuyên bạn nên tìm một nhà cung cấp hỗ trợ DDNS (Dynamic DNS) tích hợp, như Cloudflare. Khi bạn sử dụng máy chủ riêng ảo (VPS) hoặc các nền tảng hosting khác, bạn thường có một địa chỉ IP cố định. Tuy nhiên, khi host website tại nhà, khả năng cao địa chỉ IP của bạn sẽ thay đổi theo thời gian. Đây chính là lúc DDNS phát huy tác dụng. Về cơ bản, khi IP tại nhà của bạn thay đổi, DDNS sẽ tự động cập nhật bản ghi A của tên miền để trỏ đến IP mới của bạn.
Ngoài tên miền và thiết lập DDNS, bạn cũng sẽ cần Docker cho phương pháp hosting mà chúng tôi sẽ đề xuất ở đây. Docker có khả năng chạy rất nhiều dịch vụ khác nhau, nhưng đối với website của bạn, chúng ta sẽ cần một container DDNS, Nginx Reverse Proxy và, tất nhiên, chính website của bạn.
Để cấu hình container Cloudflare DDNS Docker, bạn sẽ cần một khóa API cho Cloudflare có quyền thay đổi bản ghi DNS cho tên miền cụ thể mà bạn sẽ sử dụng, bản thân tên miền đó và bất kỳ tên miền phụ nào bạn muốn giữ được cập nhật. Tất cả những điều này sẽ được thiết lập bằng các cờ môi trường (environmental flags) trong Docker, giúp việc thay đổi hoặc thêm các tên miền phụ và tên miền mới trong tương lai trở nên dễ dàng.
Để nhanh chóng bắt đầu, bạn có thể truy cập một trang web như What’s My IP Address để tìm địa chỉ IP công cộng của mình. Sau đó, hãy nhập địa chỉ IP này vào bản ghi A của tên miền bạn muốn sử dụng cho website. DDNS của bạn sẽ giữ cho thông tin này được cập nhật nếu tên miền thay đổi, nhưng việc nhập thủ công ngay bây giờ sẽ giúp đẩy nhanh quá trình sau này.
Giao diện Portainer thể hiện cấu hình container Cloudflare DDNS để cập nhật địa chỉ IP tự động cho tên miền của bạn.
Nginx Proxy Manager: Giải Pháp Reverse Proxy và SSL Hiệu Quả
Container Docker đầu tiên mà bạn nên triển khai sau DDNS sẽ là Nginx Proxy Manager. Với Nginx Proxy Manager, bạn sẽ có thể định tuyến lưu lượng truy cập đến container Docker chứa website của bạn.
Nginx Proxy Manager là một reverse proxy. Nó nhận lưu lượng truy cập đến trên các cổng :80 (kết nối không bảo mật) và :443 (kết nối SSL/HTTPS) và chuyển tiếp chúng đến một địa chỉ khác trên mạng nội bộ của bạn. Bạn sẽ cần cấu hình tường lửa mạng của mình để chuyển tiếp các cổng ngoài 443 và 80 đến bất kỳ cổng nào mà Nginx Proxy Manager của bạn được ánh xạ.
Các bước ban đầu để thiết lập Nginx Proxy Manager, hiển thị giao diện người dùng dễ sử dụng.
Khi container Docker của Nginx Proxy Manager đã hoạt động và các cổng của bạn đã được chuyển tiếp, đã đến lúc thiết lập định tuyến. Bắt đầu bằng cách điều hướng đến phần “Hosts” và nhấp vào “Add New Host”. Một cửa sổ bật lên sẽ xuất hiện, và đó là nơi bạn sẽ nhập thông tin cho website của mình. Chỉ cần nhập tên miền, địa chỉ IP của máy chủ và cổng mà bạn sẽ chạy trang web. Cổng này có thể là bất cứ thứ gì bạn muốn và thường được quy định bởi phần mềm bạn đang chạy.
Thiết lập một Host mới trong Nginx Proxy Manager, cho phép định tuyến lưu lượng truy cập đến các dịch vụ nội bộ.
Ví dụ, bạn có thể định tuyến blog.tenmien.com
đến 192.168.1.6:2368
, đây sẽ là địa chỉ IP của máy chủ bạn với cổng của Ghost ở cuối. Bất cứ khi nào ai đó truy cập blog.tenmien.com
, nó sẽ định tuyến đến địa chỉ IP công cộng của bạn và sau đó Nginx Proxy Manager sẽ định tuyến nó đến container phù hợp.
Nginx Proxy Manager không chỉ xử lý định tuyến mà còn đảm nhiệm việc cung cấp chứng chỉ SSL thông qua Let’s Encrypt. Các chứng chỉ SSL miễn phí này có thể mang lại sự an tâm cho những người duyệt blog của bạn, thêm một lớp bảo mật bổ sung cho phiên duyệt web. Toàn bộ quá trình SSL, từ đầu đến cuối, diễn ra liền mạch trong Nginx Proxy Manager.
Khi bạn đã có thể thiết lập một reverse proxy, việc thiết lập bao nhiêu tùy ý sẽ trở nên khá đơn giản. Nginx Proxy Manager rất linh hoạt, cho phép bạn quản lý nhiều dịch vụ khác nhau trên cùng một máy chủ mà vẫn đảm bảo tính bảo mật và khả năng truy cập qua tên miền.
Ghost: Nền Tảng Blog Đơn Giản, Mạnh Mẽ và Dễ Sử Dụng
Giờ đây, khi bạn đã thiết lập gần như mọi thứ, đã đến lúc cài đặt Ghost.
Bạn có thể mong đợi chúng tôi sẽ sử dụng WordPress, vì đây là nền tảng đang vận hành phần lớn internet. Mặc dù WordPress rất tuyệt vời và đã được sử dụng rộng rãi, nhưng Ghost là lựa chọn của chúng tôi cho blog cá nhân lần này. Nền tảng này nhẹ, dễ sử dụng và, thành thật mà nói, đơn giản hơn WordPress.
Ghost được thiết kế hướng tới việc trở thành một nền tảng blog có khả năng tích hợp chức năng bản tin email (newsletter). Các bài đăng được viết bằng Markdown (cách viết yêu thích của nhiều người), và có một số plugin hỗ trợ các dịch vụ lớn như Instagram, Discord, MailChimp, YouTube, Patreon và nhiều dịch vụ khác. Điều này giúp Ghost trở thành một lựa chọn linh hoạt cho việc xuất bản nội dung.
Giao diện quản trị của nền tảng blog Ghost, đơn giản và trực quan, hỗ trợ viết bài bằng Markdown.
Để khởi chạy Ghost, bạn cần thực hiện một vài thao tác. Chúng ta sẽ bắt đầu trong Nginx Proxy Manager. Hãy tạo một proxy host mới với tên miền của bạn ở ô đầu tiên, giữ nguyên scheme là HTTP, sau đó nhập địa chỉ IP của máy chủ Docker của bạn và cổng 2368.
Chúng tôi thường chọn các tùy chọn “cache assets”, “block common exploits” và “websockets support”. Bỏ qua tab “Custom Locations” và chuyển sang tab “SSL”. Tại đây, chọn “Request New SSL Certificate” và đồng ý với các điều khoản, sau đó nhập email của bạn. Nhấp vào “Save”, và reverse proxy của bạn đã được thiết lập.
Tùy chọn cấu hình proxy host trong Nginx Proxy Manager cho blog Ghost, bao gồm thiết lập SSL.
Bây giờ, hãy quay lại máy chủ Docker của bạn. Nhiều người dùng sử dụng Portainer làm giao diện web cho Docker, nhưng vì tất cả đều được thực hiện thông qua Docker Compose, các tệp thiết lập đều giống nhau.
Nếu bạn muốn sử dụng tệp Docker Compose tương tự cho blog Ghost của mình, bạn có thể tham khảo các tài nguyên trên GitHub để tìm các ví dụ cấu hình. Hãy đảm bảo thay đổi tên miền bằng tên miền của riêng bạn và đổi mật khẩu MySQL để đảm bảo tính bảo mật cao hơn.
Khi bạn triển khai tệp Docker Compose, blog Ghost của bạn sẽ hoạt động và có thể truy cập được tại tên miền mới của bạn!
Website Của Bạn Đã Trực Tuyến! Các Bước Tiếp Theo Là Gì?
Nếu mọi thứ được thực hiện đúng cách và bạn đã cấu hình cài đặt chuyển tiếp cổng (port forwarding) trên bộ định tuyến của mình, thì bạn sẽ có thể truy cập tên miền mà bạn đã thiết lập và truy cập phiên bản Ghost từ bên ngoài.
Giờ đây, khi website của bạn đã hoạt động, bước tiếp theo là gì? Chắc chắn rồi, bạn sẽ muốn bắt đầu cấu hình blog Ghost của mình. Có rất nhiều video trên YouTube và các bài viết khác hướng dẫn bạn từng bước phải làm gì. Thậm chí nhiều người dùng còn chưa khám phá hết tất cả các tùy chọn cấu hình của nền tảng này.
Tại thời điểm này, website của bạn đã hoạt động trực tuyến và bất kỳ ai cũng có thể truy cập. Bạn có thể muốn đặt một trang đích (landing page) tạm thời trong khi bạn đang xây dựng nội dung, hoặc đơn giản là để nguyên trong quá trình xây dựng. Hãy bắt đầu xuất bản các bài viết blog, gửi bản tin email và tận hưởng việc tự host website cá nhân của riêng mình trên phần cứng tại nhà mà không phải trả phí hosting!
Nếu việc bắt đầu một blog đầy đủ không phải là điều bạn đang tìm kiếm, thì microblogging có thể là thứ bạn cần. Hình thức này hơi khác so với blog truyền thống và dễ thiết lập hơn nhiều vì nó thường được thực hiện trên mạng xã hội, nghĩa là không cần cấu hình cơ sở dữ liệu, thiết lập DDNS hoặc reverse proxy, và thường là miễn phí!