WindowsでDockerを用いPixelfedをビルドする
Pixelfed is 何?
オープンソースのInstagramで、Mastodonとか同様に分散型のアーキテクチャを使用している。
つまりFediverseの一部で、
Instagramの「より魅力的な(そして倫理的な)代替手段」
と言われていたりいなかったり。
Buildまでに結構手こずったのでやり方をメモしておく
結構というより、挫折しようかと思うほど手こずった。前提としてフロントエンドをメインとしているのでDockerの知識が乏しいというのが多分にある。
Dockerに慣れている人であれば、こんなもの朝飯前かもしれない。
Documentはこちら
Pixelfed Docs
Envの作成
まず戸惑ったのが、Envがたくさんあることで
- .env.docker
- .env.example
- .env.testing
どれを使えばいいのかわからなかった。
いろいろ調べた結果env.dockerを使うっぽいことが判明した。
この時点でDocsに書いてあることと少し違うので、これが正しいのかわからない。
By default Pixelfed comes with a .env.example file for production deployments, and a .env.testing file for debug deployments. You'll need to rename or copy one of these files to .env regardless of which environment you're working on.
とはいえ、動いたのがenv.dockerを使う方法なので、この方法で進めていく。
上記コマンドで、env.dockerを.envにコピーする。
次に下記値を任意の値に変更する。
ちなみにAPP_DOMAINをlocalhostとかにしようとしたけれど、バリデーションがあるしく、特定の形式のドメイン名にしか設定ができなかった。
APP_DOMAINの設定により、pixelfed.example.comでサービスを開けるようになる。
たぶんその設定はdocker\nginx\root\docker\templates\etc\nginx\conf.d\default.confに記述されている。
これだけだと自身の指定したドメインとIPアドレスの紐づけが完了されていないので、hostsファイルを修正して紐づけを行っていく。
を開き、末尾に
と追記する。
Dockerを立ち上げる
コマンドでDockerを起動する。
上手くいかないときは、
でログを確認して修正していく。
今回は認証キーがログに記載されていたいので、
でKeyを作成する。
そしてDockerの問題がなくなるまで根気強く付き合っていく。
アカウントを作成する
Dockerの問題がすべて解決したら、アカウントを作成する。
これで一通り設定完了したので、pixelfed.example.comにアクセスすると、トップページが表示させる。
証明書 (nginx.crt) と秘密鍵 (nginx.key) を作成 する
最後にhttpsで接続できるように、証明書を作成する。
で、下記2ファイルが作成される。
無事Https接続ができるようになった。
ホットリロードが効かない
意気揚々とカスタマイズしようとして、ソース触っても画面が更新されない。
なんなら、
でも更新されず。
で更新されることが確認できた。
新たな問題なので解決に向けて調査していく(マウントの問題?)けど、ひとまずビルドできたのでOKとする。
追記
でbladeが更新される。
でvueが適用される。
......、これが正しい運用方法なのかもしれない。
Discussion in the ATmosphere