Diaspora
Diaspora は個人がプライバシーを制御できる、オープンソースのソーシャルネットワークです。
2010年11月23日、Disapora はプライベートアルファ段階に入ったことがアナウンスされました [1]。
2012年8月27日には、Diaspora はコミュニティプロジェクトになりました [2]。
要件
- Diaspora は MySQL と PostgreSQL で動作させることができます。どちらを使用するのか決めて、インストール・設定してください。
- Diaspora はデフォルトではポート 3000 でアプリサーバーを起動し、動的なコンテンツを提供します。静的コンテンツを処理したりアプリサーバーで処理できないリクエストを転送するためにリバースプロキシが必要です。Apache や Nginx などを使ってください。
- AUR からパッケージをビルドするために必要なツールをインストールしてください。
- AUR から ruby2.2AUR と ruby2.2-bundlerAUR をインストールしてください。
インストール
AUR から diaspora-mysqlAUR または diaspora-postgresqlAUR をインストールしてください。
そして /etc/webapps/diaspora/database.yml
を編集して必須の設定値を入力してください。また、/etc/webapps/diaspora/diaspora.yml
を編集してアクセスできるようにする URL を設定してください。サーバーセクションでアプリサーバーが使用するポートを変更することもできます。デフォルトでは Diaspora は SSL を必須としていますが、require_ssl の設定で無効にできます。
データベースを立ち上げたら diaspora ユーザーに切り替えてください:
$ su - diaspora
データベースを作成してスキーマを初期化:
$ bundle exec rake db:create db:schema:load
database.yml
ファイルに指定されたユーザーにデータベースを作成する権限がない場合、手動で diaspora_production という名前のデータベースを作成してください。
通常ユーザーに復帰したら systemd の diaspora サービスを起動してください。
リバースプロキシによって公開する静的コンテンツは /usr/share/webapps/diaspora/public/
に配置されます。
アップデート
アップデートはインストールとほとんど同じです。パッケージの最新版を取得してビルドし、インストールと同じ手順に従います。.pacnew
ファイルが作成されたら変更を適用してください。また、Diaspora の changelog も読んでください。その後データベースを立ち上げてまた diaspora ユーザーに切り替えます:
$ su - diaspora
そしてデータベーススキーマをアップデートしてください:
$ bundle exec rake db:migrate
systemd サービスの diaspora を再起動してください。
サービスの再起動後に アイコンが表示されなかったりレイアウトに問題が発生する 場合、diaspora ユーザーにまた切り替えて以下のコマンドを実行してください:
$ bundle exec rake assets:precompile
そして systemd サービスの diaspora を再起動してください。
管理者を追加
diaspora ユーザーに切り替えて Rails コンソールを起動してください:
$ su - diaspora $ bundle exec rails console production
そして以下のコマンドを実行してください (user は適当なユーザー名に置き換えてください):
Role.add_admin User.where(username: "user").first.person
Ctrl+d
を押すことで Rails コンソールから抜けられます。
トラブルシューティング
GDM のログイン画面に Diaspora が表示される
GDM は ID が 500-1000 のユーザーを通常ユーザーと認識するため、ログイン画面に diaspora ユーザーが表示されてしまいます。Arch では /etc/login.defs
でシステムユーザーとして定義しています。昔の通常ユーザーが使えなくならないようにこのような挙動になっていると考えられます。ログイン画面から排除するには、/etc/gdm/custom.conf
ファイルの 'Exclude' 行に以下を追加してください:
[greeter] Exclude=diaspora