Back to Apps
Kutt

Deploy Kutt on Your Own Server

Free Modern URL Shortener

πŸ“¦ Other

Want to deploy Kutt on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is Kutt?

Kutt is a modern URL shortener with support for custom domains. Shorten URLs, manage your links and view the click rate statistics.

Learn more

Self-Host Kutt

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

Version
General
Performance
Privacy
Anti-Abuse
Security
Database
3

Deploy

Copy the configuration and run it on your server.

services:
  kutt:
    image: kutt/kutt:v2.7.3
    environment:
      ADMIN_EMAILS: ""
      CONTACT_EMAIL: ""
      CUSTOM_DOMAIN_USE_HTTPS: "false"
      DB_HOST: kutt-db
      DB_NAME: kutt
      DB_PASSWORD: af3f89de653db001
      DB_USER: kutt
      DEFAULT_DOMAIN: kutt.your-domain.com
      DEFAULT_MAX_STATS_PER_LINK: "5000"
      DISALLOW_ANONYMOUS_LINKS: "false"
      DISALLOW_REGISTRATION: "false"
      GOOGLE_ANALYTICS: ""
      GOOGLE_ANALYTICS_UNIVERSAL: ""
      GOOGLE_SAFE_BROWSING_KEY: ""
      JWT_SECRET: 386aacda38961836306a1783bbe42ef196230865e20d5fb539c846d2cd2fb1c8
      LINK_LENGTH: "6"
      MAIL_FROM: ""
      MAIL_HOST: ""
      MAIL_PASSWORD: ""
      MAIL_PORT: "465"
      MAIL_SECURE: "true"
      MAIL_USER: ""
      NON_USER_COOLDOWN: "0"
      PORT: "3000"
      RECAPTCHA_SECRET_KEY: ""
      RECAPTCHA_SITE_KEY: ""
      REDIS_HOST: kutt-cache
      REPORT_EMAIL: ""
      SITE_NAME: Kutt
      USER_LIMIT_PER_DAY: "50"
    depends_on:
      - kutt-db
      - kutt-cache
  kutt-cache:
    image: redis:6.2-alpine
    volumes:
      - kutt-cache:/data
  kutt-db:
    image: postgres:14.0-alpine
    environment:
      POSTGRES_DB: kutt
      POSTGRES_PASSWORD: af3f89de653db001
      POSTGRES_USER: kutt
    volumes:
      - kutt-db:/var/lib/postgresql/data
volumes:
  kutt-cache: {}
  kutt-db: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:80

Why Self-Host Kutt?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

kutt/kutt:${KUTT_VERSION}

Official Docs

github.com

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"