r/BookStack 12h ago

Is it possible to hide/block Viewers from Page Revisions?

3 Upvotes

As the title states, I am looking to know if it is possible to remove/hide the ability for viewers and public to get into the Page Revisions OR in the least not allow them to see the contents or any info regarding the changes or preview the older pages or the changelog notes?

...or does this need to be a feature request?


r/BookStack 2d ago

Saving my Bookstack data

7 Upvotes

tl;dr: I need some help restoring access to a bookstack's webgui or to learn how to take the information from the shell and move it to an instance of bookstack that I do have access to.

Good Afternoon. I have been working on rebuilding my homelab from scratch because I was all over the place when I first started. I also wanted to ensure that I documented my progress and decisions so one of the first things that I did was to use the PVE helper script for Bookstack to get it up quickly. I haven't gotten incredibly far, but I do have some good notes on my homelab, but also on some ESP32 projects that I was working on. As a part of all of this, I was working on an OPNsense box and I changed the default IP address to what I'm ultimately going to keep it at.

I changed the static IP address in Proxmox to match up with it, rebooted everything and I can get into proxmox and some other LXCs and VMs, but bookstack specifically won't load. Proxmox shows that it's running and I can get into the console and navigate the file system, but the bookstack gui won't load.

Thinking that it was a problem with how the hypervisor was connecting, I decided to try to make a clean break, I backed up all of my VMs and LXCs, reinstalled proxmox clean, restored everything, and it was the same story.

I went into the container file system, found the .env, changed the APP_URL, tried to run docker compose up -d, but apparently, despite there being a .env and docker-compose.yml file, there is no docker in the LXC. I tried rebooting with the .env file changed and nothing happened. I even tried changing the OPNsense IP addresses back and I can't access it.

The last thing I tried was running the helper script again to install a second, clean instance of bookstack (which I can access), but I am not sure how to get the data from one to the other.

I do know I should have just done this in docker from the get go but I had some (probably ignorant, but in my head logical) reasons not to do so and I planned on moving to such a setup later.

Does anyone have any advice on how I can access and restore, my original data?


r/BookStack 5d ago

Migrating Bookstack hosted in Docker to new host

3 Upvotes

Hi there,

I am very much inexperienced in the world of Docker and bookstack (somebody else set this up for me awhile back). I am hoping to get some guidance on achieving the following:

  • I currently have Bookstack hosted on an AWS EC2 instance, running Docker. I have three containers, one for the MariaDB, bookstack, and nginx.

  • I am simply looking to move my instance of Bookstack off AWS, and host it on a home server instead.

What I've done so far:

1) docker commit + docker save to grab a .tar for each of my containers. Downloaded these.

2) Exported the volume mount locations that has all of my data (following this guide: https://www.youtube.com/watch?v=QskmB4fb-uo)

3) Imported the images on the new host via docker load -i <image>

4) Attempted to run the containers.

This is about as far as I get. Currently the main error I am seeing is: "nc: getaddrinfo for host port 3306: Name does not resolve" this is for bookstack_db.

I am quite sure I'm either doing this wrong, or missing many steps in between. If anyone can provide more step-by-step guiderails on this process, that would be appreciated.

Regards


r/BookStack 7d ago

External links for the module system

9 Upvotes

Previously, I put together all my header customisations I had in a GitHub repo.

In the v26.05 release, there is now a way of using external links.

Therefore, I have added all hacks as standalone zips in the release section. So if you happened not to know what to do with the repo before or did not want to go through the hassle of downloading something. Now you can use the install command directly for whichever hack you want.

Example:
php artisan bookstack:install-module https://github.com/florinm03/bookstack-header-hacks/releases/download/v1.0.0/LaTeX-support.zip

Link to GitHub for the other ones:
https://github.com/florinm03/bookstack-header-hacks/releases/tag/v1.0.0

Hope this is useful for others too... :))


r/BookStack 7d ago

Kann man die Daten aus Bookstack einer KI zur Verfügung stellen?

0 Upvotes

Hallo zusammen,

ich bin noch neu im Thema Bookstack und überlege mir eine Wissensdatenbank aufzubauen.

Ist es möglich diese Daten einer lokalen KI zur Verfügung zustellen?

Wenn ja, wie und was muss ich machen und beachten damit dies funktioniert?

Mache ich das über die Datenbank oder kann ich die Bücher mit den Seiten bereitstellen?


r/BookStack 9d ago

11 Years of BookStack - Project Finances and Figures

