Introduce a new TokenManager to handle token rotation, status tracking, and automatic retries with exponential backoff for API requests. This change aims to improve the reliability API interactions by intelligently managing tokens and gracefully handling request failures. Update API request functions to utilise the new TokenManager. This commit also adds configuration options for max retries, base timeout, and max backoff time to fine-tune the retry behavior.
PixivFE
A open source alternative frontend for Pixiv.
Questions? Feedback? You can PM me on Matrix! You can also see the Known quirks page to check if your issue has a known solution.
You can keep track of this project's development using the roadmap.
Features
- Lightweight - both the interface and the code
- Privacy-first - the server will do the work for you
- No bloat - we only serve HTML, CSS and minimal JS code
- Open source - you can trust me!
Development
Prerequisites:
- Go (to build PixivFE from source)
- Sass (will be run by PixivFE in development mode)
- Make (to use the Makefile)
To install Dart Sass, you can choose any of the following methods.
- use system package manager (usually called
dart-sass) - download executable from the official release page
pnpm i -g sass
Then, run the project:
# Clone the PixivFE repository
git clone https://codeberg.org/VnPower/PixivFE.git && cd PixivFE
# Build the project
make build
# Run PixivFE in development mode (styles and templates reload automatically)
PIXIVFE_DEV=1 <other_environment_variables> make run
Using the Makefile
The project includes a Makefile to simplify common development tasks. Run make help to view the available commands.
Hosting PixivFE
You can use PixivFE for personal use! Assuming that you use an operating system that can run POSIX shell scripts, install go, clone this repository, and use the Makefile to build and run the project.
I recommend self-hosting your own instance for personal use, instead of relying entirely on official instances.
To deploy PixivFE using Docker or the compiled binary, see Hosting PixivFE.
Public Instances
| Name | URL | Country | Cloudflare? | Observatory Grade | Status |
|---|---|---|---|---|---|
| exozyme (Official) | https://pixivfe.exozy.me | US | No | ||
| dragoongoose | https://pixivfe.drgns.space | US | No | ||
| ducks.party | https://pixivfe.ducks.party | NL | No | ||
| perennialte.ch | https://pixiv.perennialte.ch | AU | No | ||
| darkness.services | https://pixivfe.darkness.services | US | Yes | ||
| thebunny.zone | https://pixivfe.thebunny.zone | HR | No | ||
| thebunny.zone (🧅) | http://pixivfe.bunny5exbgbp4sqe2h2rfq2brgrx3dhohdweonepzwfgumfyygb35wyd.onion | HR | No |
If you are hosting your own instance, you can create a pull request to add it here!
For more information on instance uptime, see the PixivFE instance status page.
This information is duplicated at https://pixivfe-docs.pages.dev/instance-list/.
Hosting Image Proxy Server
PixivFE can work with or without an external image proxy server. Here is the list of public image proxies. See hosting a Pixiv image proxy if you want to host one yourself.