# WikiJS

Wiki.js is a wiki for people whose documentation wants to live in Git. Pages are markdown, the page tree is a directory tree, and the **two-way Git sync** means an edit in the browser becomes a commit, while a commit pushed from your laptop becomes a page. That single feature is why most people choose it.

Around that it puts a genuinely good editing experience: a markdown editor with live preview, a visual editor for people who'd rather not, a full-text search engine, comments, and a permission system granular enough to run a public documentation site and a private internal section from the same instance.

Good fits: documentation for an open-source project, a technical handbook you want reviewable as diffs, or a personal knowledge base you'd like to keep in a repo you control.

[Get a 7-day trial of ElfHosted WikiJS! 🪄](<https://store.elfhosted.com/product/wikijs/>)

## How do I access WikiJS?

WikiJS is available:

- From your dashboard: [https://your-username.elfhosted.com](<https://your-username.elfhosted.com>)
- Directly: [https://your-username-wikijs.elfhosted.com](<https://your-username-wikijs.elfhosted.com>)

> [!NOTE]
>
> **Signed-in users see their own URLs**
>
> The addresses above show the general pattern. [Sign in](<https://docs-internal.elfhosted.com/app/wikijs/>) and these become your personal, clickable links.

## How do I use it?

### First run

Wiki.js runs its database migrations before it starts serving, so the first launch takes a minute or two longer than later ones. When it comes up you'll get the setup wizard: create your administrator account, name the wiki, and you're in.

### Setting up Git sync

This is the feature worth configuring on day one, under **Administration → Storage → Git**:

1. Create an empty repository on GitHub, GitLab, or wherever you like.
2. Generate a deploy key or personal access token with write access.
3. Point Wiki.js at the repository URL and paste the credentials.
4. Choose the sync direction. **Bi-directional** is the interesting one; **push to origin** alone is a decent backup story on its own.

Once it's running, every page save becomes a commit. Clone the repo and you have your entire wiki as markdown files, editable in whatever editor you like, and pushing back updates the wiki.

### Sharing it with people who don't have ElfHosted accounts

By default Wiki.js sits behind ElfHosted's SSO (*ForwardAuth*), so its own login is a second layer on top and only you can reach it.

To publish your wiki, or open it to collaborators who aren't ElfHosted customers, use [ElfBot](<https://docs-internal.elfhosted.com/app/elfbot/>) to set `wikijsexposed.enabled: true`. That drops the ElfHosted auth layer, leaving Wiki.js's own login and permission model in charge.

Before you do that, go to **Administration → Groups** and check what the built-in **Guests** group can see. Wiki.js's defaults are sensible, but "sensible" still deserves a look before the internet gets a vote. Turn off self-registration under **Administration → Auth** unless you actively want it.

### Editors

Each page picks its own editor, so a markdown page and a visual-editor page can live side by side. Markdown is the right default if you're syncing to Git, since it's what lands in the repo. Wiki.js also handles AsciiDoc and raw HTML.

### Themes and navigation

The sidebar navigation can be automatic (mirroring the page tree) or hand-curated, which is worth switching to once you have more than a couple of dozen pages.

### Wiki.js or BookStack?

- **Wiki.js** is markdown-native, Git-backed, and flexible about hierarchy. Best when docs sit alongside code and you want them version-controlled.
- **[BookStack](</app/bookstack/>)** is prescriptive (shelves, books, chapters), WYSIWYG-first, and has no Git. Best when your contributors aren't all developers.

Running both is a perfectly reasonable answer, and they're separate products here.

## WikiJS also works with

- [x] [BookStack](</app/bookstack/>)
- [x] [FoundryVTT](</app/foundryvtt/>)

## How do I get support for WikiJS?

1. For general use of WikiJS, refer to the [official site](<https://js.wiki/>) or to one of the links in the resources section below.
2. For specific support re your ElfHosted configuration / account, see the [ElfHosted support options](</get-help/>)!

## Sponsor WikiJS ❤️

You can contribute directly to the development of WikiJS using the following:

- [GitHub Sponsors](<https://github.com/sponsors/NGPixel>)
- [Open Collective](<https://opencollective.com/wikijs>)

## WikiJS resources

- [WikiJS (*official site*)](<https://js.wiki/>)
- [WikiJS GitHub](<https://github.com/requarks/wiki>)
- [WikiJS Documentation](<https://docs.requarks.io/>)
