Mirlo
RESTful API和客户端。
主要库:
贡献
下载和安装
前提条件:
安装Node.js后,您可以使用Corepack自动安装正确版本的yarn(如package.json
中定义):
corepack enable
对于API:
git clone https://github.com/funmusicplace/mirlo
cd mirlo
cp .env.example .env
docker compose watch
访问localhost:3000/docs
查看Swagger API文档。
默认情况下,这应该运行种子脚本。如果没有运行,您可以通过以下命令运行种子:
docker exec -it blackbird-api yarn prisma:seed
对于客户端:
yarn install
yarn client:start
您可以使用以下凭据登录:
admin@admin.com
test1234
电子邮件
在生产环境中,电子邮件通过sendgrid发送。在本地开发过程中,电子邮件会出现在API的docker日志中。
后台任务
修改后台任务
对后台任务的更改不会被自动检测。您需要重新启动docker容器:
docker compose up -d --force-recreate --no-deps background
工作进程(上传音乐、图片等)
如果您想上传音乐或图片,需要运行一个工作进程。
docker exec -it blackbird-api yarn ts-node src/jobs/queue-worker.ts run
注意:这由docker中的
blackbird-background
容器自动完成。
注意:在本地开发中,您可以在服务器的/admin/queues查看工作队列。
运行迁移
迁移将在docker-compose up
时自动运行。要对数据库进行更改,请修改schema.prisma文件,然后运行:
yarn prisma:migrate
**注意:**如果这是您第一次执行此操作,需要在
/prisma
文件夹中添加一个.env
文件。您可以复制.env.example
并正确设置值。
如果您的prisma TypeScript定义过时,可以通过以下命令重新生成:
yarn prisma:build
Stripe
默认情况下,Mirlo使用Stripe作为支付处理器。
注意:每90天,您需要使用
stripe login
重新登录Stripe CLI。
要测试webhooks,您需要运行以下命令:
stripe listen --forward-to localhost:3000/v1/webhooks/stripe
这将把所有Stripe webhooks转发到您的localhost:3000,并将它们发送到checkout/webhook URL。它还会输出一个STRIPE_WEBHOOK_SIGNING_SECRET
。您需要在.env文件中设置这个值。
然后触发特定工作流:
# 这是存储订阅所需的
stripe trigger checkout.session.completed --add checkout_session:metadata.userId=3 --add checkout_session:metadata.tierId=2
您还需要虚拟Stripe数据。您可以在这里找到详细信息。
定时任务
存在一些定时任务:
docker exec -it blackbird-api yarn ts-node src/jobs/every-minute-tasks.ts
MinIO
您可以使用在.env中设置的MINIO_ROOT_USER和MINIO_ROOT_PASSWORD访问localhost:9001上的开发MinIO。
数据库
如果要在数据库中进行日志记录,需要取消注释prisma/prisma.ts
文件中的log
行。
测试
请参阅test/README.md中的说明。
Apple芯片Docker错误
如果在运行backbird-api和blackbird-background服务时遇到类似Error relocating /usr/lib/libgcc_s.so.1: unsupported relocation type 7
的错误,请按以下步骤操作。
- 在终端运行
softwareupdate --install-rosetta
- 在Docker Desktop中,进入Settings -> General,确保勾选
Use Rosetta for x86/amd64 emulation on Apple Silicon
。 - 删除之前创建的所有镜像
- 运行
DOCKER_DEFAULT_PLATFORM=linux/amd64 docker compose up
Docker连接问题
可能是您的Docker容器无法访问yarn或github。如这里所述:可以在Docker Desktop中编辑Docker Engine文件以显示DNS,或直接编辑/etc/docker/daemon.json:
"dns": [
"10.0.0.2",
"8.8.8.8"
],
致谢
这里的大部分代码最初是为Resonate API和UI编写的。