Benotes 是一个开源的自托管书签和笔记应用,它允许用户以优雅的方式保存和管理书签和笔记。该应用支持Markdown和富文本编辑器,并且可以在移动设备上作为PWA安装。Benotes 还提供了通过公共URL分享内容的功能,并且支持链接可以立即被粘贴为新文章。此外,Benotes 使用轻量级的Lumen框架和PHP语言,几乎可以在任何地方托管,并且支持文件系统和S3存储。用户可以通过Docker或Heroku托管Benotes,并且提供每日备份以保护数据。

Benotes

640.webp

特性

  • URLs 会自动保存图片、标题和描述
  • 同时支持 markdown 和富文本编辑器
  • 可以作为 PWA 安装在不的移动设备(和桌面)上
  • 通过该应用共享内容(如果作为 PWA 安装并被你的浏览器支持的话)
  • 可以通公共可用的 URL 进行分享
  • 链接可以立即被粘贴为新文章
  • 由于使用了轻量级的 Lumen 框架和支持良好的 PHP 语言,几乎可以在任何地方托管
  • 可以使用不使用持久存储层(支持文件系统和 S3)
  • 也可以通过 Docker 或 Heroku 托管
  • 通过每日备份保护你的数据

安装

安装该应用稍微有一点复杂,但是我们可以使用 Docker 来进行简化,下面是我们使用 Docker Compose 安装 Benotes 的过程。

  1. 获取 Benotes 代码,直接 Clone 代码仓库即可:

    git clone https://github.com/fr0tt/benotes_docker-compose
  2. 进入 benotes_docker-compose 目录并运行以下命令

    cp .env.example.env .env

然后根据实际需求更改相关的环境变量。

  1. 然后执行下面的命令启动容器并让 Benotes 使用此命令运行初始安装:

    docker-compose up -d
  2. 安装完成后并且数据库和应用都正常运行后,运行以下命令:

    docker-compose exec --user application sh

现在我们在应用程序内运行以下命令。

php artisan install

按照命令并在设置中键入 yes,然后创建管理员用户名、电子邮件和密码。

640.gif

不过需要注意的是还需要对缩略图目录权限进行更改:

chmod -R 774 /data/app/public/thumbnails

如果不执行上面的命令,Benotes 仍然可以使用,但是会遇到显示图像的问题,并且在尝试添加注释时会弹出如下所示的错误。

640 (1).webp

使用

到这里 Benotes 就安装完成了,然后我们就可以登录使用了,在首次登录时会有演示说明,这些说明可以让我们了解可以使用 Benotes 做什么,从使用 Markdown 创建笔记到简单的链接书签,等等。

640 (2).webp

创建分类

默认情况下,所有演示笔记都存储在 Uncategorized 分类中,你可以根据你对笔记或链接书签的想法创建一个新分类,比如我们这里添加一个名为 Web Links 的分类。

640 (3).webp

我们可以从图标菜单中选择一个图标,该图标将显示在左侧边栏中的旁边,效果如下图所示:

640 (4).webp

共享分类

如果你愿意,还可以通过给它一个令牌来与其他人公开分享你的收藏,如下所示:

640 (5).webp

添加书签或注释

我喜欢在 Benotes 中直接添加 Web 链接作为书签,他可以非常容易帮我们抓取该链接的相关 Meta 信息,看起来非常棒。

640 (1).gif

添加用户

在 Benotes 里添加其他用户也非常容易,也许你的朋友或家人可能想要使用你的 Benotes 实例来保存他们自己的书签或笔记,每个用户配置文件都是完全独立的。

640 (6).webp

添加标签

Benotes 还有一个标签系统,可以让你进一步完善你的笔记和书签。你可以查看你的标签页面并查看创建的所有标签,也可以通过这些标签浏览相关数据。

640 (7).webp

搜索

Benotes 的搜索功能也非常棒,可以搜索标题、描述甚至链接文本,通过运行快速搜索轻松找到你需要的内容。

640 (8).webp

转移笔记

Benotes 的另一个很棒的功能是你只需轻按一下按钮,就可以将笔记或书签从一个类别转移到另一个类别。

640 (9).webp

备份

目前不支持 SQL Server 和备份 S3 存储。不过我们可以通过执行以下命令手动触发备份:

php artisan backup:run

或者将下面的命令添加到你服务器的 cron 中来定时执行备份任务:

0 * * * *cd /path-to-your-project & php artisan schedule:run >> /dev/null 2>&1

这将每小时检查是否有任务需要运行。如果你使用的是 docker,则可以将下面的命令添加到你服务器的 cron 条目中:

0 * * * *cd /path-to-your-project & docker exec -it benotes php artisan schedule:run >> /dev/null 2>&1

默认情况下,每晚都会创建备份计划,如果你想更改它,请将以下内容添加到你的 .env 文件中:

BACKUP_INTERVAL=0 0 *7 *

如果想使用 S3 兼容对象存储(例如 AWS S3、Digital Ocean Spaces、Minio 等)存储数据,请将以下内容添加到你的 .env 文件中:

BACKUP_DISK       = s3

AWS_ACCESS_KEY yourKeyId
AWS_SECRET_KEY yourAccessKey
AWS_DEFAULT_REGION us-east-1
AWS_BUCKET yourCreativeBucketName
AWS_ENDPOINT endpointUrl

总结

总体来说我个人是非常喜欢 Benotes 的自托管书签和笔记应用,而且还可以使用 Docker 进行安装,非常简单。不过需要注意该项目目前处于测试阶段,在使用过程中可能会遇到错误。

Github 仓库:https://github.com/fr0tt/benotes

标签: GitHub, Benotes, 笔记, Markdown, 自托管

添加新评论