HomoChecker はホモ(@mpyw)にリダイレクトするホモのためのホモの輪です。
@java_shit にカミングアウトしてください。@mpyw と関係があってもなくても構いません。
DNS を適切に設定したあと、お使いの Web サーバーに合わせて設定を行います。
<VirtualHost *:80>
ServerName homo.example.com
Redirect permanent / https://twitter.com/mpyw
</VirtualHost>
server {
listen 80;
listen [::]:80;
server_name homo.example.com;
return 301 https://twitter.com/mpyw;
}
hosts:
"homo.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
url: https://twitter.com/mpyw
status: 301
Web サーバーが静的コンテンツ配信のみの場合は HTML によるリダイレクトを行います。
<!doctype html>
<title>homo</title>
<meta http-equiv="refresh" content="1; url=https://twitter.com/mpyw">
または Cloudflare を利用してサーバーレスホモを構築します。
- DNS で
homo.example.com
を Cloudflare を通すように設定します。 - Page Rule を作成します。
If the URL matches:
に*homo.example.com/*
を指定します。Then the settings are:
にForwarding URL
、301 - Permanent Redirect
、https://twitter.com/mpyw
を指定します。
Chrome、Firefox、Internet Explorer の最新版で動くのでたいていのホモは救われます。
開発環境の構築には Docker Compose のインストールが必要です。
nginx + PHP-FPM + PostgreSQL + Redis で構成されています。
本番環境の構築にはコンテナーランタイム(Docker など)のインストールが必要です。
nginx + PHP-FPM で構成されており、以下の環境変数を使用して設定を行います。
$ export HOMOCHECKER_API_HOST=api
$ 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_LOG_LEVEL=debug
$ export HOMOCHECKER_REDIS_HOST=redis
$ export HOMOCHECKER_REDIS_PORT=6379
$ export HOMOCHECKER_TWITTER_CONSUMER_KEY=
$ export HOMOCHECKER_TWITTER_CONSUMER_SECRET=
$ export HOMOCHECKER_TWITTER_TOKEN=
$ export HOMOCHECKER_TWITTER_TOKEN_SECRET=
初回実行時のみイメージのビルド作業が必要です。
$ bin/init
webpack のモード、ポート番号を指定する場合は環境変数を変更します(任意)。
$ export HOMOCHECKER_ENV=production
$ export HOMOCHECKER_PORT=4545
IPv6 接続を有効にするためには、あらかじめサブネットを指定してネットワークを作成しておく必要があります。
$ docker network create --attachable --ipv6 --subnet=fd00:4545::/48 homochecker_ipv6
次のコマンドでコンテナーを起動します。
$ COMPOSE_DOCKER_CLI_BUILD=1 \
DOCKER_BUILDKIT=1 \
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 exec -i $(docker-compose ps -q database) psql -dhomo -Uhomo
次のコマンドでテストを実行します。
$ bin/test