Mastodon là một nền tảng mạng xã hội nguồn mở rất giống với Twitter. Bạn có thể theo dõi những người dùng khác và đăng tin nhắn và hình ảnh bằng Mastodon. Nó được viết bằng Ruby và JavaScript, và bất kỳ ai cũng có thể sử dụng nó một cách riêng tư và an toàn. Mastodon cũng cung cấp một ứng dụng cho nhiều nền tảng khác nhau như Android và iOS.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Mastodon trên Debian 10.
Sau khi cập nhật hệ thống, bạn sẽ cần cài đặt một số phần phụ thuộc mà Mastodon yêu cầu. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Sau khi tất cả các phụ thuộc được cài đặt, bạn có thể tiến hành bước tiếp theo.
Sau khi kho lưu trữ đã được thêm vào, hãy cài đặt Node.js phiên bản 8 bằng lệnh sau:
Tiếp theo, tải xuống và thêm khóa GPG của Yarn và bật kho lưu trữ bằng lệnh sau:
Sau khi thêm, hãy cập nhật kho lưu trữ và cài đặt Yarn bằng các lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi cài đặt, hãy đăng nhập vào PostgreSQL bằng lệnh sau:
Tiếp theo, tạo người dùng cho Mastodon bằng lệnh sau:
Tiếp theo, thoát khỏi shell PostgreSQL bằng lệnh sau:
Bạn có thể tạo người dùng này bằng lệnh sau:
Sau khi tạo, hãy đăng nhập vào người dùng mastodon bằng lệnh sau:
Tiếp theo, sao chép kho lưu trữ rbenv bằng lệnh sau:
Tiếp theo, thiết lập rbenv và ruby-build bằng các lệnh sau:
Sau khi hoàn tất, hãy cài đặt phiên bản Ruby mới nhất bằng lệnh sau:
Sau khi cài đặt, bạn sẽ nhận được kết quả sau:
Tiếp theo, thiết lập Ruby khả dụng trên toàn cầu bằng lệnh sau:
Tiếp theo, cập nhật gem và cài đặt bundler bằng lệnh sau:
Sau khi hoàn tất, bạn có thể kiểm tra Ruby bằng lệnh sau:
Tiếp theo, hãy kiểm tra nhánh mới nhất bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, cài đặt tất cả các phụ thuộc mà ruby và Node.js yêu cầu bằng lệnh sau:
Bây giờ, thiết lập Mastodon bằng lệnh sau:
Trong quá trình thiết lập, bạn sẽ được hỏi một số câu hỏi. Trả lời tất cả các câu hỏi như được hiển thị bên dưới:
Sau khi hoàn tất, hãy thoát khỏi người dùng mastodon bằng lệnh sau:
Bạn có thể thêm kho lưu trữ này bằng lệnh sau:
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt Certbot với Nginx bằng cách chạy lệnh sau:
Sau khi cả hai gói được cài đặt, hãy sao chép tệp cấu hình Nginx từ thư mục Mastodon vào Nginx bằng lệnh sau:
Tiếp theo, hãy bật tệp cấu hình máy chủ ảo Mastodon bằng lệnh sau:
Theo mặc định, tệp cấu hình máy chủ ảo Mastodon được cấu hình với tên miền example.com. Vì vậy, bạn sẽ cần thay thế tên miền example.com bằng tên miền của mình trong tệp mastodon.conf. Bạn có thể thay thế bằng lệnh sau:
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng cấu hình:
Tiếp theo, tải xuống chứng chỉ SSL miễn phí Let's Encrypt và cấu hình Nginx để sử dụng chứng chỉ này bằng cách chạy lệnh certbot:
Lệnh này sẽ tải xuống chứng chỉ SSL Let's Encrypt miễn phí và cấu hình Nginx cho miền test.linuxbuz.com của bạn.
Tệp cấu hình Nginx của bạn cho Mastodon hiện trông giống như sau:
Đầu ra:
Tiếp theo, hãy khởi động tất cả các dịch vụ và cho phép chúng khởi động sau khi khởi động lại bằng lệnh sau:
Bây giờ, hãy cung cấp email quản trị và mật khẩu mà bạn đã tạo trước đó và nhấp vào nút Đăng nhập vào. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút LET'S GO!. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Next. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút FINISH TUTORIAL!. Bạn sẽ thấy bảng điều khiển Mastodon ở trang sau:
Xin chúc mừng! Bạn đã cài đặt và cấu hình Mastodon thành công trên máy chủ Debian 10. Bây giờ bạn có thể dễ dàng tạo mạng xã hội của riêng mình bằng Mastodon. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Mastodon trên Debian 10.
Yêu cầu
- Một máy chủ chạy Debian 10.
- Một mật khẩu gốc được cấu hình trên máy chủ của bạn.
- Một tên miền hợp lệ được trỏ đến với địa chỉ IP máy chủ của bạn. Trong hướng dẫn này, chúng tôi sẽ sử dụng test.linuxbuz.com.
Bắt đầu
Trước tiên, bạn nên cập nhật hệ thống của mình lên phiên bản mới nhất. Bạn có thể thực hiện bằng cách chạy lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Mã:
apt-get install software-properties-common dirmngr apt-transport-https ca-certificates curl gcc g++ make imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core libprotobuf-dev protobuf-compiler pkg-config autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev libidn11-dev libicu-dev libjemalloc-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev -y
Cài đặt Node.js
Mastodon yêu cầu Node.js phiên bản 8.x và Yarn phải được cài đặt trên hệ thống của bạn. Để cài đặt Node.js, hãy thêm kho lưu trữ Node.js vào máy chủ của bạn bằng lệnh sau:
Mã:
curl -sL https://deb.nodesource.com/setup_8.x | bash -
Mã:
apt-get install nodejs -y
Mã:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
Mã:
apt-get update -y
apt-get install yarn -y
Cài đặt và cấu hình PostgreSQL
Mastodon sử dụng PostgreSQL để lưu trữ dữ liệu của họ. Bạn có thể cài đặt phiên bản PostgreSQL mới nhất bằng lệnh sau:
Mã:
apt-get install postgresql postgresql-contrib -y
Mã:
su - postgres
postgres@debian:~$ psql
psql (11.5 (Debian 11.5-1+deb10u1))
Nhập "help" để được trợ giúp.
Mã:
postgres=# CREATE USER mastodon CREATEDB;
Mã:
postgres=#exit
Cài đặt Ruby
Mastodon sử dụng Ruby on Rails cho mục đích back-end. Trước tiên, bạn sẽ cần tạo một người dùng hệ thống mới để chạy máy chủ Mastodon.Bạn có thể tạo người dùng này bằng lệnh sau:
Mã:
adduser --disabled-login --gecos 'Mastodon Server' mastodon
Mã:
su - mastodon
Mã:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Mã:
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Mã:
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1
Mã:
Đang tải xuống ruby-2.6.1.tar.bz2...-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.bz2Đang cài đặt ruby-2.6.1...Đã cài đặt ruby-2.6.1 vào /home/mastodon/.rbenv/versions/2.6.1
Mã:
rbenv global 2.6.1
Mã:
gem update --system
gem install bundler --no-document
Mã:
ruby --version
Cấu hình Mastodon
Trước tiên, hãy đăng nhập vào tài khoản người dùng mastodon và tải xuống kho lưu trữ git mastodon bằng lệnh sau:
Mã:
su - mastodon
Mã:
git clone https://github.com/tootsuite/mastodon.git ~/live
cd ~/live
Mã:
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
Mã:
Lưu ý: đang kiểm tra 'v2.9.3'.Bạn đang ở trạng thái 'tách HEAD'. Bạn có thể xem xung quanh, thực hiện các thay đổi thử nghiệmvà cam kết chúng, và bạn có thể hủy bất kỳ cam kết nào bạn thực hiện trongtrạng thái này mà không ảnh hưởng đến bất kỳ nhánh nào bằng cách thực hiện một lần kiểm tra khác.Nếu bạn muốn tạo một nhánh mới để giữ lại các cam kết bạn tạo, bạn có thểthực hiện (bây giờ hoặc sau này) bằng cách sử dụng -b với lệnh kiểm tra lại. Ví dụ: git checkout -b HEAD hiện ở 06f906aca Nâng cấp phiên bản lên 2.9.3
Mã:
bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test
yarn install --pure-lockfile
Mã:
RAILS_ENV=production bundle exec rake mastodon:setup
Mã:
Phiên bản của bạn được xác định bằng tên miền của nó. Việc thay đổi tên miền sau đó sẽ phá vỡ mọi thứ.Tên miền: test.linuxbuz.comChế độ người dùng đơn sẽ vô hiệu hóa việc đăng ký và chuyển hướng trang đích đến hồ sơ công khai của bạn.Bạn có muốn bật chế độ người dùng đơn không? KhôngBạn có sử dụng Docker để chạy Mastodon không? khôngMáy chủ PostgreSQL: /var/run/postgresqlCổng PostgreSQL: 5432Tên cơ sở dữ liệu PostgreSQL: mastodon_productionTên người dùng PostgreSQL: mastodonMật khẩu người dùng PostgreSQL:Cấu hình cơ sở dữ liệu hoạt động! ????Máy chủ Redis: localhostCổng Redis: 6379Mật khẩu Redis:Cấu hình Redis hoạt động! ????Bạn có muốn lưu trữ các tệp đã tải lên trên đám mây không? KhôngBạn có muốn gửi email từ localhost không? cóĐịa chỉ email để gửi email "từ": Mastodon Gửi email thử nghiệm với cấu hình này ngay bây giờ không? khôngCấu hình này sẽ được ghi vào .env.productionLưu cấu hình? CóBây giờ cấu hình đã được lưu, lược đồ cơ sở dữ liệu phải được tải.Nếu cơ sở dữ liệu đã tồn tại, thao tác này sẽ xóa nội dung của cơ sở dữ liệu.Chuẩn bị cơ sở dữ liệu ngay bây giờ? CóXong rồi! Bây giờ bạn có thể bật máy chủ Mastodon ????Bạn có muốn tạo người dùng quản trị ngay không? CóTên người dùng: adminEmail: [emailprotected]Bạn có thể đăng nhập bằng mật khẩu: a9a78a4c2eb442d72eb946f94ebe9a00Bạn có thể thay đổi mật khẩu sau khi đăng nhập.
Mã:
exit
Cấu hình Nginx cho Mastodon
Tiếp theo, bạn sẽ cần cài đặt Nginx và Certbot vào hệ thống của mình. Theo mặc định, phiên bản mới nhất của Certbot không có trong kho lưu trữ mặc định của Debian 10. Vì vậy, bạn sẽ cần thêm kho lưu trữ Certbot vào hệ thống của mình.Bạn có thể thêm kho lưu trữ này bằng lệnh sau:
Mã:
add-apt-repository ppa:certbot/certbot
Mã:
apt-get update -y
apt-get install nginx python-certbot-nginx -y
Mã:
cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon.conf
Mã:
ln -s /etc/nginx/sites-available/mastodon.conf /etc/nginx/sites-enabled/
Mã:
sed -i 's/example.com/test.linuxbuz.com/g' /etc/nginx/sites-enabled/mastodon.conf
Mã:
systemctl restart nginx
Mã:
certbot --nginx -d test.linuxbuz.com
Tệp cấu hình Nginx của bạn cho Mastodon hiện trông giống như sau:
Mã:
cat /etc/nginx/sites-enabled/mastodon.conf
Mã:
map $http_upgrade $connection_upgrade { default upgrade; '' close;}proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;server { if ($host = test.linuxbuz.com) { return 301 https://$host$request_uri; } # được quản lý bởi Certbot listen 80; listen [::]:80; server_name test.linuxbuz.com; root /home/mastodon/live/public; location /.well-known/acme-challenge/ { allow all; } location / { return 301 https://$host$request_uri; }}server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name test.linuxbuz.com; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; # Bỏ chú thích những dòng này sau khi bạn có được chứng chỉ: # ssl_certificate /etc/letsencrypt/live/test.linuxbuz.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/test.linuxbuz.com/privkey.pem; keepalive_timeout 70; sendfile on; client_max_body_size 80m; root /home/mastodon/live/public; bật gzip; bật gzip_disable "msie6"; bật gzip_vary; gzip_proxied bất kỳ; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types văn bản/văn bản thuần túy/css ứng dụng/json ứng dụng/javascript văn bản/xml ứng dụng/xml ứng dụng/xml+rss văn bản/javascript; thêm_đầu đề Strict-Transport-Security "max-age=31536000"; vị trí / { try_files $uri @proxy; } vị trí ~ ^/(biểu tượng cảm xúc|gói|hệ thống/tài khoản/hình đại diện|hệ thống/tệp_đính_kèm_phương_tiện_truyền_thông) { thêm_đầu đề Cache-Control "public, max-age=31536000, không thể thay đổi"; add_header Strict-Transport-Security "max-age=31536000"; try_files $uri @proxy; } vị trí /sw.js { add_header Cache-Control "public, max-age=0"; add_header Strict-Transport-Security "max-age=31536000"; try_files $uri @proxy; } vị trí @proxy { proxy_set_header Máy chủ $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Proxy ""; proxy_pass_header Máy chủ; proxy_pass http://127.0.0.1:3000; proxy_buffering bật; proxy_redirect tắt; proxy_http_version 1.1; proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối $connection_upgrade; proxy_cache CACHE; proxy_cache_valid 200 7 ngày; proxy_cache_valid 410 24 giờ; lỗi proxy_cache_use_stale hết thời gian chờ cập nhật http_500 http_502 http_503 http_504; add_header X-Cached $upstream_cache_status; add_header Strict-Transport-Security "max-age=31536000"; tcp_nodelay on; } vị trí /api/v1/streaming { proxy_set_header Máy chủ $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Proxy ""; proxy_pass http://127.0.0.1:4000; proxy_buffering tắt; proxy_redirect tắt; proxy_http_version 1.1; proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối $connection_upgrade; tcp_nodelay bật; } error_page 500 501 502 503 504 /500.html; ssl_certificate /etc/letsencrypt/live/test.linuxbuz.com/fullchain.pem; # được quản lý bởi Certbot ssl_certificate_key /etc/letsencrypt/live/test.linuxbuz.com/privkey.pem; # được quản lý bởi Certbot}
Cấu hình Dịch vụ Systemd cho Mastodon
Nginx hiện đã được cài đặt và cấu hình để phục vụ Mastodon. Tiếp theo, bạn sẽ cần cấu hình tệp dịch vụ systemd cho Mastodon. Để thực hiện, hãy sao chép các mẫu dịch vụ systemd từ thư mục Mastodon:
Mã:
cp /home/mastodon/live/dist/mastodon-web.service /etc/systemd/system/
cp /home/mastodon/live/dist/mastodon-sidekiq.service /etc/systemd/system/
cp /home/mastodon/live/dist/mastodon-streaming.service /etc/systemd/system/
Mã:
systemctl start mastodon-web
systemctl start mastodon-sidekiq
systemctl start mastodon-streaming
systemctl enable mastodon-web
systemctl enable mastodon-sidekiq
systemctl enable mastodon-streaming
Truy cập Giao diện Web Mastodon
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL https://test.linuxbuz.com. Bạn sẽ được chuyển hướng đến trang sau:Bây giờ, hãy cung cấp email quản trị và mật khẩu mà bạn đã tạo trước đó và nhấp vào nút Đăng nhập vào. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút LET'S GO!. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Next. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút FINISH TUTORIAL!. Bạn sẽ thấy bảng điều khiển Mastodon ở trang sau:
Xin chúc mừng! Bạn đã cài đặt và cấu hình Mastodon thành công trên máy chủ Debian 10. Bây giờ bạn có thể dễ dàng tạo mạng xã hội của riêng mình bằng Mastodon. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.