{"id":17626679,"url":"https://github.com/chitoku-k/homochecker","last_synced_at":"2026-05-09T00:16:17.156Z","repository":{"id":37806570,"uuid":"62232868","full_name":"chitoku-k/HomoChecker","owner":"chitoku-k","description":"PHP + Riot.js Experiment","archived":false,"fork":false,"pushed_at":"2026-04-24T22:04:19.000Z","size":18438,"stargazers_count":25,"open_issues_count":5,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-24T23:28:52.949Z","etag":null,"topics":["docker","http3","php","riot"],"latest_commit_sha":null,"homepage":"https://homo.chitoku.jp:4545/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chitoku-k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-06-29T14:36:03.000Z","updated_at":"2026-04-24T21:46:53.000Z","dependencies_parsed_at":"2022-06-23T12:20:27.551Z","dependency_job_id":"c6e97052-12a6-4fc3-969e-dcea76d6db3e","html_url":"https://github.com/chitoku-k/HomoChecker","commit_stats":{"total_commits":3016,"total_committers":9,"mean_commits":335.1111111111111,"dds":0.6031167108753316,"last_synced_commit":"838a668c49794ab428dc79f724de73a9d1def99a"},"previous_names":[],"tags_count":375,"template":false,"template_full_name":null,"purl":"pkg:github/chitoku-k/HomoChecker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chitoku-k%2FHomoChecker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chitoku-k%2FHomoChecker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chitoku-k%2FHomoChecker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chitoku-k%2FHomoChecker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chitoku-k","download_url":"https://codeload.github.com/chitoku-k/HomoChecker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chitoku-k%2FHomoChecker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32257757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","http3","php","riot"],"created_at":"2024-10-22T23:24:27.300Z","updated_at":"2026-04-25T10:04:28.181Z","avatar_url":"https://github.com/chitoku-k.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"HomoChecker\n===========\n\n[![][workflow-badge]][workflow-link]\n[![][coveralls-badge]][coveralls-link]\n[![][climate-badge]][climate-link]\n[![][homo-badge]][homo-link]\n\nHomoChecker はホモ（[@mpyw](https://x.com/mpyw)）にリダイレクトするホモのためのホモの輪です。\n\n## 目次\n\n- [ホモへの手引き](#ホモへの手引き)\n- [本番環境](#本番環境)\n- [開発環境](#開発環境)\n- [テスト](#テスト)\n- [API](/api/README.md)\n\n## ホモへの手引き\n\n[@java\\_shit](https://x.com/java_shit) にカミングアウトしてください。[@mpyw](https://x.com/mpyw) と関係があってもなくても構いません。\n\n### 設定方法\n\nDNS を適切に設定したあと、お使いの Web サーバーに合わせて設定を行います。  \nHomoChecker は HTTP/1.1、HTTP/2、HTTP/3 に対応しています。\n\n#### Apache\n\n```apache\n\u003cVirtualHost *:80\u003e\n    ServerName homo.example.com\n    Redirect permanent / https://x.com/mpyw\n\u003c/VirtualHost\u003e\n```\n\n#### nginx\n\n```nginx\nserver {\n    listen 80;\n    listen [::]:80;\n    server_name homo.example.com;\n    return 301 https://x.com/mpyw;\n}\n```\n\n#### H2O\n\n```yaml\nhosts:\n    \"homo.example.com:80\":\n        listen:\n            port: 80\n        paths:\n            \"/\":\n                redirect:\n                    url: https://x.com/mpyw\n                    status: 301\n```\n\n#### Cloudflare\n\n1. DNS \\\u003e Records で `homo.example.com` が Cloudflare に Proxy されるよう設定します。\n2. Rules \\\u003e Redirect Rules を作成します。\n   - Rule name に任意の名前を入力します。\n   - Custom filter expression を選択します。\n   - Field に `Hostname`、Operator に `equals`、Value に `homo.example.com` となるように条件を設定します。\n   - Type に `Static`、URL に `https://x.com/mpyw`、Status code に `301` となるようにリダイレクト先を設定します。\n   - Deploy ボタンを押下します。\n\n#### 静的配信\n\n下記の内容を HTML 形式で配信します。\n\n```html\n\u003c!doctype html\u003e\n\u003ctitle\u003ehomo\u003c/title\u003e\n\u003cmeta http-equiv=\"refresh\" content=\"1; url=https://x.com/mpyw\"\u003e\n```\n\n## 本番環境\n\nnginx + PHP-FPM + PostgreSQL で構成します。\n\n### コンテナーイメージ版\n\n- [ghcr.io/chitoku-k/homochecker/api](https://github.com/chitoku-k/HomoChecker/pkgs/container/homochecker%2Fapi)\n- [ghcr.io/chitoku-k/homochecker/web](https://github.com/chitoku-k/HomoChecker/pkgs/container/homochecker%2Fweb)\n\n```console\n$ docker buildx bake\n```\n\n## 開発環境\n\n```console\n$ bin/init\n$ docker compose up -d --build\n```\n\n## 設定\n\n環境変数に値の設定を行います。\n\n### nginx\n\n```sh\n$ export HOMOCHECKER_API_HOST=api\n```\n\n### PHP-FPM\n\n```sh\n$ export HOMOCHECKER_AP_ACTOR_ID=https://example.com/actor\n$ export HOMOCHECKER_AP_ACTOR_PREFERRED_USERNAME=example.com\n$ export HOMOCHECKER_AP_ACTOR_PUBLIC_KEY=/path/to/public_key\n$ export HOMOCHECKER_AP_ACTOR_PRIVATE_KEY=/path/to/private_key\n$ export HOMOCHECKER_DB_HOST=database\n$ export HOMOCHECKER_DB_PORT=5432\n$ export HOMOCHECKER_DB_USERNAME=homo\n$ export HOMOCHECKER_DB_PASSWORD=homo\n$ export HOMOCHECKER_DB_SSLMODE=prefer\n$ export HOMOCHECKER_DB_SSLCERT=/path/to/sslcert\n$ export HOMOCHECKER_DB_SSLKEY=/path/to/sslkey\n$ export HOMOCHECKER_DB_SSLROOTCERT=/path/to/sslrootcert\n$ export HOMOCHECKER_LOG_LEVEL=debug\n```\n\n## 実行\n\n現在の最新データは SQL 形式で[ダウンロード](https://homo.chitoku.jp:4545/list/?format=sql)できます。  \n最新のデータを挿入するには次のようにします。\n\n```console\n$ curl -s 'https://homo.chitoku.jp:4545/list/?format=sql' |\n    docker compose exec --no-TTY database psql\n```\n\nブラウザーで次の URL にアクセスします。\n\n```\nhttp://localhost:4545\n```\n\n## テスト\n\n```sh\n$ cd api\n$ composer test -- --no-coverage\n```\n\n[workflow-link]:    https://github.com/chitoku-k/HomoChecker/actions?query=branch:master\n[workflow-badge]:   https://img.shields.io/github/actions/workflow/status/chitoku-k/HomoChecker/publish-image.yml?branch=master\u0026style=flat-square\u0026logo=github\n[coveralls-link]:   https://coveralls.io/github/chitoku-k/HomoChecker?branch=master\n[coveralls-badge]:  https://img.shields.io/coveralls/github/chitoku-k/HomoChecker/master?style=flat-square\u0026logo=coveralls\n[climate-link]:     https://codeclimate.com/github/chitoku-k/HomoChecker/maintainability\n[climate-badge]:    https://img.shields.io/codeclimate/maintainability/chitoku-k/HomoChecker.svg?style=flat-square\u0026logo=code-climate\n[homo-link]:        https://homo.chitoku.jp:4545\n[homo-badge]:       https://homo.chitoku.jp:4545/badge/?style=flat-square\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchitoku-k%2Fhomochecker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchitoku-k%2Fhomochecker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchitoku-k%2Fhomochecker/lists"}