一个月前购入一台便宜的服务器,一直放着没用,想着还有个短域名(6s.ink)闲着直接搭个短链接自己用。

准备

我使用:CentOS 9、Docker、非必须 1Panel面板

Kutt:Github / 官网

Kutt默认数据库是SQlite,当然也可以使用Postgres/MySQL/MariaDB、 Redis这些,但是轻量使用的话SQLite足够了。

部署

拉取仓库

Docker部署很方便,到Kutt Github仓库把整个仓库拉取到本地,可以使用下方命令,也可以直接下载ZIP解压到合适地方。
github.png

# 记得先cd到合适的文件夹,我是直接放到反向代理的域名网站文件夹下
git clone https://github.com/thedevs-network/kutt.git

配置环境.env

Kutt 仓库下有一个 ==.example.env== 文件打开它,默认Kutt官方已经对里面的环境变量做好解释了,文档编辑界面不方便进行翻译,可以到 Github 上打开这个文件使用浏览器翻译功能对照。
以下就说一些需要重点修改的地方:


  #下方数据后期都是可以更改的(数据库除外)
  DEFAULT_DOMAIN= 
  #此网站所在的域,需要通过域名访问的话需要修改为对应域名。
  
  JWT_SECRET= 
  #JSON Web Token,不要泄露到任何地方,可以使用在线网站随机生成,建议16位以上越长越好(不要太长了哈)。

  DB_CLIENT= 
  #如果使用默认SQLite数据库就不需要动了,使用其他数据库对照官方注释修改,包括之后的数据库密码也需要修改。

  LINK_LENGTH= 
  #生成的链接长度,比如 ==https://www.rua.ink/'这里'== 生成的字符数,如果自己使用的话2~3位足够了。

  REDIS_ENABLED= 
  #Redis主机和端口,截取部分,后面的REDIS_都需要填。

  DISALLOW_REGISTRATION= 
  #禁用注册。第一次访问必须创建管理员账户,这个是影响后续的用户注册,不影响管理员后台创建用户。

  DISALLOW_ANONYMOUS_LINKS= 
  #禁用匿名链接创建。如果是自己使用的话建议打开,以免违法链接跳转。

  MAIL_ENABLED= 
  #必须设置!第一次创建管理员也需要发邮件激活,可以临时使用qq邮箱SMTP。截取部分,后面MAIL_都需要设置。

  ENABLE_RATE_LIMIT= 
  #  非常重要!为某些API路由启用速率限制,不管是否开放注册都开启一下,这影响到注册时邮件发送API,不开启的话不管请求 
  #  多少次都会发送邮件,
  #  非常容易反被做攻击机。官方并没有详细解释这个变量,但我自己测试开启后在发送大约5次邮件后会返回 "Too many 
  #  requests, please try again later.",
  #  如果需要开放注册的话建议做一些人机验证什么的,但是网上没有相关代码,需要自己研究一下。

配置启动文件docker-compose.yml

官方仓库下有许多 docker-compose.yml 文件,如果使用默认的SQLite数据库部署只需要 docker-compose.yml 即可,其他数据库可以对照文件名进行修改。

基础代码官方已经编辑好了,但是有些地方需要修改:

# yaml语言对空格和文本对齐格式非常严格,编辑完后可以让AI检查一遍格式。
services:
  server:
    build:
      context: .
   env_file: #带上这个
      - .example.env #环境配置文件名称,修改.example.env文件名字后需要修改这里
    environment:
      DB_FILENAME: "/var/lib/kutt/data.sqlite"
    volumes:
      - db_data_sqlite:/var/lib/kutt
      - custom:/kutt/custom
    ports:
      - "127.0.0.1:3000:3000" #端口设置127.0.0.1是因为默认3000:3000,docker会映射外网访问,而且会绕过系统防火墙。
volumes:
  db_data_sqlite:
  custom:

Docker重建 - 不是启动

如果你在 Kutt Docker 启动后又修改了上面两个文件内容,可以使用下面的命令重建 Docker 。

cd <存放docker-compose.yml、.example.env的文件夹>
docker compose up -d --build

启动

cd <之前本地下载保存整个仓库的文件夹>
docker compose up

正常启动成功后会弹出http://localhost:<端口>/,切记如果使用127.0.0.1:3000映射是需要设置反向代理域名访问。第一次访问会设置管理员账号,需要到邮箱激活后才可以登录。

忘记管理员密码

如果第一次创建管理员时候创建失败(邮箱填错了,密码填错了等),我研究了一下文档并没有官方写出来可以重置的方法,只有在创建管理员后允许发送邮件重置密码。不过第一次部署就忘记管理员密码什么的可以尝试删掉 Docker 重新部署吧。

为什么选择Kutt

之前搭建使用过 YOURLS ,但是界面太过久远 (低情商:老土)。问遍多家 AI 后先是选择了 Shlink ,但是部署 Docker 才发现是前后端分离的,倒是可以使用官方提供的前端管理,但是我觉得这太麻烦了,最后还是选择 Kutt。

Kutt 基本的链接创建、二维码分享、后台管理、访问统计都有,而且最重要一点:界面好看(简洁)还能自定义界面。

结语

有需要的可以来使用我的短链接 https://u.6s.ink(需注册) 。可以付费选择一级域6s.ink/*短链接(虽然没有备案、没有wx、qq防红防白)。