使用 Rust 和 Flutter 構(gòu)建的 Notion 開源替代品 - AppFlowy
AppFlowy 是一款 Notion 的開源替代產(chǎn)品。是專為需要更多控制和靈活性的團(tuán)隊(duì)打造的;你可以在任何地方托管 AppFlowy,沒有服務(wù)商綁定;開放源代碼,你可以根據(jù)自己的需求修改;支持多個(gè)平臺(tái);采用 Flutter 和 Rust 構(gòu)建;數(shù)據(jù)安全有保障,100%自己控制。
自 2021 年 11 月 13 日在 GitHub 上首次發(fā)布以來,截至本文撰寫之時(shí),該項(xiàng)目已累積 20k 顆星和 48 位貢獻(xiàn)者,這也足以證明該開源項(xiàng)目的受歡迎程度。
安裝
我們可以使用多種方式來安裝 AppFlowy。如果你是 Mac 用戶,可以直接使用 Homebrew進(jìn)行一鍵安裝:
brew install appflowy
目前比較推薦的方式是直接下載官方的安裝包進(jìn)行安裝,下載地址:https://github.com/AppFlowy-IO/appflowy/releases,根據(jù)你的系統(tǒng)下載對(duì)應(yīng)的安裝包,解壓后即可使用。
如果你想自己手動(dòng)構(gòu)建,則需要 Clone 源代碼,然后要配置 Rust 和 Flutter 的環(huán)境,具體方式可以參考文檔 https://appflowy.gitbook.io/docs/essential-documentation/install-appflowy/installation-methods/from-source。
還一種更加簡(jiǎn)單的方式就是可以通過 Docker 來啟動(dòng) AppFlowy,使用下面的命令啟動(dòng)容器:
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 容器內(nèi)的 Appflowy 需要訪問你的 X server,如果沒有對(duì)應(yīng)的權(quán)限,則推薦構(gòu)建自己的鏡像。雖然可以在運(yùn)行容器之前執(zhí)行 xhost +,但是這個(gè)命令是比較危險(xiǎn)的,所以最好在執(zhí)行之后運(yùn)行 xhost -命令。
要構(gòu)建自己的鏡像也很簡(jiǎn)單,不需要克隆整個(gè)代碼庫,可以簡(jiǎn)單地創(chuàng)建一個(gè)目錄并將所需的 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
然后執(zhí)行下面的命令即可構(gòu)建鏡像:
docker-compose build --build-arg uid=$(id -u) --build-arg gid=$(id -g)
構(gòu)建后使用 docker-compose up即可啟動(dòng)容器。
使用
目前 Appflowy 的功能并不是很強(qiáng)大,基本的編輯功能是沒有問題的,但是要和對(duì)標(biāo)的 Notion 比的話功能就差太多了。
但是從官方的路線圖來看會(huì)逐漸支持更多功能,類似于 Notion 的 database:
還會(huì)有專門的 Dashboard 統(tǒng)計(jì)頁面:
作為剛剛開始不久的開源項(xiàng)目算是非常優(yōu)秀的了,對(duì)于后續(xù)功能的實(shí)現(xiàn)也是非常值得我們期待的。如果你是 Rust 或者 Flutter 的使用者,那么這個(gè)項(xiàng)目是你非常值得研究學(xué)習(xí)的。想要了解 AppFlowy 是如何設(shè)計(jì)開發(fā)的,可以參考官方博客 https://blog-appflowy.ghost.io/tech-design-flutter-rust/ 了解更多。
倉庫地址:https://github.com/AppFlowy-IO/AppFlowy。