如何在 Debian 10 上安装 Diaspora 去中心化社交媒体
在此页
- 第 1 步 - 安装依赖包
- 第 2 步 - 为 Diaspora 创建新的 PostgreSQL 用户
- 第 3 步 - 创建新用户
- 第 4 步 - 安装 RVM 和 Ruby
- 第 5 步 - 下载并配置 Diaspora
- 第 6 步 - 设置 Diaspora 即服务
- 第 7 步 - 生成 SSL Letsencrypt
- 第 8 步 - 创建新用户并下载 Diaspora
- 第 9 步 - 测试
Diaspora 是一个开源、注重隐私的分布式社交网络。它由一组独立部署和拥有的节点组成,这些节点相互操作以创建网络。 Diaspora 是一个专注于三种理念的社交网络,去中心化、自由和隐私。
在本教程中,我们将向您展示如何在 Debian Buster 10 上安装 Diaspora 分布式社交网络。我们将使用 Nginx Web 服务器和 PostgreSQL 数据库服务器安装 Diaspora。最重要的是,我们将使用 SSL Letsencrypt 保护 Diaspora 安装。
先决条件
- Debian 克星 10
- 至少 2 GB 的 RAM
- 根权限
我们会怎样做?
- 安装依赖包
- 为 Diaspora 创建新的 PostgreSQL 用户
- 创建新用户
- 使用 RVM 安装 Ruby(Ruby 版本管理器)
- 安装和配置 Diaspora 去中心化社交网络
- 将 Diaspora 设置为系统服务
- 将 Nginx 设置为 Diaspora 的反向代理
- 测试
第 1 步 - 安装软件包依赖项
首先,我们将为我们的 Diaspora 安装安装一些依赖包,包括 PostgreSQL、Redis 和 Nginx Web 服务器。
使用下面的 apt 命令安装包依赖项。
sudo apt-get install build-essential cmake gnupg2 libssl-dev libcurl4-openssl-dev libxml2-dev libxslt-dev imagemagick ghostscript curl libmagickwand-dev git libpq-dev redis-server nodejs postgresql
全部安装完成后,启动PostgreSQL、Nginx、Redis服务,然后全部添加到系统引导。
systemctl start redis-server
systemctl enable redis-server
systemctl start postgresql
systemctl enable postgresql
因此,一些用于 Diaspora 安装的依赖包已安装到 Debian Buster 10 中。

第 2 步 - 为 Diaspora 创建新的 PostgreSQL 用户
在此步骤中,我们将更改默认 postgres 用户的密码并为 Diaspora 创建一个新的 PostgreSQL 用户。
使用下面的 psql 命令登录到 PostgreSQL shell。
sudo -i -u postgres psql
使用以下查询更改默认用户 postgres 的密码。
\password postgres
现在输入您的新密码并重复,默认用户 postgres 的密码已配置。
接下来,使用下面的 PostgreSQL 查询创建一个具有 CREATEDB 权限的新用户 diaspora 以创建数据库。
CREATE USER diaspora WITH CREATEDB PASSWORD 'yourpassword';
输入 EXIT 从 PostgreSQL shell 注销。

因此,为 Diaspora 创建了新的 PostgreSQL 用户。
第 3 步 - 创建新用户
创建完 PostgreSQL 数据库用户后,我们将创建一个名为 diaspora 的新系统用户并将其添加到 sudo 组中。
创建一个名为 diaspora 的新用户,并使用以下命令为其设置密码。
adduser --disabled-login Diaspora
passwd diaspora
现在将 diaspora 用户添加到 sudo 组。
usermod -a -G sudo diaspora
因此,散居用户将能够运行 sudo 命令来获得 root 权限。

第 4 步 - 安装 RVM 和 Ruby
在继续之前,请使用以下命令登录到 diaspora 用户。
su - diaspora
接下来,我们将安装 RVM(Ruby 版本管理器)并为 diaspora 用户安装 Ruby 2.6。
使用以下命令为 RVM 包添加 GPGP 密钥。
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

现在使用以下命令安装 RVM(Ruby 版本管理器)。
curl -sSL https://get.rvm.io | bash -s stable
输入 diaspora 用户的密码,然后按 Enter。
完成所有安装后,将 rvm 脚本加载到您的服务器。
source /home/diaspora/.rvm/scripts/rvm
因此,您可以运行 rvm 命令来安装 Ruby。

使用下面的 rvm 命令安装 Ruby 2.6。
rvm install 2.6
完成所有安装后,检查您的 ruby 版本。
ruby -v
以下是您将得到的结果。

至此,diaspora用户下的RVM和Ruby安装已经完成。
第 5 步 - 下载并配置 Diaspora
在继续之前,请确保您使用 diaspora 用户登录。
使用 git 命令下载 Diaspora 源代码并进入其中。
git clone -b master https://github.com/diaspora/diaspora.git
cd diaspora
现在复制数据库配置示例database.yml和散居配置diaspora.yml。
cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml
接下来,使用 vim 编辑器编辑数据库配置 database.yml。
vim config/database.yml
在 PostgreSQL 数据库部分,使用您的数据更改详细的用户名和密码。
postgresql: &postgresql
adapter: postgresql
host: "localhost"
port: 5432
username: "diaspora"
password: "yourpassword"
encoding: unicode
保存并关闭。
接下来,编辑 diaspora 配置 diaspora.yml。
vim config/diaspora.yml
如下更改配置,并确保域名为您自己的。
configuration: ## Section
...
environment: ## Section
...
url: "https://pod.hakase-labs.to/"
certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'
require_ssl: true
...
server: ## Section
rails_environment: 'production'
...
保存并关闭。
接下来,使用以下命令安装 Diaspora 所需的 gem 和 ruby 库。
gem install bundler
script/configure_bundler
bin/bundle install --full-index

