111
Zurl - Crystal URL Shortener
一个简洁易用的短链接系统,使用 Crystal + Kemal + SQLite 实现,完全静态编译为单个二进制文件。
功能特性
- ? 用户注册 / 登录认证
- ? 密码修改
- ? 创建短链接(支持自定义短码)
- ? 短链接重定向(302 跳转)
- ? 链接管理(查看、编辑、删除)
- ? 点击统计
- ? 系统设置(开关是否允许注册)
- ? 用户管理(管理员功能)
- ? 第一个注册用户自动成为管理员
- ? 单一二进制文件部署,无需 Docker / Redis
下载二进制
直接下载预编译好的二进制文件,无需安装任何运行时:
- zurl-linux-amd64 - Linux x86_64
- zurl-linux-arm64 - Linux ARM64
运行
# 默认端口 3080
./zurl-linux-amd64
# 自定义端口
ZURL_PORT=3000 ./zurl-linux-amd64
# 自定义数据库路径
ZURL_DB=/data/zurl.db ./zurl-linux-amd64
从源码编译
前置要求
- Crystal 1.11+
- shards(Crystal 的依赖管理工具)
编译
# 安装依赖
shards install
# 静态编译(Linux)
crystal build src/zurl.cr --release --static --no-debug -o zurl
# macOS / 非静态
crystal build src/zurl.cr --release -o zurl
使用方法
- 首次访问
http://localhost:3080,点击"注册" - 创建账号后登录
- 在控制面板输入长链接,点击"创建"
- 生成的短链接如
http://localhost:3080/abc123 - 访问短链接会自动跳转到原始 URL
GitHub Actions 自动构建
推送代码到 main 分支或发布 Release 时,自动构建并上传二进制文件到 Artifacts。
技术栈
- 语言: Crystal
- Web 框架: Kemal
- 数据库: SQLite(静态编译进二进制)
- 密码哈希: PBKDF2-SHA256
- 会话: Cookie-based Session(内存存储)
许可证
MIT License
Repository
111
Owner
Statistic
- 0
- 0
- 0
- 0
- 3
- about 5 hours ago
- April 11, 2026
License
Links
Synced at
Sat, 11 Apr 2026 06:19:48 GMT
Languages