最近尝试了很多开源的笔记程序,说实话个人目前觉得AFFiNE最好用。我简单和Appflowy比较下吧,因为我之前还部署了一个Appflowy试了下来着。。
Appflowy的Win客户端对中文字体的支持真的是一言难尽,一会粗一会细,眼睛都看花了,可能是因为他们的客户端是用Flutter开发的原因吧。。
再就是Appflowy的搜索功能感觉不太行,它那个搜索功能是依赖AI的,对于文档里面的AI支持似乎用的是Claude,但是Claude那个API的价格太TM贵了。。反正我当时只配置了一个OpenAI的API就只能用搜索,文档里面的AI功能用不了,然后我就没试了。后来我发现他们的客户端支持本地LLM,可以用Ollama,但是我主要使用Web客户端偶尔才用Win。。
其实最重要的是我觉得AFFiNE的Web界面设计的真的非常精细,怎么说呢,给人一种很精致的感觉,相比较Appflowy的Web界面就显得有些粗糙了,没有AFFiNE美观(细腻)。
Appflowy部署起来也比AFFiNE麻烦不少,那个环境变量的配置文件,你不花个把小时阅读真的搞不清楚它的整个架构是怎样的。。
AFFiNE也不是完美的,目前使用下来也发现一些问题,但基本不影响我个人的体验。
AFFiNE目前自托管的版本只支持10个成员,但我就一个人用= =对于我来说没有任何影响。
AFFiNE似乎有一个100GB的存储空间限制,但是我看官方在Github的回复又说实际是没有限制的,只是界面上故意这么显示为了与他们的付费产品保持一致。。这个可能得等到我用满100GB空间后再说了,不过有一说一看着这个100GB的限制心里多少还是有点膈应的。。。
废话不多说了,下面就记录下部署和配置过程,首先安装好Docker和需要用到的软件包:
apt -y update apt -y install curl nginx python3-certbot-nginx curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
创建目录并下载compose文件:
mkdir -p /opt/affine && cd /opt/affine wget -O compose.yml https://github.com/toeverything/affine/releases/latest/download/docker-compose.yml
新建一个环境变量配置文件:
nano .env
写入如下内容:
# select a revision to deploy, available values: stable, beta, canary AFFINE_REVISION=stable # set the port for the server container it will expose the server on PORT=3010 # set the host for the server for outgoing links AFFINE_SERVER_HTTPS=true AFFINE_SERVER_HOST=affine.example.com # or # AFFINE_SERVER_EXTERNAL_URL=https://affine.example.com # position of the database data to persist DB_DATA_LOCATION=./.affine/self-host/postgres/pgdata # position of the upload data(images, files, etc.) to persist UPLOAD_LOCATION=./.affine/self-host/storage # position of the configuration files to persist CONFIG_LOCATION=./.affine/self-host/config # database credentials DB_USERNAME=affine DB_PASSWORD=pgpassword DB_DATABASE=affine
启动:
docker compose up -d
配置NGINX反向代理:
nano /etc/nginx/sites-available/affine
写入如下内容:
server { listen 80; server_name affine.example.com; client_max_body_size 0; location / { proxy_pass http://127.0.0.1:3010; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
启用站点:
ln -s /etc/nginx/sites-available/affine /etc/nginx/sites-enabled/affine
签发SSL证书:
certbot --nginx
访问affine.example.com创建管理员账号:
接下来配置AFFiNE的AI功能,以下配置方法在当前最新版本(0.21.2)测试可用。
首先在https://auth.openai.com/log-in创建API KEY。
创建API KEY免费,但是使用是收费的哈,必须先往里面充至少5USD。怎么充这里就不详细说了,稍微提一嘴,现在很多U卡(虚拟卡)都标榜支持OpenAI。。
进入如下目录:
cd /opt/affine/.affine/self-host/config/
在这个目录内新建一个json配置文件:
nano config.json
写入如下内容,将sk-proj-***替换为你的API KEY:
{ "copilot": { "enabled": true, "providers.openai": { "apiKey": "sk-proj-***" } } }
之后访问affine.example.com/admin管理面板,修改如下配置:
重启AFFiNE:
docker compose down docker compose up -d
效果: