A decentralized, self-hosted, modularized manga gallery viewer.
This 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.
- Initialize a new project and install the
@riffyh/commonspackage.
bun init
bun add @riffyh/commons-
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 for a complete server configuration. -
Install the
@riffyh/serverpackage and start the server.
bun add @riffyh/server
bun run server-
Navigate to the settings page.
-
Add your server to the list of servers. You can also provide extra headers for your requests if your server requires authentication.
The following options are available to be configured in your riffyh.config.ts file:
- Type:
string - Default:
'0.0.0.0'
Specifies the hostname of your server. The default is '0.0.0.0', which makes the server accessible from any device on your network.
- Type:
number - Default:
3000
Specifies the port your server will run on.
- Type:
string - Required: Yes
A secretbox key used to encrypt data sent to external services. This key must be kept secret, unique, and never shared.
You can generate a new secretbox key by running:
bunx @riffyh/execute generate secretBox- Type:
Array<DataSource> - Required: Yes
A list of data sources to be used by your server. Please refer to the Data Sources section for more information.
- Type:
Array<Store> - Default:
undefined
A list of stores for each data source to be saved locally in the database via the @riffyh/adapter-store package.
We currently provide the following officially supported data source adapters:
Beyond these, you can easily create your own data source by writing a custom adapter that satisfies the DataSource interface. This allows you to integrate essentially any data source into your server.
We 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.