久しぶりに書く気になったので。今流行のMastodonの作り方です。
こんな人向けを想定してます
��Debian/Ubuntuでサーバー建ててる
��VPSやドメインを持ってる
��Apache使いである(Nginx分からないのです)
環境はこんな感じで
��VPSはConoHa
��Ubuntu 16.04 LTSをインストール
��メールサーバーがConoHaのアプリケーションサーバー
では手順の方を
Certbot、Apache、Gitが入っていない人は入れておいてください
Certbotはletsencryptパッケージで入ります
- Docker-EngineとDocker-Composeをインストール
aptでインストールするとバージョン古いので、build通りません。公式レポジトリから新しいのを入れます。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
鍵を追加したらレポジトリを追加
$ sudo add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
そしたらdocker-ceパッケージを入れておきます
$ sudo apt update ;sudo apt install docker-ce
次はdocker-composeをインストール
https://github.com/docker/compose/releases/
で最新リリースをチェックしておきます。(2017/05/05では1.13.0)
# curl -L https://github.com/docker/compose/releases/download/VERSION/docker-compose-`uname -s`
`-uname -m
` > /usr/local/bin/docker-compose" $ sudo chmod +x /usr/local/bin/docker-compose
VERSIONは最新リリースのバージョンに書き換えてください。
- Mastodonをクローンする
/var/www/mastodonに置くこととしてますが適宜変えてください。
あと、最新のコミットにすると色々面倒になるかも思います。
$ sudo git clone https://github.com/tootsuite/mastodon.git mastodon
cloneが終わったら設定ファイルを作ります
$ sudo cp .env.production.sample .env.production
テンプレをコピーしたら適当なエディタで開きます
L12
LOCAL_DOMAIN="動かすドメイン名"
L40~
SMTP_SERVER="コンパネで見られるsmtpサーバー"
SMTP_PORT=587SMTP_LOGIN="作ったアドレス"
SMTP_PASSWORD="設定したパス"
SMTP_FROM_ADDRESS="作ったアドレス"
L49コメントインして
SMTP_OPENSSL_VERIFY_MODE=none
ここで一旦保存して、docker-compose.ymlを編集。
L8,9,15,16をコメントインします。
ここまで来たらイメージを作ります
$ sudo docker-compose build
終わったら、.env.productionのL21-23に使うシークレットを生成します
$ sudo docker-compose run --rm web rake secret
を3回実行して貼り付けます。
終わったらDBの生成とアセットのプリコンパイルをします
$ sudo docker-compose run --rm web rails db:migrate
$ sudo docker-compose run --rm web rails assets:precompile
では起動しましょう
$ sudo docker-compose up -d
とりあえずの動作チェック
$ curl -o /dev/null -S http://localhost:3000/
異常がなければ一瞬で終わるはずです
設定ファイルのサンプルがあるのでこれを参考にDocumentRootやらを書き換えます。
あと、proxy_wstunnelのModを有効にしろとあるのでa2enmodで有効にします。
SSLの証明書はcertbotで取ります。
$ sudo letencrypt certbot --standalone -d "domain"
次にアカウントを登録してメール認証を通します。管理者になるには
$ sudo docker-compose run --rm web rails mastodon:make_admin USERNAME="ユーザー名。メールアドレスではない"
cronも設定します。設定しとかないとインスタンス間の接続が切れたり、マッハでディスクフルになったりとろくなことがないです。
24 25 4,17 * * * /bin/bash -l -c 'cd /var/www/mastodon && docker-compose run --rm web rake mastodon:daily'
25 45 4,17 * * * /bin/bash -l -c 'cd /var/www/mastodon && docker-compose run --rm web rake mastodon:media:remove_remote'
- アップデート
アップデートしたい時は
$ sudo git pull
$ sudo docker-compose build
$ sudo docker-compose up -d
とりあえずこんな感じで。あと、これ書いている間にアップデートかけたら手順を間違えてDB飛びました。下手な運用すると大惨事です。気をつけましょう。(あと間違えてDockerでDownしたりとかもしないように)
コメント
コメントを投稿