尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Kutt 短链服务:自托管到快速上线的完整指南
Kutt 短链服务自托管到快速上线的完整指南【免费下载链接】kuttFree Modern URL Shortener.项目地址: https://gitcode.com/GitHub_Trending/ku/kuttKutt 是一款免费、现代、可自托管的 URL 短链接服务。一个 Node.js 项目就能把长链接变成短地址点击数据、用户、域名全部掌握在你自己手里。你可以绑定自己的域名、给链接加密码和过期时间还能通过 REST API 批量管理。官方短链服务很难满足团队的全部需求死链接没人管点击数据拿不到使用规则定不了。Kutt 就是为自托管设计的零配置起步、没有构建步骤默认用 SQLite一条命令就能跑起一个私有短链服务。快速上手环境与依赖只需 Node.js 20 及以上版本。默认数据库是 SQLite驱动better-sqlite3已内置在依赖里不用装任何数据库。想要多实例或高并发再换 Postgres 或 MySQL/MariaDB加 Redis 做缓存。获取与加载git clone https://gitcode.com/GitHub_Trending/ku/kutt cd kutt npm install完整步骤见 README数据库连接由 knexfile.js 管理配置全部走环境变量参考 server/env.js。最小验证npm run migrate npm run dev打开 http://localhost:3000 首次启动会引导你创建管理员账号。在首页贴一个长链接生成短链再粘贴短链确认能跳转就算跑通了。核心能力拆解自定义短码与字母表输入是两个环境变量LINK_LENGTH控制短码长度默认 6 位LINK_CUSTOM_ALPHABET控制字符集默认剔除了 o、O、0、i、I、l、1、j避免视觉混淆。创建链接时还可以传id字段指定自定义短码。LINK_LENGTH6 DEFAULT_DOMAINlink.yoursite.com输出就是link.yoursite.com/abc123形式的短链地址。自定义域名绑定输入是你要绑定的域名。处理上管理员页面添加域名后该域名下的短链会优先走自己的地址。输出是CUSTOM_DOMAIN_USE_HTTPS决定是否拼 httpsSSL 证书需要你手动签发。CUSTOM_DOMAIN_USE_HTTPStrue TRUST_PROXYtrue过期与密码保护输入是创建链接时传入的expire_in和password字段API 定义在 docs/api/api.js 里可查。处理上server/cron.js 每 30 秒扫一次库把到期链接批量删除带密码的链接跳转时先经过校验页。输出是过期链接彻底 404密码错误则进不了目标页。expire_in7 days passwordkutt2026点击统计输入是每次短链跳转请求。处理上server/queues/visit.js 解析 User-Agent 得到浏览器和系统用 geoip-lite 反查国家再把 referrer 脱敏入库。输出是每个链接独立的访问统计前端用 Chart.js 出图逻辑在 static/scripts/stats.js。# 每次点击落库浏览器、系统、国家、来源典型应用场景 团队内部分发文档适用条件链接很长且你需要知道它被点了多少次。curl -X POST http://localhost:3000/api/v2/links \ -H x-api-key: 你的key \ -d {url:https://docs.example.com/page}预期效果拿到短链后在统计页查看点击趋势和访客地区分布。 活动页限时投放适用条件短链需要跟着活动周期一起消失。curl -X POST .../api/v2/links -d {url:...,expire_in:7 days}预期效果7 天后链接被定时任务自动清掉活动结束不留死链。 内网入口加密码适用条件目标页面不想被外人直接打开。curl -X POST .../api/v2/links -d {url:...,password:kutt2026}预期效果访问者必须先输对密码猜错看不到任何目标信息。 用自己的域名发短链适用条件短链要对外展示不能挂着默认域名。DEFAULT_DOMAINlink.yoursite.com预期效果所有新短链都是link.yoursite.com/短码对外更可信。性能与部署调优存储加速路径SQLite 零配置最快并发上量后切DB_CLIENTpg或mysql2直接换 docker-compose.postgres.yml 起服务。缓存加速REDIS_ENABLEDtrue启用 ioredis 缓存访问记录进 Bull 队列API 限流也自动从内存切到 Redis。内存降级策略单机低负载就保持 SQLite 单实例关掉 Redis 和邮件数据目录放DB_FILENAME指向的卷即可。批处理建议API 支持limit/skip分页拉取链接管理员用alltrue一次拿全量用户链接做批量治理。多实例注意定时任务只在NODE_APP_INSTANCE0的实例上跑其他实例不要重复执行清理。可视化调试用/api/v2/health做存活探测访问统计页直接看点击图表比翻数据库更快定位问题链接。避坑指南API 创建链接返回 401→ 没带x-api-key或密钥未启用 → 到设置页生成 API Key 并放进请求头。自定义域名的短链没走 https→ 没设CUSTOM_DOMAIN_USE_HTTPS→ 设为 true 并手动给该域名签发 SSL 证书。访客 IP 全是代理地址→TRUST_PROXY设置与拓扑不符 → 前面有 NGINX/Cloudflare 才开 true否则用户能伪造 IP。到期链接在集群里没被删→ 多实例都跑了清理任务或没有实例是 0 号 → 确保有且仅有一个实例NODE_APP_INSTANCE0。注册/验证一直失败→ 注册依赖邮件验证但MAIL_ENABLEDfalse→ 先配好MAIL_HOST等 SMTP 变量再开注册。小结Kutt 短链服务自托管、零配置覆盖自定义域名、过期、密码和点击统计适合需要数据自主权的小团队。下一步就是克隆仓库跑npm run dev验证你的第一条短链。【免费下载链接】kuttFree Modern URL Shortener.项目地址: https://gitcode.com/GitHub_Trending/ku/kutt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

