简体中文 | English
这是一个使用 Go 语言开发的高性能短链接服务系统,采用领域驱动设计(DDD)和整洁架构(Clean Architecture)实现。
它不仅提供基本的短链接功能,还支持智能跳转和详细的访问统计,帮助企业更好地管理和分析链接数据。
- 短链接生成:支持长链接转短链接,支持自定义短码。
- 智能跳转:根据访问者的设备类型、地理位置等条件进行智能跳转。
- 访问统计:提供详细的访问数据统计,包括访问次数、来源、设备类型等。
- 安全管理:支持链接过期时间设置和访问次数限制,确保链接安全。
Linkit 采用了现代化的技术栈,确保系统的高性能和可扩展性:
- Web 框架:Gin - 轻量高效,适合高并发场景。
- 数据库:PostgreSQL - 强大的数据存储和查询能力。
- 缓存:Redis - 多级缓存策略,提升系统响应速度。
- 架构设计:DDD + Clean Architecture - 业务逻辑清晰,易于维护和扩展。
以下是快速启动 Linkit 服务的步骤:
-
克隆项目到本地:
git clone https://github.com/shuakami/linkit.git cd linkit
-
环境准备:
- 安装 Go 1.21+
- 安装 PostgreSQL 14+
- 安装 Redis 7+
-
配置服务:
项目根目录下有一个示例配置文件
configs/config.example.yaml
,复制一份并重命名为config.yaml
:Windows:
copy configs\config.example.yaml configs\config.yaml
Linux/Mac:
cp configs/config.example.yaml configs/config.yaml
然后编辑
config.yaml
文件,主要需要修改以下配置:- 数据库连接信息(host、port、user、password、dbname)
- Redis连接信息(host、port、password)
- 短链接域名(domain)
-
启动服务:
# 下载依赖 go mod download # 初始化数据库 go run scripts/migrate.go # 启动服务 go run cmd/main.go
服务启动后,你可以:
- 访问 https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/shuakami/linkit/master/docs/api.yaml 查看在线API文档
- 或直接查看项目中的
docs/api.yaml
文件了解API详情
如果你觉得这个项目对你有帮助,那就给个Star呗~