BookStack

本網站系統的架設、設定與管理教學。
BookStack: https://www.bookstackapp.com/

BookStack Installation

With Docker

Tutorial:

docker-compose.yml:

version: "2"
services:
  bookstack:
    image: linuxserver/bookstack
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - DB_HOST=bookstack_db
    - DB_USER=<db-user>
    - DB_PASS=<db-pass>
      - DB_DATABASE=bookstackapp
    volumes:
      - ./config:/config
    ports:
      - 6875:80
      - 443:443
    restart: unless-stopped
    depends_on:
      - bookstack_db

  bookstack_db:
    image: linuxserver/mariadb
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
    - MYSQL_ROOT_PASSWORD=<db-pass-root>
      - TZ=Asia/Taipei
      - MYSQL_DATABASE=bookstackapp
    - MYSQL_USER=<db-user>
    - MYSQL_PASSWORD=<db-pass>
    volumes:
      - ./config:/config   
    restart: unless-stopped

初始化容器及啟動服務

mkdir config
docker-comose up -d
docker-compose ps

服務啟動與停止

docker-compose start
docker-compose stop

移除容器

docker-compose down
With CentOS 7

Reference

建立新的自我簽署的憑證檔

產生新的憑證檔

cd /dir/to/your/cert
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout new-cert.key \
-out new-cert.crt

chown 1000.1000 new-cert.*

修改 Nginx 設定

cd /path/to/nginx
vi site-confs/default

ssl_certificate /config/keys/new-cert.crt;
ssl_certificate_key /config/keys/new-cert.key;

檢查憑證檔的內容

openssl x509 -in cert.crt -noout -text

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
24:85:b0:74:34:91:da:d3:cf:c4:16:9d:50:19:75:5a:c4:b5:9d:9b
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, ST = CA, L = Carlsbad, O = Linuxserver.io, OU = LSIO Server, CN = *
Validity
Not Before: May 24 11:23:44 2020 GMT
Not After : May 22 11:23:44 2030 GMT
Subject: C = US, ST = CA, L = Carlsbad, O = Linuxserver.io, OU = LSIO Server, CN = *
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:bd:3b:5c:10:cc:e3:0e:69:d6:2a:b8:46:25:1e:
6b:30:2d:a9:9a:39:a2:5d:5a:f6:42:70:15:ad:f7:
68:3c:82:f3:4a:3d:40:70:cf:54:e1:36:c1:f0:e0:
...

檔案上傳

Storage Options

編輯 .env

STORAGE_TYPE=local_secure

其他不同類型的儲存方式

Changing Upload Limits

PHP

post_max_size = 20M
upload_max_filesize = 20M

Nginx

 如果使用官方教學的 Docker 方式安裝,不需要再設定 Nginx。

http {
	#...
        client_max_body_size 100m;
        client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads
	#...
}

Cloudflare (optional)

如果有用 Cloudflare 作為 Reverse Proxy,還需要檢查 Cloudflare 的設定

Your-Domain > Network > Maximum Upload Size

cloudflare-upload.png

Learning

中文網站
Tutorials

Q & A

Timezone 顯示不正確

網頁預設會以系統時區的時間顯示,假使系統設定 UTC 時區,如何讓網頁的時間顯示為時區 Asia/Taipei?

解決方法: 編輯 .env

# Application timezone 
# Used where dates are displayed such as on exported content.
# Valid timezone values can be found here: https://www.php.net/manual/en/timezones.php
APP_TIMEZONE=Asia/Taipei

重啟網頁服務。


Bookstack Upgrade

With Docker

Shutdown the container

cd <Bookstack-directory>
docker compose down

 Backup the data volume

cd <Bookstack-directory>
cp -a config{,.22.02.3.bak}

Pull the new version of Bookstack

docker pull linuxserver/bookstack:22.07.3

Edit the docker-compose.yml: 修改版號在這行 image: linuxserver/bookstack:22.07.3

version: "2"
services:
  bookstack:
    image: linuxserver/bookstack:22.07.3
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - APP_URL=https://osslab.tw
...
...

Start the container

docker compose up -d