Skip to content

go + gin + vue 开发的前后端分离文件服务器,集成了JWT鉴权、权限管理、网速限制,文件的增删改查

Notifications You must be signed in to change notification settings

ctxgo/go-file-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bd540ce · Dec 6, 2024

History

13 Commits
Oct 1, 2024
Oct 1, 2024
Nov 29, 2024
Dec 6, 2024
Nov 29, 2024
Sep 24, 2024
Sep 2, 2024
Sep 24, 2024
Sep 2, 2024
Oct 1, 2024
Oct 1, 2024
Sep 2, 2024
Sep 2, 2024
Nov 16, 2024

Repository files navigation

go-file-server

基于Gin + Vue + Element UI 的前后端分离文件管理系统

✨ 特性

  • Casbin的 RBAC 访问控制模型
  • JWT 认证
  • dex ldap 鉴权
  • GORM 的数据库存储
  • time/rate 令牌桶限速
  • bleve 文件索引
  • ftpserverlib ftp服务端库

🎁 内置

  1. 文件管理:文件的增删改查
  2. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  3. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  4. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  5. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  6. 登录日志:系统登录日志记录查询包含登录异常。
  7. 服务监控:查看一些服务器的基本信息。
  8. ftp服务:兼容ftp协议,支持从lftp等客户端工具进行文件的增删改查

📦 本地开发

环境要求

go 1.21

mysql 8.2

redis 5.6(可选,默认使用内存)

获取代码

git clone https://github.com/ctxgo/go-file-server.git

启动说明

# 进入项目目录
cd go-file-server

# 修改配置 
vi ./config/config.yml
# 更新整理依赖
go mod tidy

# 启动服务
go run main.go server -c ./config/config.yml

构建docker镜像

# 编译镜像
docker build -t go-file-server .

初始用户

用户 admin

密码 123456


部署

docker 部署

⚠️ 注意修改 config.yaml,密码部分都是弱密码

⚠️ 如果使用 Nginx 代理,请设置 proxy_buffering off;,以解决图表显示异常的问题

cd deploy/docker
# 启动
docker-compose up -d

helm 部署

注意:修改 config.yaml,密码部分都是弱密码

前提要求

  • Helm 3

  • Kubernetes 1.20+

部署中间件

cd deploy/helm

# 添加中间件helm仓库
helm repo add bitnami https://charts.bitnami.com/bitnami

# 安装mysql
helm install mysql bitnami/mysql --version 9.5.1 --values mysql-9.5.1-values.yaml

#安装redis(可选)
helm install redis bitnami/redis --version 17.15.4 --values redis-17.15.4-values.yaml

部署dex

如果启用ldap认证,需要部署该组件,否则请跳过此步骤

# 添加 dex helm 仓库
helm repo add dex https://charts.dexidp.io

# 安装dex(注意修改dex-0.19.1-values.yaml,按需配置)
helm install dex dex/dex --version 0.19.1 --values dex-0.19.1-values.yaml

部署app

点击前往app helm仓库

# 添加app helm仓库
helm repo add go-file-server https://ctxgo.github.io/helm-charts/

# 如果修改了上述中间values配置, config.yaml也需要对应修改
# 创建configMap
kubectl create configmap go-file-server --from-file=config.yaml=config.yaml


#app vuales配置中支持ingress和ingressRoute,需要创建对对应额度 tls secrets
kubectl create secret tls example.com --key example.com.key --cert example.com.crt

#安装前后端app
#安装之前请修改app-1.0.0-values.yaml,如existingConfigMap、persistence、ingress部分
helm install go-file-server go-file-server/go-file-server --version 1.0.0 --values app-1.0.0-values.yaml

预览

ui go-file-server

🤝 特别感谢

  1. go-admin
  2. ftpserverlib
  3. dex

About

go + gin + vue 开发的前后端分离文件服务器,集成了JWT鉴权、权限管理、网速限制,文件的增删改查

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages