Anchor:离线优先的自托管笔记应用
一款离线优先、可自托管的笔记应用,覆盖 Web 与 Android,笔记本地存储、联网自动同步。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v0.17.2
详细介绍
项目简介
Anchor 是一款离线优先、可自托管的笔记应用,提供 Web 端与 Android 移动端。笔记保存在本地数据库中,断网也能编辑,联网后在设备之间自动同步。项目强调速度、隐私、简洁与可靠。

技术栈:后端为 Nest.js、PostgreSQL、Prisma;Web 端为 Next.js、TypeScript;移动端为 Flutter。
主要功能
- 富文本编辑器:支持加粗、斜体、下划线、标题、列表、复选框等格式
- 离线优先:所有编辑基于本地数据库,离线可用
- 笔记分享:把笔记分享给其他用户,权限分查看者与编辑者
- 笔记历史:查看笔记的历史版本,并可回滚到某一版本
- 标签系统:自定义标签与颜色
- 附件:为笔记添加图片与音频
- 笔记背景:使用纯色与图案定制笔记外观
- 置顶与归档:置顶重要笔记,归档留待日后查阅
- 提醒:为任意笔记设置时间提醒,支持一次性或重复,在手机上收到通知
- 本地搜索:按标题或内容搜索笔记
- 回收站:软删除笔记,并在一段时间内可恢复
- 自动同步:联网时在设备间同步改动
- 导入导出:整库备份,或按纯 Markdown 导入导出笔记
- 主屏幕小组件:在 Android 桌面快速访问笔记
- 管理后台:用户管理、注册控制、系统统计
- OIDC 认证:支持 Pocket ID、Authelia、Keycloak 等 OpenID Connect 提供方登录
安装与使用
使用预构建镜像自托管(推荐)
新建 docker-compose.yml:
services:
anchor:
image: ghcr.io/zhfahim/anchor:latest
container_name: anchor
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- anchor_data:/data
volumes:
anchor_data:
启动容器:
docker compose up -d
随后访问 http://localhost:3000 即可。
环境变量为可选项,默认配置即可开箱使用。常用变量包括 APP_URL(服务地址)、JWT_SECRET(认证密钥,设置时至少 16 字符)、DATA_DIR(持久化上传目录)、CORS_ORIGINS、USER_SIGNUP(disabled / enabled / review),以及 PostgreSQL 相关变量(不填则使用内置数据库)。next 标签对应预发布镜像。
从源码构建
git clone https://github.com/zhfahim/anchor.git
cd anchor
docker compose up -d
仓库中的 docker-compose.yml 会自动从源码构建镜像。
Android 客户端
前往 GitHub Releases 下载最新 APK:通用包(anchor-{version}.apk,推荐多数用户使用),或体积更小的按 CPU 架构拆分包。
备份与恢复
登录后进入 Settings,滚动到 Export & Import,导出 Anchor backup (.zip)。导出的 anchor-export-YYYY-MM-DD.zip 包含记录备份元数据、标签、笔记与附件引用的 manifest.json,以及 attachments 目录下的附件文件。恢复时在同一位置上传该文件即可。
OIDC 登录
在 OIDC 提供方中配置回调地址:Web 端为 {APP_URL}/api/auth/oidc/callback(例如 https://notes.example.com/api/auth/oidc/callback);若要在移动端使用 OIDC,需把 Anchor 配置为公共客户端(PKCE,无需 client secret),并添加回调 anchor://oidc/callback。
services:
anchor:
image: ghcr.io/zhfahim/anchor:latest
environment:
- OIDC_ENABLED=true
- OIDC_PROVIDER_NAME=Pocket ID
- OIDC_ISSUER_URL=https://pocketid.example.com
- OIDC_CLIENT_ID=your-client-id
- OIDC_CLIENT_SECRET=your-client-secret # 公共客户端可省略
- DISABLE_INTERNAL_AUTH=false
- APP_URL=https://notes.example.com
也可以通过管理后台的 Settings → OIDC Authentication 配置。
注意事项
- 预发布镜像
ghcr.io/zhfahim/anchor:next由next分支构建,可能包含不完整功能或不兼容变更,请勿用于生产环境,切换前务必备份数据。 - 排查问题时可在移动端 Settings → View Logs 查看日志,并点击底部 Export 导出
.log文件用于反馈。日志仅保存在本机(滚动写入,上限约 2 MB),其中授权头、密码、token、secret、邮箱等敏感值会先被替换为***。 - 项目采用 AGPL-3.0 许可证;路线图中已规划的后续功能为实时协作。
本作品整理自 GitHub 开源项目 ZhFahim/anchor,原作者 @ZhFahim,许可证 AGPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.17.2当前版本
修复若干同步与权限问题:协作者可自行归档、打标签和移除共享笔记;提醒不再因同步冲突丢失;同步改为按字段合并;会话过期时显示提示并可恢复;Web 端展示服务端真实错误信息。
评论