diff --git a/README.md b/README.md index 6a0d16d..fe4cec2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,224 @@ -# 功能详情 +# RD-Rev + +## 运行手册 + +主要技术栈一览 + +- 前端 + - 框架:Vue 3 + - 组件库:Quasar + - 构建工具:Vite + +- 后端 + - Java 17 + - 开发框架:Springboot 3 + - ORM:Mybatis (Plus) + - 数据库:Postgresql + - NoSQL:Redis + +- 运行部署 + - 运行与部署:Docker + - 阿里云CDN(示例站点) + +自行部署的示例站点: https://rd-rev.lensfrex.net + +## 后端 + +后端运行比较简单,可以使用已经打包好的 jar 包,也可以[自行编译 jar 运行](#2-自行打包编译运行),还可以[使用 `docker compose` 来运行](#3-docker-compose)。 + +### 1. jar 包直接运行 + +相关数据库等配置已经配置好,直接运行即可,不用额外配置: + +``` sh +java -jar ./radical-dreamers.jar +``` + +如确需修改配置,放置一份 `application.yml` 配置文件至 jar 文件同一目录下,即可覆盖原有配置,或者运行时添加参数(位于 jar 路径后) `--spring.config.location` 指定新的配置文件路径: + +``` sh +java -jar ./radical-dreamers.jar --spring.config.location=./application.yml +``` + +以下是配置文件示例(可在代码中找到): + +``` yaml +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl + mapper-locations: classpath*:/mapper/**/*.xml + +logging: + level: + rd: debug + druid.sql.Statement: trace + pattern: + console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}" + file: "%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd'T'HH:mm:ss.SSSXXX}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}" + +spring: + task: + execution: + pool: + core-size: 16 + max-size: 32 + queue-capacity: 128 + keep-alive: 90s + devtools: + restart: + enabled: true + data: + redis: + client-name: neolaf + host: 127.0.0.1 + port: 6379 + password: Test2333! + database: 0 + + datasource: + driver-class-name: org.postgresql.Driver + url: jdbc:postgresql://127.0.0.1:5432/little_busters?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai + username: postgres + password: Test2333! + +server: + address: 127.0.0.1 + port: 8800 + servlet: + context-path: / + +sa-token: + token-name: auth-token + is-concurrent: true + +rd: + WusthelperBaseUrl: https://wusthelper.wustlinghang.cn/mobileapi/v2 +``` + +## 2. 自行打包编译运行 + +该方式运行过程与上文 jar 包直接运行相同,差别在于需要手动编译和打包。 + +编译打包的过程很简单: + +``` sh +mvn clean package +``` + +完成后,编译产物位于target文件夹中,名为 `radical-dreamers.jar` + +打包完成后,运行方式同上文。 + +## 3. Docker Compose + +在构建 Docker 镜像前,需要先打包好 jar 文件,过程参考上文打包过程。 + +完成后,运行: + +``` sh +docker compose up --build +``` + +构建镜像并运行,由于网络原因,镜像拉取可能会很吃力,请自备代理。 + +以下是 `docker-compose.yml` 的内容(可在代码中找到): + +``` yaml +name: rd-srv-backend + +services: + # 主服务 + rd: + build: + context: . + dockerfile: Dockerfile + ports: + - "8800:8800" + environment: + spring.data.redis.host: redis + spring.data.redis.port: 6379 + spring.datasource.url: jdbc:postgresql://db:5432/rdrev?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai + spring.datasource.username: postgres + spring.datasource.password: a7d929f76d45d13a4337f2d16f5634bc17e5b8b2 + server.port: 8800 + depends_on: + redis: + condition: service_started + db: + condition: service_healthy + networks: + - rd-network + + # Postgresql + db: + image: postgres:14.12-alpine3.19 + environment: + PGUSER: postgres + POSTGRES_USER: postgres + POSTGRES_DB: rdrev + POSTGRES_PASSWORD: a7d929f76d45d13a4337f2d16f5634bc17e5b8b2 + volumes: + - ./docker:/docker-entrypoint-initdb.d/ + networks: + - rd-network + healthcheck: + test: [ "CMD-SHELL", "pg_isready", "-d", "db_prod"] + interval: 10s + timeout: 60s + retries: 5 + start_period: 5s + + # Redis + redis: + image: redis + networks: + - rd-network + +networks: + rd-network: + internal: false +``` + +可以参考该配置根据需求自行修改。 + +## 前端 + +### 1. 安装npm依赖: + +``` sh +# 使用yarn +yarn + +# 使用npm +npm install +``` + +### 2. 运行 dev server + +修改 baseUrl 配置(可选,默认情况下由 vite dev server 进行代理转发至本机`127.0.0.1:8800`,本地开发运行可以不做修改) + +修改前端源码文件夹中的`config.js`配置文件: + +``` javascript +export default { + // backendBaseUrl: 'http://127.0.0.1:8800', + backendBaseUrl: '', +} +``` + +修改完成后,运行 dev server: + +``` sh +# 使用yarn +yarn dev + +# 使用npm +npm run dev +``` + +运行起来后,会自动打开浏览器进入首页。 + +## 功能详情 设定信息: - 课程:一门课