
JNCEP WebUI is a Flask-based web application designed to generate EPUB files for J-Novel Club pre-pub novels. It provides a user-friendly interface for the jncep tool, enabling seamless EPUB creation.
This app is perfect for readers who want to enjoy new pre-pubs on their e-reader immediately after release, even when a computer isn’t accessible. If hosted on a server, it allows you to download pre-pubs directly to your phone and transfer them to an e-reader via a USB cable.
jncep_webui is unaffiliated with J-Novel Club and jncep.To set up JNCEP WebUI, you have two installation options: native installation or Docker.
| Variable Name | Required | Description |
|---|---|---|
JNCEP_EMAIL |
Yes | Your J-Novel Club account login email. |
JNCEP_PASSWORD |
Yes | Your J-Novel Club account login password. |
pip install jncep_webui
python jncep_webui
git clone https://github.com/NaruZosa/jncep_webui.git
pip install uv
uv sync --locked
uv run src\jncep_webui\app.py
compose.yml file from this repository and (optionally) modify the logs pathdocker compose up in the same path as the compose.yml/logs container path for logging:
JNCEP WebUI uses jncep to create the epub. If you want to know more about how the part specification works, check out the documentation for it here.
JNCEP WebUI runs on port 5000. Access the interface at http://localhost:5000.

| Field | Required | Description |
|---|---|---|
J-Novel Club URL |
Yes | The URL for the J-Novel Club series, volume, or part. |
Prepub Parts |
No | Range of parts to download (e.g., <vol>[.part]:<vol>[.part]). Defaults to all parts for the specified URL. |
If the parts span multiple volumes, each volume will be compiled into a separate EPUB, and all files will be bundled into a ZIP. The generated file will be served for download, typically within a few seconds.
JNCEP WebUI can also function as a web API. Send a GET or POST request to http://<host>:5000/epub with the following headers:
| Header | Required | Description |
|---|---|---|
jnovelclub_url |
Yes | Maps to the J-Novel Club URL field. |
prepub_parts |
No | Maps to the Prepub Parts field. |
JNCEP_EMAIL |
No | Overrides the JNCEP_EMAIL environment variable. |
JNCEP_PASSWORD |
No | Overrides the JNCEP_PASSWORD environment variable. |
http://localhost:5000/epub?jnovelclub_url=<series_url>&prepub_parts=4.1
http://localhost:5000/epub?jnovelclub_url=<series_url>
The response will include the generated EPUB or ZIP file.
For more details, check out the open issues.
Contributions are always welcome! Here’s how you can help:
git checkout -b feature/AmazingFeature).git commit -m 'Add some AmazingFeature').git push origin feature/AmazingFeature).Remember to star the repository if you find it helpful! 😊
This project is distributed under the GNU General Public License (GPL) v3. See LICENSE.txt for details.
jncep, which does all the heavy lifting, thank you!Loguru, it makes logging dead-simple.Project Repository: JNCEP WebUI