No description
Find a file
2024-12-04 18:46:54 +11:00
.forgejo/issue_template rm unused forgejo workflow 2024-09-17 00:58:27 +10:00
.woodpecker rm crowdin workflow in CI revival attempt 2024-10-23 00:04:41 +11:00
assets some artwork page restyling 2024-12-04 18:46:54 +11:00
audit audit: create sugared logger 2024-10-21 15:26:24 +11:00
config cache-control tests 2024-12-04 12:27:57 +11:00
core Index: backend for completed requests 2024-12-02 20:49:03 +07:00
doc cache-control tests 2024-12-04 12:27:57 +11:00
i18n set strong ETag for responses 2024-12-04 02:05:54 +11:00
server disable Pixivfe-Revision resp header 2024-12-04 17:28:10 +11:00
test Add test case for users without artworks 2024-10-19 19:54:42 +07:00
.env.example cache-control tests 2024-12-04 12:27:57 +11:00
.gitignore exclude sonar-scanner-cli output 2024-10-20 17:03:52 +11:00
build.sh version bootstrap-style.css and add version_css to build.sh 2024-12-04 18:06:44 +11:00
Caddyfile caddy: enable encoding 2024-10-09 23:51:53 +11:00
compose.stack.yaml Create compose.stack.yaml 2024-10-09 15:00:32 +11:00
compose.testing.yaml Create compose.testing.yaml 2024-09-25 18:34:51 +10:00
compose.yaml use long syntax in compose.yaml 2024-09-16 23:31:38 +10:00
crowdin.yml crowdin.yml: project_id is a string 2024-10-11 14:07:17 +11:00
default.vcl Create compose.stack.yaml 2024-10-09 15:00:32 +11:00
Dockerfile fix borked Docker builds 2024-10-12 04:00:32 +11:00
Dockerfile.testing Actually fix caching in Dockerfile.testing 2024-09-25 18:40:18 +10:00
go.mod refactor core/artwork to use sync/errgroup 2024-10-25 16:41:41 +11:00
go.sum refactor core/artwork to use sync/errgroup 2024-10-25 16:41:41 +11:00
LICENSE Init 2024-01-01 19:31:31 +07:00
main.go move router to separate package 2024-10-25 15:47:37 +11:00
mkdocs.yml docs: update mkdocs.yml nav 2024-12-03 18:24:23 +11:00
README.md Promote pixiv.perennialte.ch to 'official instance' 2024-12-03 21:43:50 +07:00
semgrep.yml use http client from utils 2024-10-05 15:32:10 +00:00
staticcheck.conf Make error messages more consistent 2024-02-24 15:31:22 +00:00

PixivFE

A open source alternative frontend for Pixiv.

Notice: PixivFE now has a public room on Matrix, join here!

Get it on Codeberg

CI badge Go Report Card Crowdin

Docker Pulls Docker Stars

Questions? Feedback? You can PM me or join our room 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 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 To build PixivFE from source Yes Use system package manager (go)
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 To extract i18n strings No, unless you want to modify the source code or build translation files Use system package manager (jq)
semgrep 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
Crowdin CLI To upload and download i18n strings. No, unless you are a core developer See our documentation

To install Dart Sass, you can choose any of the following methods.

Then, run the project:

# 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 <other_environment_variables> ./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.
<other_environment_variables> ./build.sh run

Hosting PixivFE

To deploy PixivFE using Docker or the compiled binary, see 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. 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 AU No MDN HTTP Observatory Grade Status
dragongoose https://pixivfe.drgns.space US No MDN HTTP Observatory Grade Status
ducks.party https://pixivfe.ducks.party NL No MDN HTTP Observatory Grade Status
darkness.services https://pixivfe.darkness.services US Yes MDN HTTP Observatory Grade Status
thebunny.zone https://pixivfe.thebunny.zone HR No MDN HTTP Observatory Grade Status
thebunny.zone (🧅) http://pixivfe.bunny5exbgbp4sqe2h2rfq2brgrx3dhohdweonepzwfgumfyygb35wyd.onion HR No MDN HTTP Observatory Grade Status

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 an 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.

Credits

This project was made possible thanks to:

Special thanks to: the exozyme community, Codeberg, stargazers, and all participants in the issue tracker!


Disclaimer: This application was NOT developed, created, or distributed by pixiv.