Skip to content

chitoku-k/HomoChecker

Repository files navigation

HomoChecker

HomoChecker はホモ(@mpyw)にリダイレクトするホモのためのホモの輪です。

目次

ホモへの手引き

@java_shit にカミングアウトしてください。@mpyw と関係があってもなくても構いません。

設定方法

DNS を適切に設定したあと、お使いの Web サーバーに合わせて設定を行います。
HomoChecker は HTTP/1.1、HTTP/2、HTTP/3 に対応しています。

Apache

<VirtualHost *:80>
    ServerName homo.example.com
    Redirect permanent / https://twitter.com/mpyw
</VirtualHost>

nginx

server {
    listen 80;
    listen [::]:80;
    server_name homo.example.com;
    return 301 https://twitter.com/mpyw;
}

H2O

hosts:
    "homo.example.com:80":
        listen:
            port: 80
        paths:
            "/":
                redirect:
                    url: https://twitter.com/mpyw
                    status: 301

Cloudflare

  1. DNS > Records で homo.example.com が Cloudflare に Proxy されるよう設定します。
  2. Rules > Redirect Rules を作成します。
    • Rule name に任意の名前を入力します。
    • Custom filter expression を選択します。
    • Field に Hostname、Operator に equals、Value に homo.example.com となるように条件を設定します。
    • Type に Static、URL に https://twitter.com/mpyw、Status code に 301 となるようにリダイレクト先を設定します。
    • Deploy ボタンを押下します。

静的配信

下記の内容を HTML 形式で配信します。

<!doctype html>
<title>homo</title>
<meta http-equiv="refresh" content="1; url=https://twitter.com/mpyw">

本番環境

BuildKit(または Docker の対応するバージョン)あるいは Buildah のインストールが必要です。

  • docker build を利用する場合: Docker 18.09 以上
  • docker buildx を利用する場合: Docker 19.03 以上

nginx + PHP-FPM + PostgreSQL で構成されています。

設定

nginx

$ export HOMOCHECKER_API_HOST=api

PHP-FPM

$ export HOMOCHECKER_AP_ACTOR_ID=https://example.com/actor
$ export HOMOCHECKER_AP_ACTOR_PREFERRED_USERNAME=example.com
$ export HOMOCHECKER_AP_ACTOR_PUBLIC_KEY=/path/to/public_key
$ export HOMOCHECKER_AP_ACTOR_PRIVATE_KEY=/path/to/private_key
$ export HOMOCHECKER_DB_HOST=database
$ export HOMOCHECKER_DB_PORT=5432
$ export HOMOCHECKER_DB_USERNAME=homo
$ export HOMOCHECKER_DB_PASSWORD=homo
$ export HOMOCHECKER_DB_SSLMODE=prefer
$ export HOMOCHECKER_DB_SSLCERT=/path/to/sslcert
$ export HOMOCHECKER_DB_SSLKEY=/path/to/sslkey
$ export HOMOCHECKER_DB_SSLROOTCERT=/path/to/sslrootcert
$ export HOMOCHECKER_LOG_LEVEL=debug

ビルド

$ docker buildx bake

開発環境

設定

webpack のモード、ポート番号を指定する場合は環境変数を変更します(任意)。

$ export HOMOCHECKER_ENV=production
$ export HOMOCHECKER_PORT=4545

実行

$ bin/init
$ docker compose up -d --build

ブラウザーで次の URL にアクセスします。

http://localhost:4545

コンテナーを終了するには次のコマンドを使用します。

$ docker compose stop

現在の最新データは SQL 形式でダウンロードできます。
次のコマンドで PostgreSQL にログインできます。

$ docker compose exec database psql -dhomo -Uhomo

たとえば最新のデータを入れるには次のようにします。

$ curl -s 'https://homo.chitoku.jp:4545/list/?format=sql' |
    docker compose exec --no-TTY database psql -dhomo -Uhomo

テスト

$ bin/test