shootify's picture

hi there, is there any plan of adding bookstack documentation platform to the Stack templates? it will be awesome. thanks 

Jeremy Davis's picture

No promises, but I just had a quick look and it seems super easy to install. If/when I get a chance, I'll develop some build code and you can test the iso out! :)

No promises though...

shootify's picture

there are a lot of people using it, its a nice platform, keep me posted plz. cheers

Jeremy Davis's picture

I had a bit of a play with this last night and have it mostly done. The inithook (i.e. firstboot script) still isn't right, but it should still be usable (with the default '' user with password 'password').

I have other priorities to focus on so I'm not sure when I'll get back to this, but please feel free to build an ISO locally and test it out. If you're not sure how, then have a read of the docs. I suggest that you follw that and build Core first.

Then when you get to "Build another ISO", download my BookStack build code repo and build from that. Please note that I haven't tested building to ISO yet, nor tested firstboot, so the chance of bugs is high. But please feel free to post any feedback here and I'll post back ASAP with advice or fixes.

Good luck and look forward to your feedback! :)

shootify's picture

oh man, i tried the above mentioned, but some how when building the iso it just go as the core installation, i used the bookstack repo, would you update the method plz, btw they latest release brough MFA which is nice, i need to get this working on my proxmox . thanks for the hard work. 

Jeremy Davis's picture

Here's how to build it from start to finish (assuming you are running as root on a TKLDev):

cd products
rm -rf bookstack # in case it already exists
git clone
cd bookstack

When run, it should always install the latest release (it clones the HEAD (latest commit) of the Bookstack release branch.

Now that Debian Bullseye has been released, hopefully it won't take too long to get an RC of v17.0 built (I'll pubish Core and TKLDev once we have them). Once I'm comfortable with the LAMP appliance, I'll aim to make this an official TurnKey appliance. Not sure how long all that will take, but if you keep an eye out for the RC announcement, helping test that would certainly help things move along...

shootify's picture

certainly ill be testing this up. thanks for the update. cheers

Domhnall Currie's picture

Finally found some time to get back on this, but I can't make it work.  Looks like it's hanging up trying to install some of the Webmin modules, but I'm not sure.  I downloaded the latest TKLDev ISO and installed it as a VM in Proxmox.  I got the Core ISO to create one time but I don't remember what I did.  I've tried many times but can't get Bookstack to work and create the ISO.  I'll try to upload screenshots of two different errors I've seen.


Jeremy Davis's picture

I just had a quick look and updated the code and completed the inithook. It should "just work" now.

