Docker + BookStack 打造个人知识库
前言
关于知识库软件,我也尝试过很多个不同的软件,像是飞书、Obsidian、印象笔记、Flowus,以及最近在用的TiddlyWiki,特别是TiddlyWiki,已经是最贴近我的实际需求了,但还是没办法多端同步。反正自己买着服务器建独立站,不如继续利用一下服务器的资源。
在决定使用Bookstack之前,我还尝试了MediaWiki,但一周体验下来,操作体验对我来说,太反常识了,对于建立个人知识库来说并不是一个好的选择,最后在体验过Bookstack的Demo之后决定就是他了。
服务器情况
腾讯云轻量应用服务器Wordpress镜像

开始安装
本文主要讲述Docker镜像安装,并且是使用Docker Compose安装;
玻珠因为不了解docker相关内容直接去问AI,导致一直出现数据库没办法连接的问题,浪费了大量的时间去调整。
最后还是直接使用官方的指导配置一键安装成功
安装docker
我们只需要在登录到宝塔面板,从侧边栏进入点击docker,根据提示安装即可;
确认Docker安装成功
安装dockerCompose也很简单,我们先确定Docker是否正确安装,登录进服务器后,在命令行输入docker --version,如显示对应版本号即表示Docker已经安装好;
使用curl安装Docker Compose
在命令行中输入以下指令安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予Docker Compose执行权限
sudo chmod +x /usr/local/bin/docker-compose
验证安装
在命令行中输入 docker-compose --version 确认是否安装成功
Docker Compose配置
创建文件夹,并创建一个名字为docker-compose.yml的配置文件

根据提示配置yml文件
完整配置说明可查看官方文件:docker-compose.yml
将下方配置内容复制到你的docker-compose.yml文件中,并将localhost调整为你的服务器外网ip
services:
bookstack:
image: lscr.io/linuxserver/bookstack:version-v25.02
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC # 根据需求调整时区,默认为UTC+0,需要和下方mariadb的TZ保持一致
- APP_URL=http://localhost:6876
# - APP_KEY=base64:FmsryFy67lD+FopSfMMtS+3SGsloxUQb+yqXGl6XdiM= # 先注释掉这一行,配置完成启动后再生成新的配置填入
- DB_HOST=mariadb
- DB_PORT=3306
- DB_DATABASE=bookstack # 替换为你所需的名字,需要调整的话要和下方mariadb的MYSQL_DATABASE保持一致
- DB_USERNAME=bookstack # 替换为你所需的名字,但需要和下方mariadb的MYSQL_USER保持一致
- DB_PASSWORD=bookstack8432 # 替换为你所需的密码,但需要和下方mariadb的MYSQL_PASSWORD保持一致
volumes:
- ./bookstack_app_data:/config
ports:
- 6876:80
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:11.4.4
container_name: mariadb
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC # 根据需求调整时区,默认为UTC+0,需要和上方bookstack的TZ保持一致
- MYSQL_ROOT_PASSWORD=mysupersecretrootpassword # 替换你自己的密码
- MYSQL_DATABASE=bookstack # 和上方bookstack的DB_DATABASE保持一致
- MYSQL_USER=bookstack # 和上方bookstack的DB_USERNAME保持一致
- MYSQL_PASSWORD=bookstack8432 # 和上方bookstack的DB_PASSWORD保持一致
volumes:
- ./bookstack_db_data:/config
restart: unless-stopped
通过Docker compose配置启动镜像
在docker-compose.yml同目录下运行命令行并执行docker-compose up -d
查看镜像日志,并按提示生成key
查看bookstack的docker日志,发现提示The application key is missing, halting init! You can generate a key with: docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey And apply it to the APP_KEY environment variable.
我们只需要按照他的方法生成appkey填入配置,然后重启docker即可
services:
bookstack:
image: lscr.io/linuxserver/bookstack:version-v25.02
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC # 根据需求调整时区,默认为UTC+0,需要和下方mariadb的TZ保持一致
- APP_URL=http://localhost:6876
- APP_KEY=base64:FmsryFy67lD+FopSfMMtS+3SGsloxUQb+yqXGl6XdiM= # 先注释掉这一行,配置完成启动后再生成新的配置填入
- DB_HOST=mariadb
- DB_PORT=3306
- DB_DATABASE=bookstack # 替换为你所需的名字,需要调整的话要和下方mariadb的MYSQL_DATABASE保持一致
- DB_USERNAME=bookstack # 替换为你所需的名字,但需要和下方mariadb的MYSQL_USER保持一致
- DB_PASSWORD=bookstack8432 # 替换为你所需的密码,但需要和下方mariadb的MYSQL_PASSWORD保持一致
volumes:
- ./bookstack_app_data:/config
ports:
- 6876:80
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:11.4.4
container_name: mariadb
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC # 根据需求调整时区,默认为UTC+0,需要和上方bookstack的TZ保持一致
- MYSQL_ROOT_PASSWORD=mysupersecretrootpassword # 替换你自己的密码
- MYSQL_DATABASE=bookstack # 和上方bookstack的DB_DATABASE保持一致
- MYSQL_USER=bookstack # 和上方bookstack的DB_USERNAME保持一致
- MYSQL_PASSWORD=bookstack8432 # 和上方bookstack的DB_PASSWORD保持一致
volumes:
- ./bookstack_db_data:/config
restart: unless-stopped
重启docker容器

检查Bookstack是否成功运行
命令行中输入通过curl访问一下你的url,查看内容是有出现login字样(APP_URL),如有则表示成功
创建站点
在宝塔面板中的PHP项目添加一个站点,域名填写你服务器的公网ip,PHP版本选择静态
反向代理
使用这种方式启动的Bookstack是运行在容器网络内,需要对其进行反向代理,供外部访问;
创建成功后,对你刚建立的站点点击:设置/反向代理/添加反向代理
代理名称随意,目标url填入docker-compose.yml配置文件中的APP_URL,发送域名保持默认
服务器防火墙配置
到腾讯云面板检查服务器是否存在6876的防火墙规则,如无,则需要创建一个
下图为小程序配置,路径为:控制台/轻量应用服务器/{你的服务器名}/防火墙

初始化登录
Bookstack教程中提供初始管理员账号密码,官网地址:Bookstack
账号:admin@admin.com
密码:password

登录成功
注:登录成功后建议马上调整管理员账号密码。
现在,你可以使用你的Bookstack来搭建个人知识库啦


更多推荐


所有评论(0)