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はこんなカンジ

 - プログラミング

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

  関連記事

no image
NginxとPHP-FPMを使っていたらcurl_init()が無いとエラーが出た

参考リンク 解決策 …

no image
SeleniumでChromeを自動操作したい

Seleniumという便利なソフトウェアがあります。 これはブラウザ上の操作をスクリプト化し自動化することを目的としています。 …

ReactNativeでGiphyのデータを表示する

まずは下記をサクッとパクってみる。 当方、比較的AndroiderなのでAndroidで。 …

no image
意識低いRuby on Rails再入門1

整理がてらメモ。 Contents1 …

no image
意識低いRuby on Rails再入門2

Modelを作り、コンソール上からデータを追加した。 次はこのデータをlocalhost:3000にアクセスしたときに表示させてみたい。 …

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

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

no image
単語の出現頻度をlinuxコマンドだけで調べたい

無駄にpythonとか使おうとしてた。。 楽にできて良かった。 …

ReduxのMiddlewareについて理解したいマン

ReduxのMiddlewareの仕組みがよく分からない。 具体的な処理過程を追いかけて理解に至るまでのメモ。 …

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

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

no image
MecabをPythonから使いたい

ベイズ分類器を自分で作りたかった。 そのためには、文書を単語の集合に変換する必要がある。 …