AppFlowy在Linux上仅支持Docker自托管(AppFlowy-Cloud)或源码构建桌面版;前者需Docker 20.10+、4GB内存及正确配置Nginx/PostgreSQL,后者需Flutter stable环境、手动安装依赖并创建桌面文件。

AppFlowy 官方**不提供 Linux 原生二进制安装包**,也不能直接用 apt 或 yum 安装。它当前只支持两种可靠方式:Docker 自托管(即 AppFlowy-Cloud)或从源码构建桌面客户端(appflowy CLI + Flutter 桌面后端)。想在 Linux 上跑起来,必须明确你想要的是「在线协作服务」还是「本地笔记应用」——选错路径,后面全白忙。
AppFlowy-Cloud 部署:用 Docker 跑服务端(推荐给团队/自建云)
这是目前最稳定、功能最全的 Linux 运行方式,本质是部署一套私有 Notion 服务,含数据库、认证、存储、Web 前端。不是单机 App,而是可多人访问的 Web 应用。
关键实操点:
- 必须先装好
Docker 20.10+和docker-compose(新版推荐用docker composev2 命令) - 内存不能低于
2GB,否则 PostgreSQL 容器会频繁 OOM;建议分配4GB+并在docker-compose.yml中限制各服务内存上限 -
git clone https://gitcode.com/GitHub_Trending/ap/AppFlowy-Cloud.git后,别急着docker-compose up—— 先复制并编辑env.dev.secret,尤其注意:-
DATABASE_URL默认是postgres://...,确保端口没被占用(PostgreSQL 默认占5432,而宿主机若已装 PG,得改容器映射端口或删本地 PG) -
SMTP_*配置不填,注册邮箱功能就失效;测试可用mailhog容器临时替代 -
APPFLOWY_FRONTEND_URL必须写成带协议和端口的完整地址(如http://localhost:8080),否则登录后跳转 404
-
- 首次启动后,Web 界面默认监听
:8080,但反向代理(如 Nginx)需额外配置 WebSocket 支持(proxy_set_header Upgrade $http_upgrade),否则实时协同光标不同步
Linux 桌面版 appflowy:从源码构建(适合个人离线使用)
官方仓库 AppFlowy-io/appflowy 的 main 分支支持 Linux 桌面构建,但不是一键安装,需要完整 Flutter 环境,且仅限 x86_64(ARM64 如树莓派暂未正式支持)。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
常见卡点:
- Flutter SDK 必须用
stable渠道(flutter channel stable),master或beta构建会报platform_views缺失错误 - 构建前必须运行
flutter pub get,然后flutter build linux—— 注意不是flutter run,后者只起开发服务器,不生成可执行文件 - 生成的二进制在
build/linux/x64/release/bundle/appflowy,直接运行可能缺共享库,用ldd ./appflowy | grep "not found"检查,通常要装:libgtk-3-0、libayatana-appindicator3-1(Ubuntu/Debian)、libappindicator-gtk3(Fedora) - 图标和桌面快捷方式不会自动注册,需手动创建
/usr/share/applications/appflowy.desktop并sudo update-desktop-database
别踩这些坑:Nginx 反代 / 数据库 / 权限三连错
很多人部署完打不开页面或注册失败,问题往往不出在 AppFlowy 本身,而在基础设施层。
- Nginx 配置里漏了
client_max_body_size 100M,上传附件 >1MB 就直接 413 - PostgreSQL 容器初始化时,如果
initdb失败(比如磁盘满或权限不对),日志里只有database system is shut down,实际要查容器内/var/lib/postgresql/data/log/下的 pg_log - 用非 root 用户运行
docker-compose时,若./data目录属主是 root,PostgreSQL 容器会因无法写入而崩溃 —— 解决方法是提前chown -R 999:999 ./data(PostgreSQL 官方镜像默认 UID 999) - 浏览器访问
http://localhost:8080显示空白?打开 DevTools → Console,大概率是前端静态资源 404,说明appflowy-cloud的frontend服务没起来,或nginx.conf的root路径指向了错误的 build 目录
真正麻烦的从来不是“怎么装”,而是“谁来维护”——AppFlowy-Cloud 的 PostgreSQL、Redis、MinIO 都是独立容器,一个挂了整个服务就降级;桌面版虽轻量,但每次大版本更新都要重拉代码、重编译、重装依赖。选哪种,取决于你愿不愿意每周花半小时看日志、清 volume、升级镜像。

















