优雅的开源自托管书签和笔记应用 – Benotes

Benotes 是一个开源的自托管 web 应用,可用来管理你的笔记📔和书签🔖,只需单击一个按钮即可保存你的书签,然后就可以以非常优雅的方式进行展示、分类和存储,以便以后使用。

优雅的开源自托管书签和笔记应用 - Benotes

特性

  • 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
  1. 进入 benotes_docker-compose 目录并运行以下命令
cp .env.example .env

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

  1. 然后执行下面的命令启动容器并让 Benotes 使用此命令运行初始安装:
docker-compose up -d
  1. 安装完成后并且数据库和应用都正常运行后,运行以下命令。
docker-compose exec --user application app sh

现在我们在应用程序容器内运行下面这个命令。

php artisan install

按照命令并在设置中键入 yes,然后创建管理员用户名、电子邮件和密码。优雅的开源自托管书签和笔记应用 - Benotes

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

chmod -R 774 PWD$/data/storage/app/public/thumbnails

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

优雅的开源自托管书签和笔记应用 - Benotes

使用

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

创建分类

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

优雅的开源自托管书签和笔记应用 - Benotes

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

优雅的开源自托管书签和笔记应用 - Benotes

共享分类

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

优雅的开源自托管书签和笔记应用 - Benotes

添加书签或注释

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

优雅的开源自托管书签和笔记应用 - Benotes

添加用户

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

优雅的开源自托管书签和笔记应用 - Benotes

添加标签

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

优雅的开源自托管书签和笔记应用 - Benotes

搜索

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

优雅的开源自托管书签和笔记应用 - Benotes

转移笔记

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

优雅的开源自托管书签和笔记应用 - Benotes

备份

目前不支持 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_ID     = yourKeyId
AWS_SECRET_ACCESS_KEY = yourAccessKey
AWS_DEFAULT_REGION    = us-east-1
AWS_BUCKET            = yourCreativeBucketName
AWS_ENDPOINT          = endpointUrl

总结

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

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

▲ 点击上方卡片关注Github爱好者,获取前沿开源作品

原文始发于微信公众号(Github爱好者):优雅的开源自托管书签和笔记应用 – Benotes

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/87865.html

(1)
小半的头像小半

相关推荐

发表回复

登录后才能评论

评论列表(1条)

  • szli的头像
    szli 2023年6月19日 下午6:19

    Up主~~
    在安装的过程中出现了以下提示,然后就没法继续安装了。

    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

    at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
    708▕ // If an exception occurs when attempting to run a query, we’ll format the error
    709▕ // message to include the bindings with SQL, which will make this exception a
    710▕ // lot more helpful to the developer instead of just the database’s errors.
    711▕ catch (Exception $e) {
    ➜ 712▕ throw new QueryException(
    713▕ $query, $this->prepareBindings($bindings), $e
    714▕ );
    715▕ }
    716▕ }

    +9 vendor frames
    10 database/migrations/2014_10_12_000000_create_users_table.php:23
    Illuminate\Support\Facades\Facade::__callStatic()

    +19 vendor frames
    30 app/Console/Commands/InstallCommand.php:57
    Illuminate\Console\Command::call()

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!