Thumbnail
bookstackapp.com
45 Upvotes

r/BookStack 21d ago

BookStack Security Release v26.05.2: Upgrade advised for public instances or instances with non-trusted editors

Thumbnail
bookstackapp.com
14 Upvotes

r/BookStack 22d ago

Is this possible: hiding pages but still use them

1 Upvotes

Case Use:

I want to build out a KB for say family members. Inside of that I want to say have a "Cannot Find Remote". That would be the main page. From there that page may have the following:

  1. Cannot find TV Remote
    1. Family Room TV
    2. Master Bedroom TV
    3. Office TV
    4. Kids TV
    5. Outside TV
    6. Garage TV
  2. Cannot find Roku Remote
    1. Family Room Roku
    2. Master Bedroom Roku
    3. Kids TV
    4. Outside TV
  3. Cannot find Remotes (Other)
    1. Receiver Remote (Garage)
    2. LED Strip Remote (Kitchen)
    3. Fan Remote (Bedroom)

Each of those I want to have go to a page. The thing is, I don't want those pages to be visible or show up in a search. I just want to have the ability to use the navigation here to open a new tab and display the instructions there. Honestly each of those could have further instruction pages that I wish to show up.

Is that possible? I don't believe you cannot have pages that live outside of a book. I don't think permissions is the key because they need to be accessible, I just want to route the users the way I want to route so they are not overwhelmed with a wall of info.


r/BookStack 27d ago

Use local custom fonts

3 Upvotes

In the documentation on changing fonts, Google fonts has been used as an example. Is there any way to upload my own font files to the bookstack server and use those local fonts to customize the fonts completely offline?


r/BookStack Jun 22 '26

I made a github repo for an experiemental portable bookstack instance

8 Upvotes

https://github.com/schrebra/Bookstack-Portable-on-Windows

A fully automated PowerShell script that sets up a totally self-contained, portable installation of BookStack. A simple, self-hosted wiki and knowledge base, on Windows.

Tired of complicated software installs? This script takes care of absolutely everything, from downloading all the necessary dependencies to fine-tuning the performance. The result is a complete, ready-to-run environment packed neatly into a single folder.

  • The BookStack Control Center PowerShell script for super easy management of your portable instances.
  • The Bookstack Migration Tool Powershell script to make migrations from old Bookstacks to new Bookstack Editions

Let me know what you think.


r/BookStack Jun 22 '26

Q: Is there a way to search for the following:

1 Upvotes

I'm looking to massively expand what I am using BookStack for. Short version, add more information into it. I am wondering if there is a way to search for the following: (note: my examples are just made up but explain why I am looking to do what I am asking)

  1. Search for anything but exclude a particular shelf - Let's say I have a shelf that is just a sandbox of ideas and I want to search but exclude that shelf in the search as there may be overlap.
  2. Be able to search for Books that are not on a shelf - This one is kind of obvious in a way
  3. Be able to search for Books that are assigned to multiple shelves - This one is straight forward as well.

r/BookStack Jun 19 '26

Anyone know of public Bookstack instances out in the wild?

8 Upvotes

I like Bookstack and use it in a few places. When using self-hosted FOSS platforms like this I like to look around public instances to see how people use it. Anyone know of any?


r/BookStack Jun 19 '26

Auto-import Markdown (.md) files to Bookstack

15 Upvotes

So I run a home lab. Nothing crazy — a few VMs, some self-hosted services, the usual rabbit hole. And like any responsible sysadmin-wannabe, I decided I was going to document everything properly this time. No more "I'll remember how I set this up." No more sticky notes. Real documentation.

I found BookStack and immediately loved it. Clean UI, self-hosted, organizes stuff into shelves and books — perfect. I started writing docs like a maniac.

The problem? I write everything in Markdown. Always have. I've got Obsidian on my desktop, a OneDrive folder syncing across machines, little .md files everywhere. That's just how my brain works. And BookStack has a Markdown editor too, so I figured: great, I'll just paste stuff in.

And that worked. For about two weeks.

Then I updated a guide. And had to open BookStack, find the page, switch to the Markdown editor, select all, paste, save. Fine. Then I updated three guides in the same afternoon. Then I reorganized a folder and suddenly had fifteen files that needed updating.

I started making mistakes. Pasting the wrong version. Forgetting to save. Updating the wrong page. At some point I looked at my BookStack and my local files and they were completely out of sync and I genuinely didn't know which one was correct anymore.

