Skip to content
This repository was archived by the owner on Nov 10, 2026. It is now read-only.
Alacrity-EducationPublic archive
forked from requarks/wiki

About

Fork of Wiki.js | A modern and powerful wiki app built on Node.js

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

 
 

Repository files navigation

This fork contains a few changes to the permissions system. Most of them are were contributed to upstream, but not accepted, in PR8013. We have since migrated to V3 and will contribute similar features in the future.

Wiki.js

Release License Standard - JavaScript Style Guide Build + Publish
GitHub Sponsors Open Collective backers and sponsors Downloads Docker Pulls
Chat on Discord Follow on Bluesky Follow on Telegram Reddit

A modern, lightweight and powerful wiki app built on NodeJS

Alacrity-Education Fork

This fork fixes how Wiki.js evaluates page rule specificity when a user belongs to multiple groups with overlapping rules.

Problem: The upstream code compares rule specificity using raw string length (rule.path.length), causing higher-priority match types to lose against longer path strings.

Fix: Each match type now gets a deterministic specificity score. The full priority chain, from lowest to highest:

  1. Path Starts With — segments + separators (e.g. Projects/secret = 3)
  2. Path Ends With — same formula + 0.5
  3. Path Matches Regex — MAX_SAFE_INTEGER - 2
  4. Tag Matches — MAX_SAFE_INTEGER - 1
  5. Path is Exactly — MAX_SAFE_INTEGER

At equal specificity, DENY overrides ALLOW. No other tie-breaking is needed.

Page tree fix: The upstream tree resolver passes only path and locale to access checks, making TAG and REGEX rules invisible in the sidebar. This fork fetches each page's tags from the database and passes them through. Folders that would otherwise be hidden are shown if any descendant page passes the access check, so tag-only or regex-only rules still produce a navigable tree.

Docker images are published to ghcr.io/alacrity-education/wikijs.


Follow our Twitter feed to learn about upcoming updates and new releases!

Donate

Wiki.js is an open source project that has been made possible due to the generous contributions by community backers. If you are interested in supporting this project, please consider becoming a sponsor, becoming a patron, donating to our OpenCollective, via Paypal or via Ethereum (0xe1d55c19ae86f6bcbfb17e7f06ace96bdbb22cb5).

Become a Sponsor Become a Patron Donate on OpenCollective Donate via Paypal
Donate via Ethereum Donate via Bitcoin Buy a T-Shirt

Gold Tier Sponsors

GitHub Sponsors

Support this project by becoming a sponsor. Your name will show up in the Contribute page of all Wiki.js installations as well as here with a link to your website! [Become a sponsor]

Alexander Casassovici
(@alexksso)
Broxen
(@broxen)
Dacon
(@xDacon)
Maxime Pierre
(@DonNabla)
Jay Daley
(@JayDaley)
Oleksii
(@idokka)
Shane Kearney
(@shanekearney)

OpenCollective Sponsors

Support this project by becoming a sponsor. Your logo will show up in the Contribute page of all Wiki.js installations as well as here with a link to your website! [Become a sponsor]

Patreon Backers

Thank you to all our patrons! 🙏 [Become a patron]

  • Aeternum
  • Al Romano
  • Alex Balabanov
  • Alex Milanov
  • Alex Zen
  • Arti Zirk
  • Ave
  • Brandon Curtis
  • Damien Hottelier
  • Daniel T. Holtzclaw
  • Dave 'Sri' Seah
  • djagoo
  • dz
  • Douglas Lassance
  • Ergoflix
  • Ernie Reid
  • Etienne
  • Flemis Jurgenheimer
  • Florent
  • Günter Pavlas
  • hong
  • Hope
  • Ian
  • Imari Childress
  • Iskander Callos
  • Josh Stewart
  • Justin Dunsworth
  • Keir
  • Loïc CRAMPON
  • Ludgeir Ibanez
  • Lyn Matten
  • Mads Rosendahl
  • Mark Mansur
  • Matt Gedigian
  • Mike Ditton
  • Nate Figz
  • Patryk
  • Paul O'Fallon
  • Philipp Schürch
  • Tracey Duffy
  • Quaxim
  • Richeir
  • Sergio Navarro Fernández
  • Shad Narcher
  • ShadowVoyd
  • SmartNET.works
  • Stepan Sokolovskyi
  • Zach Crawford
  • Zach Maynard
  • 张白驹

OpenCollective Backers

Thank you to all our backers! 🙏 [Become a backer]

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Special Thanks

Browserstack
Browserstack for providing access to their great cross-browser testing tools.

Cloudflare
Cloudflare for providing their great CDN, SSL and advanced networking services.

DigitalOcean
DigitalOcean for providing hosting of the Wiki.js documentation site and APIs.

Icons8
Icons8 for providing access to their beautiful icon sets.

Lokalise
Lokalise for providing access to their great localization tool.

MacStadium
MacStadium for providing access to their Mac hardware in the cloud.

Netlify
Netlify for providing hosting for our website.

ngrok
ngrok for providing access to their great HTTP tunneling services.

Porkbun
Porkbun for providing domain registration services.

About

Fork of Wiki.js | A modern and powerful wiki app built on Node.js

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages