paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

Mastodon互換のSNS・Pleromaでサーバを立てる方法を解説する

f:id:paiza:20180820190545j:plain
秋山です。

先週からTwitterのUserStream APIが廃止されましたが、その反動かMastodon(マストドン)がまた少し一部で流行ってきている?感じがしますね。(SNSの動きで言うと、何となくmixi時代のOpenPNEを思い出す…)

これからMastodonでサーバ(インスタンス)を立てるなら、最も情報が多いであろうAWSを使うのがベストですかね。あとはさくらのVPSなども情報が多いですし、日本最大手のmstdn.jpも有名ですね。

今回は、PaizaCloudでMastodon互換のSNSであるPleromaをインストールしてサーバを立ててみました。外部サーバでもプロトコルは同等なので繋がることができます。

PaizaCloudでPleromaをインストールしてサーバを立ててみる

【PaizaCloud】

https://paiza.cloud/ja/

PaizaCloudにユーザ登録&ログインしたら、「新規サーバ作成」ボタンを押して、サーバ作成画面を開きます。「サーバ作成」ボタンを押します。
f:id:paiza:20171213234155p:plain

以下の設定で新規サーバを作りましょう。今回はPostgreSQLを使うので、初期インストールに含めておくと楽です。
f:id:paiza:20180820184553p:plain

※PostgreSQLはPleromaの推奨バージョンではないけど動きます…が、今後Pleromaのアップデートで使えなくなった場合は自前の環境でインストールしていただく必要が出てくるかもしれません。

Pleromaはelixirで動作していますので、以下をインストールしておきます。

sudo apt update
apt install elixir erlang-dev erlang-parsetools erlang-xmerl

ではPleromaをcloneしましょう。

git clone https://git.pleroma.social/pleroma/pleroma
cd pleroma

mixという管理ツールで依存関係を入れていきましょう。

mix deps.get

「Hexは入れますか?」という質問が表示されるので Y と答えてください。

続いて設定ファイルのジェネレートです。

mix generate_config

ここでも「Rebar3は入れますか?」と聞かれるので Y と答えてください。

ちょっと時間がかかります。なんか警告出てるのが気になりますけどとりあえず無視して、ドメイン名とユーザー名とメールアドレスを設定します。
f:id:paiza:20180820184659p:plain

すると、これらの設定が書き込まれた config/generated_config.exs というファイルが生成されます。

このファイルにはデータベースの接続設定なども書き込まれていますので、確認してみましょう。

use Mix.Config

config :pleroma, Pleroma.Web.Endpoint,
url: [host: "example.com", scheme: "https", port: 443],
secret_key_base: "〜"

config :pleroma, :instance,
name: "paiza",
email: "〜@〜",
limit: 5000,
registrations_open: true,
dedupe_media: false

config :pleroma, :media_proxy,
enabled: false,
redirect_on_failure: true
#base_url: "https://cache.pleroma.social"

# Configure your database
config :pleroma, Pleroma.Repo,
adapter: Ecto.Adapters.Postgres,
username: "pleroma",
password: "〜",
database: "pleroma_dev",
hostname: "localhost",
pool_size: 10

secret_key_base やパスワード類は"〜"で置換していますが、こんな感じのファイルがジェネレート時に自動生成されます。

たとえば「外部のSQLサーバにつないでほしい」などという場合は、ここで修正しておいてください。今回はローカルホストのPaizaCloud起動時にインストールしたPostgreSQLにデータを入れていくので、この設定を prod.secret.exs にリネームしておきます。

mv config/generated_config.exs config/prod.secret.exs

続いてデータベースの初期セットアップをしましょう。

sudo su postgres -c 'psql -f config/setup_db.psql'
MIX_ENV=prod mix ecto.migrate

f:id:paiza:20180820184743p:plain

あとはPleromaを起動させるだけです。

MIX_ENV=prod mix phx.server

かなり簡単にできましたね。PaizaCloudの左側メニューに4000番ポートで待ち受けているはずですので、開いてみましょう。
f:id:paiza:20180820184808p:plain

できました。これだけでも登録や投稿(トゥート?ツイート?)は可能です。(※実際に本番サーバとして動かしていくなら、さらにNginxなどでhttpsの設定などをする必要がありますし、PaizaCloud で常時起動するなら有料プランが必要となります)

■まとめ

というわけで、PaizaCloudでPleromaを使ってサーバを立ててみました。

ログインして投稿してみるとこんな感じ。
f:id:paiza:20180820184831p:plain

画像のアップロードなどは一応正しくできていますが、ポート番号を含むURL指定がないと表示されない状態です。configなどで上手く回避する方法はあるかもしれませんが、本番で動かしていけるほどにはならないと思うので…とりあえず今回はここまでお試しということでやってみました。

もっと詳しく知りたい人は、Pleromaの公式ドキュメントを読んでみましょう。格安VPSとかでも動きそうですね。

git.pleroma.social

今回、PaizaCloud単体でMastodonのインスタンスを立てるのが難しかったのでPleromaを入れてやってみましたが、PaizaCloud上でこれだけ動いてくれるならMastodon本体より確実に軽いですねー。

今のところ「Mastodonは重くてちょっと嫌…」な人は、Pleromaを選択するのがよいのではないかと思います。フロントとバックエンドが分離されていて、MastodonのUIを使うことも可能なようですし。

Pleromaはラズパイでも動くみたいな話もあるので、興味深いですね。(実際どれくらいのユーザー数をさばけるかは不明ですが)ほかにも互換性があるものでいうと、Rustで作られたRustodonなどもあるようです。


動画でプログラミングが学べるpaizaラーニングでは、新たに「Python×AI・機械学習入門編」が追加されました。

人気声優の上坂すみれさん演じる進行役のスベトラーナ・小百合・ベレフスカヤと一緒に、実際に画像認識技術を使いながら、初心者でも機械学習を体験・学習できるレッスン内容になっています。

Python×AI・機械学習入門編は全編無料でごらんいただけます。詳しくはこちら



「[PaizaCloud](https://paiza.cloud/ja/)」は、環境構築に悩まされることなく、ブラウザだけで簡単にウェブサービスやサーバアプリケーションの開発や公開ができます。
https://paiza.cloud




paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

詳しくはこちら

paizaのスキルチェック





※このブログで紹介しているキャンペーンやイベント、およびサイト内の情報については、すべて記事公開時の情報となります。閲覧されたタイミングによっては状況が変わっている場合もございますのでご了承ください。

ITプログラマー・エンジニア転職・就活・学習のpaiza

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編

エンジニアのためのプログラミング転職サイト|paiza転職

プログラミング スキルチェックエンジニア求人一覧

未経験からエンジニアを目指す人の転職サイト|EN:TRY

プログラミング スキルチェックエンジニア未経験可求人一覧

エンジニアを目指す学生の就活サイト|paiza新卒

プログラミング スキルチェックエンジニア求人一覧

ブラウザを開くだけで エディタ、Webサーバ、DB等の開発環境が整う|PaizaCloud