Skip to content

mpyw-forks/HomoChecker

 
 

Repository files navigation

HomoChecker

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

目次

ホモへの手引き

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

設定方法

DNS を適切に設定したあと、お使いの Web サーバーに合わせて設定を行います。

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

Web サーバーが静的コンテンツ配信のみの場合は HTML によるリダイレクトを行います。

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

または Cloudflare を利用してサーバーレスホモを構築します。

  1. DNS で homo.example.com を Cloudflare を通すように設定します。
  2. Page Rule を作成します。
    • If the URL matches:*homo.example.com/* を指定します。
    • Then the settings are:Forwarding URL301 - Permanent Redirecthttps://twitter.com/mpyw を指定します。

動作環境

フロントエンド

Chrome、Firefox、Internet Explorer の最新版で動くのでたいていのホモは救われます。

バックエンド

開発環境の構築には Docker Compose のインストールが必要です。
nginx + PHP-FPM + PostgreSQL + Redis で構成されています。

本番環境の構築にはコンテナーランタイム(Docker など)のインストールが必要です。
nginx + PHP-FPM で構成されており、以下の環境変数を使用して設定を行います。

nginx

$ export HOMOCHECKER_API_HOST=api

PHP-FPM

$ 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

Releases

No releases published

Packages

No packages published

Languages

  • PHP 80.9%
  • Vue 14.3%
  • JavaScript 2.3%
  • Dockerfile 1.7%
  • Other 0.8%