Having said that, the second error you note is a weird one. It's clearly having some sort of issue installing webmin, but I'm not sure why. Unfortunately, it's not giving us any useful info and I can't reproduce that issue. So my guess is perhaps something like running out of free disk space? (It's a wild guess, but possibly one of the most common causes of issues like that). To double check:

df -h /

Oh, just in case you aren't familiar with git, to pull in the latest changes I've done:

cd bookstack
git pull origin master

(That assumes that you cloned my repo and haven't changed the remote name. If you have no idea what I'm talking about, then you haven't! :)

Domhnall Currie's picture

That one made ok.  I used the df command before hand and I was using 11% of the 32GB drive and after the make command I'm using 21% of the drive.  I saw some warnings along the way as it kept saying Fake invoke-rc.d called.  Also I saw a couple times "delaying package configuration, since apt-utils is not installed".  Don't know if those were resolved later in the process.  Does make write to a log somewhere or would I have to send its output to a file?  All I see in syslog is a bunch of .mount files succeeded.  I've been reading on make's commands, but I haven't seen anything about a log file.  I'll set up a machine with the produced ISO when I get home tonight and let you know how that goes.  Thank you for your help!


Oh yeah, I've used git a good bit but only copying commands I've found online for a certain purpose.  I've not committed any into my noodle yet.  :)

Jeremy Davis's picture

Sounds like you have plenty of room! So that clearly wasn't the issue. TBH, I have no idea why webmin failed like that. The only thing I can suggest is just retrying if that happens again.

The 2 warnings you note are expected and not an issue at all. Fake invoke-rc.d warning is more of a note than a warning really. It notes that a call to invoke-rc.d was intercepted (it doesn't work within a chroot, so is "faked" - whatever called it thinks it succeeded, but it never actually ran). And we don't install apt-utils. It doesn't cause any material harm, but does mean that warning occurs when installing packages. It just means that the installation processing happens later.

As for logging, no it doesn't. But you could write to a log file using tee if you wanted (then you'll get both on screen and a log file). Don't forget to redirect stderr so that get's included too. I.e.:

make 2>&1 | tee logfile
shootify's picture

havent got the time yet to do this, but you might now have the official bookstack turnkey release?

Jeremy Davis's picture

We're currently working madly on the upcoming v17.0 release of the whole library (and it's still relatively early stages). I was hoping to make Bookstack part of the v17.0 release, but I expect a couple of months would be the earliest likely time that it will be ready.

If you get a chance to build it yourself and provide feedback (and [possibly even improvements), that might speed things up a little. But there are lots of other things blocking it. Once we have v17.0 LAMP ready (even if not yet published), then we'll be in a better position to estimate when it might be ready .

Domhnall Currie's picture

I installed Bookstack several months ago and it's working ok for me on my local lan.  The default install is http and I've been trying to change it to https.  Most of the tutorials I've found involve letsencrypt on a public facing server.  Luckily I'm running it on Proxmox and I did a backup and took a snapshot before I started, so everything I try that fails, I just do a rollback and I'm ready to try again.  :)  Now that I know TKL's on it, I'll go with your method and report back my failures.  :)

Jeremy Davis's picture

My build is incomplete - it doesn't yet have inithooks. Once it does, then it should be ready to publish.

As to switching http to https, I'm not 100% sure, but my guess is that it saves that full URL either in the main conf file ('/var/www/bookstack/.env') and/or in the DB. Once you can find that, you should be able to just switch it from http://... to https://...

Domhnall Currie's picture

I tried that with no luck.  I also tried running the php artisan commands to clear the old config and cache and that didn't help.  So far, everything I've tried just comes up with the browser non-connection screen and I have to do a rollback to get it back to working with plain http. 

Well, I tried changing it in the .env file.  I don't know how to change it in the DB.

Jeremy Davis's picture

I'm not sure where I found it, but you need to run:

php artisan bookstack:update-url old_url new_url

It needs to be run within the bookstack dir. Ideally it probably should be run as the ww-data user. So like this:

su www-data -s /bin/bash -c "php artisan bookstack:update-url old_url new_url"

Buildcode I've produced includes a convenience 'turnkey-artisan' script. Using that the command would be:

turnkey-artisan bookstack:update-url old_url new_url

After you've run that, clear the caches:

turnkey-artisan cache:clear

Having said that, if you use the buildcode, then that will set the domain for you (and update it everywhere). The only catch is, is if you manually change it in the .env file, then it won't work properly.

Domhnall Currie's picture

I'll also try these commands on my current working Bookstack tonight when I get home.  I think I tried the artisan command before with no luck, but can't remember.  I may have gotten the command in the env file wrong or probably didn't run it as www-data.  I'll give that a whirl and report back.

Jeremy Davis's picture

From what I gather, that command does a find and replace in the DB. I found that initially it didn't work for me as I'd changed the domain a few times and didn't actually run it with the default original domain. But once I worked that out, I reran it with every domain that I had used and it seemed to work ok.

Domhnall Currie's picture

I think before I found instructions where you updated the URL in the .env file.  IIRC, I updated the .env file and then ran php artisan or some other command to update.  I bet that was my whole problem!  Duh....

Domhnall Currie's picture

So without inithooks the above "start to finish" won't run?  Not trying to rush you or anything, I don't know when you guys have time to sleep.  :)  When I run the start to finish commands list above, I get:


Well, not sure it's going to let me paste my screenshot into here...... might have to type it in. :)


Domhnall Currie's picture

root@tkldev .../products/bookstack# make

deck /turnkey/fab/bootstraps/buster build/bootstrap

fatal: parent does not exist

make: *** [/usr/share/fab/ build/stamps/bootstrap] Error 1

root@tkldev .../products/bookstack#


Jeremy Davis's picture

FIrstly sorry for slow response. I've got my head down trying like mad to get the pieces in place for the first step of the v17.0 release.

Anyway, for some reason it looks like you don't have the bootstrap?! It should have been downloaded and set up during firstboot! Although TBH, once you get past that, you may hit more issues as I recently merged the v17.0 development code (Friday last week). I did try to make it backwards compatible, but it's quite possible I overlooked something?!

There are a few different options moving forward. But before I go into how to how you might fix that, please note that there is a v17.0rc1 (release candidate #1) of TKLDev sitting on the mirror. I haven't announced it yet as I've discovered a fairly major issue with it (or perhaps somewhat ironically, moreso an issue with the bullseye bootstrap). So I have held off announcing it until I've fixed the bullseye bootstrap (should be published by early next week).

IMO it would have more value for everyone if you used the 17.0rc1 TKLDev, rather than the old v16.1. The 17.0rc1 is based on the newer Debian 11/Bullseye base, so using that will help us testing. It will also mean that automatically, your test Bookstack build will also be Bullseye based (and will include common v17.0 code that we've developed - although it will still say that it's 16.0).

So to explicitly share the options moving forward:

  1. Fix your current v16.1 TKLDev and build v16.x Bookstack ISO.
  2. Fix your current v16.1 TKLDev and build a v17.x Bookstack ISO (RC).
  3. Download the current v17.0rc1 TKLDev, build your own bootstrap and build a v17.x Bookstack ISO (RC).
  4. Wait until next week and download the v17.0rc1 TKLDev and build a v17.x Bookstack ISO (RC).

1. Fix your current v16.1 TKLDev and build v16.x Bookstack ISO

I would expect that just running:


should work to fix the bootstrap. It will probably update common to the latest though, so you'll want to check out the v16.x branch. I.e.:

cd common
git remote set-branches origin '*'
git fetch origin
git checkout 16.x

To be on the safe side, you will also need to do the same for cdroots (although this one is named after the Debian codename - so you want 'buster'). I.e.:

cd cdroots
git remote set-branches origin '*'
git fetch origin
git checkout buster

I suggest that you double check things are working by building core. You don't need to build it all to iso, building to root.patched should be enough to prove it works. E.g.:

cd core
make clean
make root.patched

Assuming that works, then move on the Bookstack build.

2. Fix your current v16.1 TKLDev and build a v17.x Bookstack ISO (RC)

This is what we've been doing for the last month or so behind the scenes. Except now, everything is in the master branch.

Unfortunately because the bootstrap has issues, you'll need to build your own. So do that first:

cd /turnkey
git clone
cd bootstrap
export RELEASE=debian/bullseye
make clean
make removelist
rsync --delete -Hac build/bootstrap/ $FAB_PATH/bootstraps/$(basename $RELEASE)/

Once that's done, then just follow the steps above, except checkout the master branch. E.g. the checkout commands:

git checkout master

Once you've done that, then again, I suggest trying to build core to 'root.patched'. The only difference this time is you need to have RELEASE set. If this is in a single shell session, then you already did that when you built the bootstrap (i.e. 'export RELEASE=debian/bullseye') but it won't hurt if you do it again. Then the same commands to build core to root.patched.

3. Download the current v17.0rc1 TKLDev, build your own bootstrap and build a v17.x Bookstack ISO (RC)

You can find the v17.0rc1 ISO (and the hash file if you wish) on the mirror.

Again you'll need to build your own bootstrap. It will download one at firstboot time, but as I said, it's broken. So remove that first:

rm -rf $FAB_PATH/bootstraps/bullseye*

Then follow the instructions above. You don't need to set RELEASE this time though. You also shouldn't need to change the common and cdroots git branches either. Finally, again test by building core to 'root.patched'.

4. Wait until next week and download the v17.0rc1 TKLDev and build a v17.x Bookstack ISO (RC)

This one is the easiest for me, as I don't need to explain anything... :)

Good luck with it no matter which way you go. Please post back if you have troubles and I'll try to post back ASAP (within the next 18-20 hours) but I'll be away over the weekend, so likely won't get a chance to post after that.

Domhnall Currie's picture

Before I read through all that and get started, please let me say right up front.....  DON'T LET ME HINDER YOUR PROGRESS ON VERSION 17!  :)  And please don't apologize for your slow response.  Dude, I don't think I've ever seen an organization with in depth responses and help like TKL and I know y'all don't have a staff of hundreds or even dozens, I'm guessing. :)  Turnkey Linux should be any business' first stop for setting up any type of business server they need.

Jeremy Davis's picture

My previous post had a missing tag so wasn't formatted properly. I just fixed that so it should be easier reading now...

Thanks for your concern. It sometimes is a bit of a balance. But I figure that it's just as important to keep existing users going as it is to have shiny new stuff. Plus the sort of testing and collaboration that you'll be able to do with this working has vastly greater value than just helping you! It helps me understand the pain points and potential points of failure. Besides, if I can make it easier for you to test and contribute, then that's gotta be a win all round! :)

Thanks too for all your kind words... :) Please tell all your friends and associates! ;)

