Bookstack
---
version: "3.3"
services:
bookstack:
image: lscr.io/linuxserver/bookstack
container_name: bookstack
environment:
- PUID=998
- PGID=100
- APP_URL=https://your.domain.com
- DB_HOST=bookstack_db
- DB_USER=bookstack
- DB_PASS=xxxxxx
- DB_DATABASE=bookstackapp
volumes:
- /srv/path/Files/Bookstack/config:/config
ports:
- 6875:80
restart: unless-stopped
depends_on:
- bookstack_db
bookstack_db:
image: lscr.io/linuxserver/mariadb
container_name: bookstack_db
environment:
- PUID=998
- PGID=100
- MYSQL_ROOT_PASSWORD=xxxxxx
- TZ=Europe/Paris
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=xxxxxx
volumes:
- /srv/path/Files/Bookstack/db:/config
restart: unless-stopped
Export All Books
This script will export all books in your preferred format (PDF, HTML or TXT).
Requirements
You will need php (~7.1+) installed on the machine you want to run this script on.
apt install php
You will also need BookStack API credentials (TOKEN_ID & TOKEN_SECRET) at the ready.
Edit profile > create token > copy tokens
Running
# Downloading the script
curl https://raw.githubusercontent.com/BookStackApp/api-scripts/main/php-export-all-books/export-books.php > export-books.php
# Setup
# ALTERNATIVELY: Open the script and edit the variables at the top.
$apiUrl = getenv('BS_URL') ?: 'http://192.168.1.103:6875'; // http://bookstack.local/
$clientId = getenv('BS_TOKEN_ID') ?: 'token';
$clientSecret = getenv('BS_TOKEN_SECRET') ?: 'token';
# Running the script
php export-books.php <format> <output_dir>
Examples
# Export as plaintext to an existing "out" directory
php export-books.php plaintext ./out
# Export as pdf to the current directory
php export-books.php pdf ./
# Export as HTML to an existing "html" directory
php export-books.php html ./html
# Export as HTML to an existing "bookstackPDFexport" directory
php /home/scripts/bookstack/export-books.php html /home/bookstackPDFexport/