Posted at

AndroidでGNU Socialのインスタンスを立ち上げる

More than 1 year has passed since last update.


なぜやるのか

日本中にマストドン旋風が吹き荒れる今日このごろ、独自インスタンスを立てる人も少なくないようです。

Dockerで済む上にHerokuにデプロイできるとなれば楽ちんな話ですね。

ただし楽ちんだと思っているのは我々のような人種だけです。

一般層や若者に流行らせてこそのイノベーション。

中高生のカップルが2人専用インスタンスを作れるようなお手軽さが世界に革命を起こすのではないでしょうか?

しかも若者のパソコン離れが危ぶまれる昨今ですから、やれクラウドだやれ自宅サーバーだとは言っていられません。

やはり独自インスタンスはスマホで動かす必要があります。

思い返してみてください、我々が無料サーバーだのフラッシュだのCGIだの言ってた頃も同級生の女子はガラケーで魔法のiらんど使ってたでしょ?

とは言えマストドンの構成要素はそれなりに複雑で、スマホでの実行は難易度が高そう...

そこで白羽の矢が立ったのがマストドンと同じ規格で動くGNU Socialです。

GNU SocialもマストドンもOStatusという規格で動いていますので、相互にフォローやタイムラインの閲覧が可能です。

小学生が「ユーチューバーになりたい!」のと同じくらいのノリで「マストドンのインスタンスたてたい!」と口にする、

そんな世界の足がかりとして、まずはAndroidでGNU Socialを動かすところから始めたいと思います。

前置きが長くなりましたが以下が本題です。


どうやるのか

GNU SocialはPHPが動くWebサーバーとmariaDB(MySQL)があれば動きます。

GooglePlayストア上でPHP,Webサーバー,DBサーバーがセットになったいわゆるLamp的なアプリがいくつか公開されていますが、

依存するパッケージの都合上、今回はWebサーバー(PHP)とDBをサーバーを別々に用意します。

(開発元は一緒だったりしますが)

Webサーバー

「PHP 向けサーバー(Server for PHP)」

https://play.google.com/store/apps/details?id=com.esminis.server.php&hl=ja

DBサーバー

「MariaDB サーバー」

https://play.google.com/store/apps/details?id=com.esminis.server.mariadb&hl=ja


Webサーバーの設定

アプリを起動するとPHPをダウンロードしてインストールするように言われます。

ここではPHP5.6系の最新をインストールしましょう。

Screenshot_2017-04-18-23-08-51.png

リストの左の矢印をタップしてダウンロード

その後リストの自体をタップして決定です

(これがわかりにくくて少しハマった)

インストールが終わると設定画面が表示されます

特に設定の変更はいらないですが、「データディレクトリ」の場所だけ控えておいてください。

Screenshot_2017-04-18-23-12-11.png

最後に「サーバーを開始する」を押しましょう。


DBサーバーの設定

こちらも同じようにMariaDBをダウンロードする必要があります。

最新版で特に問題ありません。

Screenshot_2017-04-18-23-13-32.png

このまま「サーバーを開始する」を押してしまいましょう。


DBの初期化

DBサーバーが起動したらDBの初期設定を行う必要があります。

LAN内の他の端末から繋いでもいいですが、Androidアプリで完結させることもできます。

「SQL Client」

https://play.google.com/store/apps/details?id=de.mxapplications.sqlclient&hl=ja

(こちらの説明は割愛します)

(MariaDBはMySQL互換なのでMySQLクライアントならなんでもOK)

サーバーに接続できたら以下のSQLで、DATABASEとユーザーを作成します。

CREATE DATABASE social;

GRANT ALL PRIVILEGES ON social.* TO 'social'@'localhost' IDENTIFIED BY '任意のパスワード';

(参考:https://git.gnu.io/gnu/gnu-social/wikis/home)

DBの設定は以上です。


スクリプトを設置する

GNU Socialの最新ソースは以下からダウンロードできます

https://git.gnu.io/gnu/gnu-social

ダウンロードしたソースを何らかの方法で端末にコピーします。

コピー先はWebサーバーの設定で控えておいた「データディレクトリ」の中の「public」ディレクトリです。

(今回の場合だと以下のようになる)

スクリーンショット 2017-04-19 18.15.46.png


GNU Socialのインストール

ブラウザで http://127.0.0.1:8080/install.php にアクセスすると、インストール画面が表示されます。

細かい説明は省きますが、「DataBase Settings」のところはDBサーバーの設定で作成したDATABASEとユーザーを設定してください。

(今回の例ならどちらもsocial)

以上で完了です。

無事インスタンスが立ち上がったでしょうか?


問題点とか

さて、スマホでGNU Socialが動くことは確認できましたが課題が山積みです。


  • ドメインの設定(とIP固定問題)

  • SSLの設定

  • 依存アプリが多い

  • 準備が多い

  • iOSだと無理(PHPインタプリタ動かすとかダメ)

  • GNU Socialの更新止まってるっぽい?

  • そもそもマストドンじゃない(ブランド力がない)

などなど...

スマホで分散型SNSって夢があると思いますがなかなか難しいですね。