之后,为 Diaspora 运行数据库迁移。
RAILS_ENV=production bundle exec rake db:create db:migrate
全部完成后,使用以下命令编译所有 Rails 资产管道。
RAILS_ENV=production bin/rake assets:precompile
Diaspora 的安装已经完成。
第 6 步 - 将 Diaspora 设置为服务
安装 Diaspora 后,我们将 Diaspora 配置为 systemd 服务。
现在转到 /etc/systemd/system 目录并使用 vim 编辑器创建一个新的分组单元服务文件 diaspora.target。
cd /etc/systemd/system/
vim diaspora.target
将以下配置粘贴到其中。
[Unit]
Description=Diaspora social network
Wants=postgresql.service
Wants=redis-server.service
After=redis-server.service
After=postgresql.service
[Install]
WantedBy=multi-user.target
保存并关闭。
接下来,使用 vim 编辑器为 Diaspora 创建一个名为 diaspora-web.service 的新服务文件。
vim diaspora-web.service
将以下配置粘贴到其中。
[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
保存并关闭。
接下来,使用下面的 vim 命令为监控服务创建一个新的服务文件 diaspora-sidekiq.service。
vim diaspora-sidekiq.service
粘贴以下配置。
[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
保存并关闭。
现在重新加载 systemd 管理器并将所有 diaspora 服务添加到系统引导。
sudo systemctl daemon-reload
sudo systemctl enable diaspora.target diaspora-sidekiq.service diaspora-web.service

然后使用下面的命令启动 Diaspora 服务。
systemctl start diaspora.target
diaspora.target 会自动启动其他服务diaspora-web.service 和diaspora-sidekiq.service。
使用以下命令检查散居服务。
systemctl status diaspora-web
systemctl status diaspora-sidekiq
以下是您将获得的结果。

因此,Diaspora 现在作为 systemd 服务启动并运行。最后,Diaspora 的配置已经完成。
第 7 步 - 生成 SSL Letsencrypt
对于本教程,我们将使用 SSL Letsencrypt 保护我们的 Diaspora 安装。在此步骤中,我们将安装 certbot 工具并为我们的 Diaspora 域安装生成 SSL Letsencrypt。
使用下面的 apt 命令安装 Certbot。
sudo apt install certbot
所有安装完成后,使用下面的 certbot 命令为您的 Diaspora 域名生成 SSL Letsencrypt。
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email -d pod.hakase-labs.to
现在您的证书将在 /etc/letsencrypt/live/yourdomain.com/ 目录中可用。
第 8 步 - 创建新用户并下载 Diaspora
在此步骤中,我们将安装和配置 Nginx Web 服务器作为 Diaspora 的反向代理。
使用下面的 apt 命令安装 Nginx。
sudo apt install nginx
全部安装完成后,进入 /etc/nginx/sites-available 目录,使用 vim 编辑器创建一个新的虚拟主机配置 diaspora。
cd /etc/nginx/sites-available/
vim diaspora
把SSL Letsencrypt的域名和路径改成你自己的,然后粘贴进去。
upstream diaspora_server {
server unix:/home/diaspora/diaspora/tmp/diaspora.sock;
}
server {
listen 80;
listen [::]:80;
server_name pod.hakase-labs.to;
return 301 https://pod.hakase-labs.to$request_uri;
access_log /dev/null;
error_log /dev/null;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name pod.hakase-labs.to;
access_log /var/log/nginx/dspr-access.log;
error_log /var/log/nginx/dspr-error.log;
ssl_certificate /etc/letsencrypt/live/pod.hakase-labs.to/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pod.hakase-labs.to/privkey.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_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;
}
}
保存并关闭。
现在激活 Diaspora 配置并测试 Nginx 配置。
ln -s /etc/nginx/sites-available/diaspora /etc/nginx/sites-enabled/
nginx -t
确保没有报错,然后重启Nginx服务,添加到系统引导中。
systemctl restart nginx
systemctl enable nginx
因此,作为 Diaspora 反向代理的 Nginx Web 服务器配置已经完成。

第 9 步 - 测试
打开您的网络浏览器并在地址栏中输入您的 Diaspora 域名。
您将获得默认的 Diaspora 主页,如下所示。

单击“创建帐户”部分上的链接。
现在输入您的第一个 Diaspora 帐户的电子邮件地址、用户名和密码,然后单击创建帐户。

上传您的个人资料图片等,然后单击 Awesome!带我去侨民按钮。

您将获得如下所示的 Diaspora 仪表板。

可以看到,在 Debian Buster 10 上安装 Diaspora with Nginx Reverse Proxy 已经成功完成。