独自ドメインにメールも統合しようと思ったのでdocker-mailserverを使用してVPSにメールサーバーを構築しました。

docker-mailserverを使うとPostfixとDovecotでサクッとメールサーバーが構築できます。

送信にはリレーサーバーを使用、また受信ガイドラインの厳しくなったGmailでも受信できるようにdocker-mailserver+CloudflareでDKIM,DMARC,SPFの設定を行います。

元々example.comドメインを使用している前提で[email protected]のメアドを作る感じで説明を入れていきます。

続きを読む

Blueskyも登録してみました。

フィードが便利なのですが、フィードの作れるskyfeedは7日保存だったりたまに重くなるので自鯖に立ててみました。Bluesky公式のfeed-generatorとDockerを使用します。

参考サイト:

Github – ATProto Feed Generator

feed-generatorを使ってBlueskyのCustomFeedを作る

カスタムフィードを作ってみる?

feed-generatorはリアルタイムで全ての投稿が流れてくる中から自鯖のDBにデータを選んで保存し、そのDBからフィードを作成してフィードのjsonを返します。

AT protocolの思想にcraving indexerがBluesky鯖の外部に作成されて分散型でも鯖を跨いでデータを収集し検索や統計に使用されるという要素が有り、フィード作成はその思想の一端を担っている印象です。(現時点まだ鯖間の連合はできないですが…)

続きを読む

そろそろ触ってみようかな…(消極的)〆所持チェッカーをreactで書き直したいな…と計画中

DockerでNode.jsインストール

docker-compose.yaml

version: '3'
services:
  app:
    image: node:20-bookworm-slim
    working_dir: /app
    container_name: nodejs
    ports:
      - "3000:3000"
    tty: true
    environment:
      - WATCHPACK_POLLING=true
    volumes:
      - ./app:/app
      - node_modules:/app/node_modules
    restart: always
    networks:
      - mynetwork
        
volumes:
  node_modules:

networks:
  mynetwork:
    external: true

WATCHPACK_POLLING=trueを入れないとホットリロードができないらしいので記述。

新規Next.jsアプリ作成

sudo docker compose up -dで起動。sudo docker exec -it nextjs /bin/bashでコンテナ内に入ってnpx create-next-app@latestで新規Next.jsアプリを作成

What is your project named? app
Would you like to use TypeScript? No / Yes
Would you like to use ESLint? No / Yes
Would you like to use Tailwind CSS? No / Yes
Would you like to use src/ directory? No / Yes
Would you like to use App Router? (recommended) No / Yes
Would you like to customize the default import alias? No / Yes

こちらを参考にEslintとPrettierの設定をしました。

sudo docker exec -it nodejs npm run devで開発環境が起動できます。

./app/src/app/page.tsxを変更&保存してみてホットリロードが効いていればとりあえず成功です。中身はまた今度…

やってみたかったので

オブジェクトストレージ

Misskeyのドライブにアップロードした画像などのデータは./files/フォルダの中でこんな感じになっています

なんとなくthumbnailはわかりますけどよくわかんないですね…。

オブジェクトストレージといって、ファイルを階層化させず、オブジェクト単位で保存し扱いやすくさせる形式で保存されています。

オブジェクトストレージはサービスによっては保存したファイルの冗長性を高めたり、負荷を分散させたりできます。Amazonのs3だったり、Google Cloud Storageだったり、CDNサービスのCloudflareも最近サービスを始めました。保存の料金だったりデータの転送などに料金がかかったりします(内容によって無料も有り)。料金の見直しなどで別なオブジェクトストレージサーバーに移ることもあるため、現在大抵のオブジェクトストレージはAmazon s3と互換性のある形式で作成されています。

Misskeyでは外部のオブジェクトストレージが使えるので、フリーのs3互換オブジェクトストレージMiniOをインストールして使ってみました。

注意:後からオブジェクトストレージを設定すると今までMisskeyサーバー上に上げていた./files/内のファイルにはアクセス出来なくなります。

続きを読む

面白そうだったので

  • Filebeat – 軽量ログ収集ツール
  • Logstash – データを変換し一元化してくれるツール
  • ElasticSearch – 全文検索や統計を取ってくれるツール
  • Kibana – ブラウザでアクセスして上記を可視化したり設定変更できるGUI

全て同じElastic社が作っているので連携がスムーズです。

ホストOSのNginxのログをfilebeatで収集→Logstashで加工→ElasticSearchで統計→Kibanaで表示するDocker composeを作ります。

続きを読む

Ubuntu 22.04 LTS

独自ドメインにwordpressを移行しました。プラグイン等は使っていません。

DockerでWordpress+MariaDBをインストール、ホストOS側のNginxでリバースプロキシを設定しています。

プラグインを使用して移行しようと思ったら上手く行かなかったので自力移行です。(;o;)オヨー

続きを読む