更新履歴

2018.04.10 プロキシサーバー(CloudFlare)について加筆

Misskeyについて

https://github.com/syuilo/misskey
https://zawazawa.jp/misskey/

環境

標準的な Ubuntu 16.04 (LTS)
ルート権限あり(sudo suした状態)

概要

キホンはドキュメントに書いてあります。
https://github.com/syuilo/misskey/blob/master/docs/setup.ja.md
以下は私がやった例ですが、何か間違った設定をしているかもしれません。

下ごしらえ

reCAPTCHAとVAPIDキーペアの取得

上記リンクの通りにやっていってください。

Twitterアプリの取得

Twitterログインを有効にする場合は、https://apps.twitter.com でアプリを作成します。
Consumer KeyとConsumer Secretを控えておいてください。

ドメイン

ドメインを指定します。
ローカルでやるぶんにはlocalhostなどでいいですが、公開するときには必要です。
DNSなどの設定を予めやっておきましょう。

私は自宅サーバーを利用するためにddclientを使いました。

プロキシ

Misskeyの運用においては、プロキシ(キャッシュ)サーバーを設置することをお勧めします。
ImageMagickによる画像のサムネイルの生成を、要求されたぶんだけやることになるからです。CPUの無駄です。

個人でやるならば、CloudFlareのCDNを設定するだけで十分でしょう。

証明書

どうせなら、証明書を取得しましょう。

dehydrated

プロキシサーバーを置く場合には、dehydratedで取得します。

CloudFlareで設定するならば、以下の文章の手順に従ってください。
https://github.com/kappataumu/letsencrypt-cloudflare-hook/blob/master/README.md
証明書の期限が切れないよう、取得時と同じコマンドをcron(crontab)などで定期的に実行するように設定してください。

letsencrypt (certbot)

プロキシを通さずに簡単に開設するならletsencrypt(certbot)で十分です。

$ apt install letsencrypt
$ letsencrypt certonly

以下の事項を覚えておいてください。

key: /etc/letsencrypt/live/<domain>/privkey.pem
cert: /etc/letsencrypt/live/<domain>/fullchain.pem

このとき443ポートと80ポートを開ける必要があります。

必要なアプリケーションのインストール

node.js

最新のnode.jsをインストールします。
nvmを利用するとよいでしょう。

ImageMagick

Misskeyは7系を要求します。Ubuntuのパッケージは6止まりなので、makeします。

この記事を参考にしました。

python-devのインストール

libxml2をmakeするのに必要です。(もしかしたらpython3-devかもしれない?pythonよくわかんない…)

$ apt install python-dev

ダウンロードと解凍

wgetか何かで以下をダウンロードし、tar xzfか何かで解凍する。

↓配布されているバージョンは適宜インデックスから確認すること↓

delegates / ImageMagick7

make

zlib → libpng → jpegsrc → libxml2 → ImageMagickの順番で、解凍したディレクトリの中で./configure; make; make installを繰り返す

動くかどうか確認する

$ magick identify --version

Delegates (built-in):に jpeg, pngがあるか確認してください。

もしmagick error: while loading shared libraries: libMaggickCore-7.…: cannot open shared object file: No such file or directoryのようなエラーに遭遇した場合

$ ldconfig /usr/local/lib

で直ります。もう一度magick identify --versionしてください。

Redis

この記事にしたがって、Redisをインストール
パスワードは控えておく。

mongoDB

1. インストール

通常はlatest versionでOKです。

ユーザーを設定

参考資料

$ mongo
> use admin
> db.createUser({ user:"管理者ユーザー名", pwd:"管理者パスワード", roles:[{ role:"userAdminAnyDatabase", db:"admin" }]})
> exit

ここでは、管理者IDを"admin", 管理者パスワードを"adminpwd"とします。

/etc/mongod.confで31行目を以下のように書き換える。

/etc/mongod.conf
security:
  authorization: enabled

端末に戻り、Misskey用データベースの用意をします。

$ service mongod restart
$ mongo
> use admin
> db.auth("admin","adminpwd")
> use Misskey用DB名
> db.createUser({ user:"DBユーザー名", pwd:"DBパスワード", roles:[{ role:"readWrite", db:"Misskey用DB名" }]})
> exit

Misskey用DB名、DBユーザー名、DBパスワードは任意のものに設定します。
後でMisskey側での設定に使用するので、控えておきます。

Misskeyをインストールしていく

リポジトリをクローン

$ git clone https://github.com/syuilo/misskey.git
$ cd ~/misskey

パッケージをインストール

$ npm install

設定

$ npm run config

指示に従って記入していきます。

ビルド

$ npm run build

サーバーを起動

$ NODE_ENV=production npm start
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.