Domhnall Currie's picture

Well, the holidays demolished me like usual and now I'm tangled up in the middle of taxes.  :(  Hopefully I'll have some time to get back on this soon.

Jeremy Davis's picture

No worries! Yeah holidays can do that... Good luck with it! :)

FWIW, the 17.0rc1 of Core and TKLDev are available from their relevant appliance pages and/or the announcement blog post.

Jeremy Davis's picture

Hi Micheal, unfortunately (for scheduling) we release "when ready". So even if I had nothing more in front of me, I still couldn't be sure of when it will be ready (although my guess is not that long; a few days to a week perhaps).

Essentially my response to you is the same as what I just posted in reply to a similar question (related to a different appliance). Although in the case of Bookstack, because it's never actually been released before, it's at the back of the queue.

If I were to have a wild guess, I'd say perhaps a month or 2? But I'm only guessing and that would rely on nothing unexpected happening between now and then (and let's be honest, that's unlikely...).

Sorry that I don't have anything clearer. And as per always, if someone is willing to push this ahead further, then that would speed things up.

Domhnall Currie's picture

Didn't get a chance to try the php artisan command on my old Bookstack last night, but the make command on my TKLDev VM worked perfectly!  I had to work on our clothes dryer because it's on the fritz....  you know what they say about "if mama ain't happy...."  :)  Make produced the product.iso with no problems.  I installed that in a Proxmox VM and it ran fine.  When I get a chance I'll install it on a spare machine I have for a bare metal comparison.  Is there something specifically I can do to troubleshoot or help get the final product out the door?  Not pushing you at all because I know how much work y'all have with your other products, but I'd like to do as much as I can to help with my limited time.  I appreciate the awesome job you do Jeremy!

