Diasporaは、オープンソースでプライバシーを意識した分散型ソーシャルネットワークです。これは、ネットワークを作成するために相互運用する、独立して展開および所有されるノードのグループで構成されます。ディアスポラは、地方分権化、自由、プライバシーの3つの哲学に焦点を当てたソーシャルネットワークです。
このチュートリアルでは、DebianBuster10にDiaspora分散型ソーシャルネットワークをインストールする方法を示します。NginxWebサーバーとPostgreSQLデータベースサーバーを使用してDiasporaをインストールします。さらに、SSLLetsencryptを使用してDiasporaのインストールを保護します。
前提条件
- Debian Buster 10
- 最小2GBのRAM
- root権限
何をしますか?
- パッケージの依存関係をインストールする
- Diaspora用の新しいPostgreSQLユーザーを作成する
- 新しいユーザーを作成する
- RVM(Rubyバージョンマネージャー)を使用してRubyをインストールする
- ディアスポラ分散型ソーシャルネットワークのインストールと構成
- システムサービスとしてのディアスポラのセットアップ
- ディアスポラのリバースプロキシとしてNginxを設定する
- テスト
最初に、PostgreSQL、Redis、Nginx Webサーバーなど、Diasporaインストール用のいくつかのパッケージ依存関係をインストールします。
以下の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インストールの一部のパッケージ依存関係がDebianBuster10にインストールされました。
このステップでは、デフォルトの「postgres」ユーザーのパスワードを変更し、Diasporaの新しいPostgreSQLユーザーを作成します。
以下の「psql」コマンドを使用してPostgreSQLシェルにログインします。
sudo -i -u postgres psql
次のクエリを使用して、デフォルトユーザー「postgres」のパスワードを変更します。
\password postgres
ここで、新しいパスワードを入力して繰り返し、デフォルトユーザーのパスワード' postgres 'が構成されました。
次に、権限「 CREATEDB</strong>」を持つ新しいユーザー「diaspora」を作成します '以下のPostgreSQLクエリを使用してデータベースを作成します。
CREATE USER diaspora WITH CREATEDB PASSWORD 'yourpassword';
' EXITと入力します 'PostgreSQLシェルからログアウトします。
その結果、Diasporaの新しいPostgreSQLユーザーが作成されました。
PostgreSQLデータベースユーザーを作成した後、「diaspora」という名前の新しいシステムユーザーを作成し、それをsudoグループに追加します。
'diaspora'という名前の新しいユーザーを作成し、次のコマンドを使用してそのユーザーのパスワードを設定します。
adduser --disabled-login Diaspora
passwd diaspora
次に、「diaspora」ユーザーを「sudo」グループに追加します。
usermod -a -G sudo diaspora
その結果、「diaspora」ユーザーは「sudo」コマンドを実行してroot権限を取得できるようになります。
先に進む前に、以下のコマンドを使用して「diaspora」ユーザーにログインします。
su - diaspora
次に、RVM(Ruby Version Manager)をインストールし、ユーザー「diaspora」用にRuby2.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
その結果、Rubyをインストールするためのrvmコマンドを実行できるようになります。
以下のrvmコマンドを使用してRuby2.6をインストールします。
rvm install 2.6
すべてのインストールが完了したら、rubyのバージョンを確認してください。
ruby -v
以下は、得られる結果です。
その結果、「diaspora」ユーザーでのRVMとRubyのインストールが完了しました。
先に進む前に、「ディアスポラ」ユーザーでログインしていることを確認してください。
gitコマンドを使用してディアスポラのソースコードをダウンロードし、そこに移動します。
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.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をインストールした後、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-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マネージャーをリロードし、すべてのディアスポラサービスをシステムブートに追加します。
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サービスとして稼働しています。そして最後に、ディアスポラの構成が完了しました。
このチュートリアルでは、SSLLetsencryptを使用してDiasporaのインストールを保護します。このステップでは、certbotツールをインストールし、Diasporaドメインインストール用のSSLLetsencryptを生成します。
以下のaptコマンドを使用してCertbotをインストールします。
sudo apt install certbot
すべてのインストールが完了したら、以下のcertbotコマンドを使用して、Diasporaドメイン名のSSLLetsencryptを生成します。
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d pod.hakase-labs.to
これで、証明書は「/etc/letsencrypt/live/yourdomain.com/」ディレクトリで利用できるようになります。
このステップでは、NginxWebサーバーを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;
}
}
保存して閉じます。
次に、ディアスポラ構成をアクティブにして、Nginx構成をテストします。
ln -s /etc/nginx/sites-available/diaspora /etc/nginx/sites-enabled/
nginx -t
エラーがないことを確認してから、Nginxサービスを再起動し、システムブートに追加します。
systemctl restart nginx
systemctl enable nginx
その結果、DiasporaのリバースプロキシとしてのNginxWebサーバーの構成が完了しました。
Webブラウザーを開き、アドレスバーにDiasporaドメイン名を入力します。
http://pod.hakase-labs.to/
そして、以下のようなデフォルトのディアスポラホームページが表示されます。
'アカウントの作成のリンクをクリックします 'セクション。
次に、最初のDiasporaアカウントのメールアドレス、ユーザー名、パスワードを入力し、[アカウントの作成]をクリックします。 '。
プロフィール写真などをアップロードし、[素晴らしい!]をクリックします。ディアスポラに連れて行ってください 'ボタン。
そして、以下のようにディアスポラのダッシュボードが表示されます。
ご覧のとおり、DebianBuster10へのNginxリバースプロキシを使用したDiasporaのインストールは正常に完了しました。