Seafile 社区版 11.0 beta 可以测试了!软件架构优化,新增协同编辑文档 SeaDoc

Seafile 是一款开源的企业云盘,注重可靠性和性能。支持 Windows、Mac、Linux、iOS、Android 平台。支持文件同步或者直接挂载到本地访问。

现在,Seafile 社区版 11.0.0 beta 已经可以进行测试了 (通过 Docker 部署的方式,Docker image 地址为 seafileltd/seafile-mc:11.0.0)。这个版本有几个重大的改变,包括简化 Seafile 的架构、新增强大的协作编辑器 SeaDoc、对用户界面进行改进等。因此,在稳定版本发布之前,我们提早提供了 beta 版本,以便进行充分的测试和收集反馈意见。

升级说明: https://cloud.seafile.com/published/seafile-manual-cn/upgrade/upgrade_notes_for_11.0.x.md

下面来看详情。

主要改变

用户 ID 的变化

之前的 Seafile 版本直接使用用户的电子邮件地址或单点登录(SSO)身份作为其内部用户 ID。

Seafile 11.0 引入了虚拟用户 ID,即类似于 “adc023e7232240fcbb83b273e1d73d36@auth.local” 的随机内部标识符。对于新用户,将生成一个虚拟 ID,而不是直接使用其电子邮件地址。电子邮件和虚拟 ID 之间的映射将存储在 “profile_profile” 数据库表中。

对于单点登录(SSO)用户,在旧版本中,从 SSO 提供商获取的 ID 将直接存储。

在新版本中,对于单点登录(SSO)用户,将生成一个虚拟 ID,而不是直接使用 SSO ID。SSO ID 和虚拟 ID 之间的映射将存储在 “social_auth_usersocialauth” 表中。

这种改变的好处包括:

  1. 用户可以更轻松地更改他们的外部电子邮件或 SSO ID。只需更新映射表,而不需要在系统中的每个实例都更新 ID。

  2. 通过将不同的外部 ID 映射到一个内部虚拟 ID,允许单个用户通过多种方式登录。

总体而言,这增加了处理用户账户和身份变更的灵活性。现有用户将继续使用相同的旧 ID。

LDAP 集成的重新实现

之前的 Seafile 版本在 ccnet-server 组件中处理 LDAP 身份验证。在Seafile 11.0 中,LDAP 在 Seahub Python 代码中进行了重新实现。

LDAP 配置已从 ccnet.conf 移动到 seahub_settings.py。不再使用 ccnet_db.LDAPImported 表 - LDAP用户现在与其他用户一起存储在 ccnet_db.EmailUsers 中。

这种新实现的好处包括:

  1. 在不同系统间提供更好的兼容性。Python 代码比之前的 C 语言实现更易于移植。

  2. 无论用户是通过 LDAP 还是其他方法(如电子邮件/密码)登录,都能进行一致的处理。

社区版启用了文件活动功能

之前的 Seafile 专业版包含了 seaf-events 组件,用于跟踪文件活动和维护文件的元数据。在 Seafile 11.0 中,已将其整合到了社区版中。

通过 seaf-events,社区版获得了几个强大的功能:

  1. 文件活动 - 查看文件的历史更改和编辑记录。

  2. 智能链接 - 即使文件重命名或移动,链接到文件的链接仍然有效。

  3. 改进的版本控制 - 更好地处理修订版本,尤其是 Office 文档。

  4. 通知电子邮件 - 可选择定期发送有关未读通知的电子邮件。

将 seaf-events 引入社区服务器,使得两个版本的功能集保持一致。用户可以在所有 Seafile 部署中获得强大的活动跟踪和元数据管理功能的好处。

新型在线协作编辑器-SeaDoc(alpha 版)

预计 9 月中旬可以部署测试

Seafile 11.0 引入了一款功能强大的新型协作文档编辑器 - SeaDoc(alpha版本)。

SeaDoc 使得在 Seafile 中存储的文档能够无缝进行协同编辑和工作流管理。其主要特点包括:

  • 直观的编辑功能 - 一个针对高效生产力而优化的富文本编辑器,轻巧、快速
  • 内置文档工作流程管理 - 修订和审批功能让你可以精准控制文档的改变
  • 文档间链接 - 用户把相关的文档关联在一起
  • AI 集成 - 利用人工智能进行内容生成、摘要生成和文件的管理
  • API 接口 - 提供全面的 API 以支持文档创建和处理的自动化

SeaDoc 擅长的应用有很多,例如:

  • 撰写深度的技术/产品手册和文档
  • 创建和管理知识库文章、维基页面
  • 构建内部文档门户
  • 起草小组备忘录和会议记录
  • 简化周/月报告生成

使用 SeaDoc,你可以直接在 Seafile 中协作撰写、管理和发布高质量文档。简化你的内容创建流程,数字化内容的组织。

主要的编辑界面:

SeaDoc 提供了直观、易用的编辑界面和大量的文本处理功能。例如:

  1. 工具栏:位于顶部,包括各种常用的文本编辑工具,如段落标题设定、加粗、斜体、下划线、插入链接等。你可以单击相应的按钮,也可以使用快捷键。

  2. 文本区域:位于界面的中央,用于输入和编辑文档内容。支持各种文本操作,包括输入、删除、复制/粘贴、移动光标等。文本区域中的文本可以轻松地进行格式化和排版,以及插入各种块级元素。

  3. 侧边栏:位于编辑区的一侧,可以展示一些与文档相关的辅助信息,比如目录结构、文档大纲、书签等。

历史记录和更改:

这个功能用于记录和查看文档的历史版本及其变更记录。帮助用户更好地追踪和管理文档的修改情况。

表格:

下图介绍了对电子表格的输入、删除等一些操作的处理逻辑。

