Skip to content

Repository files navigation

EasyRedirect 🚀

一个专为解决“频繁修改 Nginx 301/302 重定向配置”痛点而设计的、带 Web 边栏的轻量级自托管动态重定向与短链管理平台。

无需每次因为新增一条转发而跑去修改并 nginx -s reload,只需在漂亮的后台一键配置,即刻生效!

项目采用 Monorepo(单一仓库) 架构整合:

  • /backend:Go (Gin + GORM) 实现的高性能重定向与 API 引擎
  • /frontend:Vue 3 + Vite 实现的现代管理后台

🌐 功能特性

  • 无痛重定向:支持动态 301/302/307 转发,配置即生效,从此告别频繁修改 Nginx 配置文件。
  • 🔗 语义化短链/别名:支持自定义路径(如 /blog-1)转发,完美支持个性化品牌链接 (Vanity URLs)。
  • 📊 访问统计:实时统计每个重定向的访问量(PV/UV)并可视化展示。
  • ⚙️ 状态管理 & 过滤:一键禁用/启用转发、快速分页查询。
  • 🚀 Redis 缓存加速:利用缓存减少数据库查询,提供毫秒级重定向响应。
  • 🌍 多语言国际化:前后端均支持多语言切换(i18n)。

📂 目录结构

easy-redirect/
├── backend/            # 后端 Go 源码
├── frontend/           # 前端 Vue 3 源码
├── docs/               # 部署与配置相关文档
└── README.md           # 本文档

🛠️ 技术栈与运行环境

后端依赖

  • Go 1.18+
  • MySQL 5.7+ / 8.0+ (存储短链及统计数据)
  • Redis 6.0+ (缓存加速与 UV 统计)

前端依赖

  • Node.js 16+
  • npm 7+ / pnpm / yarn
技术 库名 / 框架 用途
后端 Gin Web 框架
GORM ORM 数据库操作
Zap 高性能日志库
Cron 定时任务
前端 Vue 3 + Vite 现代前端框架与构建工具
Element Plus 组件库
Pinia 状态管理

🚀 后端开发与部署 (Go)

1. 本地开发

进入后端目录并运行:

cd backend

# 整理并安装依赖
go mod tidy

# 运行服务 (默认监听 http://localhost:8080)
go run cmd/app/main.go

2. 生产环境部署与打包

第一步:配置环境变量

# 生产环境配置文件路径
export EASY_REDIRECT_CONFIG_PATH=/easy-redirect/backend/config.yaml

# 生产环境 i18n 文件路径
export EASY_REDIRECT_I18N_PATH=/easy-redirect/backend/i18n

第二步:编译构建

根据部署的目标平台在 backend/cmd/app/ 目录下进行编译:

  • Linux (AMD64):
    GOOS=linux GOARCH=amd64 go build -o easy-redirect-app
  • macOS (Apple Silicon):
    GOOS=darwin GOARCH=arm64 go build -o easy-redirect-app
  • Windows (PowerShell):
    $env:GOOS = "linux"; $env:GOARCH = "amd64"; go build -o easy-redirect-app

第三步:启动服务

./easy-redirect-app

🚀 前端开发与构建 (Vue 3)

1. 本地开发

进入前端目录并运行:

cd frontend

# 安装依赖
npm install

# 启动开发服务器 (默认访问地址: http://localhost:5173)
npm run dev

2. 代码检查与格式化

# 类型检查
npm run type-check

# 代码格式检查
npm run lint

3. 生产环境构建

cd frontend
npm run build

构建完成后,静态文件会生成在 frontend/dist/ 目录下,可交由 Nginx 托管。


⚡ 极速 Docker 一键部署 (推荐)

项目已完整支持 Docker Compose 容器化一键部署。通过容器化的网关(Nginx),前端静态页面(80 端口)、后端服务(8080 端口)以及数据库、缓存都将自动互联并一键运行。

Prerequisite (前提条件)

1. 快速启动

在项目根目录下,直接执行以下命令:

docker compose up -d

🌍 Nginx 部署说明

生产部署时,建议使用 Nginx 对前端静态资源进行托管,并将动态请求转发给 Go 后端服务。

Nginx 完整配置模板请参考:👉 docs/nginx-example.conf


📝 License

MIT License

📬 联系方式:如有问题或建议,请提交 Issue 或联系项目维护者。

About

⚡ Lightweight self-hosted dynamic redirect & short-link platform. Say goodbye to Nginx config reloads! (Go + Vue 3)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages