如何在 Synology NAS 上安装 BookStack

本教程根据 https://mariushosting.com/how-to-install-bookstack-on-your-synology-nas/,校对编写。

之所以汉化本教程,目的是记录自己折腾的过程。另外,原版教程之中,他直接使用宽带的443端口,可以实现不带端口而直接用网址访问。但是,大陆的宽带443、80等常用端口是被封的。所以,直接采用原版教程部署成功之后,内网访问一切正常。但是,外网无法访问。因此,在这里汉化,补充原版教程的一些不适用的地方。

bookstack是Dan Brown所编写的免费开源的wiki程序,类似一个图书馆,是一个非常精美的文档系统,是可以有效的组织和储存文档系统。本教程是如何使用Docker 和 Portainer在Synology NAS上安装BookStack

注意:此教程完美匹配Bookstack V23.08.02。

第一步:在群晖nas上安装Portainer。

注意:请部署最新版的Portainer。

第二步:获取群晖自带ddns的域名与通配符证书。若是没有部署,可以参考教程:https://mariushosting.com/synology-how-to-add-wildcard-certificate/

转至 控制面板 / 登录门户 / 高级 选项卡/单击 反向代理服务器 /点击 新增

第四步:输入相关信息

  • 名称:BookStack

  • 来源

    • 协议:HTTPS

    • 主机名:****yourname.synology.me

    • 端口:32000(端口可以修改)

    • 勾选启用 HSTS

  • 目的地

    • 协议:HTTP

    • 主机名:localhost

    • 端口:6875(此端口不可以修改)

进入自己的路由器,设置端口转发。不同的路由器有不同的设置界面,这里是openWRT的软路由设置界面。

此步骤一定要事先设置好,不然的话,后面Portainer部署会出现无法链接URL而部署失败的问题。

第五步:单击自定义标头 选项卡。单击 “创建”  ,然后从下拉菜单中单击 “WebSocket”。单击WebSocket后,将自动添加两个标头名称和两个值。单击 “保存”

第六步:转到控制面板/网络/连接性/选中 启用 HTTP/2,然后单击应用。请按照下图中的说明进行操作。

第七步:转到控制面板/安全/高级设置/选中 启用 HTTP 压缩 ,然后单击应用。请按照下图中的说明进行操作。

第八步:前往 File Station 并打开 docker 文件夹。在 docker 文件夹中,创建一个新文件夹并将其命名为 bookstack。请按照下图中的说明进行操作。
注意:请注意仅输入小写字母,而不是大写字母。

第九步:在创建的bookstack文件夹中创建三个新文件夹 ,并将它们命名为dbstorage-uploadsuploads。请按照下图中的说明进行操作。注意:请注意仅输入小写字母,而不是大写字母。

第十步:这里要放入一个文件,请自行想办法获取。https://mariushosting.com/how-to-install-bookstack-on-your-synology-nas/,是在原版教程第12步。捐助这个博主之后,他会给你一个下载全部网站文件的一个密码。

第十一步:对新建的uploads、storage-uploads文件进行以下操作:“属性”。请按照下图中的说明进行操作。

转到“权限”选项卡,然后单击“高级选项”。从下拉菜单中选择“明确继承的权限”。请按照下图中的说明进行操作。

选择everyone,然后单击编辑选项卡。

检查所有读取写入权限。单击“完成”

单击“完成”后,选中“应用到此文件夹、子文件夹和文件”。单击“保存”

第十二步:获取要使用邮箱的smtp信息。gmail、outlook等均支持的。

第十三步:使用您的用户名和密码登录 Portainer。在 Portainer 的左侧边栏上,单击Stacks  ,然后 单击+ Add stack。请按照下图中的说明进行操作。

第十四步:名字输入bookstack。然后在Portainer Stacks Web 编辑器,粘贴以下代码:

version: "3.9"
services:
  db:
    image: mariadb:jammy
    container_name: BookStack-DB
    hostname: bookstack-db
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    volumes:
      - /volume1/docker/bookstack/db:/var/lib/mysql:rw
      - /volume1/docker/bookstack/db:/etc/mysql/conf.d:rw
    environment:
      TZ: Europe/Bucharest
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_USER: bookstackuser
      MYSQL_PASSWORD: bookstackpass
      MYSQL_DATABASE: bookstack
    restart: on-failure:5

  bookstack:
    image: solidnerd/bookstack:master
    container_name: BookStack
    hostname: bookstack
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true

    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1
    ports:
      - 6875:8080
    volumes:
      - /volume1/docker/bookstack/uploads:/var/www/bookstack/public/uploads:rw
      - /volume1/docker/bookstack/storage-uploads:/var/www/bookstack/storage/uploads:rw
    environment:
      DB_HOST: bookstack-db:3306
      DB_DATABASE: bookstack
      DB_USERNAME: bookstackuser
      DB_PASSWORD: bookstackpass
      APP_KEY: base64:YnFsamt2aDBocDNyZGQxb2YyMng0cGlpcXo1NGFiNWc=
      APP_URL: https://yourname.synology.me:32000
      MAIL_DRIVER: smtp
      MAIL_HOST: smtp.gmail.com
      MAIL_PORT: 465
      MAIL_ENCRYPTION: tls
      MAIL_USERNAME: Your-own-gmail-address
      MAIL_PASSWORD: Your-own-app-password
      MAIL_FROM: Your-own-gmail-address
      MAIL_FROM_NAME: BookStack
    restart: on-failure:5
    depends_on:
      db:
        condition: service_started

注意1: UID 和 GID 值要改为自己群晖设备的,请参考这篇教程:https://mariushosting.com/synology-find-uid-userid-and-gid-groupid-in-5-seconds/

注意2:请修改TZ的值,这个是时期,请从这个网址选择你的时区值:https://timezone.mariushosting.com/。中国大陆:Asia/Shanghai。

注意3:请更改APP_KEY的值并输入您自己的 APP_KEY。使用在线生成您的免费 APP_KEY:https://generate-random.org/laravel-key-generator

注意4:请更改APP_URL的值。即第四步所创建的,注意,这里必须带上你设置好的端口:****yourname.synology.me:32000。如果前面你修改了端口值,这里也要修改,要改为一样的。

注意5:MALL这块的参数全部要改为自己的邮箱的。这个邮箱设置好了可以用来找回来密码。若不设置,应该也是没有问题的。

第十六步:点击Deploy the stack,开始部署。

第十七步:如果一切顺利的话,可以看到下面这个提示。

第十八步:根据你的网络情况,可能是需要数分钟的时间。然后输入https://yourname.synology.me:32000,一定是要https。

默认的账号为: [email protected] 密码为 password

然后进入设置,更改语言,设置主题,测试邮箱等等。

享受你的bookstack!!!

再一次说明,本教程是根据:https://mariushosting.com/how-to-install-bookstack-on-your-synology-nas/,翻译编辑,并非原创。

All rights reserved
Except where otherwise noted, content on this page is copyrighted.