Skip to content

chitoku-k/HomoChecker

Folders and files

NameName
Last commit message
Last commit date
Feb 23, 2025
Mar 29, 2025
Nov 19, 2023
Mar 29, 2025
May 1, 2023
Sep 10, 2017
Nov 21, 2017
Feb 28, 2023
May 7, 2023
Mar 21, 2025
Jul 11, 2016
May 29, 2024
Mar 15, 2023
Dec 24, 2024
Jan 15, 2025

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://x.com/mpyw
</VirtualHost>

nginx

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

H2O

hosts:
    "homo.example.com:80":
        listen:
            port: 80
        paths:
            "/":
                redirect:
                    url: https://x.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://x.com/mpyw、Status code に 301 となるようにリダイレクト先を設定します。
    • Deploy ボタンを押下します。

静的配信

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

<!doctype html>
<title>homo</title>
<meta http-equiv="refresh" content="1; url=https://x.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