Những thứ cần chuẩn bị:
- 1 VPS sử dụng hệ điều hành Debian – có ít nhất 512MB Ram, và 1 CPU.
1. Cài đặt các gói bắt buộc
Đầu tiên, cập nhật hệ thống và cài đặt các gói cần thiết.
sudo apt-get update
sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev libxml2-dev libxslt-dev imagemagick ghostscript curl libmagickwand-dev git libpq-dev redis-server nodejs
2. Cài đặt PostgreSQL
Diaspora hỗ trợ MySQL, MariaDB và PostgreSQL. Trong bài viết hướng dẫn này, mình sẽ sử dụng PostgreSQL.
Cài đặt PostgreSQL.
sudo apt-get install PostgreSQL-server
Kết nối với PostgreSQL với postgres
người dùng.
sudo -u postgres psql
Tạo người dùng Diaspora.
CREATE USER diaspora WITH CREATEDB PASSWORD '<password>';
3.Thêm một người dùng Diaspora chuyên dụng
Đây là tài khoản người dùng sẽ chạy Diaspora.
sudo adduser --disabled-login diaspora
Chuyển sang người dùng mới.
sudo su - diaspora
4. Cài đặt Ruby
Có một số cách để cài đặt Ruby. Chúng tôi sẽ sử dụng rbenv
để quản lý môi trường và các phiên bản.
Đầu tiên, bạn cần cài đặt các gói mà Ruby yêu cầu.
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
Cài đặt rbenv
.
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
Kết nối lại để tải lại đường dẫn.
exit
sudo su - diaspora
Cài đặt ruby-build
plugin rbenv
để dịch Ruby:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Cài đặt Ruby.
rbenv install 2.4.3
rbenv global 2.4.3
5. Cài đặt Exim4
Cài đặt và cấu hình gói Exim4 để gửi email cho người dùng.
sudo apt-get install exim4
sudo dpkg-reconfigure exim4-config
6. Cài đặt và cấu hình Diaspora
Sao chép mã nguồn cho Diaspora.
cd ~
git clone -b master https://github.com/diaspora/diaspora.git
cd diaspora
Sao chép tệp cấu hình cơ sở dữ liệu mẫu vào vị trí mà Diaspora yêu cầu.
cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml
Mở tệp cấu hình cơ sở dữ liệu trong trình soạn thảo văn bản để chỉnh sửa một số cài đặt.
nano config/database.yml
Thay đổi cài đặt cơ sở dữ liệu để khớp với người dùng và mật khẩu PostgreSQL mà bạn đã tạo trước đó.
postgresql: &postgresql
adapter: postgresql
host: localhost
port: 5432
username: diaspora
password: __password__
encoding: unicode
Mở tệp cấu hình Diaspora.
nano config/diaspora.yml
Bạn sẽ cần cập nhật một vài cài đặt trong tệp này để Diaspora hoạt động bình thường.
url
: Đặt URL hiển thị công khai cho nhóm của bạn.certificate_authorities
: Loại bỏ phần dẫn#
đến bỏ ghi chú nó.rails_environment
: Bạn phải đặt điều này thànhproduction
.require_ssl
: Đặt điều này thànhfalse
để ngăn chuyển hướng từhttp://
đếnhttps://
.
7. Cài đặt Ruby
Cài đặt Bundle, trình quản lý thư viện Ruby.
gem install bundler
script/configure_bundler
Lưu ý: Nếu bạn gặp lỗi liên quan đến phiên bản Ruby của mình, hãy chỉnh sửa .ruby-version
và đặt của riêng bạn (tại đây 2.4.3
thay vì 2.4
).
8.Thiết lập cơ sở dữ liệu
Tạo và cấu hình cơ sở dữ liệu.
RAILS_ENV=production bin/rake db:create db:migrate
9. Biên dịch trước nội dung
Lệnh rake này sẽ biên dịch trước các nội dung.
RAILS_ENV=production bin/rake assets:precompile
9. Dịch vụ Diaspora systemd
Có nhiều cách để quản lý Diaspora như một dịch vụ. Trong hướng dẫn này, chúng tôi sẽ sử dụng Systemd.
Đầu tiên, hãy tạo các tệp sau.
target
tệp systemd :touch /etc/systemd/system/diaspora.target
web
tệp dịch vụ systemd :touch /etc/systemd/system/diaspora-web.service
sidekiq
tệp dịch vụ systemd :touch /etc/systemd/system/diaspora-sidekiq.service
Dán vào văn bản cấu hình sau cho mỗi tệp mà bạn đã tạo trước đó.
target
tập tin:
[Unit]
Description=Diaspora social network
Wants=postgresql.service
Wants=redis-server.service
After=redis-server.service
After=postgresql.service
[Install]
WantedBy=multi-user.target
web
tệp dịch vụ:
[Unit]
Description=Diaspora social network (unicorn)
PartOf=diaspora.target
StopWhenUnneeded=true
[Service]
User=diaspora
Environment=RAILS_ENV=production
WorkingDirectory=/home/diaspora/diaspora
ExecStart=/bin/bash -lc "bin/bundle exec unicorn -c config/unicorn.rb -E production"
Restart=always
[Install]
WantedBy=diaspora.target
sidekiq
tệp dịch vụ:
[Unit]
Description=Diaspora social network (sidekiq)
PartOf=diaspora.target
StopWhenUnneeded=true
[Service]
User=diaspora
Environment=RAILS_ENV=production
WorkingDirectory=/home/diaspora/diaspora
ExecStart=/bin/bash -lc "bin/bundle exec sidekiq"
Restart=always
[Install]
WantedBy=diaspora.target
Bật dịch vụ khởi động.
sudo systemctl enable diaspora.target diaspora-sidekiq.service diaspora-web.service
Khởi động lại các dịch vụ.
sudo systemctl restart diaspora.target
Đảm bảo rằng chúng đang chạy chính xác.
sudo systemctl status diaspora-web.service
sudo systemctl status diaspora-sidekiq.service
10. Nginx Reverse Proxy
Chúng ta sẽ sử dụng Nginx làm proxy để phục vụ các tài nguyên tĩnh.
Tải xuống acme.sh
mã nguồn.
git clone https://github.com/Neilpang/acme.sh.git
Tạo chứng chỉ Let’s Encrypt.
./.acme.sh/acme.sh --issue --log \
--dns \
--keylength ec-256 \
--cert-file /etc/nginx/https/cert.pem \
--key-file /etc/nginx/https/key.pem \
--fullchain-file /etc/nginx/https/fullchain.pem \
-d example.com \
-d www.example.com
Cài đặt Nginx.
sudo apt-get install nginx
Tạo tệp cấu hình Nginx mới cho Diaspora.
nano /etc/nginx/conf.d/diaspora.conf
Điền vào tệp với nội dung sau.
upstream diaspora_server {
server unix:/home/diaspora/diaspora/tmp/diaspora.sock;
}
server {
listen 80;
listen [::]:80;
server_name www.example.com example.com;
return 301 https://example.com$request_uri;
access_log /dev/null;
error_log /dev/null;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.com example.com;
if ($host = www.example.com) {
return 301 https://example.com$request_uri;
}
access_log /var/log/nginx/dspr-access.log;
error_log /var/log/nginx/dspr-error.log;
ssl_certificate /etc/nginx/https/fullchain.pem;
ssl_certificate_key /etc/nginx/https/key.pem;
ssl_protocols TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES;
ssl_ecdh_curve X25519:P-521:P-384:P-256;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
resolver 80.67.169.40 80.67.169.12 valid=300s;
resolver_timeout 5s;
ssl_session_cache shared:SSL:10m;
root /home/diaspora/diaspora/public;
client_max_body_size 5M;
client_body_buffer_size 256K;
try_files $uri @diaspora;
location /assets/ {
expires max;
add_header Cache-Control public;
}
location @diaspora {
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 Host $http_host;
proxy_redirect off;
proxy_pass http://diaspora_server;
}
}
Lưu ý: đổi example.com
sang tên miền đã đăng ký của riêng bạn.
Sau khi tất cả các sửa đổi đã được hoàn thành, hãy kiểm tra tệp cấu hình xem có lỗi nào không.
sudo nginx -t
Khởi động lại Nginx để áp dụng các thay đổi.
sudo systemctl restart nginx
Nếu bây giờ bạn truy cập tên miền trong trình duyệt của mình (ví dụ https://example.com
:), bạn sẽ đến trang chào mừng Diaspora.
11. Tạo người dùng Diaspora
Nhấp vào liên kết Start by creating an account.
và điền thông tin chi tiết để tạo người dùng Diaspora mới. Sau đó, bạn sẽ có thể xem trang chủ của người dùng của mình và bắt đầu sử dụng mạng xã hội Diaspora.
Sau khi bạn tạo tài khoản, hãy cấp cho nó quyền quản trị:.
Role.add_admin User.where(username: "your_username").first.person
Bây giờ bạn có quyền truy cập vào bảng điều khiển quản trị.
https://example.com/admins/dashboard
12. Sidekiq
Sidekiq, chuyên xử lý các công việc nền, có giao diện web tại https://example.com/sidekiq
. Số liệu thống kê về nhóm có sẵn tại https://example.com/statistics
.
13. Logrotate
Chúng tôi sẽ sử dụng logrotate
để quản lý nhật ký Diaspora.
Tạo một logrotate
cho Diaspora.
nano /etc/logrotate/diaspora
Sau đó, thêm các dòng sau.
/home/diaspora/diaspora/log/*.log {
notifempty
copytruncate
missingok
compress
weekly
rotate 52
}
Thao tác này sẽ xoay các nhật ký hàng tuần, nén chúng và giữ chúng trong 52 tuần.
14. Cập nhật Diaspora
Khi cần cập nhật Diaspora, hãy làm theo các bước sau.
ầu tiên, hãy cập nhật hệ thống.
sudo apt-get update
sudo apt-get dist-upgrade
Cập nhật mã nguồn Diaspora với git
.
su - diaspora
cd diaspora
git pull
Cập nhật Ruby.
gem install bundler
bin/bundle --full-index
Di chuyển cơ sở dữ liệu và biên dịch lại nội dung.
RAILS_ENV=production bin/rake db:migrate
RAILS_ENV=production bin/rake assets:precompile
Cuối cùng, khởi động lại Diaspora.
systemctl restart diaspora.target
Leave a Reply