111

Zurl - Crystal URL Shortener

一个简洁易用的短链接系统,使用 Crystal + Kemal + SQLite 实现,完全静态编译为单个二进制文件。

功能特性

  • ? 用户注册 / 登录认证
  • ? 密码修改
  • ? 创建短链接(支持自定义短码)
  • ? 短链接重定向(302 跳转)
  • ? 链接管理(查看、编辑、删除)
  • ? 点击统计
  • ? 系统设置(开关是否允许注册)
  • ? 用户管理(管理员功能)
  • ? 第一个注册用户自动成为管理员
  • ? 单一二进制文件部署,无需 Docker / Redis

下载二进制

直接下载预编译好的二进制文件,无需安装任何运行时:

运行

# 默认端口 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

使用方法

  1. 首次访问 http://localhost:3080,点击"注册"
  2. 创建账号后登录
  3. 在控制面板输入长链接,点击"创建"
  4. 生成的短链接如 http://localhost:3080/abc123
  5. 访问短链接会自动跳转到原始 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