{"id":15011373,"url":"https://github.com/rayriffy/rayriffy-h","last_synced_at":"2026-06-28T10:00:37.953Z","repository":{"id":34671188,"uuid":"156263428","full_name":"rayriffy/rayriffy-h","owner":"rayriffy","description":"The missing piece of nhentai (Now powered by Bun)","archived":false,"fork":false,"pushed_at":"2026-06-24T15:21:00.000Z","size":26927,"stargazers_count":117,"open_issues_count":2,"forks_count":19,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-06-24T17:12:56.802Z","etag":null,"topics":["bun","doujinshi","hentai","nanostores","nhentai","nsfw"],"latest_commit_sha":null,"homepage":"https://h.riffy.in.th","language":"TypeScript","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/rayriffy.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},"funding":{"github":"rayriffy"}},"created_at":"2018-11-05T18:25:43.000Z","updated_at":"2026-06-24T15:22:48.000Z","dependencies_parsed_at":"2023-09-27T07:25:45.702Z","dependency_job_id":"6b1997f5-dd1b-41fd-a51e-b147c2799216","html_url":"https://github.com/rayriffy/rayriffy-h","commit_stats":{"total_commits":3598,"total_committers":6,"mean_commits":599.6666666666666,"dds":0.4385769872151195,"last_synced_commit":"fc639a3ab0e8a8085f66bbf54d7004b425bfeac0"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/rayriffy/rayriffy-h","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayriffy%2Frayriffy-h","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayriffy%2Frayriffy-h/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayriffy%2Frayriffy-h/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayriffy%2Frayriffy-h/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rayriffy","download_url":"https://codeload.github.com/rayriffy/rayriffy-h/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rayriffy%2Frayriffy-h/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34884278,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"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":["bun","doujinshi","hentai","nanostores","nhentai","nsfw"],"created_at":"2024-09-24T19:40:59.789Z","updated_at":"2026-06-28T10:00:37.938Z","avatar_url":"https://github.com/rayriffy.png","language":"TypeScript","funding_links":["https://github.com/sponsors/rayriffy"],"categories":[],"sub_categories":[],"readme":"# Riffy H v7\n\nA decentralized, self-hosted, modularized manga gallery viewer.\n\nThis project is a complete overhaul of Riffy H v6. Unlike v6, which was deeply integrated with a single source and made creating new data sources difficult, v7 is designed from the ground up to be modular. We have separated the web client entirely from the API server, enabling you to host the API server yourself and easily integrate multiple distinct data sources.\n\n## Setting Up Your Own Server\n\n1. Initialize a new project and install the `@riffyh/commons` package.\n\n```bash\nbun init\nbun add @riffyh/commons\n```\n\n2. Create a server configuration file named `riffyh.config.ts`. Configure your server and the data sources you wish to add. You can refer to the [example](./example) for a complete server configuration.\n\n3. Install the `@riffyh/server` package and start the server.\n\n```bash\nbun add @riffyh/server\nbun run server\n```\n\n## Adding Your Server to the Web Client\n\n1. Navigate to the [settings page](https://h.riffy.in.th/settings).\n\n2. Add your server to the list of servers. You can also provide extra headers for your requests if your server requires authentication.\n\n## Configuration\n\nThe following options are available to be configured in your `riffyh.config.ts` file:\n\n### `hostname`\n\n- **Type:** `string`\n- **Default:** `'0.0.0.0'`\n\nSpecifies the hostname of your server. The default is `'0.0.0.0'`, which makes the server accessible from any device on your network.\n\n### `port`\n\n- **Type:** `number`\n- **Default:** `3000`\n\nSpecifies the port your server will run on.\n\n### `secretboxKey`\n\n- **Type:** `string`\n- **Required:** Yes\n\nA secretbox key used to encrypt data sent to external services. This key must be kept secret, unique, and never shared.\n\nYou can generate a new secretbox key by running:\n\n```bash\nbunx @riffyh/execute generate secretBox\n```\n\n### `dataSources`\n\n- **Type:** `Array\u003c`[`DataSource`](./commons/src/models/dataSourceModel.ts)`\u003e`\n- **Required:** Yes\n\nA list of data sources to be used by your server. Please refer to the [Data Sources](#data-sources) section for more information.\n\n### `store`\n\n- **Type:** `Array\u003c`[`Store`](./commons/src/models/storeModel.ts)`\u003e`\n- **Default:** `undefined`\n\nA list of stores for each data source to be saved locally in the database via the `@riffyh/adapter-store` package.\n\n## Data Sources\n\nWe currently provide the following officially supported data source adapters:\n\n- [`@riffyh/adapter-nhentai`](./adapter/nhentai/)\n- [`@riffyh/adapter-niyaniya`](./adapter/niyaniya/)\n- [`@riffyh/adapter-store`](./adapter/store/)\n\nBeyond these, you can easily create your own data source by writing a custom adapter that satisfies the [`DataSource`](./commons/src/models/dataSourceModel.ts) interface. This allows you to integrate essentially any data source into your server.\n\nWe welcome contributions to this project! If you create a custom data source adapter, feel free to submit a pull request to have your package listed as a community-supported data source.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayriffy%2Frayriffy-h","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frayriffy%2Frayriffy-h","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayriffy%2Frayriffy-h/lists"}