# Kutt

URL shortener that you run on your own domain.

- Replaces: [Bitly](https://openlogs.fyi/alternatives/bitly)
- Summary: Paid link shortening services, such as Bitly.
- Stack: JavaScript (language)
- Deployment: docker_compose
- License: MIT (osi) [source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/LICENSE)
- Business model: unknown. The README at the pinned commit does not state a business model, so it stays unknown. ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/README.md), read 2026-10-22)
- Difficulty: medium. 1 service, 2 volume mounts, no env values to set, no elevated host access. Heuristic score 1 of 11: easy. A source checkout is needed, and the first start builds images from source, so the rating is at least medium.
- Requirements: not stated
- Repository: [thedevs-network/kutt](https://github.com/thedevs-network/kutt)

## Install

1. Docker with the Compose plugin and git ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/README.md))

   ```text
   A host with Docker, the Docker Compose plugin and git. This entry needs a checkout of the project repository.
   ```

2. Get the source at commit 029da42 ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/README.md))

   ```bash
   git init kutt
   cd kutt
   git remote add origin https://github.com/thedevs-network/kutt.git
   git fetch --depth 1 origin 029da42b2459693681886665589fd9512d6b473c
   git checkout FETCH_HEAD
   ```

3. The compose file in the checkout: docker-compose.yml (shown here for reading) ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/docker-compose.yml))

   ```yaml
   services:
     server:
       build:
         context: .
       volumes:
          - db_data_sqlite:/var/lib/kutt
          - custom:/kutt/custom
       environment:
         DB_FILENAME: "/var/lib/kutt/data.sqlite"
       ports:
         - 3000:3000
   volumes:
     db_data_sqlite:
     custom:
   ```

4. What the compose file check ran with ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/README.md))

   ```text
   The compose file check ran in a checkout of thedevs-network/kutt at 029da42b2459693681886665589fd9512d6b473c (a sparse checkout: only the top-level files). The README tells the reader to run docker compose up from the root directory of the repository.
   ```

5. Start it ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/README.md))

   ```bash
   docker compose up -d
   ```

6. Open the app ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/docker-compose.yml))

   ```text
   Open http://localhost:3000. The compose file publishes host port 3000 for the server service.
   ```

Compose file check: config_ok on 2026-10-22.

## Gotchas and maintenance

### Gotchas

- Some services build from source: These services have a build section and no image: server. They need the project source next to the compose file. ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/docker-compose.yml), checked 2026-10-22)
- The compose file publishes host ports: Host ports: 3000 (server). A port without a host address listens on all host network interfaces. ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/docker-compose.yml), checked 2026-10-22)
- The first start builds images from source: The compose file has a build section. The first docker compose up builds the image from the checkout, which needs time, disk space and network access. ([source](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/docker-compose.yml), checked 2026-10-22)

### Signals

Computed from a GitHub snapshot taken 2026-10-22.

- Open issues and pull requests: 88
- Stars: 11163, forks: 1514
- Last push: 2026-10-19 (3 days ago)
- Latest release: v3.2.6 on 2026-07-05 (109 days ago)

## Sources

- [Repository: https://github.com/thedevs-network/kutt](https://github.com/thedevs-network/kutt)
- [License: https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/LICENSE](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/LICENSE)
- [Business model: https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/README.md](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/README.md)
- [Compose file: https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/docker-compose.yml](https://github.com/thedevs-network/kutt/blob/029da42b2459693681886665589fd9512d6b473c/docker-compose.yml)

---
Canonical: https://openlogs.fyi/tools/kutt  
Last updated: 2026-10-22
