安裝 Prerequisite(前提條件) 準備好Linux OS 準備好容器主機 RockyLinux安裝Docker RockyLinux安裝Podman 準備好mariadb 資料庫容器 RockyLinux安裝mariadb 實戰(使用docker) 設定容器volume docker volume create bookstack_config 我通常能不用Dockerfile就不用,習慣直接下指令 docker run --restart=always -d --name=bookstack -e PUID=1000 -e PGID=1000 -e TZ=Asia/Taipei \ -v /usr/share/fonts:/usr/share/fonts -e APP_URL=https://<網址需要https> \ -e DB_HOST= -e DB_PORT=3306 -e DB_USER=<帳號> -e DB_PASS=<密碼> -e DB_DATABASE=bookstackapp \ -e QUEUE_CONNECTION= `#optional` -p 6875:80 -v bookstack_config:/config --restart unless-stopped lscr.io/linuxserver/bookstack:v23.10.4-ls119 上面指令需要注意: 1. APP_URL 必須為https請準備好反向代理程式,當然也可以是ip,ip就不需要https 2. DB_HOST、DB_PORT、DB_USER、DB_PASS 以及 DB_DATABASE 都是mariadb database連線資訊 3. 6875:80 將本體主機的6875拿來對應到容器的80 4. /usr/share/fonts 使用本體的字型,這樣就不浪費空間了 fonts目錄下,需再另外存放中文檔案,以下是免費豆腐自型 請到此下載中文字型 https://fonts.google.com/noto/specimen/Noto+Sans+SC https://fonts.google.com/noto/specimen/Noto+Sans+TC 5.  容器 Image  lscr.io/linuxserver/bookstack: v23.10.4-ls119   請參考   https://github.com/BookStackApp/BookStack 6. TZ=Asia/Taipei  系統時間 請參考 https://worldtimeapi.org/timezone/ 安裝完畢後,請自行測試,預設帳號  admin@admin.com 密碼 password 登入後請修改email,修改後的email即為登入帳號;登入後請立即修改密碼 修改讓匯出pdf不會有亂碼 我後來發現匯出PDF功能只是將html轉為PDF檔案,並無特別排版,所以有點雞肋,但強迫症讓我必須解決中文亂碼文提 ### 進入容器 docker exec -it bookstack bash ### 刪除預設的qt5 apk del qt5-qtbase ### 修改repositories vi /etc/apk/repositories ### 將 3.18改成3.14 http://dl-cdn.alpinelinux.org/alpine/v3.14/main http://dl-cdn.alpinelinux.org/alpine/v3.14/community ### # 套用 apk update apk upgrade apk add wkhtmltopdf ### 測試-無法產生test.pdf 則代表失敗 wkhtmltopdf test.html test.pdf ### 修改 .env 檔案 vi /app/www/.env ### WKHTMLTOPDF=/usr/bin/wkhtmltopdf ALLOW_UNTRUSTED_SERVER_FETCHING=true ### 離開容器並且重啟,就能正常匯出中文PDF 隱藏最近更新足跡 管理帳號登入後,請在 Settings->Customization->Custom HTML Head Content (設定->自訂->自訂 HTML 標題內容)  加上以下控制碼即可 預設展開「章節」內容 管理帳號登入後,請在 Settings->Customization->Custom HTML Head Content (設定->自訂->自訂 HTML 標題內容)  加上以下控制碼即可 隱藏書本封面 管理帳號登入後,請在 Settings->Customization->Custom HTML Head Content (設定->自訂->自訂 HTML 標題內容)  加上以下控制碼即可 讓中間文字版面變大 修改上傳檔案大小 docker 進入容器後,app/www/.env,設定FILE_UPLOAD_SIZE_LIMIT即可   整合網域主控站(Active Directory) 1. 綁定管理者角色 網域主控站新增一個群組「BookStackAdmin」 BookStack選定Admin角色,在「外部身分驗證ID」輸入BookStackAdmin,與網域群組「BookStackAdmin」綁定 網域使用者帳號,只要隸屬於BookStackAdmin角色,就會有BookStack系統管理者權限 2. 修改設定檔案,用以綁定網域帳號登, docker容器為例子,  vi /app/www/.env AUTH_METHOD=ldap LDAP_SERVER=<網域主控站IP>:389 LDAP_BASE_DN="DC=test,DC=com,DC=tw" LDAP_DN="CN=book,CU=users,DC=test,DC=com,DC=tw" LDAP_PASS="password" LDAP_GROUP_ATTRIBUTE="memberOf" LDAP_USER_FILTER=(&(sAMAccountName=${user})) LDAP_VERSION=3 LDAP_ID_ATTRIBUTE=BIN;objectGUID LDAP_EMAIL_ATTRIBUTE=mail LDAP_DISPLAY_NAME_ATTRIBUTE=cn LDAP_THUMBNAIL_ATTRIBUTE=thumbnailPhoto LDAP_START_TLS=false LDAP_USER_TO_GROUPS=true LDAP_REMOVE_FROM_GROUPS=false 以上設定值需調整: LDAP_SERVER LDAP_BASE_DN LDAP_DN LDAP_PASS 重開服務,請使用有網域管理員Domain Admins的帳號登入,測試是否能正常登入,以及是否有管理權限 預設語系 https://www.bookstackapp.com/docs/admin/language-config/ 以docker 為例子,修改.env  加上 APP_LANG =zh_TW 就可以改成繁體中文了