https://github.com/chitoku-k/homochecker
PHP + Riot.js Experiment
https://github.com/chitoku-k/homochecker
docker http3 php riot
Last synced: 25 days ago
JSON representation
PHP + Riot.js Experiment
- Host: GitHub
- URL: https://github.com/chitoku-k/homochecker
- Owner: chitoku-k
- License: mit
- Created: 2016-06-29T14:36:03.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2026-04-24T22:04:19.000Z (about 1 month ago)
- Last Synced: 2026-04-24T23:28:52.949Z (about 1 month ago)
- Topics: docker, http3, php, riot
- Language: PHP
- Homepage: https://homo.chitoku.jp:4545/
- Size: 17.6 MB
- Stars: 25
- Watchers: 2
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
HomoChecker
===========
[![][workflow-badge]][workflow-link]
[![][coveralls-badge]][coveralls-link]
[![][climate-badge]][climate-link]
[![][homo-badge]][homo-link]
HomoChecker はホモ([@mpyw](https://x.com/mpyw))にリダイレクトするホモのためのホモの輪です。
## 目次
- [ホモへの手引き](#ホモへの手引き)
- [本番環境](#本番環境)
- [開発環境](#開発環境)
- [テスト](#テスト)
- [API](/api/README.md)
## ホモへの手引き
[@java\_shit](https://x.com/java_shit) にカミングアウトしてください。[@mpyw](https://x.com/mpyw) と関係があってもなくても構いません。
### 設定方法
DNS を適切に設定したあと、お使いの Web サーバーに合わせて設定を行います。
HomoChecker は HTTP/1.1、HTTP/2、HTTP/3 に対応しています。
#### Apache
```apache
ServerName homo.example.com
Redirect permanent / https://x.com/mpyw
```
#### nginx
```nginx
server {
listen 80;
listen [::]:80;
server_name homo.example.com;
return 301 https://x.com/mpyw;
}
```
#### H2O
```yaml
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 形式で配信します。
```html
homo
```
## 本番環境
nginx + PHP-FPM + PostgreSQL で構成します。
### コンテナーイメージ版
- [ghcr.io/chitoku-k/homochecker/api](https://github.com/chitoku-k/HomoChecker/pkgs/container/homochecker%2Fapi)
- [ghcr.io/chitoku-k/homochecker/web](https://github.com/chitoku-k/HomoChecker/pkgs/container/homochecker%2Fweb)
```console
$ docker buildx bake
```
## 開発環境
```console
$ bin/init
$ docker compose up -d --build
```
## 設定
環境変数に値の設定を行います。
### nginx
```sh
$ export HOMOCHECKER_API_HOST=api
```
### PHP-FPM
```sh
$ 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
```
## 実行
現在の最新データは SQL 形式で[ダウンロード](https://homo.chitoku.jp:4545/list/?format=sql)できます。
最新のデータを挿入するには次のようにします。
```console
$ curl -s 'https://homo.chitoku.jp:4545/list/?format=sql' |
docker compose exec --no-TTY database psql
```
ブラウザーで次の URL にアクセスします。
```
http://localhost:4545
```
## テスト
```sh
$ cd api
$ composer test -- --no-coverage
```
[workflow-link]: https://github.com/chitoku-k/HomoChecker/actions?query=branch:master
[workflow-badge]: https://img.shields.io/github/actions/workflow/status/chitoku-k/HomoChecker/publish-image.yml?branch=master&style=flat-square&logo=github
[coveralls-link]: https://coveralls.io/github/chitoku-k/HomoChecker?branch=master
[coveralls-badge]: https://img.shields.io/coveralls/github/chitoku-k/HomoChecker/master?style=flat-square&logo=coveralls
[climate-link]: https://codeclimate.com/github/chitoku-k/HomoChecker/maintainability
[climate-badge]: https://img.shields.io/codeclimate/maintainability/chitoku-k/HomoChecker.svg?style=flat-square&logo=code-climate
[homo-link]: https://homo.chitoku.jp:4545
[homo-badge]: https://homo.chitoku.jp:4545/badge/?style=flat-square