块级操作:

SeaDoc 提供了丰富的功能和操作来处理文本,包括复制和粘贴、剪切和粘贴、删除、格式化、插入图像/表格/链接/代码块等。

与 OnlyOffice 相比,SeaDoc 更适用于轻量级文本文档,如会议记录、维基页面、技术文档等。其关注点在于简洁性、速度和在 Seafile 内无缝的知识管理。SeaDoc 引入了反向链接和文档网络功能,以增强协作编辑的能力,更具扩展性。

弃用 SQLite 数据库支持

Seafile 11.0 开始弃用使用 SQLite 作为数据库。这一变化是基于以下几个原因:

  • 专注于协作功能 - SQLite 的局限性使得无法对数据库进行并发访问,对于协同编辑功能,不同的 Seafile 组件需要同时访问数据库。
  • Docker部署 - 我们的官方 Docker 镜像从 9.0 开始就已经不支持 SQLite,MySQL 是首选选项。
  • 迁移困难 - 之前通过 SQL 转换脚本将 SQLite 数据库迁移到 MySQL 不可靠。

通过移除对 SQLite 的支持,我们可以将开发工作集中在实现强大的实时协作上。建议目前使用 SQLite 的站点尽快升级到 MySQL。

改进 Seafile 用户界面

11.x 后续的维护版本将包括各种 UI 改进,以增强界面的一致性和可用性:

  • 清理过期的一些界面元素
  • 规范化字体、图标的使用
  • 改善移动端响应性
  • 添加一些动画和微交互

在此基础上,我们计划在 Seafile 12.0 中对 UI 进行大的升级。

结语

我们非常重视用户对我们产品的期望和需求,我们真诚地欢迎用户的反馈,以便能够持续改进产品。如果您还有其他想要改进或者添加的功能,请告诉我们。我们会认真考虑并尽力满足。期待与您一起打造更好的 Seafile!

2 个赞

SeaDoc这个文档编辑器是在哪里的,我浏览器搜不到,有链接吗?去哪里下载安装

预计 9 月中旬可以部署测试。请关注下我们论坛上的公告。

Seafile 11这次的版本改动还是很nice的,期待SeaDoc的应用。
既然官方都在征集需求了,不如也看看我之前提出的“插件”扩展功能,有没有希望支持:)

1 个赞

centos8 tar包安装的10.0.1怎么升级?找不到11.0的测试包

目前测试阶段只有 Docker 版本。

目前的SeaDoc对于文件是否已经保存,似乎缺乏一个显著的指示(弹窗、气泡、状态栏等),偶尔会出现文件的修改丢失的现象。

感谢反馈。现在上方会有一个最后的保存时间。

另外,如果有 5 个以上操作没有发到服务器界面会弹出一个警告。我这边根据最近的多人使用情况,没有再出现操作丢失的情况。

可以描述下你具体什么操作下丢失了修改。

感谢回复。经过提示,注意到了这样的一个保存时间。

昨天测试时频繁出现了类似于 server connected / server doesnt connected 之类的气泡。今天更换了网络环境后一切正常,尚未出现操作丢失。

希望SeaDoc可以引入对Latex公式(行内公式/行间公式)的支持,在科研场景下会很方便。SeaDoc的机构用户中似乎也包括了若干高校。

感谢反馈。在完成基本的常用的编辑格式后,后续会支持 Latex 公式。

大佬可以分享一下配置了seadoc的,docker-compose文件吗。按照说明弄了一天还是无法使用

看着是您的ip和端口配置有问题,您把docker-compose.yml 文件,SeaDoc 的配置文件都发一下,我给您排查一下

社区版
docker 如何直接安装11版本

docker版本安装报错,有详细的yam文件吗

version: '2.0'
services:
  db:
    image: mariadb:10.5
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=db_dev  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
    networks:
      - seafile-net

  memcached:
    image: memcached:1.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
    
  sdoc-server:
    image: seafileltd/sdoc-server:latest
    container_name: sdoc-server
    ports:
      #- 80:80
      # - 443:443
       - 7070:7070
    volumes:
      - /opt/seafile/sdoc-data/:/shared
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=db_dev  # Requested, password of MySQL service.
      - DB_NAME=sdoc_db      
      - TIME_ZONE=Etc/UTC # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SDOC_SERVER_LETSENCRYPT=true # Whether to use https or not.
      - SDOC_SERVER_HOSTNAME=mcgy-seafile@cnwarehouse.int # Specifies your host name if https is enabled.
      - SEAHUB_SERVICE_URL=https://mcgy-seafile@cnwarehouse.int
    depends_on:
      - db
    networks:
      - seafile-net

  seafile:
    image: seafileltd/seafile-mc:11.0.0
    container_name: seafile
    ports:
      - "80:80"
      - "443:443"  # If https is enabled, cancel the comment.
    volumes:
      - /opt/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=db_dev  # Requested, the value shuold be root's password of MySQL service.
      - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SEAFILE_ADMIN_EMAIL=mcgy-seafile@cnwarehouse.int # Specifies Seafile admin user, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=IUhgf&(*hd    # Specifies Seafile admin password, default is 'asecret'.
      - SEAFILE_SERVER_LETSENCRYPT=true   # Whether use letsencrypt to generate cert.
      - SEAFILE_SERVER_HOSTNAME=mcgy-seafile@cnwarehouse.int # Specifies your host name.
    depends_on:
      - db
      - memcached
      - sdoc-server
    networks:
      - seafile-net


networks:
  seafile-net:

感谢大佬,这个是docker-compose文件的内容,还没更改seadoc的配置文件

seafile适合云函数数吗?
比如阿里的 Serverless

seadoc可以支持在线编辑各种office文档吗