Kutt – 开源短网址程序,自定义域和链接,免费且简便

kutt 是一个开源的短网址程序,有了它,可以在分享一些很长的链接的时候,进行缩短链接,使得分享 URL 更简洁。

前言

在今天的数字时代,长长的链接往往不仅难以记忆,还显得笨拙。为了解决这个问题,Kutt 应运而生。作为一个免费且开源的短网址程序,Kutt 提供了一种简洁、方便的方式来缩短和管理您的链接。无论是在社交媒体上分享网址,还是在电子邮件中发送链接,Kutt 都能帮助您轻松创建简洁的短链接,使得分享变得更加便捷。

kutt特性

  • 免费且开源
  • 自定义域支持
  • 缩短链接的自定义 URL
  • 设置链接密码
  • 设置链接的描述
  • 链接的过期时间
  • 查看、编辑、删除和管理您的链接
  • 管理员帐户可查看、删除和禁止链接
  • RESTful API

docker部署

常规安装较为麻烦,需要自己部署环境,所以这里推荐使用docker部署

  1. 在服务器新建docker-compose.yml文件,填入以下代码
version: "3"

services:
  kutt:
    image: kutt/kutt
    depends_on:
      - postgres
      - redis
    command: ["./wait-for-it.sh", "postgres:5432", "--", "npm", "start"]
    ports:
      - "3000:3000"
    env_file:
      - .env
    environment:
      DB_HOST: postgres
      DB_NAME: kutt
      DB_USER: user
      DB_PASSWORD: pass
      REDIS_HOST: redis

  redis:
    image: redis:6.0-alpine
    volumes:
      - redis_data:/data

  postgres:
    image: postgres:12-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: kutt
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  redis_data:
  postgres_data:

2. 服务器新建.env,填入以下内容

# App port to run on
PORT=3000

# The name of the site where Kutt is hosted
SITE_NAME=Kutt

# The domain that this website is on
DEFAULT_DOMAIN=localhost:3000

# Generated link length
LINK_LENGTH=6

# Postgres database credential details
DB_HOST=postgres
DB_PORT=5432
DB_NAME=postgres
DB_USER=
DB_PASSWORD=
DB_SSL=false

# Redis host and port
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=

# Disable registration
DISALLOW_REGISTRATION=false

# Disable anonymous link creation
DISALLOW_ANONYMOUS_LINKS=false

# The daily limit for each user
USER_LIMIT_PER_DAY=50

# Create a cooldown for non-logged in users in minutes
# Set 0 to disable
NON_USER_COOLDOWN=0

# Max number of visits for each link to have detailed stats
DEFAULT_MAX_STATS_PER_LINK=5000

# Use HTTPS for links with custom domain
CUSTOM_DOMAIN_USE_HTTPS=false

# A passphrase to encrypt JWT. Use a long and secure key.
JWT_SECRET=securekey

# Admin emails so they can access admin actions on settings page
# Comma seperated
ADMIN_EMAILS=

# Invisible reCaptcha secret key
# Create one in https://www.google.com/recaptcha/intro/
RECAPTCHA_SITE_KEY=
RECAPTCHA_SECRET_KEY=

# Google Cloud API to prevent from users from submitting malware URLs.
# Get it from https://developers.google.com/safe-browsing/v4/get-started
GOOGLE_SAFE_BROWSING_KEY=

# Your email host details to use to send verification emails.
# More info on http://nodemailer.com/
# Mail from example "Kutt <support@kutt.it>". Leave empty to use MAIL_USER
MAIL_HOST=
MAIL_PORT=
MAIL_SECURE=true
MAIL_USER=
MAIL_FROM=
MAIL_PASSWORD=

# The email address that will receive submitted reports.
REPORT_EMAIL=

# Support email to show on the app
CONTACT_EMAIL=
  1. 配置文件里的 DEFAULT_DOMAIN=localhost:3000 ,可以先修改成服务器 IP:3000 而不是 localhost,不然访问会跳转出错。 当配置完反向代理后,再将这里的配置更改为域名即可。 主要确保邮箱相关的配置正确
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_SECURE=false
MAIL_USER=8XX@qq.com
MAIL_FROM=8XXX@qq.com
MAIL_PASSWORD=XXXX
  1. docker-compose up -d 来启动 kutt 以及相关的各个容器
  2. 前台访问 ip:3000 。查看 kutt 的页面
  3. 到这一步,已经搭建完毕,然后我们需要配置反向代理,直接使用宝塔即可。
  4. 设置好反向代理之后,在前台就可以进行正常使用了。

注意事项

  • kutt 默认是没有管理员用户的,需要通过邮箱注册,所以就需要.env 里邮箱相关的内容都配置正确
  • 注册账号时候始终是失败“an error occurred” ,通过在作者的 Issues 里发现了有很多人大量反馈此问题,应该是作者们对接 smtp 服务的 bug。我尽力尝试去根据各种 issue 解决,最终还是失败了。 虽然不影响短链接的生成以及使用,但是无法登录管理员后台还是很难受的。
  • 注册失败实际上是没有发邮件激活成功,这种方式可以通过去登录 postgresql 的容器,查找到对应的用户的验证 token,在访问 URL 激活即可。 可以参考:https://short.vwo50.club/4QdYZ
- - - - - 本页内容已结束,喜欢请分享 - - - - -

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞224 分享
评论 抢沙发
头像
你这么聪明,说什么都对!
提交
头像

昵称

夸夸
夸夸
还有吗!没看够!
取消
昵称表情代码图片

    暂无评论内容