docker部署书栈网bookstack

bookstack简介

BookStack,基于MinDoc,使用Beego开发的在线文档管理系统,功能类似Gitbook和看云。

在这里插入图片描述

BookStack的功能亮点:

  • 书籍分类:用户可以根据自己的需求对书籍进行分类管理,提高文档的组织和查找效率。
  • 用户主页:在用户主页,展示用户分享的书籍、粉丝、关注和手册,增加用户之间的互动,提升用户体验。
  • 一键导入:管理员可以通过一键导入功能,轻松导入各种格式的Markdown书籍,完美处理文档间的链接和图片链接。管理员可以通过链接一键拉取GitHub、Gitee等平台上的开源Markdown书籍,自动导入文档和图片。
  • 导出文档:通过集成calibre工具,用户可以将书籍生成并导出为PDF、ePub、Mobi等格式的离线文档。
  • 文档排序和批量创建文档:通过创建summary.md文档,用户可以批量创建和排序书籍章节,极大提高文档管理效率。
  • 文档间的跳转:用户可以在书籍的不同文档之间轻松创建链接,实现快速跳转,提升阅读体验。
  • 采集功能:通过采集功能,用户可以方便地采集包含代码段和图片的文章,并保持原有格式。
  • SEO:后台管理支持个性化定制SEO关键字,并且可以更新站点sitemap,提高搜索引擎友好度。
  • 版本控制:实现版本控制功能,文档历史版本存储在本地或云存储上,避免数据库空间过度占用。
  • 更美观、简洁的页面布局和移动端兼容:改进后的页面布局更加美观简洁,同时提供更好的移动端兼容性,提升用户体验。

这些功能使BookStack成为一个功能强大、灵活且用户友好的在线文档管理系统,适合个人和团队使用。

官方网站:http://www.bookstack.cn

项目地址:https://github.com/TruthHun/BookStack

dockerfile地址:https://github.com/willzhang/docker-bookstackcn

docker-compose部署

准备一台linux服务器,以Ubuntu 22.04为例。

1、安装docker

curl -fsSL https://get.docker.com | sh && systemctl enable --now docker

2、安装docker-compose

mkdir -p /usr/local/lib/docker/cli-plugins
curl -SL https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/lib/docker/cli-plugins/docker-compose
chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

创建部署目录

mkdir -p /data/bookstack
cd /data/bookstack

创建docker-compose.yml文件

# cat docker-compose.yml
services:
  bookstack:
    # or registry.cn-shenzhen.aliyuncs.com/cnmirror/bookstack:v2.12
    image: "docker.io/willdockerhub/bookstack:v2.12"
    container_name: "bookstack"
    ports:
      - "8181:8181"
    depends_on:
      - bookstack_db
    restart: unless-stopped
    networks:
      - bookstack

  bookstack_db:
    image: "docker.io/library/mysql:8.4.1"
    container_name: "bookstack_db"
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "bookstack123"
      MYSQL_DATABASE: "bookstack"
      MYSQL_USER: "bookstack"
      MYSQL_PASSWORD: "bookstack123"
    volumes:
      - "mysql-data:/var/lib/mysql"
    restart: unless-stopped
    networks:
      - bookstack

networks:
  bookstack:

volumes:
  mysql-data:

3、运行bookstack

docker compose up -d

查看运行的容器,运行了一个mysql数据库容器和一个bookstack容器:

# docker compose ps
NAME           IMAGE                                     COMMAND                  SERVICE        CREATED          STATUS          PORTS
bookstack      docker.io/willdockerhub/bookstack:v2.12   "docker-entrypoint.s…"   bookstack      34 seconds ago   Up 32 seconds   0.0.0.0:8181->8181/tcp, :::8181->8181/tcp
bookstack_db   docker.io/library/mysql:8.4.1             "docker-entrypoint.s…"   bookstack_db   34 seconds ago   Up 34 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp

注意查看日志,bookstack需要一定时间等待数据库完全启动:

docker logs -f bookstack

bookstack数据默认未进行本地持久化,文档可能存储在数据库中,安装目录在容器中的/www/wwwroot/下:

警告:删除容器可能导致数据丢失,启停容器无影响。

