Kutt

Kutt

Kutt is a modern URL shortener with support for custom domains

Deploy Kutt

kutt

kutt/kutt

Just deployed

/var/lib/kutt

Kutt

Kutt is a modern URL shortener with support for custom domains. Create and edit links, view statistics, manage users, and more.

Key features

  • Created with self-host in mind:
    • Zero configuration needed
    • Easy setup with no build step
    • Supporting various databases (SQLite, Postgres, MySQL)
    • Ability to disable registration and anonymous links
  • Custom domain support
  • Set custom URLs, password, description, and expiration time for links
  • View, edit, delete and manage your links
  • Private statistics for shortened URLs
  • Admin page to manage users and links
  • RESTful API

API

View API documentation →

Configuration

The app is configured via environment variables. You can pass environment variables directly or create a .env file. View .example.env file for the list of configurations.

All variables are optional except JWT_SECRET which is required on production.

VariableDescriptionDefaultExample
JWT_SECRETThis is used to sign authentication tokens. Use a long random string.--
PORTThe port to start the app on30008888
SITE_NAMEName of the websiteKuttYour Site
DEFAULT_DOMAINThe domain address that this app runs onlocalhost:3000yoursite.com
LINK_LENGTHThe length of of shortened address65
DISALLOW_REGISTRATIONDisable registration. Note that if MAIL_ENABLED is set to false, then the registration would still be disabled since it relies on emails to sign up users.truefalse
DISALLOW_ANONYMOUS_LINKSDisable anonymous link creationtruefalse
DB_CLIENTWhich database client to use. Supported clients: pg or pg-native for Postgres, mysql2 for MySQL or MariaDB, sqlite3 and better-sqlite3 for SQLite. NOTE: pg-native and better-sqlite3 are not installed by default, use npm to install them before use.sqlite3pg
DB_HOSTDatabase connection host. Only if you use Postgres or MySQL.localhostyour-db-host.com
DB_PORTDatabase port. Only if you use Postgres or MySQL.5432 (Postgres)3306 (MySQL)
DB_NAMEDatabase name. Only if you use Postgres or MySQL.kuttmydb
DB_USERDatabase user. Only if you use Postgres or MySQL.postgresmyuser
DB_PASSWORDDatabase password. Only if you use Postgres or MySQL.-mypassword
DB_SSLWhether use SSL for the database connection. Only if you use Postgres or MySQL.falsetrue
DB_POOL_MINMinimum number of database connection pools. Only if you use Postgres or MySQL.02
DB_POOL_MAXMaximum number of database connection pools. Only if you use Postgres or MySQL.105
REDIS_ENABLEDWhether to use Redis for cachefalsetrue
REDIS_HOSTRedis connection host127.0.0.1your-redis-host.com
REDIS_PORTRedis port63796379
REDIS_PASSWORDRedis passowrd-mypassword
REDIS_DBRedis database number, between 0 and 15.01
SERVER_IP_ADDRESSThe IP address shown to the user on the setting's page. It's only for display purposes and has no other use.-1.2.3.4
SERVER_CNAME_ADDRESSThe subdomain shown to the user on the setting's page. It's only for display purposes and has no other use.-custom.yoursite.com
CUSTOM_DOMAIN_USE_HTTPSUse https for links with custom domain. It's on you to generate SSL certificates for those domains manually—at least on this version for now.falsetrue
ENABLE_RATE_LIMITEnable rate limitting for some API routes. If Redis is enabled uses Redis, otherwise, uses memory.falsetrue
MAIL_ENABLEDEnable emails, which are used for signup, verifying or changing email address, resetting password, and sending reports. If is disabled, all these functionalities will be disabled too.falsetrue
MAIL_HOSTEmail server host-your-mail-server.com
MAIL_PORTEmail server port587465 (SSL)
MAIL_USEREmail server user-myuser
MAIL_PASSWORDEmail server password for the user-mypassword
MAIL_FROMEmail address to send the user from-[email protected]
MAIL_SECUREWhether use SSL for the email server connectionfalsetrue
REPORT_EMAILThe email address that will receive submitted reports-[email protected]
CONTACT_EMAILThe support email address to show on the app-[email protected]

Browser extensions

Download Kutt's extension for web browsers via below links.

Videos

Official videos

Integrations

Third-party packages

LanguageLinkDescription
C# (.NET)KuttSharp.NET package for Kutt.it url shortener
C# (.NET)Kutt.NETC# API Wrapper for Kutt
Pythonkutt-cliCommand-line client for Kutt written in Python
Rubykutt.rbKutt library written in Ruby
RusturlshortenerURL shortener library written in Rust
Rustkutt-rsCommand line tool written in Rust
Node.jsnode-kuttNode.js client for Kutt.it url shortener
JavaScriptkutt-vscodeVisual Studio Code extension for Kutt
Javakutt-desktopA Cross platform Java desktop application for Kutt
Gokutt-goGo client for Kutt.it url shortener
BASHGitHub GistSimple BASH function to access the API
BASHurl-shortenerSimple BASH script with GUI

Template Content

More templates in this category

View Template
Foundry Virtual Tabletop

Foundry Virtual Tabletop

A Self-Hosted & Modern Roleplaying Platform


View Template
(v1) Simple Medusa Backend

(v1) Simple Medusa Backend

Deploy an ecommerce backend and admin using Medusa


View Template
peppermint

peppermint

Docker-compose port for peppermint.sh