本教程根据 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文件夹中创建三个新文件夹 ,并将它们命名为db、storage-uploads、uploads。请按照下图中的说明进行操作。注意:请注意仅输入小写字母,而不是大写字母。
第十步:这里要放入一个文件,请自行想办法获取。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/,翻译编辑,并非原创。