至于自由职业者的开发人员,他的作品最多将是购物车或内容管理服务。但是,后端的任务将是数据库,文件存储和身份验证管理。
在他的每项工作中,他都解决了几乎相同的问题,而有些人选择了诸如数据库管理和其他常见后端服务之类的服务。但是,当这些服务无法承受时,问题出现了,因为它很昂贵或很难配置。
在此简短文章中,这是一项新服务,这将是解决此问题的解决方案。
什么是Pocketbase?
PocketBase是一种用GO编程语言编写的开源后端服务,它可以实现实时数据库,文件存储,身份验证系统,角色和权限管理器和电子邮件引擎,并带有优雅的Admin UI仪表板来管理数据库和其他服务。
PocketBase支持JavaScript和DART SDK,以便从客户端访问后端。这使得完整的堆栈开发比以往任何时候都更加容易,因为开发人员不应受到数据库,角色和权限管理,实时网络插款和其他后端服务的困扰,因为PocketBase可以在点击中启用所有这些服务。
为什么要袖珍。
这是偏爱Pocketbase而不是Firebase等其他服务的几个原因。
-
开源,因此,它可以在诸如Fultr的云服务中托管
成本和根据您的用例定制。- 单文件可执行。因此,在云实例上托管很容易,只需运行可执行文件即可 配置。
- 跨平台支持。支持Windows,Linux和Mac操作系统。
- 静态构建应用程序。它在Golang顶部建造,因此它的燃烧速度快,记忆安全。因此,即使在基本的$ 2.5 fultr实例 pocketBase存储器的使用率约为Windows任务管理器中的12MB。
- 易于集成。 PocketBSE正式提供JavaScript和Dart SDK,这有助于与Flutter移动应用程序和JavaScript框架集成,例如React和Vue。 。
快速开始使用PocketBase。
PocketBase很容易在几个步骤内开始。
步骤1:下载和unzip
您可以从pocketbase.io documentation page下载任何Linux,Windows,Mac平台的PocketBase。然后用您喜欢的拉链提取器解压缩下载的拉链。
步骤2:运行PocketBase
您可以使用任何控制台应用程序运行PocketBase。在未拉链文件夹中运行控制台应用程序并运行命令
./pocketbase serve
Windows
pocketbase.exe serve
这全都是运行Pocketbase后端。
控制台将打印出管理面板,静态服务器和REST API SERVER.
的路由转到管理URL(通常是:http://localhost:8090/)
首次访问管理面板时,您必须创建一个管理员帐户。您可以使用这些凭据打开管理帐户。
使用Pocketbase收藏。
您可以通过单击“集合”部分创建新集合来创建和管理数据库集合。
这将打开一个抽屉来定义您的数据库模式,在这里您可以在“字段”选项卡中添加字段,并在“ API规则”选项卡中的角色和权限中添加字段。设置字段和API规则后,您可以单击“创建”按钮来创建您的集合。您可以通过在Collection字段中创建文件字段上传文件,
每当您创建一个集合时,集合将在左角显示为按钮,通过单击可以添加,编辑,删除记录到集合的按钮。
管理用户。
为了创建用户和管理,您可以单击“用户”按钮。用户面板允许您创建,删除,编辑用户及其作为管理员和用户的角色。要创建一个用户,您必须提供用户电子邮件ID和密码,一旦创建了用户Pocketbase,将验证邮件发送到电子邮件ID到用户验证。
在PocketBase中,每个用户都有一个基本凭据模式,包括电子邮件ID和密码,以及可以自定义的配置文件模型。
使用Web API。
PocketBase正式支持DART和JavaScript SDK,这将有助于与移动应用程序和Web应用程序框架集成,例如Flutter,Vanilla JavaScript,React和Vue。本教程将重点关注JavaScript SDK。
步骤1
首先,您必须使用命令
npm i pocketbase
步骤2
安装完成后,您可以将其导入到前端代码中。并使用PocketBase类连接服务器。
import PocketBase from 'pocketbase';
const client = new PocketBase('http://127.0.0.1:8090');
步骤3
通过您的凭据进行身份验证,登录您将被允许在用户允许的情况下访问PocketBase。
const adminAuthData = await client.admins.authViaEmail('test@example.com', '123456');
PocketBase提供各种类型的身份验证方法,例如Google Auth和其他,请参阅官方文档以获取更多详细信息。
登录时,您可以访问收藏和所有其他服务。例如,您可以使用PocketBase.Records.GetList函数列出集合记录
const pageResult = await client.records.getList('demo', 1, 50, { filter: 'created >= "2022-01-01 00:00:00"',});
请参阅官方文档以获取更多详细信息
去生产
PocketBase是自主且易于部署的,不需要配置,不需要依赖项,因为它是完全便携式的,因此它只能通过上传和执行文件来部署。
此处显示的示例基于Linux服务器,
步骤1
首先,您必须允许命令中的PocketBase端口
[root@dev ~]$ ufw allow 80 && ufw allow 443
步骤2
然后通过命令
运行Pocketbase可执行文件 [root@dev ~]$ ./pocketbase serve --http="yourdomain.com:80" --https="yourdomain.com:443"
PocketBase Server将在YourDomain.com上运行
加入服务
而不是使用以前的方法,必须将PocketBase添加到服务中。通过添加服务,在您重新启动服务器后,服务器将处于活动状态。为了添加服务,您必须创建一个服务文件,即pocketbase.service
并编辑文件如下所示。
[Unit]
Description = pocketbase
[Service]
Type = simple
User = YOUR_USER
Group = YOUR_GROUP
LimitNOFILE = 4096
Restart = always
RestartSec = 5s
StandardOutput = append:/your/path/to/logs/errors.log
StandardError = append:/your/path/to/logs/errors.log
ExecStart = /your/path/to/pocketbase serve --http="yourdomain.com:80" --https="yourdomain.com:443"
[Install]
WantedBy = multi-user.target
保存文件并运行命令
[root@dev ~]$ systemctl enable pocketbase.service
[root@dev ~]$ systemctl start pocketbase
这些命令将PocketBase添加到服务中,尽管您的服务器重新启动时,PocketBase将重新启动。
用Pocketbase服务静态文件
您可以使用PocketBase使用HTML,CSS等静态文件。
为了启用静态服务,您必须在PocketBase Base Directory中创建一个名为pb_public的文件夹,并将文件复制到pb_public
。静态文件将在基本的Pocketbase URL(通常在http://localhost:8090/中)