root@ubuntu:~# docker exec -it bookstack bash
root@c570c94007a2:/www/wwwroot# pwd
/www/wwwroot
root@c570c94007a2:/www/wwwroot# ls -al
total 16716
drwxr-xr-x  1 pptruser pptruser       98 Jul 23 14:42 .
drwxr-xr-x  1 pptruser pptruser       21 Jul 23 14:37 ..
-rw-r--r--  1 root     root            0 Jul 23 14:42 .installed
-rwxr-xr-x  1 root     root     17072128 May 10 09:01 BookStack
drwxr-xr-x  5 root     root           45 Jul 23 14:37 __MACOSX
drwxr-xr-x  3 root     root           18 Jul 23 14:42 cache
drwxr-xr-x  1 root     root           56 Jul 23 14:42 conf
-rw-r--r--  1 root     root         1343 Jan 18  2024 cover.js
-rw-r--r--  1 root     root         3031 May  8 20:20 crawl.js
drwxr-xr-x  2 root     root           87 Jan 18  2024 dictionary
-rwxr-xr-x  1 root     root         1056 Jul 23 14:36 entrypoint.sh
-rw-r--r--  1 root     root        16958 May  8 19:57 favicon.ico
-rw-rw----  1 root     root            0 Jul 23 14:42 log.log
-rw-r--r--  1 root     root          143 May  9 21:56 package.json
drwxr-xr-x 30 root     root         4096 May  8 20:55 static
drw-r--r--  2 root     root            6 Jul 23 14:42 uploads
drwxr-xr-x 18 root     root         4096 May  8 20:20 views
drwxr-xr-x  2 root     root            6 Jul 23 14:42 virtualroot

浏览器访问bookstack:http://192.168.72.16:8181,其中IP为容器主机的IP地址。

默认管理员账号密码为:

 admin/admin888

登录后首页如下:
在这里插入图片描述

清理部署环境(警告:加-v参数将删除数据库持久化卷,谨慎操作)

docker-compose down -v

docker独立方式部署

1、运行mysql容器

使用官方最新版本mysql镜像,根据实际情况修改数据库root密码,数据库名及登录用户名密码

docker run -d --name mysql \
  --restart always \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=bookstack123 \
  -e MYSQL_DATABASE=bookstack \
  -e MYSQL_USER=bookstack \
  -e MYSQL_PASSWORD=bookstack123 \
  -v mysql-data:/var/lib/mysql \
  mysql:8.4.1

备注:仅支持以上变量,其他参数需自行修改*.conf模板文件,将参数改为db_host=${DB_HOST:bookstack_db} 格式,然后envsubst可自动传递docker变量并渲染最终配置文件。

2、创建bookstack配置文件

方式1:从容器中获取配置文件:

mkdir -p /data/bookstack/
docker run -d --name bookstack --entrypoint='/bin/sh' willdockerhub/bookstack:v2.12
docker cp bookstack:/tmp/conf/ /data/bookstack/
docker rm -f bookstack

查看示例配置文件

root@ubuntu:~# ls /data/bookstack/conf/
app.conf  app.conf.example  oauth.conf  oauth.conf.example  oss.conf  oss.conf.example

方式2:从官网获取配置文件

获取对应release版本配置文件:https://github.com/TruthHun/BookStack/tree/master/conf

app.conf.example
oauth.conf.example
oss.conf.example

修改app.conf,这里仅修改了数据库连接信息:

# cat /data/bookstack/conf/app.conf | grep db
db_adapter=mysql
db_host=192.168.72.16
db_port=3306
db_username=bookstack
db_password=bookstack123
db_database=bookstack

注意:db_host为容器主机IP地址

3、运行bookstack容器

docker run -d --name bookstack \
  --restart always \
  -p 8181:8181 \
  -v /data/bookstack/conf:/www/wwwroot/conf \
  willdockerhub/bookstack:v2.12

不挂载配置文件,通过传递环境变量方式的示例:

docker run -d --name bookstack \
  --restart always \
  -p 8181:8181 \
  -e DB_HOST=172.168.72.16 \
  -e DB_PORT=3306 \
  -e DB_USERNAME=bookstack \
  -e DB_PASSWORD=bookstack123 \
  -e DB_DATABASE=bookstack \
  -e RUN_MODE=prod \
  willdockerhub/bookstack:v2.12

清理部署环境

docker stop bookstack && docker rm bookstack
docker stop mysql && docker rm mysql && docker volume rm mysql-data

bookstack基本配置

点击右侧管理员—>我的书籍—>添加书籍,
在这里插入图片描述

编辑文档保存并发布,即可阅读书籍内容:
在这里插入图片描述

生成和导出PDF

选择右侧管理后台
在这里插入图片描述
选择配置管理,将阅读限制改为0
在这里插入图片描述

在我的项目中选择一本书执行以下操作即可:
在这里插入图片描述
以导出PDF为例:
在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

willops

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值