docker部署思源笔记

方法一:使用官方镜像(推荐)

1. 快速启动命令

docker run -d \
  --name siyuan \
  -p 6806:6806 \
  -v /your/local/path/workspace:/siyuan/workspace \
  -v /your/local/path/data:/siyuan/data \
  b3log/siyuan

2. 完整配置示例

docker run -d \
  --name siyuan \
  --restart=unless-stopped \
  -p 6806:6806 \
  -v /opt/siyuan/workspace:/siyuan/workspace \
  -v /opt/siyuan/data:/siyuan/data \
  -v /opt/siyuan/conf:/siyuan/conf \
  -e TZ=Asia/Shanghai \
  -e SIYUAN_ACCESS_CODE=your_password \
  b3log/siyuan:latest

3. 使用 Docker Compose

创建 docker-compose.yml 文件:

version: '3'
services:
  siyuan:
    image: b3log/siyuan:latest
    container_name: siyuan
    restart: unless-stopped
    ports:
      - "6806:6806"
    environment:
      - TZ=Asia/Shanghai
      # 可选:设置访问密码
      - SIYUAN_ACCESS_CODE=your_password
    volumes:
      # 工作空间(笔记数据)
      - ./workspace:/siyuan/workspace
      # 应用数据
      - ./data:/siyuan/data
      # 配置文件
      - ./conf:/siyuan/conf
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

启动服务:

docker-compose up -d

方法二:使用 Docker 部署订阅版

如果需要完整功能(云端同步等),可以使用订阅版镜像:

docker run -d \
  --name siyuan-pro \
  -p 6806:6806 \
  -v /opt/siyuan/workspace:/siyuan/workspace \
  -v /opt/siyuan/data:/siyuan/data \
  -e SIYUAN_ACCESS_CODE=your_subscription_key \
  b3log/siyuan-pro:latest

重要配置说明

挂载目录说明

  • /siyuan/workspace:笔记数据目录(必须挂载)

  • /siyuan/data:应用数据目录

  • /siyuan/conf:配置文件目录

环境变量

  • SIYUAN_ACCESS_CODE:访问密码(设置后需要通过密码访问)

  • TZ:时区设置(建议设置为 Asia/Shanghai)

  • SIYUAN_WORKSPACE_DIR:自定义工作空间路径(默认 /siyuan/workspace)

端口说明

  • 容器内部使用 6806 端口

  • 映射到宿主机的端口可自定义,如 -p 8080:6806

访问和使用

  1. 通过浏览器访问

    http://服务器IP:6806
    
  2. 首次访问设置

    • 如果设置了 SIYUAN_ACCESS_CODE,需要输入密码

    • 如果没有设置,可直接访问

  3. 数据备份

    • 定期备份挂载目录 /opt/siyuan/workspace

    • 可以通过定时任务备份数据

注意事项

  1. 数据持久化

    • 务必正确配置卷挂载,否则数据会在容器删除后丢失

    • 建议定期备份工作空间目录

  2. 权限问题

    • 确保宿主机目录有正确的读写权限

    • 可以添加 -u $(id -u):$(id -g) 指定用户

  3. 版本升级

    docker-compose pull
    docker-compose up -d
    

    或者

    docker pull b3log/siyuan:latest
    docker stop siyuan
    docker rm siyuan
    # 重新运行启动命令
    
  4. 资源限制(可选):

    deploy:
      resources:
        limits:
          memory: 2G
          cpus: '2'
    

故障排查

  1. 查看日志

    docker logs siyuan
    
  2. 进入容器

    docker exec -it siyuan /bin/sh
    
  3. 检查端口

    netstat -tlnp | grep 6806