GNU Affero General Public License v3.0

项目介绍

miantiao-me/Sink 是一个托管在 GitHub 上的开源项目,主要使用 TypeScript 编写,采用 GNU Affero General Public License v3.0 许可证,目前获得 7.3k 个 Star、5.3k 次 Fork。

仓库全名
miantiao-me/Sink
开源许可证
GNU Affero General Public License v3.0
Star 数
7.3k
Fork 数
5.3k
未关闭 Issue
18

README 摘要

⚡ Sink A Simple, Speedy, Secure, and Serverless Link Shortener with Analytics, Running Entirely on Cloudflare. Website · Documentation · API Reference alt="miantiao-me/Sink | Trendshift" width="250" height="55" /> alt="Featured on Hacker News" width="250" height="55" /> src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=57771fd91d1542c7a470959b677a9944&claimuid=qi74Zp23wYKeAVB&theme=neutral"…

完整内容见 GitHub 原始 README 或本页 。

常见问题

Sink 用什么语言开发?

主要使用 TypeScript 编写,采用 GNU Affero General Public License v3.0 许可证,目前有 7.3k 个 Star。

Sink 可以免费商用吗?

仓库标注的许可证为 GNU Affero General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 Sink 的源码?

可以直接克隆仓库:git clone https://github.com/miantiao-me/Sink.git,默认分支为 master;安装与运行步骤见仓库 README。

Sink 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 18 个未关闭 Issue;Star 数为 7.3k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

⚡ A Simple, Speedy, Secure, and Serverless Link Shortener with Analytics, Running Entirely on Cloudflare.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
17893
价值分
5946
活跃状态
活跃

语言占比

CSS
JavaScript
TypeScript
Vue

Release

README

⚡ Sink

A Simple, Speedy, Secure, and Serverless Link Shortener with Analytics, Running Entirely on Cloudflare.

Website · Documentation · API Reference

miantiao-me/Sink | Trendshift Featured on Hacker News Featured|HelloGitHub Uneed Badge

DeepWiki Cloudflare Nuxt Tailwind CSS shadcn/ui License

Hero


✨ Features

  • 🔗 URL Shortening: Compress your URLs to their minimal length.
  • 📈 Analytics: Monitor link analytics and gather insightful statistics.
  • ☁️ Serverless: Deploy without the need for traditional servers.
  • 🎨 Customizable Slug: Support personalized slugs, UTM parameters, and optional case-sensitive slug matching through configuration.
  • 🪄 AI Assistance: Optionally use Cloudflare Workers AI to generate slugs and OpenGraph metadata from page content.
  • ⏰ Link Control: Set expirations, passwords, and unsafe-link warning pages.
  • 📱 Smart Routing: Redirect visitors by device or country.
  • 🖼️ Social Preview: Customize social previews with titles, descriptions, and images.
  • 📊 Near-real-time Analytics: Display a live 3D globe and event logs using 10-second analytics polling and client-side replay, not SSE or WebSocket.
  • 🔲 QR Code: Generate QR codes for your short links.
  • 📦 Import/Export: Transfer links via JSON and export access analytics via CSV.
  • 🌍 Multi-language: Full i18n support for dashboard and redirect pages.
Tip 提示

Who is Sink for?

Sink focuses on individuals and small teams who want a simple, self-hosted shortener on Cloudflare.

For professional / business needs (managed service, multi-user, SLA, and more), use S.EE.

🪧 Demo

Experience the demo at Sink.Cool. Log in using the Site Token below:

Site Token: SinkCool
Screenshots Analytics Links Link Analytics

🔀 Sibling versions

Sink and Slite are sibling versions of the same link-management and analytics project. Sink runs on Cloudflare’s serverless platform, while Slite runs as a local Node.js 24+/Docker process. They keep features, API contracts, and file organization compatible with each other wherever practical. Neither version is a legacy branch, and Slite is not a fork replacement for Sink.

🧱 Technologies Used

🚗 Roadmap [WIP]

We welcome your contributions and PRs.

  • Browser Extension - Sink Tool
  • Chrome Extension - Sink Quick Shorten
  • Raycast Extension - Raycast-Sink
  • Apple Shortcuts - Sink Shortcuts
  • iOS App - Sink
  • Enhanced Link Management (with Cloudflare D1)
  • Analytics Enhancements (Multi-link filtering)
  • Dashboard Performance Optimization (Infinite loading)
  • API, migration, backup, and redirect tests

🏗️ Deployment

Video tutorial: Watch here

We currently support deployment to Cloudflare Workers (recommended) and Cloudflare Pages (deprecated).

⚒️ Configuration

Configuration Docs

🔌 API

API Docs · Live Scalar Reference for the public demo instance

🤖 AI Skills

Install Sink AI Skills for enhanced coding assistance:

npx skills add miantiao-me/sink

🧰 MCP

Sink serves a built-in MCP endpoint at POST /api/mcp, using the official @modelcontextprotocol/server SDK v2, serving modern clients over the per-request transport and 2025-era clients over a stateless fallback with JSON responses.

Replace the domain below with your own instance, and use the NUXT_SITE_TOKEN from your instance’s environment variables as the bearer token.

claude mcp add --transport http sink https://sink.cool/api/mcp --header "Authorization: Bearer SinkCool"

Any client that supports an HTTP transport with custom headers can connect the same way:

{
  "mcpServers": {
    "sink": {
      "type": "http",
      "url": "https://sink.cool/api/mcp",
      "headers": {
        "Authorization": "Bearer SinkCool"
      }
    }
  }
}

It exposes tools for managing links (list, search, read, count, tag, create, update, upsert, delete) and for reading analytics (counters, views over time, and top values per dimension). See the integrations documentation for the full list.

🙋🏻 FAQs

FAQs

💖 Credits

  1. Cloudflare
  2. NuxtHub
  3. Astroship
  4. Tailark

📄 License

AGPL-3.0-only © miantiao-me

  1. Follow Me on X (Twitter).
  2. Become a sponsor on GitHub.

评论

暂无评论