使用云应用程序意味着你实际上并不真正拥有自己的笔记。如果你的网络连接中断,或者公司更改了相关规则,你就可能无法访问这些笔记。
在本文中,你将学习如何使用AFFiNE搭建属于自己的私有工作空间。你会利用Docker Compose将三款独立的软件整合到一起:
-
AFFiNE核心应用程序。
-
用于存储笔记和页面信息的PostgreSQL数据库。
-
用于提升应用运行速度的Redis缓存系统。
读完这篇文章后,你将能够在自己的电脑上运行一个功能完备的网络应用程序,它的使用体验与Notion的云版本完全相同。
目录
什么是AFFiNE?
AFFiNE是一个“全能型”工作空间,它结合了写作、绘图和规划的功能。
虽然像Notion这样的工具专注于文档处理,而Miro则侧重于白板功能,但AFFiNE允许你在同一个环境中同时使用这些功能。只需点击一下,你就可以将文字笔记转换成可视化的界面,这使得它非常适合用于头脑风暴、任务管理以及个人知识整理。
自主托管的优势
尽管AFFiNE提供了云版本,但自己进行托管能带来三大好处:
-
数据完全由你掌控:你的笔记永远不会离开你的电脑,数据库也属于你。
-
在人工智能时代保障隐私:没有任何大型科技公司能够扫描你的私人想法或将其用于人工智能训练。
-
提升DevOps技能:
学习如何在WSL环境中管理Docker,对任何现代开发者来说都是一项非常有价值的技能。
先决条件
要阅读本文,请确保您的机器上已经安装了以下工具:
-
WSL 2的安装:如果您使用的是Windows系统,那么必须安装WSL(在本指南中,我使用的是Ubuntu系统)。
-
Docker和Docker Compose:这些工具也必须在您的机器上安装并处于运行状态。
-
Linux终端命令:
您应该熟悉诸如`mkdir`、`cd`和`wget`等基本命令。
步骤1:准备工作区
首先,为您的AFFiNE文件创建一个文件夹。这样可以让您的数据得到妥善整理。
然后打开WSL终端,运行以下命令:
mkdir affine
cd affine

步骤2:下载官方配置文件
您可以直接从AFFiNE官网下载官方配置文件。在WSL终端中,运行以下两条命令:
- 下载Docker Compose文件:
wget -O docker-compose.yml https://github.com/toeverything/affine/releases/latest/download/docker-compose.yml
- 下载环境配置模板:
wget -O .env https://github.com/toeverything/affine/releases/latest/download/default.env.example

步骤3:配置环境文件(.env)
要编辑这个文件,您可以使用Nano这款内置在Linux终端中的简单文本编辑器。按照以下步骤来更新您的设置:
-
用Nano打开文件:
nano .env -
更新设置内容:使用方向键浏览文件内容,将以下指定行中的信息修改为与您的实际环境相匹配的值。这样,您的数据就能安全地保存在新的`affine`文件夹中了:
DB_DATA_LOCATION=./postgres UPLOAD_LOCATION=./storage CONFIG_LOCATION=./config DB_USERNAME=affine DB_PASSWORD= DB_DATABASE=affine
保存并退出:按Ctrl + O键保存文件。
-
按Enter键确认文件名。
-
按Ctrl + X键退出编辑器。
-
步骤4:启动系统
运行以下Docker命令来构建您的工作空间:
docker compose up -d
Docker会下载AFFiNE应用程序和Postgres数据库。参数-d表示该服务会在后台安静地运行。

步骤5:访问管理面板
当终端显示“已启动”时,您的私有服务器就已经准备就绪了!
打开您的网页浏览器,访问以下地址:
http://localhost:3010/
首次访问此页面时,您必须创建一个管理员账户。这个账户是管理您服务器的关键。

步骤6:进行配置(个性化设置)
有两种方法可以配置您的服务器。
简单方式:通过管理面板进行配置
在浏览器中,访问地址http://localhost:3010/admin/settings。在这里您可以更改服务器名称或设置电子邮件地址。

高级方式:通过配置文件进行设置
您也可以在./config文件夹中创建一个config.json文件来进行配置。
{
"$schema": "https://github.com/toeverything/affine/releases/latest/download/config.schema.json",
"server": {
"name": "我的私有工作空间"
}
}
步骤7:连接桌面应用程序(可选)
您不必使用浏览器,也可以直接连接官方的AFFiNE桌面应用程序。
-
下载AFFiNE桌面应用程序。
-
点击左上角的工作空间列表面板。
-
选择“添加服务器”,然后输入
http://localhost:3010。 -
使用您的账户登录即可。


步骤8:关闭服务器并安全备份数据
在备份笔记之前,必须先确保安全地关闭服务器。
要完成这一操作,请运行以下命令:
docker compose down
等命令执行完成后,你就可以将整个 affine 文件夹安全地复制到其他位置。
步骤 9:后续如何进行升级
当 AFFiNE 发布新版本时,请在 affine 文件夹中运行以下命令:
- 下载最新版本的配置文件:
wget -O docker-compose.yml https://github.com/toeverything/affine/releases/latest/download/docker-compose.yml
- 拉取新的镜像并重新启动系统:
docker compose pull
docker compose up -d
常见的安装错误及解决方法
1. Docker 未运行
-
错误表现:
终端会显示 “docker: command not found” 的提示。
-
解决方法:
在 Windows 系统中打开 Docker Desktop 应用程序,等待其启动即可。
2. Docker 未与 WSL 连接
-
解决方法:
在 Docker Desktop 中,进入 “设置 > 资源 > WSL 集成” ,为你的操作系统启用该功能。
3>指定的端口已被其他程序占用
-
解决方法:
打开
docker-compose.yml文件,将 “3010:3010” 更改为 “4000:3010”。此时,你可以通过 “localhost:4000” 访问服务器。
4>权限不足导致操作失败
-
解决方法:
如果无法删除某个文件夹,可以使用 sudo 命令:
sudo rm -rf affine/。
总结
通过本教程,你成功搭建了一个自主托管的私有工作空间。你也掌握了使用 WSL、Docker Compose 和 Postgres 的方法,这些技能对任何开发者来说都非常宝贵。
接下来的步骤:
-
在 AFFiNE 中记录下你所学到的内容。
-
关闭服务器(执行
docker compose down命令),并将相关文件复制到备份盘中。 -
如果你想从手机上访问服务器,可以尝试使用 Cloudflare Tunnels 功能!
虽然自主托管需要一些准备工作,但由此带来的隐私保护价值是值得的。
让我们继续交流吧!