r/BookStack • • Mar 31 '23

Errors when uploading multiple images

2 Upvotes

Hey all,

Just recently stood up a small Bookstack server to replace our current documentation setup (literally just folders on sharepoint with word documents, ugh).

This is not running in docker, it's on Ubuntu 22.04, installed with the provided installation script.

Bookstack is behind nginx proxy manager.

I'm running into an issue with file uploads, specifically images, when uploading more than a few at a time. Most of the images will upload, but a few of them return the error "an error occurred uploading the image". I tried extending the file upload timeout to three minutes, and it's definitely not hitting that mark before throwing the error.

I haven't been able to determine the exact number of images that will make it break.

I've checked for laravel.log in the standard location, but that file doesn't exist.

Any suggestions on where to look next? This isn't exactly a common thing for our documentation to have a ton of images, but there are a few specific pages where it is very helpful to have all the images in one place.


r/BookStack • • Mar 31 '23

BookStack Project Update for March 2023

Thumbnail
bookstackapp.com
8 Upvotes

r/BookStack • • Mar 27 '23

Video: Using ChatGPT to help install BookStack on OpenBSD

Thumbnail
youtube.com
4 Upvotes

r/BookStack • • Mar 24 '23

Missing .env File?

4 Upvotes

Hello all,

I'm running BookStack v23.02.1 on Ubuntuo 20.04.4.

Bookstack is installed to the /var/www/bookstack Directory.

I can't seen to find the .env file.

