目录
Docker 安装 BookStack 完整教程
简介
BookStack 是一个简单、自托管的、易于使用的平台,用于组织和存储信息。本教程将指导你使用 Docker Compose 安装 BookStack。
环境要求
- Docker
- Docker Compose
- 可访问互联网的服务器
- 至少 1GB 内存
安装步骤
1. 准备工作
首先创建必要的目录结构:
mkdir -p bookstack/data/{app,db}
cd bookstack
2. 创建 Docker Compose 配置文件
使用以下命令创建 docker-compose.yml 文件:
cat > docker-compose.yml << 'EOL'
---
services:
bookstack:
image: ghcr.io/linuxserver/bookstack
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- APP_URL=https://your-domain.com # 替换为你的域名
- DB_HOST=bookstack_db
- DB_PORT=3306
- DB_USERNAME=bookstack
- DB_PASSWORD=bookstackpass
- DB_DATABASE=bookstackapp
volumes:
- ./data/app:/config
ports:
- 6875:80
restart: unless-stopped
depends_on:
- bookstack_db
bookstack_db:
image: ghcr.io/linuxserver/mariadb
container_name: bookstack_db
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=bookstackpass
- TZ=Asia/Shanghai
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=bookstackpass
volumes:
- ./data/db:/config
restart: unless-stopped
EOL
3. 生成应用密钥
docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
记下生成的密钥,它会像这样:base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
4. 更新配置文件添加密钥
将生成的密钥添加到 BookStack 服务的环境变量中:
cat > docker-compose.yml << 'EOL'
---
services:
bookstack:
image: ghcr.io/linuxserver/bookstack
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- APP_URL=https://your-domain.com # 替换为你的域名
- APP_KEY=base64:YOUR_GENERATED_KEY # 添加这行,使用上一步生成的密钥
- DB_HOST=bookstack_db
- DB_PORT=3306
- DB_USERNAME=bookstack
- DB_PASSWORD=bookstackpass
- DB_DATABASE=bookstackapp
volumes:
- ./data/app:/config
ports:
- 6875:80
restart: unless-stopped
depends_on:
- bookstack_db
bookstack_db:
image: ghcr.io/linuxserver/mariadb
container_name: bookstack_db
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=bookstackpass
- TZ=Asia/Shanghai
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=bookstackpass
volumes:
- ./data/db:/config
restart: unless-stopped
EOL
5. 启动服务
# 启动服务
docker compose up -d
# 查看日志
docker compose logs -f
6. Nginx 反向代理配置
如果你使用 Nginx 作为反向代理,可以使用以下配置:
location / {
proxy_pass http://127.0.0.1:6875;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
7. 初始访问
- 访问地址:https://your-domain.com
- 默认登录信息:
- 邮箱:admin@admin.com
- 密码:password
⚠️ 请在首次登录后立即修改默认密码!
维护命令
查看日志
docker compose logs -f
重启服务
docker compose restart
停止服务
docker compose down
更新镜像
docker compose pull
docker compose up -d
备份数据
# 停止服务
docker compose down
# 备份数据目录
tar -czf bookstack-backup-$(date +%Y%m%d).tar.gz data/
# 重启服务
docker compose up -d
常见问题
1. 500 内部服务器错误
- 检查 APP_URL 设置是否正确
- 确认数据库连接信息
- 检查 APP_KEY 是否正确设置
2. 数据库连接错误
- 确认数据库服务是否正常运行
- 验证数据库用户名和密码
- 检查数据库主机名是否正确
3. 权限问题
# 修正数据目录权限
chown -R 1000:1000 data/
chmod -R 755 data/
安全建议
- 修改默认管理员密码
- 使用强密码保护数据库
- 启用 HTTPS
- 定期备份数据
- 及时更新系统
参考链接
许可
本教程采用 MIT 许可证。欢迎分享和改进!