Manak-hash/LinkBreeze

GitHub: Manak-hash/LinkBreeze

LinkBreeze 是一个开源自托管的链接聚合平台,提供隐私优先的数据分析、二维码生成和主题自定义功能,是 Linktree 的免费替代方案。

Stars: 27 | Forks: 8

Banner [![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](LICENSE) [![Next.js](https://img.shields.io/badge/Next.js-16-000000?style=for-the-badge&logo=next.js&logoColor=white)](https://nextjs.org) [![TypeScript](https://img.shields.io/badge/TypeScript-5-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org) [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https://github.com/users/Manak-hash/packages/container/package/linkbreeze) [![OmniRise](https://img.shields.io/badge/OmniRise-omnirise.dev-06B6D4?style=for-the-badge)](https://omnirise.dev) [![CI](https://img.shields.io/github/actions/workflow/status/Manak-hash/LinkBreeze/ci.yml?style=for-the-badge&logo=githubactions&label=CI&logoColor=white)](https://github.com/Manak-hash/LinkBreeze/actions/workflows/ci.yml) [![Latest Release](https://img.shields.io/github/v/release/Manak-hash/LinkBreeze?style=for-the-badge&logo=github&color=blue)](https://github.com/Manak-hash/LinkBreeze/releases/latest) [![Last Commit](https://img.shields.io/github/last-commit/Manak-hash/LinkBreeze?style=for-the-badge&logo=git&color=green)](https://github.com/Manak-hash/LinkBreeze/commits)
**[🔗 在线演示](https://linkbreeze-demo.omnirise.dev/alex)** — 查看实际效果(只读)。 ## ✨ 功能特性 - **🔗 链接管理** — 通过拖拽添加、排序和自定义无限数量的链接 - **📊 隐私优先分析** — 页面浏览量、点击追踪、来源追踪 — 无 cookies,无追踪 - **🎨 主题** — 5 个内置预设 + 完整的自定义工具(颜色、字体、背景、动画) - **📱 移动优先** — 在各种屏幕上均表现出色。加载时间不到 300ms。零客户端 JavaScript。 - **🎯 二维码** — 为你的页面自动生成二维码。可下载为 SVG 或 PNG。 - **⏰ 链接排期** — 设置链接自动上线/下线的时间 - **🔒 自托管** — 你的数据,你的服务器。无追踪。无广告。无订阅。 - **🐳 一键部署** — 只需 Docker compose 即可上线 ## 🚀 快速开始 ### 🐳 Docker(推荐) 部署到生产环境的最快途径。无需 Node.js,无需 npm,无需配置文件。 **Linux / macOS / Windows CMD** — 作为单行运行: ``` docker run -d --name linkbreeze --restart unless-stopped -p 3000:3000 -v linkbreeze-data:/app/data ghcr.io/manak-hash/linkbreeze:latest ``` **Windows PowerShell** — 相同的命令,使用反引号进行换行: ``` docker run -d ` --name linkbreeze ` --restart unless-stopped ` -p 3000:3000 ` -v linkbreeze-data:/app/data ` ghcr.io/manak-hash/linkbreeze:latest ``` 然后打开 http://localhost:3000 — 设置向导耗时不到 30 秒。 ### 🧩 Docker Compose 如果你想要自定义端口、添加反向代理或轻松管理更新,这是最佳选择。 **选项 A — 拉取预构建镜像(最快,无构建步骤):** 创建一个包含以下内容的 `docker-compose.yml`: ``` services: linkbreeze: image: ghcr.io/manak-hash/linkbreeze:latest ports: - "3000:3000" volumes: - linkbreeze-data:/app/data restart: unless-stopped volumes: linkbreeze-data: ``` 然后执行: ``` docker compose up -d ``` **选项 B — 从源码构建(用于开发或定制):** ``` git clone https://github.com/Manak-hash/LinkBreeze.git cd LinkBreeze docker compose up -d --build ``` 随时使用以下命令查看日志: ``` docker compose logs -f linkbreeze ``` 升级到最新版本: ``` docker compose pull && docker compose up -d ``` ### 🔧 手动(不使用 Docker) ``` git clone https://github.com/Manak-hash/LinkBreeze.git cd LinkBreeze npm install # 配置环境 cp .env.example .env # 如果需要,编辑 .env 来设置你的 SECRET_KEY 和 DATABASE_PATH # 运行 database migrations npx drizzle-kit migrate # 启动开发服务器 npm run dev ``` ## 🌐 公开你的页面 LinkBreeze 运行在你的服务器上。部署完成后,任何人都可以通过 `https://your-domain.com/your-slug` 访问你的页面。以下是如何将其上线的方法: ### 选项 1:使用你的域名设置反向代理 将域名的 A 记录指向你的服务器 IP,然后使用支持 自动 HTTPS 的反向代理:
Caddy(推荐 — 自动 HTTPS) ``` links.example.com { reverse_proxy localhost:3000 } ```
nginx ``` server { server_name links.example.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ```
### 选项 2:Cloudflare Tunnel(无需开放端口) 无需购买域名或进行端口转发: ``` cloudflared tunnel --url http://localhost:3000 ``` ## 📸 截图
点击展开
Public Page Admin Dashboard
Public Page Admin Dashboard
Links Profile
Links Page Profile Page
Theme Settings
Theme Picker Settings Page
## 🆚 功能对比 | 功能 | Linktree | LinkStack | LittleLink | Shako | **LinkBreeze** | |---------|----------|-----------|------------|-------|----------------| | **价格** | $15/mo | 免费 | 免费 | 免费 | **免费** | | **管理面板** | ✅ | 缓慢 | ❌ | ❌ | **✅ 快速** | | **数据库** | 他们的 | MySQL | 无 | 无 | **SQLite** | | **分析功能** | 付费 | 基础 | ❌ | ❌ | **✅ 完整** | | **二维码** | ❌ | ❌ | ❌ | ❌ | **✅** | | **链接排期** | 付费 | ❌ | ❌ | ❌ | **✅** | | **主题** | 付费 | 有限 | 仅 CSS | 配置 | **✅ 完整** | | **自托管** | ❌ | ✅ | ✅ | ✅ | **✅** | | **语言** | 闭源 | PHP | HTML | Astro | **TypeScript** | | **Docker 部署** | 不适用 | 复杂 | 简单 | 简单 | **一键命令** | | **页面加载** | ~2-3s | ~1-2s | 快速 | 快速 | **<300ms** | | **开源协议** | 闭源 | AGPL | MIT | GPL | **MIT** | ## 🛠️ 技术栈 | 层级 | 技术 | |-------|-----------| | 框架 | Next.js 16 (App Router, Server Components, ISR) | | 数据库 | 通过 better-sqlite3 实现的 SQLite (WAL 模式) | | ORM | Drizzle ORM (类型安全,零开销) | | 认证 | 基于 Cookie 的 HMAC 会话,bcrypt | | UI | shadcn/ui + Tailwind CSS 4 | | 拖拽 | dnd-kit | | 图表 | Recharts | | 二维码 | qrcode(服务端 SVG/PNG) | | 验证 | Zod | | 图标 | Lucide + 自定义社交 SVG | ## 📖 文档 - [贡献指南](CONTRIBUTING.md) - [安全政策](SECURITY.md) - [更新日志](CHANGELOG.md) - [故障排除](TROUBLESHOOTING.md) - [架构决策](docs/adr/) - [配置参考](#configuration) ## ⚙️ 配置 所有配置均通过环境变量(`.env`)进行: | 变量 | 默认值 | 描述 | |----------|---------|-------------| | `PORT` | `3000` | 服务器端口 | | `DATABASE_PATH` | `./data/linkbreeze.db` | SQLite 数据库文件路径 | | `SECRET_KEY` | 自动生成 | 用于会话的 HMAC 签名密钥 | 运行时设置(页面 slug、标题、SEO、主题)通过管理仪表板进行管理 并存储在数据库中 — 无需修改代码。 ## 🎨 主题系统 开箱即用包含 5 个主题(Midnight、Sunset、Ocean、Mono、Forest)。 可以在管理面板中自定义其中任何一个 — 颜色、字体、背景、动画。 无需代码或配置文件。 ## 📜 许可证 MIT — 随心所欲使用。详见 [LICENSE](LICENSE)。 ## 🏢 关于 由 [Manak-hash](https://github.com/Manak-hash) 构建 · 一个 [OmniRise](https://omnirise.dev) 项目。
标签:Linktree替代, 二维码, 网站分析, 自动化攻击, 自托管, 请求拦截, 链接管理