{"id":17696771,"url":"https://github.com/shinosaki/mychan","last_synced_at":"2026-05-09T04:33:29.521Z","repository":{"id":197243690,"uuid":"698266202","full_name":"shinosaki/mychan","owner":"shinosaki","description":"Lightweight 2channel(2ちゃんねる) clone. Works on Cloudflare Workers and Bun.","archived":false,"fork":false,"pushed_at":"2023-10-04T04:40:25.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T00:41:18.250Z","etag":null,"topics":["2ch","2channel","bun","cloudflare-d1","cloudflare-workers","hono"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shinosaki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-09-29T14:25:57.000Z","updated_at":"2024-01-01T06:51:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"da69a575-5e3a-410a-9278-81cebf81e739","html_url":"https://github.com/shinosaki/mychan","commit_stats":null,"previous_names":["shinosaki/mychan"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shinosaki/mychan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinosaki%2Fmychan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinosaki%2Fmychan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinosaki%2Fmychan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinosaki%2Fmychan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shinosaki","download_url":"https://codeload.github.com/shinosaki/mychan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shinosaki%2Fmychan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32807252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["2ch","2channel","bun","cloudflare-d1","cloudflare-workers","hono"],"created_at":"2024-10-24T14:45:15.988Z","updated_at":"2026-05-09T04:33:29.505Z","avatar_url":"https://github.com/shinosaki.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mychan\r\n\r\nLightweight 2channel(2ちゃんねる) clone. Works on Cloudflare Workers and Bun.  \r\nLike `zerochplus` or `d1ch.cc`.\r\n\r\nmychanは2ちゃんねる互換の掲示板ソフトウェアです。Cloudflare WorkersかBun上で動作します。  \r\n\r\n## How to Deploy\r\n1. Edit `config/index.js`.  \r\n   `boards` settings are based on [2ch's SETTING.TXT](https://info.5ch.net/index.php/SETTING.TXT).\r\n   ```js\r\n   export const config = {\r\n     app: {\r\n       name: 'mychan掲示板' // Website's name\r\n     }\r\n   };\r\n   \r\n   export const boards = {\r\n     poverty: { // Object's key is the board name\r\n       title: {\r\n         name: 'まいちゃん(嫌儲)', // BBS_TITLE, BBS_TITLE_ORIG\r\n         logo: null, // BBS_TITLE_PICTURE\r\n       },\r\n       nanashi: 'セルフホストの名無し', // BBS_NONAME_NAME\r\n       limit: {\r\n         subject: 128, // BBS_SUBJECT_COUNT\r\n         name: 96, // BBS_NAME_COUNT\r\n         mail: 96, // BBS_MAIL_COUNT\r\n         message: 4096, // BBS_MESSAGE_COUNT\r\n         thread: 8 // BBS_THREAD_TATESUGI\r\n       }\r\n     }\r\n   };\r\n   ```\r\n1. Create database  \r\n   - Cloudflare D1  \r\n     Run `npm run db:init`  \r\n     and Append `database_id` to `wrangler.toml`.  \r\n   - Bun  \r\n     `touch database.sqlite`  \r\n1. Database migration  \r\n   Run `npm run db:generate` and  \r\n   - Cloudflare D1  \r\n     `npm run deploy:migration`  \r\n   - Bun  \r\n     `npm run sqlite:migration`  \r\n1. Set `UID_SECRET` (used when generating 2ch's user ID)  \r\n   - Cloudflare D1  \r\n     `npm run secret:uid`  \r\n   - Bun  \r\n     Edit `.env`.  \r\n1. Deploy\r\n   - Cloudflare D1  \r\n     `npm run deploy`  \r\n   - Bun  \r\n     `npm run bun:build` and `npm run bun:production`  \r\n\r\n## Supported Runtimes\r\n- Cloudflare Workers\r\n  - with Cloudflare D1\r\n- Bun\r\n  - with SQLite (included as standard in Bun)\r\n\r\n## Dependencies\r\n- hono (Web framework)\r\n- drizzle-orm (ORM)\r\n- zod (Validation)\r\n- iconv-lite (Encoding/Decoding from Shift-JIS)\r\n\r\n## License\r\nMIT\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinosaki%2Fmychan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshinosaki%2Fmychan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinosaki%2Fmychan/lists"}