react-doctor 怎么配置 doctor.config.ts 并控制某条规则的启用与严重级别?

react-doctor 怎么配置 doctor.config.ts 并控制某条规则的启用与严重级别?

react-doctor 怎么配置 doctor.config.ts 并控制某条规则的启用与严重级别? 【免费下载链接】react-doctor Your agent writes bad React. This catches it 项目地址: https://gitcode.com/GitHub_Trending/re/react-doctor 扫描一个 React 项目后&#xff0…

📅 2026/9/15 12:49:55
Openship部署平台快速上手:从安装到生产环境只需10步

Openship部署平台快速上手:从安装到生产环境只需10步

Openship部署平台快速上手:从安装到生产环境只需10步 【免费下载链接】openship Self-hosted deployment platform 项目地址: https://gitcode.com/GitHub_Trending/ope/openship Openship 是一个开源、免费的自托管部署平台,内置 CI/CD、自动域名…

📅 2026/9/15 12:49:55
FPGA上实现net22+WRS+Flash高精度时间同步系统

FPGA上实现net22+WRS+Flash高精度时间同步系统

简介:本资源是一套基于Verilog语言实现的FPGA SPI闪存驱动与测试工程,面向数字电路设计初学者及FPGA开发工程师,解决嵌入式系统中SPI Flash擦除、页写入与字节读取等核心操作的硬件逻辑实现问题。项目已通过综合与仿真验证,可直接…

📅 2026/9/15 12:49:55
MORE NEWS

更多资讯

📰

开放式运动耳机选购指南:从耳廓生物力学到声学安全

1. 为什么“开放式”不是运动耳机的万能解药?先破除三个认知误区“开放式运动耳机怎么选?”——这个问题背后藏着大量被营销话术裹挟的真实困惑。我从2018年开始系统测评运动音频设备,累计拆解过137款标称“开放式”的产品,覆盖跑…

📰

OpenMetadata SFTP 连接器接入指南:从连接配置到文件元数据采集

OpenMetadata SFTP 连接器接入指南:从连接配置到文件元数据采集 【免费下载链接】OpenMetadata The Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistant…

📰

Quickwit 日志采集接入指南:支持的 Agent 一览与 OpenTelemetry 服务配置

Quickwit 日志采集接入指南:支持的 Agent 一览与 OpenTelemetry 服务配置 【免费下载链接】quickwit Cloud-native OSS search engine for observability 项目地址: https://gitcode.com/GitHub_Trending/qu/quickwit Quickwit 作为云原生日志搜索引擎&#…

📰

如何在 CloudCLI UI 的 MCP 设置里为 Claude、Codex、Cursor、OpenCode 配置 MCP 服务器并同步到本地配置?

如何在 CloudCLI UI 的 MCP 设置里为 Claude、Codex、Cursor、OpenCode 配置 MCP 服务器并同步到本地配置? 【免费下载链接】claudecodeui Use Claude Code, OpenCode, Cursor CLI, and Codex on mobile and web with CloudCLI (aka Claude Code UI). CloudCLI is a…

📰

固态硬盘删除后数据为何无法恢复?TRIM机制深度解析

1. 为什么固态硬盘删了文件就“真没了”?TRIM不是功能,是数据的死刑执行令你有没有试过,在固态硬盘上右键删除一个误操作的项目文档,然后立刻打开回收站——发现它根本没进去?或者更糟:清空回收站后&#x…

📰

React Native NetInfo鸿蒙化改造与网络状态管理实践

1. 项目背景与核心价值react-native-netinfo作为ReactNative生态中网络状态检测的核心组件,其鸿蒙化改造对OpenHarmony应用开发具有关键意义。这个三方库的适配工作本质上是在OpenHarmony与ReactNative之间架设了一座桥梁,让开发者能够在不重写业务逻辑的…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