The breaking point was a Saturday morning. I'd spent 40 minutes doing nothing but copy-pasting Markdown. Not writing docs. Not improving anything. Just... copy-pasting. Like a human clipboard.

So I closed BookStack, opened VS Code, and started writing a Python script.

The idea was simple: read my local .md files, push them to BookStack via the API, done. Except then I realized BookStack's page title is an <h1>, so all my # Headings were creating a visual mess. So I added heading demotion. Then I realized I had callout-style paragraphs like NOTE: blah blah that looked great in Obsidian but rendered as plain text in BookStack. So I added a callout converter. Then keyboard shortcuts. Then collapsible blocks. Then emoji shortcodes because why not.

And at some point I also added SHA-256 hashing to compare local content against what's already in BookStack — because I didn't want the script blindly overwriting pages that hadn't changed. That would've been annoying in its own way.

The whole thing kind of grew organically over a few weekends. I'd use it, hit an edge case, fix it, use it again.

Now I just run python main.py, confirm the pages that changed, and it's done in seconds. My local Markdown folder is my documentation. BookStack is just the pretty frontend.

Probably overkill for most people. But if you write your docs in Markdown and self-host BookStack, maybe it saves your Saturday morning too.

Repo is in the comments if anyone wants it. Use it, Share and Contribute if you can =]


r/BookStack Jun 18 '26

Can't send to apprise webhook

1 Upvotes

I am attempting to use Apprise notifications via the webhook. I've tested my url successfully from the command line, but I keep receiving a 400 error from Bookstack.

This is an example of my curl command that works:

curl -vX POST -F "body=test message" http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a/?tags=testing

Logs

[2026-06-18 12:20:06] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a/?tags=testing failed with status 400
[2026-06-18 12:20:31] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a/?tags=testing failed with status 400
[2026-06-18 12:21:05] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a/?tags=testing failed with status 400
[2026-06-18 12:42:29] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a failed with status 400
[2026-06-18 12:45:13] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a failed with status 400
[2026-06-18 12:45:21] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a failed with status 400
[2026-06-18 12:49:20] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a failed with status 400
[2026-06-18 12:56:06] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a/?tags=testing failed with status 400
[2026-06-18 12:56:23] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a/?tags=testing failed with status 400
[2026-06-18 12:56:23] production.ERROR: Webhook call to endpoint http://10.3.1.85:8090/notify/9f825d62cc1c487b80b7b5ae31c6ce836eb6b5450721dc19d773d253f288fc6a/?tags=testing failed with status 400

Running latest version of Bookstack in Docker.

TIA


r/BookStack Jun 18 '26

Add language name option for code boxes

0 Upvotes

Hi,

For anyone using Bookstacks code blocks(which is awesome, btw), we needed an odd feature, in my opinion, to show the language name for the code snippets in pages while viewing them!
So here it is :
<style>

.bs-code-lang-label {

display: inline-block;

position: relative;

z-index: 2;

margin-bottom: -1px;

padding: 3px 8px;

border: 1px solid #ddd;

border-bottom: 0;

border-radius: 4px 4px 0 0;

background: #f5f5f5;

color: #555;

font-size: 12px;

font-family: var(--font-code, monospace);

direction: ltr;

}

.dark-mode .bs-code-lang-label {

background: #222;

border-color: #444;

color: #ccc;

}

</style>

<script>

window.addEventListener('library-cm6::post-init', event => {

const {usage, editorView} = event.detail;

if (usage !== 'content-code-block') {

return;

}

const wrapper = event.target;

if (!wrapper.closest('.page-content, .comment-box .content')) {

return;

}

if (wrapper.querySelector('.bs-code-lang-label')) {

return;

}

const originalPre = wrapper.nextElementSibling;

const codeElem = originalPre?.querySelector('code[class^="language-"]');

if (!codeElem) {

return;

}

const langClass = [...codeElem.classList].find(c => c.startsWith('language-'));

if (!langClass) {

return;

}

const rawLang = langClass.replace('language-', '').toLowerCase();

const langNames = {

php: 'PHP',

py: 'Python',

python: 'Python',

go: 'Go',

powershell: 'PowerShell',

ps1: 'PowerShell',

bash: 'Bash',

shell: 'Shell',

sh: 'Shell',

javascript: 'JavaScript',

js: 'JavaScript',

typescript: 'TypeScript',

ts: 'TypeScript',

json: 'JSON',

yaml: 'YAML',

yml: 'YAML',

html: 'HTML',

css: 'CSS',

sql: 'SQL',

mysql: 'MySQL',

mssql: 'MSSQL',

postgresql: 'PostgreSQL',

pgsql: 'PostgreSQL',

xml: 'XML',

nginx: 'Nginx',

markdown: 'Markdown',

md: 'Markdown'

};

const label = document.createElement('div');

label.className = 'bs-code-lang-label';

label.textContent = langNames[rawLang] || rawLang.toUpperCase();

wrapper.insertBefore(label, editorView.dom);

});