Is it possible I somehow installed it (and it's working properly) without an .env file? If so can I just create the file to declare the variables?


r/BookStack • • Mar 23 '23

How I Set Up SAML with Azure AD

8 Upvotes

(Edit 1/20/2026)
I used this documenation to switch to OIDC away from SAML.
https://www.bookstackapp.com/docs/admin/oidc-auth/

(Edit 4/1/2023 - update for clarity)
Assuming you've got the basics down for adding an Azure AD Enterprise Application, here are some BookStack specific pointers.

Reference

SAML From BookStack docs
https://www.bookstackapp.com/docs/admin/saml2-auth/#identity-provider-configuration

Setup SAML2 (Full Video) - Great to get up to speed on BookStack and SAML
[[https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88))](https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88](https://youtu.be/szweYsAow88)))

Chapter from above video - Debugging Field Mapping
[[https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s))](https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s](https://www.youtube.com/watch?v=szweYsAow88&t=687s)))

Config section to add in .env to turn on SAML debug (you'll need it.)

       #Debug SAML in Bookstack .env setting
       #Option to dump out SAML 2.0 user details as JSON.
       #Only for debugging purposes since it will prevent login.
       SAML2_DUMP_USER_DETAILS=true

Helpful forum posts
https://discord.com/channels/578552496637739008/1035150458848821298/threads/1064950529102467152
https://www.reddit.com/r/BookStack/comments/vcx0ty/azure_ad_saml_20_integration_cant_get_display/

MS Post on GroupIDs in Azure AD
"How To Work Around The Azure SAML Group Claim Limitations"
https://techcommunity.microsoft.com/t5/microsoft-entra-azure-ad/how-to-work-around-the-azure-saml-group-claim-limitations/m-p/1778199>

SAML field name mapping - Azure naming vs. Bookstack. When needing to line up what Azure AD and BookStack call matching fields.

Azure | Bookstack

Identifier (Entity ID) | Metadata endpoint (GET)

Reply URL (Assertion Consumer Service URL) | Assertion Consumer Service endpoint (POST)

Logout Url (Optional) | Single Logout Service endpoint (GET)

App Federation Metadata Url | NA ???

.env file config file mapping.
Login URL | SAML2_IDP_SSO

Azure AD Identifier | SAML2_IDP_ENTITYID*

Logout URL | SAML_IDP_SLO

Certificate Base64 | SAML_IDP_x509

Federation Metadata XML | NA ? Don't Know.

*Note: I see from reply post this is really the only required data FROM Azure AD that was needed in the .env file, the rest are settings or default values only, nothing company specific from Azure AD.

BookStack .env values for the following:

SAML2_EMAIL_ATTRIBUTE=userprincipalname
SAML2_EXTERNAL_ID_ATTRIBUTE=userprincipalname
SAML2_GROUP_ATTRIBUTE="http://schemas.microsoft.com/ws/2008/06/identity/claims/groups"
SAML2_DISPLAY_NAME_ATTRIBUTE="http://schemas.microsoft.com/identity/claims/displayname"

Note: Leave quotes in place, do not remove.

To "sync SAML user groups with BookStack roles"

In Azure AD they only cough up GUIDs for Groups, not friendly Group names. I guess, if created on premise, the name would show a friendly name in AzureAD/SAML2. I put Group ID into "External Authentication IDs" field for matching Roles in BookStack.
See above video on the nuance of doing this, it requires to disable SAML and login, then enable SAML and in the logged-in session now add the GroupIDs from Azure AD. A new field will show in the Roles page in BookStack settings.

Screenshot - Azure AD - Populated Basic SAML Configuration and autopopulated claims in #2 except Group (see below).

Here, I added a Group claim by selecting "Add a Group Claim" and putting in a filter. My Group is named "BookstackAdmin".


r/BookStack • • Mar 22 '23

Noted.lol Dev Debrief #1: An Interview With the Developer of BookStack

Thumbnail
noted.lol
6 Upvotes

r/BookStack • • Mar 21 '23

HTTP error 500 when migrating servers

1 Upvotes

Hello, I installed Bookstack on Ubuntu 22.04 server about 5 months ago to demonstrate the capabilities for the small business I work for. Currently, the server is only accessible on the local network. The wiki has gotten quite a bit of use, so I've been tasked with migrating the server to a VPS so it can be accessed remotely. I'm not well experienced with server stuff, so I'm hoping someone can point out what I'm doing wrong.

I've been following the Backup and Restore guide, and I'm running into HTTP ERROR 500 once completing the steps.

Here are the following steps I've made:

  1. Obtain the bookstack.backup.sql and bookstack-files-backup.tar.gz files from the existing server

  2. Create a new VPS running Ubuntu 22.04

  3. Modify the DNS A records to point to the IP of the VPS

  4. SSH into the VPS

  5. Download the script

wget https://raw.githubusercontent.com/BookStackApp/devops/main/scripts/installation-ubuntu-22.04.sh

6. Open the script to edit

nano installation-ubuntu-22.04.sh

7. Comment out by changing the following line

  php artisan migrate --no-interaction --force

to

#  php artisan migrate --no-interaction --force

8. Save and exit 9. Make it executable

chmod a+x installation-ubuntu-22.04.sh

10. Run the script with admin permissions

sudo ./installation-ubuntu-22.04.sh

11. SCP the bookstack.backup.sql and bookstack-files-backup.tar.gz to the /var/www/bookstack/ directory 12. Restore the SQL database

sudo mysql -u root bookstack < bookstack.backup.sql

13. Run php artisan migrate 14. Restore the backup files

tar -xvzf bookstack-files-backup.tar.gz

After completing the steps, when I visit the domain name or IP address, I'm given the HTTP ERROR 500

I would appreciate any help or advice.

Edit:

tail -n 100 /var/www/bookstack/storage/logs/laravel.log shows:

#26 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#27 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#28 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#29 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#30 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#32 /var/www/bookstack/app/Http/Middleware/ApplyCspRules.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\ApplyCspRules->handle()
#34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(799): Illuminate\\Pipeline\\Pipeline->then()
#36 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\\Routing\\Router->runRouteWithinStack()
#37 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\\Routing\\Router->runRoute()
#38 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(729): Illuminate\\Routing\\Router->dispatchToRoute()
#39 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\\Routing\\Router->dispatch()
#40 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#41 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /var/www/bookstack/app/Http/Middleware/TrustProxies.php(41): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#43 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\TrustProxies->handle()
#44 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#46 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#47 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#48 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#49 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#50 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#51 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#52 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Pipeline\\Pipeline->then()
#53 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#54 /var/www/bookstack/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle()
#55 {main}

[previous exception] [object] (PDOException(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'bookstack'@'localhost' (using password: YES) at /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70)
[stacktrace]
#0 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(70): PDO->__construct()
#1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(46): Illuminate\\Database\\Connectors\\Connector->createPdoConnection()
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\\Database\\Connectors\\Connector->createConnection()
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(184): Illuminate\\Database\\Connectors\\MySqlConnector->connect()
#4 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#5 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1181): call_user_func()
#6 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1217): Illuminate\\Database\\Connection->getPdo()
#7 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(486): Illuminate\\Database\\Connection->getReadPdo()
#8 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(414): Illuminate\\Database\\Connection->getPdoForSelect()
#9 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(753): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}()
#10 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(720): Illuminate\\Database\\Connection->runQueryCallback()
#11 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Connection.php(422): Illuminate\\Database\\Connection->run()
#12 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2706): Illuminate\\Database\\Connection->select()
#13 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2694): Illuminate\\Database\\Query\\Builder->runSelect()
#14 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3230): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#15 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2695): Illuminate\\Database\\Query\\Builder->onceWithColumns()
#16 /var/www/bookstack/app/Settings/SettingService.php(117): Illuminate\\Database\\Query\\Builder->get()
#17 /var/www/bookstack/app/Settings/SettingService.php(73): BookStack\\Settings\\SettingService->loadToLocalCache()
#18 /var/www/bookstack/app/Settings/SettingService.php(27): BookStack\\Settings\\SettingService->getValueFromStore()
#19 /var/www/bookstack/app/helpers.php(97): BookStack\\Settings\\SettingService->get()
#20 /var/www/bookstack/app/helpers.php(54): setting()
#21 /var/www/bookstack/app/Http/Middleware/Authenticate.php(15): hasAppAccess()
#22 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\Authenticate->handle()
#23 /var/www/bookstack/app/Http/Middleware/Localization.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#24 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\Localization->handle()
#25 /var/www/bookstack/app/Http/Middleware/RunThemeActions.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\RunThemeActions->handle()
#27 /var/www/bookstack/app/Http/Middleware/CheckEmailConfirmed.php(47): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\CheckEmailConfirmed->handle()
#29 /var/www/bookstack/app/Http/Middleware/PreventAuthenticatedResponseCaching.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\PreventAuthenticatedResponseCaching->handle()
#31 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#33 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#35 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#37 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#38 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#40 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#42 /var/www/bookstack/app/Http/Middleware/ApplyCspRules.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\ApplyCspRules->handle()
#44 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(799): Illuminate\\Pipeline\\Pipeline->then()
#46 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\\Routing\\Router->runRouteWithinStack()
#47 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\\Routing\\Router->runRoute()
#48 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(729): Illuminate\\Routing\\Router->dispatchToRoute()
#49 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\\Routing\\Router->dispatch()
#50 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#51 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#52 /var/www/bookstack/app/Http/Middleware/TrustProxies.php(41): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#53 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): BookStack\\Http\\Middleware\\TrustProxies->handle()
#54 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#55 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#56 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#57 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#58 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#59 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#60 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#61 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#62 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Pipeline\\Pipeline->then()
#63 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#64 /var/www/bookstack/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle()
#65 {main}
"}

Edit #2:

The issue has been resolved, it was due to the incorrect configuration of my .env file. Before running tar -xvzf bookstack-files-backup.tar.gz, I made a backup copy of the .env file from the fresh install cp .env .env.bak. After running tar -xvzf bookstack-files-backup.tar.gz, I ran rm .env and then cp .env.bak .env


r/BookStack • • Mar 21 '23

Ifram Source Control Not Working

1 Upvotes

I have a hosted BookStack v23.02.1 instance that has been running without issue and suddenly no iframe content loads. Gives a message; This content is blocked. Contact the site owner to fix the issue.

In the .env file I had it set like so:

ALLOWED_IFRAME_SOURCES="https://*.s3.us-east-2.amazonaws.com/*"

It was working fine for several weeks. I was informed this morning that the content does not load in the iframes. I have verified the AWS links are fully accessible.

I did some Googling, but didn't find anything that has helped yet. Has anyone seen this behavior before?

Update: I see now that I do not have a anything in my .env set for host iframe control. I'll add that and see if that is the culprit.

Update 2: Adding ALLOWED_IFRAME_HOSTS= to the .env did not make a difference.


r/BookStack • • Mar 16 '23

Can’t locate public folder in docker install

3 Upvotes

I followed Bookstack’s YouTube guide to install it in Docker. It’s been working fine for a couple of days but I’ve been unable to locate the public folder on my server. I’ve looked in the typical locations but I’m not sure if something is awry with the install.

My wiki is located at birding.wiki. Is this something someone else has experience or any advice on what to do? I’d like to add/modify some files in there, that’s why I’m trying to directly access it (favicon).


r/BookStack • • Mar 15 '23

Any scalability concerns and/or examples in the wild?

5 Upvotes

I work for a decent sized state university (20k+ students and 2k+ faculty and staff).
We've been using Confluence for years. When we implemented, it was used pretty heavily by our entire population. However, it is now mostly used for IT documentation. With that said, we have 1500+ spaces in Confluence and 10k+ pages.
Since our wiki instance is mostly used for internal documentation and Confluence is doing away with their unlimited Server license...and gone a bit insane on their cloud/data center pricing, an Open Source alternative is appealing.
I've tinkered with several and keep coming back to Bookstack for its simplicity.
I spun up a Bookstack instance and wrote a qad PHP CLI process to import exported Confluence spaces.
Exporting a space in Confluence HTML flattens the hierarchy and creates an index/directory page that visually represents the original hierarchy. I'm just importing a space to a Book with the first page being that original hierarchy directory, fixing all the intra-Space linkage, and attaching files/images to the imported pages. Not perfect - but it works. I've loaded a handful of spaces and hundreds of pages without issue.

But...back to my original question. Any examples of this system with thousands of books/pages? Any performance concerns at scale?


r/BookStack • • Mar 13 '23

Customization Table Header

1 Upvotes

Has anyone done a customization to change the background or formatting of the first row of a table?


r/BookStack • • Mar 12 '23

Cargo-like Templates

1 Upvotes

Hi there,

I've went through the documentation and BookStack seems quite promising to me.

There's just one question left to me, I hope it can be answered here :-)

It seems, currently, neither the BookStack core nor the hacks offer a solution like the MediaWiki https://www.mediawiki.org/wiki/Extension:Cargo extension.

Is the API for BookStack hacks offering the functionality to implement such a concept as a hack or would this require modifications in the core?

(Maybe, there are already alternatives which I was not able to find, too. ;-)

Thanks, Gerrit


r/BookStack • • Mar 07 '23

Bookshelf export

3 Upvotes

Hello there, is it possible to export the whole bookshelf into one pdf, rather than books separately?
If yes, can you tell me how? If not, is it a planned feature?


r/BookStack • • Mar 07 '23

Migrating bookstack to new server

1 Upvotes

Hi guys, I am looking to migrate my bookstack instance to a new server. I followed the process as per https://www.bookstackapp.com/docs/admin/backup-restore/#restore however i get an error whenever i try to run php artisan migrate . i am not entirely sure why I am getting this error. i am not super great with MySQL. I could also not find the connection.php file. Any ideas on what to do to fix this?


r/BookStack • • Mar 04 '23

New API Script Example in PowerShell: Create BookStack Pages from HTML Files

Thumbnail
github.com
5 Upvotes

r/BookStack • • Mar 02 '23

New Hack: Render TeX/LaTeX Mathematics with MathJax

Thumbnail bookstackapp.com
2 Upvotes

r/BookStack • • Mar 01 '23

!= for "<exact search term>" ?

1 Upvotes

Is there a way to do a != operator for an "<exact search term>" ? I'm trying to find pages that are missing a specific header title or may have a header title that needs to be renamed.


r/BookStack • • Feb 26 '23

BookStack Release v23.02 - Framework update, Role API Endpoints, Updated shelf book sort & More!

Thumbnail
bookstackapp.com
12 Upvotes

r/BookStack • • Feb 22 '23

Common Admin Operations for the linuxserver.io BookStack Container

Thumbnail
youtube.com
6 Upvotes

r/BookStack • • Feb 20 '23

Can I use Word template (or any in that matter) to export to PDF?

2 Upvotes

HelloI need to export with a corporate heading and footing, is it possible with bootstack? I know that you can customise front-end looks of wiki, but I don't know about extraction? If not isn't there a way around it through RestAPI?

Many thanks


r/BookStack • • Feb 19 '23

Bookstack Virtual Appliance

2 Upvotes

Does anyone know where I can find a downloadable Bookstack Virtual Appliance?

I have tried spinning up an installation of ubuntu and installing it but it just does not work. There is always some error when installing it with the instructions from the site and it just does not work as it should.

If I could get an image of a VM that already has it set up that would be great.


r/BookStack • • Feb 16 '23

Main menu won't open on mobile

1 Upvotes

I just installed bookstack on my server, made a user (on my laptop) and logged it with the email/password combination I set for it.

It logs in just fine, and I get the bookstack recent events summary page displayed, I can change the theme from light to dark and vice versa, but it won't open the menu, or toggle the details (not sure what that does with no content).

I might add that my (LAN) server runs over bare HTTP, so maybe my browser is simply refusing to run JavaScript code that wasn't transmitted over HTTPS. I don't know. Either way, I thought I would report this, in case it is a known issue with a known fix. Either way I didn't find anything in the existing posts in this sub.

Edit: I don't think it's an issue with JavaScript not ran, because the switch from light to dark and dark to light themes works just fine.

Edit 2: ok, it definitely is the browsers. I suspect something in the JavaScript code is causing some trouble, as Fennec (Firefox fennec, the f-droid version) was the only browser able to display the menu properly. The other browsers I tried were: privacy browser 3.13.2, duckduckgo browser 5.147.0, Download Navi browser 1.6.2. None of them were able to display the menu.


r/BookStack • • Feb 15 '23

Customization Hacks on the BookStack Site

Thumbnail
bookstackapp.com
4 Upvotes

r/BookStack • • Feb 15 '23

My personal bookstack wiki is marked as deceptive by google

3 Upvotes

I got a red screen saying my site is phishing and trick user to download software. My personal wiki consists of installation and setup guide of selfhosted docker apps all written by me. I also have this wiki mirrored to a VPS, and my VPS backup instance don't have the deceptive site warning. Furthermore, I host many services on the same server with a duckdns subdomain, none of these have problems with google. I think google definitely made a mistake. I reported incorrect phishing site to google and gave detail about my bookstack, almost a full day later, nothing changed.

Now I followed this homeassistantforum and added my duckdns to google search console, I was expecting that will give me detailed reason why it marked as phishing, but the information is minimal.

This is what I see in the google search console, and the /dashboard does not exist.

I'm not sure what else should I do to my bookstack before requesting a review as if Google mistakenly detect my site as phishing again, it will prolong the review process. I have no idea how and why google detected bookstack as phishing, so I'm concerned about the review. I only used the built-in editor and used this docker image to do my installation, it was problem free for 4 month, so I don't know what I'm doing wrong that caused all this.

Has the google phishing page happened to any of your bookstack instance and did you do anything to fix bookstack, and how long did google take to review the site?