在这里插入图片描述

什么是 Benotes ?

Benotes 一个开源的自托管笔记和书签网络应用程序。使用 Laravel 和轻量级 Lumen 框架构建,可以作为 PWA 安装并托管在几乎任何地方。同时支持 Markdown 和富文本编辑器。

软件特点:

  • URL 会自动保存图片、标题和描述
  • 同时支持 markdown 和富文本编辑器
  • 可以作为 PWA 安装在您的移动设备(和台式机)上
  • 通过此应用程序共享内容(如果作为 PWA 安装并受您的浏览器支持)
  • 可以通过公共可用 URL 共享集合
  • 链接可以立即粘贴为新帖子
  • 由于使用了轻量级的 Lumen 框架和良好支持的 PHP 语言,几乎可以在任何地方托管
  • 使用和不使用持久存储层(支持文件系统和 S3
  • 也可以通过 DockerHeroku 托管
  • 通过每日备份保护您的数据

在这里插入图片描述

【注意】:该项目目前处于测试阶段。您可能会遇到错误或错误。

准备工作

数据库

数据库直接用的群晖的 MariaDB 10,在 phpMyAdmin 中创建了名为 benotes数据库

在这里插入图片描述

为了便于说明,我们假设数据库密码为 123456

.env 文件

环境变量文件 .env 的设置,需要根据上一步数据库的设定做调整

如果用了中文,保存时建议采用 utf-8 格式

APP_PORT=8347

USE_COMPOSER=false
RUN_MIGRATIONS=false
INSTALL_NODE=false

APP_NAME=Benotes
APP_ENV=production
APP_DEBUG=false
APP_URL=http://192.168.0.197:${APP_PORT}
APP_TIMEZONE=Asia/Shanghai

APP_KEY=7aGLzKFJTCkTkbLuJ3BoU3kNjkv6t67GWrC2izhrf9yEPTREvgeHJ2cMSptmuGnU
JWT_SECRET=hNwrp6N8NY2xaQayb5ikAFSPwD7iomwaZvVDUabT3JjTh35ejMw3pfTBUqsr8sJR
USE_FILESYSTEM=true

DB_CONNECTION=mysql
DB_HOST=192.168.0.197
DB_PORT=3307
DB_DATABASE=benotes
DB_USERNAME=benotes
DB_PASSWORD=123456

CACHE_DRIVER=file
QUEUE_CONNECTION=sync

MAIL_DRIVER=smtp
MAIL_HOST=smtp.88.com
MAIL_PORT=465
MAIL_USERNAME=wbsu2003@88.com
MAIL_PASSWORD=<第三方邮件客户端密码>
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=wbsu2003@88.com
MAIL_FROM_NAME="Benotes"

如果你想使用 SQLite,上面数据库设置部分用下面的替换就可以了

DB_CONNECTION=sqlite
DB_HOST=
DB_PORT=
DB_DATABASE=storage/database.sqlite
DB_USERNAME=
DB_PASSWORD=

主要的几个变量说明见下表👇

可变
APP_URL项目地址
APP_KEY应用程序标识,用验证接入的合法性,老苏一般用 Bitwarden 生成,你也可以用 openssl 来生成
DB_CONNECTION数据库类型
DB_HOST数据库主机名或者 IP
DB_PORT数据库端口
DB_DATABASE数据库库名
DB_USERNAME数据库用户
DB_PASSWORD数据库密码,老苏只是演示用的
MAIL_DRIVER发送邮件的协议,默认 smtp
MAIL_HOSTsmtp协议邮件主机地址
MAIL_PORT邮件端口,SSL协议端口号默认为 465
MAIL_USERNAME邮件账号
MAIL_PASSWORD邮件第三方客户端密码
MAIL_ENCRYPTION发送加密,可选 SSLTLS 和无
MAIL_FROM_ADDRESS发送的电子邮件地址
MAIL_FROM_NAME发送的姓名

还支持 S3 对象存储:https://github.com/fr0tt/benotes/blob/master/installation.md#optional-s3-as-filesystem

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 benotes 和 子目录
# storage 目录用来存放 SQLite 数据库,对外暴露需要映射 /var/www/storage 目录,用 MariaDB 可以不用建
mkdir -p /volume2/docker/benotes/{logs,storage}

# 进入 benotes 目录
cd /volume2/docker/benotes

# 将 .env 文件放入当前目录

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name benotes \
   --env-file ./.env \
   -p 8347:80 \
   -v $(pwd)/logs:/var/lib/nginx/logs/\
   -v $(pwd)/.env:/var/www/.env \
   fr0tt/benotes

# 进入容器
docker exec -it benotes sh

# 数据库迁移
php artisan migrate

# 创建用户
php artisan install --only-user

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "3.6"

services:
    benotes:
        image: fr0tt/benotes
        container_name: benotes
        restart: unless-stopped
        environment:
            DB_CONNECTION: ${DB_CONNECTION}
            RUN_MIGRATIONS: ${RUN_MIGRATIONS}
        ports:
            - ${APP_PORT}:80
        volumes:
            - ./logs/:/var/lib/nginx/logs/
            - ./.env:/var/www/.env

然后执行下面的命令

# 新建文件夹 benotes 和 子目录
# storage 目录用来存放 SQLite 数据库,对外暴露需要映射 /var/www/storage 目录,用 MariaDB 可以不用建
mkdir -p /volume2/docker/benotes/{logs,storage}

# 进入 benotes 目录
cd /volume2/docker/benotes

# 将 docker-compose.yml 和 .env 文件放入当前目录

# 一键启动
docker-compose up -d

# 访问应用程序服务
docker-compose exec --user application benotes sh

# 做一些必要的工作,如数据库迁移和管理员帐户创建
sh docker/install.sh

在这里插入图片描述

输入 yes 开始数据库迁移

在这里插入图片描述

然后设置管理员,用户名回车就可以,设置邮件和密码即可

在这里插入图片描述

运行

在浏览器中输入 http://群晖IP:8347 就能看到登录界面

在这里插入图片描述

登录成功之后

在这里插入图片描述

收藏网站

选中 Uncategorized,点 Create 创建一个 Post,内容中只要输入一个 URL,例如老苏的博客地址: https://laosu.ml/

在这里插入图片描述

Save 之后,主界面就有了,可以看到已经抓到了网站的 title 等信息

在这里插入图片描述

收藏文章

在这里插入图片描述

虽然获取到了文章的信息,但是图片没出来,主要是因为 jsdelivr 在国内没有备案

在这里插入图片描述

cdn.jsdelivr.net 加入科学上网的白名单,就 OK

在这里插入图片描述

数据库看,图片只是链接,并没有抓下来

在这里插入图片描述

新建类型

新建一个 Collection

在这里插入图片描述

保存之后,就出现在左侧菜单中了

在这里插入图片描述

刚开始我们建的都是放在 Uncategorized

在这里插入图片描述

选择需要更改的书签,点 Transfer 即可更改

在这里插入图片描述

点左侧的 群晖,已经更新成功

在这里插入图片描述

参考文档

fr0tt/benotes: An open source self hosted notes and bookmarks taking web app.
地址:https://github.com/fr0tt/benotes

Benotes
地址:https://benotes.org/

benotes/installation.md at master · fr0tt/benotes
地址:https://github.com/fr0tt/benotes/blob/master/installation.md

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