{"repo":"BIT101-dev/BIT101-GO","free":true,"listed":false,"github":"https://github.com/BIT101-dev/BIT101-GO","clone":"git clone https://github.com/BIT101-dev/BIT101-GO.git","description":"针对北京理工大学搞的怪东西后面的东西","language":"Go","stars":20,"topics":["go","golang","postgresql","gin"],"license":"AGPL-3.0","category":"databases-storage","readme_excerpt":"BIT101-GO BIT101主仓库 · API文档 · 运维手册 BIT101 的服务端，基于 Go 语言。 如果其他同学有需要用到该项目，可以直接使用，但需要注明使用了该项目，另外还请注意开源协议。文档中的说明已经比较详尽了，如有问题欢迎提 issue 。 🥳也非常欢迎你来贡献代码！ 总之，希望这个项目能够帮助到大家( ´▽｀) 部署指南 一些更详细的说明可参考运维手册。 配置依赖服务 BIT101-GO 主要使用了 PostgreSQL 数据库、 Redis 缓存、 Meilisearch 推荐系统和 Gorse 推荐系统三大依赖服务，你可以选择使用 docker 或手动安装的方式，推荐使用 docker 方式，只需要进入到 env 目录并运行 docker compose up 即可一键运行所有依赖服务，关于更多 docker 的相关操作可自行查询。 注意需要同步 docker-compose.yaml 和 config.yml 中的配置。 默认情况况下，将在几个端口上提供服务： 6379 ： Redis 缓存端口 7700 ： meilisearch 的端口，除了提供 API 外，浏览器访问还有交互式搜索测试网页 8086 ： gorse 的 gRPC 端口 8088 ： gorse 的 HTTP 端口，浏览器访问显示后台网页 5432 ： PostgreSQL 数据库端口 启动主程序 需要先配置好依赖服务。 克隆并进入代码仓库 安装 GO 并配置 复制 config example.yml 为 config.yml 并配置 执行 go run . 以启动调试 执行 go build -o main main.go 以编译为可执行文件 main 假设编译后程序为 main 开启服务： ./main 或 ./main server 备份数据： ./main bakcup ，默认备份到 ./data/backup/ 文件夹下 导入课程表： ./main import course [path] ，其中 path 为课程表 .csv 文件所在的目录，默认为 ./data/course/ 获取课程历史： ./main course history [start year] [end year] [webvpn cookie] ，现阶段测试最早的课程历史为 2005-2006 学年 数据库手动配置 使用 postgresql 作为数据库。 搜索系统手动配置 使用 Meilisearch 作为搜索系统。可前往官网链接查看安装和实用教程。 部署时运行： 其中 master key 需要和 config.yml 中对应。 推荐系统手动部署 1. 前往Gorse仓库Release下载对应平台 latest 版本 2. 修改配置文件 ./env/gorse config.toml 3. 运行 gorse-in-one : 身份验证说明 使用 JWT 作为身份验证的方式，这样服务器就不用缓存任何信息，只要验证数字签名就可以，数字签名的密钥在 config.yml 中配置，绝对不可以泄漏。登录成功时会下发一个 fake-cookie ，之后只需要每次请求携带 fake-cookie 头即可。 部署到 Serverless 以及代理请求 serverless 的分支中为专供 Serverless 平台使用的精简版本，当前只用于成绩查询。 BIT101-GO 可以非常简单地部署到函数计算服务上，也可以按照路由将请求转发到另一个服务器上，实现反向代理。 一个典型","default_branch":null,"files":null,"tree":[],"storefront":"/r/BIT101-dev","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/BIT101-dev/BIT101-GO/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}