# PixivFE A open source alternative frontend for Pixiv. **Notice**: PixivFE now has a public room on Matrix, [join here](https://matrix.to/#/#pixivfe:exozy.me)!

Get it on Codeberg

[![CI badge](https://ci.codeberg.org/api/badges/12556/status.svg)](https://ci.codeberg.org/repos/12556) [![Go Report Card](https://goreportcard.com/badge/codeberg.org/pixivfe/pixivfe/v2)](https://goreportcard.com/report/codeberg.org/pixivfe/pixivfe) [![Crowdin](https://badges.crowdin.net/pixivfe/localized.svg)](https://crowdin.com/project/pixivfe) [![Docker Pulls](https://img.shields.io/docker/pulls/vnpower/pixivfe)](https://hub.docker.com/r/vnpower/pixivfe) [![Docker Stars](https://img.shields.io/docker/stars/vnpower/pixivfe)](https://hub.docker.com/r/vnpower/pixivfe) Questions? Feedback? You can [PM me](https://matrix.to/#/@vnpower:matrix.4d2.org) or [join our room](https://matrix.to/#/#pixivfe:exozy.me) on Matrix! You can also see the [Known quirks](https://pixivfe-docs.pages.dev/known-quirks/) page to check if your issue has a known solution. You can keep track of this project's development using the [Roadmap](https://pixivfe-docs.pages.dev/dev/roadmap/). ## Features - Lightweight - both the front and back - 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 Use our build tool: `./build.sh help`. Here are the build prerequisites. You may only install some of them. | Name | What for | Required? | Recommended way to install | | - | - | - | - | | [Go](https://go.dev/doc/install) | To build PixivFE from source | **Yes** |Use system package manager (`go`) | | [Sass](https://github.com/sass/dart-sass/) | To build CSS stylesheets from SCSS. Will be run by PixivFE in development mode | **No**, unless you want to modify the SCSS files | Use system package manager (`dart-sass`), or see below | | [jq](https://jqlang.github.io/jq/) | To extract i18n strings | **No**, unless you want to modify the source code or build translation files | Use system package manager (`jq`) | | [semgrep](https://semgrep.dev/) | To extract i18n strings and scan the source code for errors | **No**, unless you want to modify the source code or build translation files | [See official instructions](https://github.com/semgrep/semgrep/blob/develop/README.md#option-2-getting-started-from-the-cli) | | Crowdin CLI | To upload and download i18n strings. | **No**, unless you are a core developer | [See our documentation](./doc/dev/features/i18n.md) | 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](https://github.com/sass/dart-sass/releases) - `pnpm i -g sass` Then, run the project: ```bash # Clone the PixivFE repository git clone https://codeberg.org/VnPower/PixivFE.git && cd PixivFE # Run PixivFE in development mode (styles and templates reload automatically) PIXIVFE_DEV=1 ./build.sh run # Run PixivFE normally. # Translation files will not be built unless `jq` and `semgrep` is available. # If this command fails because of faulty translation files, you may have to # install `jq` and `semgrep` and run this command again. ./build.sh run ``` ## Hosting PixivFE To deploy PixivFE using Docker or the compiled binary, see [Hosting PixivFE](https://pixivfe-docs.pages.dev/hosting-pixivfe/). If you are paranoid and cannot trust public instances, you can self-host your own instance for personal use (it is very easy, just read the docs!). I actually recommend self-hosting instead of relying entirely on official instances. ### Public instances **Warning: Instances listed below were deemed to have complied with [the instance rules](https://pixivfe-docs.pages.dev/instance-list/#instance-rules). Any public instance that isn't in this list should be used at your own risk.** | Name | URL | Country | Cloudflare? | Observatory Grade | Status | |-------------------|-------------------------------------------------|---------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------| | perennialte.ch (Official) | [https://pixiv.perennialte.ch](https://pixiv.perennialte.ch) | AU | No | [![MDN HTTP Observatory Grade](https://img.shields.io/mozilla-observatory/grade-score/pixiv.perennialte.ch?label=)](https://developer.mozilla.org/en-US/observatory/analyze?host=pixiv.perennialte.ch) | ![Status](https://img.shields.io/uptimerobot/status/m796383748-503799f65873a23dbc860a02) | | dragongoose | [https://pixivfe.drgns.space](https://pixivfe.drgns.space) | US | No | [![MDN HTTP Observatory Grade](https://img.shields.io/mozilla-observatory/grade-score/pixivfe.drgns.space?label=)](https://developer.mozilla.org/en-US/observatory/analyze?host=pixivfe.drgns.space) | ![Status](https://img.shields.io/uptimerobot/status/m796383743-c0cf0d6b5dbb09c8dbe7dc53) | | ducks.party | [https://pixivfe.ducks.party](https://pixivfe.ducks.party) | NL | No | [![MDN HTTP Observatory Grade](https://img.shields.io/mozilla-observatory/grade-score/pixivfe.ducks.party?label=)](https://developer.mozilla.org/en-US/observatory/analyze?host=pixivfe.ducks.party) | ![Status](https://img.shields.io/uptimerobot/status/m796383747-c92c281f520d52fe3fd894ed) | | darkness.services | [https://pixivfe.darkness.services](https://pixivfe.darkness.services) | US | Yes | [![MDN HTTP Observatory Grade](https://img.shields.io/mozilla-observatory/grade-score/pixivfe.darkness.services?label=)](https://developer.mozilla.org/en-US/observatory/analyze?host=pixivfe.darkness.services) | ![Status](https://img.shields.io/uptimerobot/status/m796758268-211b0a18f07b88673820715f) | | thebunny.zone | [https://pixivfe.thebunny.zone](https://pixivfe.thebunny.zone) | HR | No | [![MDN HTTP Observatory Grade](https://img.shields.io/mozilla-observatory/grade-score/pixivfe.thebunny.zone?label=)](https://developer.mozilla.org/en-US/observatory/analyze?host=pixivfe.thebunny.zone) | ![Status](https://img.shields.io/uptimerobot/status/m797561997-78a2d28dadf458745d556322) | | thebunny.zone (🧅)| [http://pixivfe.bunny5exbgbp4sqe2h2rfq2brgrx3dhohdweonepzwfgumfyygb35wyd.onion](http://pixivfe.bunny5exbgbp4sqe2h2rfq2brgrx3dhohdweonepzwfgumfyygb35wyd.onion/) | HR | No | [![MDN HTTP Observatory Grade](https://img.shields.io/mozilla-observatory/grade-score/pixivfe.thebunny.zone?label=)](https://developer.mozilla.org/en-US/observatory/analyze?host=pixivfe.thebunny.zone) | ![Status](https://img.shields.io/uptimerobot/status/m797561997-78a2d28dadf458745d556322) | 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](https://stats.uptimerobot.com/FbEGewWlbX). This information is duplicated at https://pixivfe-docs.pages.dev/instance-list/. ### Hosting an image proxy server PixivFE can work with or without an external image proxy server. Here is the [list of public image proxies](https://pixivfe-docs.pages.dev/public-image-proxies/). See [hosting a Pixiv image proxy](https://pixivfe-docs.pages.dev/hosting-image-proxy-server/) if you want to host one yourself. ## Credits This project was made possible thanks to: - [kun](https://codeberg.org/idkwhyiexist): for supporting my idea to start this project - [Anthony Wang](https://codeberg.org/xy): for starting [exozyme](https://exozy.me) and the infrastructure - [dragongoose](https://codeberg.org/dragongoose): for early code support - [NNB](https://codeberg.org/NNB): for making PixivFE's [official logo](https://codeberg.org/PixivFE/PixivFE/issues/4) - [toonakko](https://github.com/UmiTooko): for drawing [cover artworks](https://codeberg.org/PixivFE/PixivFE/src/branch/v2/assets/img/nsfw.png) - [iacore](https://codeberg.org/iacore): for the a lot of code contributions, features and bug fixes - [perennial](https://codeberg.org/perennial): for the a lot of code contributions and the [documentation](https://pixivfe-docs.pages.dev) - [jackyzy823](https://codeberg.org/jackyzy823): for implementing novels and other contributions Special thanks to: the [exozyme community](https://exozy.me/explore), Codeberg, [stargazers](https://codeberg.org/PixivFE/PixivFE/stars), and all participants in the [issue tracker](https://codeberg.org/PixivFE/PixivFE/issues)! --- **Disclaimer**: This application was **NOT** developed, created, or distributed by pixiv.