{
"$type": "site.standard.document",
"canonicalUrl": "https://blog.nove-b.dev//posts/build-pixelfed",
"path": "/posts/build-pixelfed",
"publishedAt": "2025-09-22T00:00:00.000Z",
"site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
"tags": [
"pixelfed",
"Docker"
],
"textContent": "Pixelfed is 何?\n\nオープンソースのInstagramで、Mastodonとか同様に分散型のアーキテクチャを使用している。\n\nつまりFediverseの一部で、\n\n> Instagramの「より魅力的な(そして倫理的な)代替手段」\n\nと言われていたりいなかったり。\n\n<iframe title=\"Pixelfed Post Embed\" src=\"https://pixelfed.social/p/nove_b/875270529913186816/embed?caption=true&likes=true&layout=full\" class=\"pixelfed__embed\" style=\"max-width: 100%; border: 0\" width=\"100%\" allowfullscreen=\"allowfullscreen\"></iframe><script async defer src=\"https://pixelfed.social/embed.js\"></script>\n\nBuildまでに結構手こずったのでやり方をメモしておく\n\n結構というより、挫折しようかと思うほど手こずった。前提としてフロントエンドをメインとしているのでDockerの知識が乏しいというのが多分にある。\n\nDockerに慣れている人であれば、こんなもの朝飯前かもしれない。\n\nDocumentはこちら\n\nPixelfed Docs\n\nEnvの作成\n\nまず戸惑ったのが、Envがたくさんあることで\n\n- .env.docker\n- .env.example\n- .env.testing\n\nどれを使えばいいのかわからなかった。\n\nいろいろ調べた結果env.dockerを使うっぽいことが判明した。\n\nこの時点でDocsに書いてあることと少し違うので、これが正しいのかわからない。\n\n> By default Pixelfed comes with a .env.example file for production deployments,\n> and a .env.testing file for debug deployments. You'll need to rename or copy\n> one of these files to .env regardless of which environment you're working on.\n\nとはいえ、動いたのがenv.dockerを使う方法なので、この方法で進めていく。\n\n上記コマンドで、env.dockerを.envにコピーする。\n\n次に下記値を任意の値に変更する。\n\nちなみにAPP_DOMAINをlocalhostとかにしようとしたけれど、バリデーションがあるしく、特定の形式のドメイン名にしか設定ができなかった。\n\nAPP_DOMAINの設定により、pixelfed.example.comでサービスを開けるようになる。\n\nたぶんその設定はdocker\\nginx\\root\\docker\\templates\\etc\\nginx\\conf.d\\default.confに記述されている。\n\nこれだけだと自身の指定したドメインとIPアドレスの紐づけが完了されていないので、hostsファイルを修正して紐づけを行っていく。\n\nを開き、末尾に\n\nと追記する。\n\nDockerを立ち上げる\n\nコマンドでDockerを起動する。\n\n上手くいかないときは、\n\nでログを確認して修正していく。\n\n今回は認証キーがログに記載されていたいので、\n\nでKeyを作成する。\n\nそしてDockerの問題がなくなるまで根気強く付き合っていく。\n\nアカウントを作成する\n\nDockerの問題がすべて解決したら、アカウントを作成する。\n\nこれで一通り設定完了したので、pixelfed.example.comにアクセスすると、トップページが表示させる。\n\n証明書 (nginx.crt) と秘密鍵 (nginx.key) を作成 する\n\n最後にhttpsで接続できるように、証明書を作成する。\n\nで、下記2ファイルが作成される。\n\n無事Https接続ができるようになった。\n\nホットリロードが効かない\n\n意気揚々とカスタマイズしようとして、ソース触っても画面が更新されない。\n\nなんなら、\n\nでも更新されず。\n\nで更新されることが確認できた。\n\n新たな問題なので解決に向けて調査していく(マウントの問題?)けど、ひとまずビルドできたのでOKとする。\n\n<iframe title=\"Pixelfed Post Embed\" src=\"https://pixelfed.social/p/nove_b/872321979626827906/embed?caption=false&likes=true&layout=full\" class=\"pixelfed__embed\" style=\"max-width: 100%; border: 0\" width=\"100%\" allowfullscreen=\"allowfullscreen\"></iframe><script async defer src=\"https://pixelfed.social/embed.js\"></script>\n\n追記\n\nでbladeが更新される。\n\nでvueが適用される。\n\n......、これが正しい運用方法なのかもしれない。\n\n<iframe src=\"https://social.nove-b.dev/@nove_b/115271283215776951/embed\" class=\"mastodon-embed\" style=\"max-width: 100%; border: 0\" width=\"100%\" allowfullscreen=\"allowfullscreen\"></iframe><script src=\"https://social.nove-b.dev/embed.js\" async=\"async\"></script>",
"title": "WindowsでDockerを用いPixelfedをビルドする"
}