Jeremy Davis's picture

TBH, I'm not surprised that the TKLDev build worked ok. :) After I updated the code, I put it in the build queue. So assuming that it passes my basic tests, it should be in the next batch of apps (to be published next week).

If you can give it a good workout and let me know ASAP if there are any issues, that'd be great.

Domhnall Currie's picture

Yep, I've not seen any problems with the TKLDev build.  :)  I did a backup and restore according to the Bookstack web site's instructions and got my data moved over so I'm using that full time now.  I did have a few images that the URL didn't get updated in the process for some reason and I had to redo those, but it may have just been a normal snafu.  It may have been related to the problem I had trying to get the secure login working where I might have gotten something confused in my browser cache or maybe it was just the way I linked to them originally or something, I'm not sure.  I'm not going to spend any more time on the secure login changeover problem since I now have that working with the TKLDev version. 

Another issue y'all might want to look at is your donation button.  :D  I went to your donation link to send y'all a little scratch as a token of appreciation and it's not working.  If your donations are way off, that could be why.  :)  I'll try again when I get home tonight.  Thanks again for all your hard work Jeremy!

Jeremy Davis's picture

Thanks for all your input everybody. The "offical" BookStack appliance has now been released. :)

If any of you are using Proxmox and want an LXC template, please ask and I'll explain how you can build one from the ISO (hint, you'll need to download TKLDev ISO, install to a VM, then use that to build an LXC container. There are reports that the "ISO to LXC" build code (bt-container) is working well, but it needs more testing before we can publish them (so they can be downloaded directly within Proxmox).

shootify's picture

Nice work. thanks to everyone involved.


1- i am using proxmox, when do you think you will have this upload to the proxmox turnkey container list ? meanwhile ill try to deploy it as your guide. 

Jeremy Davis's picture

I started writing and extensive reply to this, but then decided to change tack and instead write up a quick blog post that might have more general utility, whilst also answering you.

I called the post Do you love TurnKey? Have a few spare cycles and want to help out?. I don't intend for that to put any pressure on you, but it does explain things a little, including how you can help push things forward, both for your own use and for others too. So if you do follow that, even if everything works fine, please do report back.

FYI: As noted in the comments on the first announcement post the dev code (my 'fix-1636' branch) of LXC/Proxmox build should be working (you'll need to pull it in as described in the blog post). Hopefully it just needs some more testing and reports of success! But if you hit any issues, that would be extremely helpful too! If you do have issues, please post as much info as possible (e.g. copy/paste terminal output, etc).

Domhnall Currie's picture

Awesome, that's great news!  :)

Add new comment