</script>

I'm not sure whether the recent versions have this, since I'm not currently using the latest.


r/BookStack Jun 15 '26

Page template with pictures

2 Upvotes

I have the following problem: I created a page that includes a placeholder picture and some text and then I marked this page as template and saved it. When I use this template in a new page, I want to replace the placeholder picture, so I click on the picture and upload a new one. The placeholder gets replace, I save the page, but when I click on the picture, I get the full-size placeholder picture, not the new one. Is this a bug or do I something wrong?


r/BookStack Jun 09 '26

BookStack Security Release v26.05.1 - Upgrade is advised for instances with public viewing enabled, or where untrusted users have authenticated access.

Thumbnail
bookstackapp.com
18 Upvotes

r/BookStack Jun 06 '26

Is zulip accepted by users as community tools?

0 Upvotes

Hi,

I'm building a small community where people can share ideas, notes, articles, tools and discuss markets and technology.

I started looking at Discord because it's familiar to everyone, but I'm wondering if Zulip might be a better fit for more structured discussions. I also like the self-hosted aspect and the possibility of integrating it with my own tools.

My main question is simple: do people actually adapt to Zulip easily, or is the learning curve a significant barrier compared to Discord?


r/BookStack Jun 03 '26

ID des livres et des chapitres

3 Upvotes

Bonjour,

Pourquoi limiter aux seules pages les id Bookstack ? Parce que vu la taille exponentielle à laquelle se remplissent nos documentations, le renvoi ID des Livres et des Chapitres est devenu tout aussi nécessaires.

Merci à tous et à Dan pour cet excellent travail. Vive Bookstack !


r/BookStack Jun 02 '26

Integration with openwebui

2 Upvotes

Very random, but I vibecoded a simple integration that scrapes your Bookstack and pushes it into openwebui knowledge.

https://github.com/open-webui/oikb

https://github.com/open-webui/open-webui/releases/tag/v0.9.6

Look this morning, and they pushed an update that includes native KB integrations with like 40 things. Oh well. YMMV but heres mine if you want something simple:

https://github.com/yoshee08/openwebui_mods/tree/main/Openwebui%20Knowledge


r/BookStack May 29 '26

Bookstack statistics for tracking usage

6 Upvotes

I've been looking and haven't been able to find a way to get any statistics reported on our Bookstack instance. Specifically, we would like to be able to get a count of how many current shelves, books, and pages are in the bookstack, as well as how many users have logged in in the last week, and how many new pages created and pages updated in the last week or possibly variable timeframe.

We are simply looking to track internal utilization of the new Bookstack we've set up, and see if our users are actively using it like we hope they will.


r/BookStack May 29 '26

BookStack Searches

2 Upvotes

I inherited a couple of BookStack installations and I am not able to get the search function to work properly on any of them.

No mater what term I put in the search box at the top of the page or using the detailed search page, all pages in the BookStack are returned.

Does anyone have an idea on where I can start troubleshooting on this?


r/BookStack May 28 '26

BookStack v26.05: Editor contents menu, new WYSIWYG improvements, custom PDF fonts, admin MFA reset, tag API & more

Thumbnail
bookstackapp.com
40 Upvotes

r/BookStack May 25 '26

Favourite Features / Hacks

10 Upvotes

Hey folks,

I'm going to be running a presentation on Bookstack in a few days at an upcoming IT Education conference regarding useful and valued implementations.
I know that our own implementation is fairly vanilla, and wanted to check with the wider world about your favourite hacks or features that I might be unaware of.

Anything and everything, from accessibility, to appearance, to data resiliency.
Even if you think it's a basic feature, or not terribly interesting on the first pass, that might be exactly what I'm looking for.
Knowledge Bases are a sliced bread kind of technology- not fancy, not sexy, but I'll be damned if they aren't the best thing ever.

Appreciate everyone's contributions!


r/BookStack May 21 '26

BookStack Security Release v26.03.5 - Upgrade advised, especially where MFA is used as a critical layer of defense

Thumbnail
bookstackapp.com
15 Upvotes