{"id":34333662,"url":"https://github.com/lalcmellkmal/doushio","last_synced_at":"2026-03-13T11:31:45.167Z","repository":{"id":2279404,"uuid":"3236490","full_name":"lalcmellkmal/doushio","owner":"lalcmellkmal","description":"Real-time imageboard in node.js and redis","archived":false,"fork":false,"pushed_at":"2023-08-27T22:03:35.000Z","size":4802,"stargazers_count":124,"open_issues_count":31,"forks_count":29,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-04-14T20:02:04.347Z","etag":null,"topics":["imageboard","nodejs","redis"],"latest_commit_sha":null,"homepage":"http://doushio.com/moe/","language":"JavaScript","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/lalcmellkmal.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}},"created_at":"2012-01-21T22:04:49.000Z","updated_at":"2024-03-28T15:10:26.000Z","dependencies_parsed_at":"2023-01-11T16:09:05.525Z","dependency_job_id":null,"html_url":"https://github.com/lalcmellkmal/doushio","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/lalcmellkmal/doushio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalcmellkmal%2Fdoushio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalcmellkmal%2Fdoushio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalcmellkmal%2Fdoushio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalcmellkmal%2Fdoushio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lalcmellkmal","download_url":"https://codeload.github.com/lalcmellkmal/doushio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lalcmellkmal%2Fdoushio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30466314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T11:00:43.441Z","status":"ssl_error","status_checked_at":"2026-03-13T11:00:23.173Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["imageboard","nodejs","redis"],"created_at":"2025-12-17T19:35:06.213Z","updated_at":"2026-03-13T11:31:45.157Z","avatar_url":"https://github.com/lalcmellkmal.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Real-time imageboard.\nMIT licensed.\n\nSetup:\n\n* Install dependencies listed below\n* Sign up for reCAPTCHA\n* Create a GitHub Application (callback URL = site URL + /login)\n* Copy config.js.example to config.js and configure\n* Copy hot.js.example to hot.js and configure\n* Copy imager/config.js.example to imager/config.js and configure\n* Copy report/config.js.example to report/config.js and configure\n * SMTP and Telegram Bots are supported for report notifications\n* Clone [assets](https://github.com/lalcmellkmal/assets/) and copy the `kana` spoiler image folder as `./www/kana/` (or create your own!).\n* Run `npm install` to install npm deps and compile a few helpers\n* Run `node builder.js` to run an auto-reloading development server\n\nProduction:\n\n* Have your webserver serve www/ (or wherever you've moved src, thumb, etc.)\n  - Configure `imager.config.MEDIA_URL` appropriately\n  - Then turn off `SERVE_STATIC_FILES` and `SERVE_IMAGES`\n* If you're behind Cloudflare turn on `CLOUDFLARE`\n  - Or if you're behind any reverse proxy (nginx etc) turn on `TRUST_X_FORWARDED_FOR`\n* Run `node server/server.js` for just the server\n* You can update client code \u0026 hot.js on-the-fly with `node server/kill.js`\n* For nginx hosting/reverse proxying, refer to docs/nginx.conf.example\n* For a sample init script, refer to docs/doushio.initscript.example\n* config.DAEMON support is old and broken, PRs welcome\n\nDependencies:\n\n* ImageMagick\n* libpng\n* node 10+\n* `npm install -g node-gyp`\n* redis\n* ffmpeg 2.2+ if supporting WebM\n* jhead and jpegtran\n\nOptional npm deps for various features:\n\n* node-telegram-bot-api for telegram reports\n* nodemailer for report emails\n* [send](https://github.com/visionmedia/send) (if you want to serve static files directly from the node.js process; useful in debug mode also)\n\nStandalone upkeep scripts:\n\n* archive/daemon.js - moves old threads to the archive\n* upkeep/backup.js - uploads rdb to S3\n* upkeep/clean.js - deletes archived images\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flalcmellkmal%2Fdoushio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flalcmellkmal%2Fdoushio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flalcmellkmal%2Fdoushio/lists"}