Skip to content

Commit

Permalink
feat: 🎸 简化零配置,只需2步,启动服务
Browse files Browse the repository at this point in the history
  • Loading branch information
meetqy committed Mar 24, 2023
1 parent 882dcff commit 47d7a65
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 674 deletions.
94 changes: 19 additions & 75 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,93 +19,37 @@

# <img src='https://raw.githubusercontent.com/rao-pics/rua/main/public/favicon.ico?raw=true' height="24px" width="24px" /> EagleUse

把《素材管理类 APP》作为后台管理系统,快速构建 WEB 图片站、自建图床、私有图库
将《素材管理 App》升级为后台管理系统,实现局域网内即时预览、共享

## ✈️ 快速开始
## ✈️ 超级简单

```
git clone -b example https://github.com/rao-pics/core.git example
pnpm i
pnpm i @raopics/use
```

`.env.example` 改为 `.env` 正确填写 `DATABASE_URL`

```sh
node index.mjs
```

## 👀 自定义安装

1. 安装依赖

```
pnpm i @raopics/use @raopics/prisma-client prisma @prisma/client
```

2.`package.json` 中新增

```json
{
"prisma": {
"schema": "@raopics/prisma-client/prisma/schema.prisma"
}
}
```

3.`package.json scripts`中新增

```json
{
"scripts": {
"db:init": "prisma migrate dev --name init --skip-seed",
"db:preview": "prisma studio",
"db:push": "prisma db push",
"db:generate": "prisma generate"
}
}
```

- `db:init` 初始化 sqlite 数据库,**本地不存在**
- `db:preview` 预览数据库
- `db:push` 初始化数据库,**本地存在,并且最新 schema 和数据库的不一致,不会损坏数据库中的数据**
- `db:generate` 根据 schema 生成类型文件

4. 新增`.env`文件,填写 `DATABASE_URL`

```sh
LIBRARY=/Users/qymeet/Pictures/test.library

# prisma cli 命令时才需要,也可以使用系统同环境变量
# 参考:https://www.prisma.io/docs/guides/development-environment/environment-variables/managing-env-files-and-setting-variables
# 不建议修改此参数
DATABASE_URL=file:${LIBRARY}/raopics.db?connection_limit=1
```

5. 新建 `index.mjs`

```js
// index.mjs

import EagleUse from "@raopics/use";

EagleUse({
// 开启API访问
plugin_api: true,
// 开启创建Sqlite时,自动NSFW检测图片并打标签
plugin_nsfw: true,
// 开启转换
transform_eagle: true,
// api访问端口号
port: 3002,
library: "xxx",
});
```

6. 启动

```sh
# 初始化数据库
pnpm db:init

# 启动服务
node index.mjs
```ts
interface Options {
// library 地址
library: string;
// 开启转换 eagle,默认 true
transform_eagle?: boolean;
// 开启sqlite api访问, 默认 true
plugin_api?: boolean;
// nsfw 检测
plugin_nsfw?: boolean;
// 端口号
port?: number;
}
```

## 🎨 主题
Expand Down
6 changes: 0 additions & 6 deletions example/.env.example

This file was deleted.

1 change: 1 addition & 0 deletions example/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ raopics({
transform_eagle: true,
// api访问端口号
port: 4002,
library: "/Users/qymeet/Pictures/test.library",
});
14 changes: 2 additions & 12 deletions example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,18 @@
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.mjs",
"db:init": "prisma migrate dev --name init --skip-seed",
"db:preview": "prisma studio",
"db:push": "prisma db push",
"db:generate": "prisma generate"
"start": "node index.mjs"
},
"keywords": [
"example"
],
"author": "meetqy",
"license": "MIT",
"dependencies": {
"@prisma/client": "^4.10.1",
"@raopics/prisma-client": "workspace:*",
"@raopics/use": "workspace:*",
"prisma": "^4.10.1"
"@raopics/use": "workspace:*"
},
"publishConfig": {
"access": "public"
},
"prisma": {
"schema": "./node_modules/@raopics/prisma-client/prisma/schema.prisma"
},
"gitHead": "e499e97b48309636d0583ac4080597ddf9f2e47f"
}
2 changes: 1 addition & 1 deletion packages/plugin-api/example/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import PLUGIN_API from "../lib";

(async () => {
PLUGIN_API({
library: "/Users/qymeet/Pictures/rao.library",
library: "/Users/qymeet/Pictures/test.library",
port: 3002,
});
})();
3 changes: 3 additions & 0 deletions packages/plugin-api/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import tag from "./tag";
import tagsGroups from "./tags-groups";
import { logger } from "@raopics/utils";
import ip from "ip";
import { getPrisma } from "@raopics/prisma-client";

interface Args {
library: string;
Expand All @@ -26,6 +27,8 @@ const PLUGIN_API = async (args: Args) => {

args.registerCallback && args.registerCallback(fastify);

getPrisma(args.library);

// 静态资源管理
await fastify.register(fastifyStatic, {
root: args.library + "/images",
Expand Down

0 comments on commit 47d7a65

Please sign in to comment.