Mastodon là một mạng xã hội miễn phí, phi tập trung và mã nguồn mở tương tự như Twitter. Trong Mastodon, người dùng có thể theo dõi nhau và đăng tin nhắn, hình ảnh và video. Nhưng không giống như Twitter, không có kho lưu trữ hoặc thẩm quyền trung tâm nào cho nội dung.
Với kiến trúc phi tập trung, Mastodon hoạt động trên hàng nghìn máy chủ khác nhau, mỗi máy chủ do nhiều thành viên khác nhau của cộng đồng điều hành. Bạn có thể tạo máy chủ Mastodon của mình dưới tên miền của mình. Bạn cũng có thể theo dõi những người dùng khác có tên miền khác nhau trên các máy chủ khác.
Trong hướng dẫn này, bạn sẽ cài đặt Mastodon, một nền tảng microblogging phi tập trung trên máy chủ Debian 11. Với hướng dẫn này, bạn sẽ thiết lập Mastodon với PostgreSQL làm máy chủ cơ sở dữ liệu và Nginx làm proxy ngược. Ngoài ra, bạn sẽ bảo mật cài đặt Mastodon thông qua chứng chỉ SSL miễn phí từ Letsencrypt.
Trong bước đầu tiên này, bạn sẽ thiết lập các kho lưu trữ bổ sung cho hệ thống của mình và cài đặt các gói phụ thuộc cho quá trình cài đặt Mastodon. Điều này bao gồm các gói như build-essentials để biên dịch Ruby, PostgreSQL cho máy chủ cơ sở dữ liệu, Nginx làm máy chủ web và proxy ngược, công cụ certbot để lấy chứng chỉ SSL qua Letsencrypt và máy chủ Redis sẽ được sử dụng để lưu trữ khóa-giá trị và quản lý phiên cho Mastodon.
Trước khi bắt đầu, hãy chạy lệnh apt bên dưới để cài đặt một số phụ thuộc cơ bản sẽ được sử dụng để quản lý kho lưu trữ và gói.
Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22312%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để thêm kho lưu trữ Node.js Nodesource. Gói Node.js ở đây sẽ được sử dụng để biên dịch các tài sản tĩnh của Mastodon. Và tại thời điểm viết bài này, Mastodon mới nhất yêu cầu ít nhất Node.js v16.
Sau đó, bạn sẽ nhận được đầu ra như sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Sau khi kho lưu trữ Node.js được thêm vào, bạn sẽ thiết lập kho lưu trữ cho trình quản lý gói Yarn. Kho lưu trữ này cung cấp gói Yarn sẽ được sử dụng để cài đặt các phụ thuộc JavaScript.
Chạy lệnh bên dưới để thêm khóa GPG và kho lưu trữ của trình quản lý gói Yarn.
Kho lưu trữ thứ ba mà bạn sẽ thêm là kho lưu trữ PostgreSQL. Chạy lệnh bên dưới để thêm kho lưu trữ PostgreSQL vào máy chủ Debian của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22214%22%3E%3C/svg%3E
Sau khi thêm kho lưu trữ Node.js, Yarn và PostgreSQL, hãy chạy lệnh apt bên dưới để làm mới gói của bạn index.
Bạn sẽ nhận được kết quả như thế này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22291%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh apt bên dưới để cài đặt các gói phụ thuộc sẽ được sử dụng để cài đặt Mastodon.
Nhập y khi được nhắc xác nhận và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22324%22%3E%3C/svg%3E
Với lệnh này, bạn đã cài đặt các gói phụ thuộc cơ bản cho Mastodon và đã thêm một số kho lưu trữ của bên thứ ba vào hệ thống Debian của bạn.
Trong các bước tiếp theo, bạn sẽ cài đặt Ruby thông qua rbenv - Trình quản lý phiên bản Ruby.
Để bắt đầu, hãy chạy lệnh bên dưới để tạo người dùng mới 'mastodon' trên hệ thống của bạn. Người dùng mới này sẽ được sử dụng để chạy các dịch vụ liên quan đến Mastodon và mã nguồn Mastodon sẽ được lưu trữ trong thư mục gốc của người dùng này.
Trong quá trình này, bạn sẽ được yêu cầu cấu hình thông tin chi tiết về người dùng. Nhập thông tin người dùng của bạn và nhập y để xác nhận rồi nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22634%22%20height=%22370%22%3E%3C/svg%3E
Sau khi người dùng 'mastodon' được tạo, hãy chạy lệnh bên dưới để đăng nhập.
Tiếp theo, tải xuống mã nguồn rbenv thông qua lệnh git bên dưới.
Sau đó chạy lệnh bên dưới để cài đặt rbenv trên hệ thống của bạn.
Bạn sẽ nhận được đầu ra như thế này sau khi rbenv được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22390%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để thêm thư mục 'bin' rbenv vào PATH hệ thống và tải rbenv mỗi khi người dùng đăng nhập vào phiên mới.
Bây giờ hãy tải lại shell hiện tại của bạn bằng cách tải lại tệp cấu hình bashrc. Sau đó nhập lệnh 'rbenv' trên shell của bạn và nhấn TAB.
Trong ảnh chụp màn hình sau, rbenv đã được cài đặt và bây giờ bạn có thể thực thi lệnh rbenv để cài đặt Ruby.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22134%22%3E%3C/svg%3E
Trước khi cài đặt Ruby, bạn cần cài đặt plugin rbenv có tên là 'xây dựng ruby'. Plugin này cung cấp các công cụ dòng lệnh giúp đơn giản hóa việc cài đặt Ruby từ nguồn, đặc biệt là đối với các hệ điều hành giống UNIX.
Tải xuống plugin 'ruby-build' thông qua lệnh git.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Sau 'ruby-build' plugin được thêm vào, hãy chạy lệnh bên dưới để cài đặt Ruby v3.0.4, lệnh này là bắt buộc đối với phiên bản Mastodon hiện tại.
Sau khi cài đặt hoàn tất, bạn sẽ nhận được kết quả tương tự như sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22226%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để thiết lập phiên bản Ruby mặc định là 3.0.4. Sau đó, xác minh bằng lệnh ruby như bên dưới. Bạn sẽ thấy Ruby v3.0.4 đã được cài đặt trên hệ thống Debian của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22641%22%20height=%22249%22%3E%3C/svg%3E
Cuối cùng, bạn phải cài đặt một bundler làm trình quản lý gói Ruby của mình. Chạy lệnh gem bên dưới để cài đặt 'bundler'.
Tại thời điểm này, bạn đã hoàn tất việc cài đặt các gói phụ thuộc Mastodon trên hệ thống của mình. Bạn đã cài đặt Ruby 3.0.4 thông qua trình quản lý phiên bản Ruby rbenv và cài đặt bundler, công cụ quản lý gói ruby.
Trong các bước tiếp theo, bạn sẽ thiết lập người dùng PostgreSQL sẽ được sử dụng để cài đặt Mastodon.
Hãy đảm bảo thực hiện các lệnh bên dưới với quyền/người dùng root.
Trước khi bắt đầu, hãy chạy tiện ích lệnh systemctl bên dưới để đảm bảo rằng dịch vụ PostgreSQL đang chạy và được bật.
Bạn sẽ nhận được kết quả tương tự như thế này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22226%22%3E%3C/svg%3E
Khi PostgreSQL đang chạy, hãy chạy lệnh bên dưới để đăng nhập vào shell PostgreSQL.
Sau khi đăng nhập vào shell PostgreSQL, hãy chạy truy vấn PostgreSQL bên dưới để tạo vai trò/người dùng mới 'mastodon'. Ngoài ra, hãy nhớ thay đổi mật khẩu mặc định bằng mật khẩu mới mạnh hơn.
Tiếp theo, chạy truy vấn bên dưới để đảm bảo rằng người dùng/vai trò PostgreSQL mới đã được tạo. Sau đó nhập '\q' để thoát khỏi shell PostgreSQL.
Đầu ra bên dưới cho bạn thấy người dùng/vai trò PostgreSQL mới 'mastodon' đã được tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22600%22%20height=%22299%22%3E%3C/svg%3E
Với người dùng/vai trò PostgreSQL được tạo, sau đó bạn sẽ sẵn sàng cài đặt Mastodon trên hệ thống Debian của mình.
Trước khi bắt đầu, hãy đăng nhập vào người dùng 'mastodon' thông qua lệnh bên dưới.
Bây giờ hãy tải xuống mã nguồn Mastodon thông qua lệnh git và thay đổi nhánh thành phiên bản ổn định mới nhất của Mastodon. Tại thời điểm viết bài này, phiên bản ổn định của Mastodon là v4.0.2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22238%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để thiết lập triển khai Mastodon và cài đặt Ruby phụ thuộc.
Việc cài đặt các phụ thuộc của Mastodon Ruby sẽ mất thời gian. Dưới đây là kết quả đầu ra tương tự mà bạn sẽ nhận được trên thiết bị đầu cuối của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22746%22%20height=%22210%22%3E%3C/svg%3E
Sau khi bạn đã cài đặt các phụ thuộc Ruby của Mastodon, hãy chạy lệnh yarn bên dưới để cài đặt các phụ thuộc JavaScript cho Mastodon.
Sau đó, bạn sẽ nhận được kết quả đầu ra tương tự như cái này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22629%22%20height=%22261%22%3E%3C/svg%3E
Sau khi cài đặt Ruby dependency và JavaScript dependency, bạn sẽ thiết lập cài đặt Mastodon.
Chạy lệnh bên dưới để thiết lập Mastodon cho môi trường sản xuất.
Bạn sẽ được hỏi về một số cấu hình của Mastodon.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22725%22%20height=%22750%22%3E%3C/svg%3E
Mastodon tạo tài sản và tệp tĩnh.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22524%22%3E%3C/svg%3E
Người dùng quản trị mastodon được tạo và mật khẩu cũng được tạo cho màn hình thiết bị đầu cuối.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22657%22%20height=%22144%22%3E%3C/svg%3E
Tại thời điểm này, bạn đã hoàn tất cài đặt và cấu hình Mastodon trên Debian 11. Trong các bước tiếp theo, bạn sẽ thiết lập Mastodon như một dịch vụ systemd.
Chạy lệnh bên dưới để sao chép các tệp dịch vụ Mastodon vào thư mục '/etc/systemd/system'.
Bây giờ hãy tải lại trình quản lý systemd để áp dụng các thay đổi trên systemd.
Sau đó, hãy khởi động và kích hoạt dịch vụ Mastodon thông qua tiện ích lệnh systemctl bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E
Dịch vụ Mastodon hiện đã có thể hoạt động và cũng đã được bật. Xác minh bằng lệnh systemctl bên dưới.
Bạn sẽ nhận được kết quả tương tự như ảnh chụp màn hình sau.
Dịch vụ mastodon-web đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22202%22%3E%3C/svg%3E
Mastodon-sidekiq cũng đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Dịch vụ mastodon-streaming cũng đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22738%22%20height=%22231%22%3E%3C/svg%3E
Với tất cả các dịch vụ Mastodon đang chạy và được bật, tiếp theo bạn sẽ thiết lập Nginx làm proxy ngược cho Mastodon và tạo SSL Letsencrypt.
Sao chép cấu hình khối máy chủ Nginx mặc định của Mastodon vào '/etc/nginx/sites-available/mastodon'. Sau đó kích hoạt cấu hình khối máy chủ mới '/etc/nginx/sites-available/mastodon'.
Tiếp theo, mở tệp cấu hình khối máy chủ Mastodon '/etc/nginx/sites-available/mastodon' bằng trình chỉnh sửa nano bên dưới lệnh.
Thay đổi tên miền mặc định bằng tên miền Mastodon của bạn. Trong ví dụ này, tên miền cho Mastodon là 'mastodon.howtoforge.local'.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, chạy lệnh bên dưới để tạo chứng chỉ SSL từ Letsencrypt. Hãy chắc chắn thay đổi tên miền bằng tên miền của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22127%22%3E%3C/svg%3E
Sau khi tạo chứng chỉ SSL, hãy chạy lệnh bên dưới để xác minh cấu hình Nginx. Nếu bạn nhận được thông báo đầu ra như 'kiểm tra thành công - cú pháp ok', điều đó có nghĩa là bạn đã cấu hình đúng. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi mới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22702%22%20height=%22184%22%3E%3C/svg%3E
Cuối cùng, chạy tiện ích lệnh systemctl bên dưới để xác minh dịch vụ Nginx và đảm bảo rằng dịch vụ đang chạy và đã bật.
Bạn sẽ nhận được kết quả tương tự như sau - Dịch vụ Nginx hiện đang chạy và được bật. Dịch vụ Nginx sẽ tự động chạy khi khởi động.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E
Sau khi hoàn tất mọi cấu hình, bạn có thể truy cập Mastodon thông qua trình duyệt web.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22574%22%3E%3C/svg%3E
Nhấp vào nút 'Đăng nhập' để xác minh người dùng của bạn.
Bây giờ hãy nhập tên người dùng quản trị và mật khẩu đã tạo cho Mastodon. Sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22648%22%20height=%22496%22%3E%3C/svg%3E
Sau đó, bạn sẽ thấy trang chủ người dùng của Mastodon.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22536%22%3E%3C/svg%3E
Tiếp theo, nhấp vào menu Tùy chọn để truy cập trang tùy chọn người dùng. Sau đó, nhấp vào menu Administration ở bên trái. Và bạn sẽ thấy trang quản trị Mastodon bên dưới.
Bạn có thể xem chi tiết về ngăn xếp phần mềm mà bạn hiện đang sử dụng trên bản cài đặt Mastodon của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22534%22%3E%3C/svg%3E
Sau khi cài đặt xong, giờ bạn có thể thiết lập quy tắc Mastodon cho các hỗ trợ liên bang. Bạn cũng có thể thêm lớp bảo mật bổ sung vào cài đặt Mastodon của mình.
Với kiến trúc phi tập trung, Mastodon hoạt động trên hàng nghìn máy chủ khác nhau, mỗi máy chủ do nhiều thành viên khác nhau của cộng đồng điều hành. Bạn có thể tạo máy chủ Mastodon của mình dưới tên miền của mình. Bạn cũng có thể theo dõi những người dùng khác có tên miền khác nhau trên các máy chủ khác.
Trong hướng dẫn này, bạn sẽ cài đặt Mastodon, một nền tảng microblogging phi tập trung trên máy chủ Debian 11. Với hướng dẫn này, bạn sẽ thiết lập Mastodon với PostgreSQL làm máy chủ cơ sở dữ liệu và Nginx làm proxy ngược. Ngoài ra, bạn sẽ bảo mật cài đặt Mastodon thông qua chứng chỉ SSL miễn phí từ Letsencrypt.
Điều kiện tiên quyết
Hướng dẫn này giả định rằng bạn đã đáp ứng các yêu cầu sau:- Máy chủ Debian 11 - ví dụ này sử dụng máy chủ Debian 11 mới nhất với tên máy chủ 'mastodon-server' và địa chỉ IP '192.168.5.40'.
- Người dùng không phải root có quyền quản trị viên sudo/root.
- Tên miền được trỏ và phân giải đến máy chủ Debian công khai của bạn - ví dụ này sử dụng tên miền phụ 'mastodon.howtoforge.local'.
Thiết lập kho lưu trữ và cài đặt Dependencies
Mastodon là phần mềm mã nguồn mở và miễn phí để chạy các dịch vụ mạng xã hội tự lưu trữ tương tự như dịch vụ Twitter. Phần mềm này chủ yếu được viết bằng Ruby, đặc biệt là với khung web Ruby on Rails và JavaScript với Reac.js và khung Redux.Trong bước đầu tiên này, bạn sẽ thiết lập các kho lưu trữ bổ sung cho hệ thống của mình và cài đặt các gói phụ thuộc cho quá trình cài đặt Mastodon. Điều này bao gồm các gói như build-essentials để biên dịch Ruby, PostgreSQL cho máy chủ cơ sở dữ liệu, Nginx làm máy chủ web và proxy ngược, công cụ certbot để lấy chứng chỉ SSL qua Letsencrypt và máy chủ Redis sẽ được sử dụng để lưu trữ khóa-giá trị và quản lý phiên cho Mastodon.
Trước khi bắt đầu, hãy chạy lệnh apt bên dưới để cài đặt một số phụ thuộc cơ bản sẽ được sử dụng để quản lý kho lưu trữ và gói.
Mã:
sudo apt install curl wget gnupg apt-transport-https lsb-release ca-certificates
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22312%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để thêm kho lưu trữ Node.js Nodesource. Gói Node.js ở đây sẽ được sử dụng để biên dịch các tài sản tĩnh của Mastodon. Và tại thời điểm viết bài này, Mastodon mới nhất yêu cầu ít nhất Node.js v16.
Mã:
curl -sL https://deb.nodesource.com/setup_16.x | bash -
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Sau khi kho lưu trữ Node.js được thêm vào, bạn sẽ thiết lập kho lưu trữ cho trình quản lý gói Yarn. Kho lưu trữ này cung cấp gói Yarn sẽ được sử dụng để cài đặt các phụ thuộc JavaScript.
Chạy lệnh bên dưới để thêm khóa GPG và kho lưu trữ của trình quản lý gói Yarn.
Mã:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
Mã:
wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
> /etc/apt/sources.list.d/postgresql.list
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22214%22%3E%3C/svg%3E
Sau khi thêm kho lưu trữ Node.js, Yarn và PostgreSQL, hãy chạy lệnh apt bên dưới để làm mới gói của bạn index.
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22291%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh apt bên dưới để cài đặt các gói phụ thuộc sẽ được sử dụng để cài đặt Mastodon.
Mã:
sudo apt install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \
bison build-essential libssl-dev libyaml-dev libreadline6-dev \
zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \
nginx nodejs yarn redis-server redis-tools postgresql postgresql-contrib \
certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22324%22%3E%3C/svg%3E
Với lệnh này, bạn đã cài đặt các gói phụ thuộc cơ bản cho Mastodon và đã thêm một số kho lưu trữ của bên thứ ba vào hệ thống Debian của bạn.
Trong các bước tiếp theo, bạn sẽ cài đặt Ruby thông qua rbenv - Trình quản lý phiên bản Ruby.
Cài đặt rbenv và Ruby
rbenv là một công cụ quản lý phiên bản cho ngôn ngữ lập trình Ruby trên các hệ thống giống Unix. Công cụ này hữu ích để chuyển đổi giữa nhiều phiên bản Ruby trên cùng một máy và để đảm bảo rằng mỗi dự án bạn đang làm việc luôn chạy trên phiên bản Ruby chính xác.Để bắt đầu, hãy chạy lệnh bên dưới để tạo người dùng mới 'mastodon' trên hệ thống của bạn. Người dùng mới này sẽ được sử dụng để chạy các dịch vụ liên quan đến Mastodon và mã nguồn Mastodon sẽ được lưu trữ trong thư mục gốc của người dùng này.
Mã:
sudo adduser --disabled-login mastodon
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22634%22%20height=%22370%22%3E%3C/svg%3E
Sau khi người dùng 'mastodon' được tạo, hãy chạy lệnh bên dưới để đăng nhập.
Mã:
su - mastodon
Mã:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Mã:
cd ~/.rbenv && src/configure && make -C src
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22390%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để thêm thư mục 'bin' rbenv vào PATH hệ thống và tải rbenv mỗi khi người dùng đăng nhập vào phiên mới.
Mã:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Mã:
source ~/.bashrc
rbenv TAB
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22134%22%3E%3C/svg%3E
Trước khi cài đặt Ruby, bạn cần cài đặt plugin rbenv có tên là 'xây dựng ruby'. Plugin này cung cấp các công cụ dòng lệnh giúp đơn giản hóa việc cài đặt Ruby từ nguồn, đặc biệt là đối với các hệ điều hành giống UNIX.
Tải xuống plugin 'ruby-build' thông qua lệnh git.
Mã:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Sau 'ruby-build' plugin được thêm vào, hãy chạy lệnh bên dưới để cài đặt Ruby v3.0.4, lệnh này là bắt buộc đối với phiên bản Mastodon hiện tại.
Mã:
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22226%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để thiết lập phiên bản Ruby mặc định là 3.0.4. Sau đó, xác minh bằng lệnh ruby như bên dưới. Bạn sẽ thấy Ruby v3.0.4 đã được cài đặt trên hệ thống Debian của bạn.
Mã:
rbenv global 3.0.4
ruby --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22641%22%20height=%22249%22%3E%3C/svg%3E
Cuối cùng, bạn phải cài đặt một bundler làm trình quản lý gói Ruby của mình. Chạy lệnh gem bên dưới để cài đặt 'bundler'.
Mã:
gem install bundler --no-document
Trong các bước tiếp theo, bạn sẽ thiết lập người dùng PostgreSQL sẽ được sử dụng để cài đặt Mastodon.
Thiết lập PostgreSQL Database Server
Trong bước này, bạn sẽ xác minh dịch vụ PostgreSQL để đảm bảo rằng dịch vụ đã được bật và đang chạy. Sau đó, bạn sẽ tạo một người dùng/vai trò PostgreSQL mới 'mastodon' thông qua shell PostgreSQL.Hãy đảm bảo thực hiện các lệnh bên dưới với quyền/người dùng root.
Trước khi bắt đầu, hãy chạy tiện ích lệnh systemctl bên dưới để đảm bảo rằng dịch vụ PostgreSQL đang chạy và được bật.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22226%22%3E%3C/svg%3E
Khi PostgreSQL đang chạy, hãy chạy lệnh bên dưới để đăng nhập vào shell PostgreSQL.
Mã:
cd /etc/postgresql
sudo -u postgres psql
Mã:
CREATE USER mastodon CREATEDB;
ALTER USER mastodon PASSWORD 'p4ssw0rd';
Mã:
\du
\q
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22600%22%20height=%22299%22%3E%3C/svg%3E
Với người dùng/vai trò PostgreSQL được tạo, sau đó bạn sẽ sẵn sàng cài đặt Mastodon trên hệ thống Debian của mình.
Cài đặt Mastodon
Bạn sẽ cài đặt và cấu hình Mastodon cho máy chủ Debian của mình trong bước này. Bạn cũng sẽ cài đặt các phụ thuộc Ruby và các phụ thuộc JavaScript cho Mastodon. Và cuối cùng, bạn sẽ bắt đầu cấu hình Mastodon cho lần triển khai của mình, bao gồm cấu hình miền, cấu hình cơ sở dữ liệu và redis, cấu hình SMTP và cấu hình người dùng quản trị Mastodon.Trước khi bắt đầu, hãy đăng nhập vào người dùng 'mastodon' thông qua lệnh bên dưới.
Mã:
su - mastodon
Mã:
git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22238%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để thiết lập triển khai Mastodon và cài đặt Ruby phụ thuộc.
Mã:
bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22746%22%20height=%22210%22%3E%3C/svg%3E
Sau khi bạn đã cài đặt các phụ thuộc Ruby của Mastodon, hãy chạy lệnh yarn bên dưới để cài đặt các phụ thuộc JavaScript cho Mastodon.
Mã:
yarn install --pure-lockfile
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22629%22%20height=%22261%22%3E%3C/svg%3E
Sau khi cài đặt Ruby dependency và JavaScript dependency, bạn sẽ thiết lập cài đặt Mastodon.
Chạy lệnh bên dưới để thiết lập Mastodon cho môi trường sản xuất.
Mã:
RAILS_ENV=production bundle exec rake mastodon:setup
- Tên miền Mastodon? Ví dụ này sử dụng tên miền 'mastodon.howtoforge.local'.
- Bật chế độ người dùng đơn? Nhập y.
- Sử dụng Docker để chạy Mastodon? Nhập n cho không.
- Nhập tên người dùng và mật khẩu PostgreSQL và đảm bảo rằng bạn nhận được thông báo 'Cấu hình cơ sở dữ liệu hoạt động!'.
- Cấu hình Redis? giữ nguyên mặc định bằng cách nhấn ENTER.
- Bật tải tệp lên đám mây? Nhập n cho không.
- Cho phép gửi email từ máy chủ cục bộ? Nhập y cho có để xác nhận hoặc n cho không. Điều này tùy thuộc vào môi trường của bạn, bạn cũng có thể sử dụng máy chủ SMTP của bên thứ ba.
- Lưu cấu hình? Nhập y cho có.
- Để tạo cơ sở dữ liệu. Nhập y để tạo cơ sở dữ liệu Mastodon.
- Nhập y để biên dịch tài sản và tệp tĩnh cho Mastodon.
- Thiết lập người dùng quản trị? Nhập người dùng quản trị mới và email cho cài đặt Mastodon của bạn. Sau đó, bạn sẽ nhận được mật khẩu được tạo tự động trên màn hình của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22725%22%20height=%22750%22%3E%3C/svg%3E
Mastodon tạo tài sản và tệp tĩnh.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22524%22%3E%3C/svg%3E
Người dùng quản trị mastodon được tạo và mật khẩu cũng được tạo cho màn hình thiết bị đầu cuối.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22657%22%20height=%22144%22%3E%3C/svg%3E
Tại thời điểm này, bạn đã hoàn tất cài đặt và cấu hình Mastodon trên Debian 11. Trong các bước tiếp theo, bạn sẽ thiết lập Mastodon như một dịch vụ systemd.
Chạy Mastodon như một dịch vụ Systemd
Theo mặc định, Mastodon cung cấp một mẫu các tệp dịch vụ systemd có sẵn trong thư mục '/home/mastodon/live/dist/'.Chạy lệnh bên dưới để sao chép các tệp dịch vụ Mastodon vào thư mục '/etc/systemd/system'.
Mã:
sudo cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
Mã:
sudo systemctl daemon-reload
Mã:
sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E
Dịch vụ Mastodon hiện đã có thể hoạt động và cũng đã được bật. Xác minh bằng lệnh systemctl bên dưới.
Mã:
sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming
Dịch vụ mastodon-web đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22202%22%3E%3C/svg%3E
Mastodon-sidekiq cũng đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Dịch vụ mastodon-streaming cũng đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22738%22%20height=%22231%22%3E%3C/svg%3E
Với tất cả các dịch vụ Mastodon đang chạy và được bật, tiếp theo bạn sẽ thiết lập Nginx làm proxy ngược cho Mastodon và tạo SSL Letsencrypt.
Thiết lập Nginx làm Proxy ngược
Trong bước này, bạn sẽ thiết lập máy chủ web Nginx làm proxy ngược cho Mastodon. Bạn cũng sẽ tạo SSL Letsencrypt thông qua lệnh certbot và bảo mật Mastodon thông qua kết nối bảo mật HTTPS.Sao chép cấu hình khối máy chủ Nginx mặc định của Mastodon vào '/etc/nginx/sites-available/mastodon'. Sau đó kích hoạt cấu hình khối máy chủ mới '/etc/nginx/sites-available/mastodon'.
Mã:
sudo cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
Mã:
sudo nano /etc/nginx/sites-available/mastodon
Mã:
```ini
change domain
```
Tiếp theo, chạy lệnh bên dưới để tạo chứng chỉ SSL từ Letsencrypt. Hãy chắc chắn thay đổi tên miền bằng tên miền của bạn.
Mã:
sudo certbot --nginx -d mastodon.howtoforge.local
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22127%22%3E%3C/svg%3E
Sau khi tạo chứng chỉ SSL, hãy chạy lệnh bên dưới để xác minh cấu hình Nginx. Nếu bạn nhận được thông báo đầu ra như 'kiểm tra thành công - cú pháp ok', điều đó có nghĩa là bạn đã cấu hình đúng. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi mới.
Mã:
sudo nginx -t
sudo systemctl restart nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22702%22%20height=%22184%22%3E%3C/svg%3E
Cuối cùng, chạy tiện ích lệnh systemctl bên dưới để xác minh dịch vụ Nginx và đảm bảo rằng dịch vụ đang chạy và đã bật.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E
Sau khi hoàn tất mọi cấu hình, bạn có thể truy cập Mastodon thông qua trình duyệt web.
Truy cập cài đặt Mastodon
Mở trình duyệt web và truy cập tên miền cài đặt Mastodon của bạn (ví dụ: https://mastodon.howtoforge.local/). Bây giờ bạn sẽ thấy trang chủ mặc định của Mastodon.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22574%22%3E%3C/svg%3E
Nhấp vào nút 'Đăng nhập' để xác minh người dùng của bạn.
Bây giờ hãy nhập tên người dùng quản trị và mật khẩu đã tạo cho Mastodon. Sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22648%22%20height=%22496%22%3E%3C/svg%3E
Sau đó, bạn sẽ thấy trang chủ người dùng của Mastodon.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22536%22%3E%3C/svg%3E
Tiếp theo, nhấp vào menu Tùy chọn để truy cập trang tùy chọn người dùng. Sau đó, nhấp vào menu Administration ở bên trái. Và bạn sẽ thấy trang quản trị Mastodon bên dưới.
Bạn có thể xem chi tiết về ngăn xếp phần mềm mà bạn hiện đang sử dụng trên bản cài đặt Mastodon của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22534%22%3E%3C/svg%3E
Kết luận
Xin chúc mừng! Bây giờ bạn đã hoàn tất việc cài đặt nền tảng microblogging Mastodon trên máy chủ Debian 11. Bạn đã cài đặt Mastodon với PostgreSQL làm máy chủ cơ sở dữ liệu và Nginx làm proxy ngược. Bạn cũng đã bảo mật triển khai Mastodon thông qua kết nối HTTPS an toàn.Sau khi cài đặt xong, giờ bạn có thể thiết lập quy tắc Mastodon cho các hỗ trợ liên bang. Bạn cũng có thể thêm lớp bảo mật bổ sung vào cài đặt Mastodon của mình.