English | 中文
🔗 简单、安全、强大的短链生成工具
基于 Next.js 16 + Prisma + SQLite 构建的现代化短链服务,支持密码保护、域名管理、访问统计等功能。
- 🔗 智能短链生成 - 自动生成或自定义路径,支持批量管理
- 🛡️ 安全防护 - 密码保护、域名白名单、二次确认机制
- ⚡ 多种跳转模式 - 直接跳转、过渡页面、手动确认、临时跳转
- 📊 数据分析 - 访问统计、日志记录、趋势分析
- 🎨 现代界面 - 响应式设计、中英双语、暗色主题
- Node.js 18.0+
- Bun 1.0+ (推荐) 或 npm/yarn
1. 克隆项目
# GitHub (国际站)
git clone https://github.com/al01cn/Link.git
# Gitee (国内站)
git clone https://gitee.com/al01/Link.git
# GitCode (国内站)
git clone https://gitcode.com/al01cn/Link.git
cd Link2. 安装依赖
bun install3. 环境配置
cp .env.example .env.local
# 编辑 .env.local 配置数据库和应用URL4. 初始化数据库
bun run setup5. 启动服务
# 开发模式
bun run dev
# 生产模式
bun run build && bun run start访问 http://localhost:3000 开始使用!
- 用户名:
Loooong - 密码:
Loooong123
⚠️ 首次登录后系统会强制要求修改默认密码
点击下面按钮即可一键部署到 Vercel:
部署时需要配置的环境变量:
DATABASE_PROVIDER- 数据库类型(postgresql 或 mysql)DATABASE_URL- 数据库连接字符串ENCRYPTION_KEY- 密码加密密钥
💡 提示:推荐使用 Supabase 或 Neon 的免费 PostgreSQL 数据库。系统会根据
DATABASE_PROVIDER自动选择正确的数据库 schema。
点击下面按钮即可一键部署,系统会自动提示配置必需的环境变量:
部署时需要配置的环境变量:
DATABASE_PROVIDER- 数据库类型(postgresql 或 mysql)DATABASE_URL- 数据库连接字符串NEXT_PUBLIC_BASE_URL- 应用访问地址(可选,为空将自动获取)ENCRYPTION_KEY- 密码加密密钥
💡 提示:Netlify 会根据
netlify.toml配置自动提示需要配置的环境变量。
⚠️ 重要提醒:在无状态 Serverless 托管平台(如 Vercel、Netlify、Railway 等)部署时,必须将 SQLite 数据库更换为其他数据库,因为 Serverless 环境不支持持久化文件存储。
# Serverless 通用
bun run build:sls
# 启动
bun run start# 构建出生产包
bun run build:prod
# 在build目录下找到压缩包,上传到服务器
# 安装依赖
pnpm install --production
# 或者
bun install --production
# 启动
bun run start1. PostgreSQL(推荐)
# 环境变量配置
DATABASE_PROVIDER="postgresql"
DATABASE_URL="postgresql://username:password@host:5432/database"2. MySQL
# 环境变量配置
DATABASE_PROVIDER="mysql"
DATABASE_URL="mysql://username:password@host:3306/database"3. 云数据库服务推荐
- Supabase - 免费的 PostgreSQL 托管服务
- PlanetScale - 无服务器 MySQL 平台
- Neon - 现代化的 PostgreSQL 平台
- Railway - 支持多种数据库的云平台
-
更新环境变量
# 设置数据库提供商和连接字符串 DATABASE_PROVIDER="postgresql" # 或 "mysql" DATABASE_URL="postgresql://username:password@host:5432/database"
-
重新生成 Prisma 客户端
bun run prisma generate
-
执行数据库迁移
bun run prisma db push
🎯 自动化优势:系统会根据
DATABASE_PROVIDER环境变量自动选择正确的 Prisma schema 文件,无需手动修改配置。
📖 详细迁移指南:查看 DATABASE_MIGRATION.md 获取完整的数据库迁移步骤和常见问题解决方案。
# 使用 Docker Compose
docker-compose up -d
# 初始化数据库
docker-compose exec app bun run setup📝 Docker 部署说明:Docker 部署支持 SQLite,因为容器提供了持久化存储。
# 必需配置
DATABASE_PROVIDER="sqlite" # 数据库提供商:sqlite | postgresql | mysql
DATABASE_URL="file:./dev.db" # SQLite数据库连接(本地开发)
NEXT_PUBLIC_BASE_URL="http://localhost:3000" # 应用URL
ENCRYPTION_KEY="your-secret-key" # 加密密钥
# Serverless 部署数据库配置示例
# PostgreSQL
# DATABASE_PROVIDER="postgresql"
# DATABASE_URL="postgresql://username:password@host:5432/database"
# MySQL
# DATABASE_PROVIDER="mysql"
# DATABASE_URL="mysql://username:password@host:3306/database"
# Supabase (PostgreSQL)
# DATABASE_PROVIDER="postgresql"
# DATABASE_URL="postgresql://postgres:[password]@db.[project-ref].supabase.co:5432/postgres"
# PlanetScale (MySQL)
# DATABASE_PROVIDER="mysql"
# DATABASE_URL="mysql://[username]:[password]@[host]/[database]?sslaccept=strict"
# 可选配置
NEXT_PUBLIC_TURNSTILE_SITE_KEY="your-site-key" # Cloudflare验证
TURNSTILE_SECRET_KEY="your-secret-key"- 前端框架: Next.js 16 - React 全栈框架
- 数据库: Prisma + SQLite/PostgreSQL - 现代数据库工具包
- 样式: Tailwind CSS - 实用优先的 CSS 框架
- 图标: Lucide React - 美观的图标库
- 运行时: Bun - 快速的 JavaScript 运行时
- 语言: TypeScript - 类型安全的 JavaScript
详细的 API 文档请查看:
欢迎提交 Issue 和 Pull Request!
- 🐛 问题反馈: GitHub Issues
- 💬 功能讨论: GitHub Discussions
- 🇨🇳 国内用户: Gitee | GitCode
感谢以下开源项目:
- Next.js - React 全栈框架
- Prisma - 现代数据库工具包
- Tailwind CSS - 实用优先的 CSS 框架
- Lucide React - 美观的图标库
- Bun - 快速的 JavaScript 运行时
本项目采用 MIT 许可证。
| 平台 | 链接 | 说明 |
|---|---|---|
| GitHub | al01cn/Link | 国际站,功能最新 |
| Gitee | al01/Link | 国内镜像,访问更快 |
| GitCode | al01cn/Link | 国内镜像,备用选择 |
灵狼Link - 让长链接变短,让分享更简单 ✨