moxt

Just another Blog site

Mastodonインスタンス(お一人様用)を作り方メモ

   

Mastodonは運営の存在を気にせず罵詈雑言吐けるの便利そう。
自分用のインスタンス作ったので、便所の落書きしておく。

用意するもの

  • ドメイン(私はサブドメインを使った)
  • サーバー(私はDigitalOceanの1番安いヤツを使った)

事前にやっておくこと

  • DNSレコードの設定(やればできる)
  • 手元のPCでDocker環境を作っておく(docker-machine,docker-composeを使う)
  • Dockerの使い方を知っておく(知ってるよね)

Dockerで雑にMastodonを起動する方法 とか読めばOK

作り方

Dockerで雑にMastodonを起動する方法

http://qiita.com/sawanoboly/items/c7d6b913fd5455fb0f36

https://github.com/tootsuite/mastodon#running-with-docker-and-docker-compose

↑この辺見れば終わり

流れをダラダラ書くと…

  • docker-machineでリモート環境(今回はDigitalOcean)にDocker環境を整える
    • docker-machine create –driver digitalocean –digitalocean-access-token=[あなたのアクセストークン] [任意のマシン名]
    • しょぼいサーバーだとメモリ不足してちょいちょい困るのでswap作っておくと良いと思います
  • mastodonをcloneする
  • docker-compose build する
  • .env.production を作る
    • docker-compose run –rm web rake secret を3回やって、.env.productionのPAPERCLIP_SECRET、SECRET_KEY_BASE、OTP_SECRETを埋める
    • LOCAL_DOMAINやらを自分用の値に変える
  • RailsアプリのDB初期化やら、アセットのプリコンパイルをする
    • docker-compose run –rm web rails db:migrate
    • docker-compose run –rm web rails assets:precompile
  • docker-compose up -d でコンテナたちを起動する
  • http://[あなたのドメイン]:3000/about でサインアップする
  • アカウントのメール認証は面倒なのでコマンドやる
  • お一人様インスタンスにしたいので .env.production のSINGLE_USER_MODEってヤツをtrueにして再度、docker-compose up -d
  • httpsできるようにする(今回はレッツエンクリプトでやったよ)
  • nginxの設定をdocker-compose.ymlに追加する

と、上記の参考URLの通りやってるだけなので、なんの知見もない。

公式の解説だとnginxの設置だけリモートサーバーでお手製でやってた。
面倒なのでdockerで用意するようにした。

nginxの設定をdocker-compose.ymlに追加する

↓のようなカンジのヤツを追加する

コンテナ関係のファイルを何も考えずにダラダラ置いていくとコンテナ増えたときにカオスになる。
というわけでcontainersフォルダを作り、ミドルウェア毎にフォルダを作った。
↑こういうことをしてしまったので、contextを使ってnginxコンテナの設定が置いてある場所を明記する必要があるわけ。
dockerfileは省略してもOK

Dockerfileはこんなカンジ

production_projectはこんなカンジ

ここをパクってるだけ

nginx.confはこんなカンジ

 - プログラミング

336px




336px




  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  関連記事

Ruby,Railsのチートシート

こういうのブログ形式じゃなくてwikiの方が良いのでは。。 と、遠い目をしつつ。 …

FlutterでListViewしたい

こんにちは。 陰キャな仮想通貨投資家こと、梅木栽培マンです。 …

no image
RDSの特定のデータベースをダンプする

Publicly Accessibleがyesならどこからでも下記が実行可能。 …

no image
Androidアプリを実機デバッグしたいのにNo debuggable applicationsと表示される時の対処例

Tools > …

no image
Python(Anaconda)とOpenCVを使って動画から顔画像を抽出してみる

今話題のディープラーニングをやってみたい。 いろいろ見た感じCaffeというフレームワークが良さそう。 …

no image
Androidアプリを作るために最低限必要な知識と未知の部分を列挙

作りたいアプリによって必要な知識は変わるかもしれないが。。 個人的過ぎて役に立たないが、整理がてら羅列してみる。 …

no image
YosemiteでRubyMineが起動できない

yosemiteからjavaが1.7系になってる。 一方、rubymineは1.6系を想定している。 …

no image
Swiftで追加したサードパーティなモジュールを更新する方法

SwiftにはCocoaPodsのようなライブラリを管理するツールがないので、手で追加します。 手で追加したライブラリのバージョンを更新したいときどうすればよいか。 …

no image
アプリ起動時に呼び出すStoryboardを指定したい

google-fu不足でどこにも載ってなかったのでメモ。 プロジェクト内のInfo.plistで設定できます。 …

no image
GrowthPushのAndroid-SDK(?)のコードを読んでみる

できること、できないことを知るために。 GrowthPush.java …