vlambda博客
学习文章列表

使用 Rust 和 Flutter 构建的 Notion 开源替代品 - AppFlowy

AppFlowy 是一款 Notion 的开源替代产品。是专为需要更多控制和灵活性的团队打造的;你可以在任何地方托管 AppFlowy,没有服务商绑定;开放源代码,你可以根据自己的需求修改;支持多个平台;采用 Flutter 和 Rust 构建;数据安全有保障,100%自己控制。

自 2021 年 11 月 13 日在 GitHub 上首次发布以来,截至本文撰写之时,该项目已累积 20k 颗星和 48 位贡献者,这也足以证明该开源项目的受欢迎程度。

安装

我们可以使用多种方式来安装 AppFlowy。如果你是 Mac 用户,可以直接使用 Homebrew进行一键安装:

brew install appflowy

如果你想自己手动构建,则需要 Clone 源代码,然后要配置 Rust 和 Flutter 的环境,具体方式可以参考文档 https://appflowy.gitbook.io/docs/essential-documentation/install-appflowy/installation-methods/from-source。

还一种更加简单的方式就是可以通过 Docker 来启动 AppFlowy,使用下面的命令启动容器:

docker run --rm \
  -v $HOME/.Xauthority:/root/.Xauthority:rw \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v /dev/dri:/dev/dri \
  -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket \
  -v appflowy-data:/home/appflowy \
  -e DISPLAY=${DISPLAY} \
  appflowyio/appflowy_client:latest

不过需要注意 Docker 容器内的 Appflowy 需要访问你的 X server,如果没有对应的权限,则推荐构建自己的镜像。虽然可以在运行容器之前执行 xhost +,但是这个命令是比较危险的,所以最好在执行之后运行 xhost -命令。

要构建自己的镜像也很简单,不需要克隆整个代码库,可以简单地创建一个目录并将所需的 Docker 文件下载到该目录中:

wget https://raw.githubusercontent.com/AppFlowy-IO/appflowy/main/frontend/scripts/docker-buildfiles/Dockerfile
wget https://raw.githubusercontent.com/AppFlowy-IO/appflowy/main/frontend/scripts/docker-buildfiles/docker-compose.yml

然后执行下面的命令即可构建镜像:

docker-compose build --build-arg uid=$(id -u) --build-arg gid=$(id -g)

构建后使用 docker-compose up即可启动容器。

使用

目前 Appflowy 的功能并不是很强大,基本的编辑功能是没有问题的,但是要和对标的 Notion 比的话功能就差太多了。

使用 Rust 和 Flutter 构建的 Notion 开源替代品 - AppFlowy

但是从官方的路线图来看会逐渐支持更多功能,类似于 Notion 的 database:

使用 Rust 和 Flutter 构建的 Notion 开源替代品 - AppFlowy

还会有专门的 Dashboard 统计页面:

作为刚刚开始不久的开源项目算是非常优秀的了,对于后续功能的实现也是非常值得我们期待的。如果你是 Rust 或者 Flutter 的使用者,那么这个项目是你非常值得研究学习的。想要了解 AppFlowy 是如何设计开发的,可以参考官方博客 https://blog-appflowy.ghost.io/tech-design-flutter-rust/ 了解更多。