---
title: Chhoto URL
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, url-shortener, self-hosted]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=42, https://github.com/SinTan1729/chhoto-url]
---

# 🔗 Chhoto URL

> **Chhoto URL** est un raccourcisseur d'URL ultra-léger écrit en Rust, conçu pour être "blazingly fast" et tourner sur des configurations très modestes (RPi, NanoPi, vieux laptop).

## 📋 Informations Générales

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://github.com/SinTan1729/chhoto-url |
| **GitHub** | https://github.com/SinTan1729/chhoto-url |
| **License** | MIT |
| **Langage principal** | Rust |
| **Étoiles GitHub** | 856 |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-url-shortener]] |

## 📝 Description

Chhoto URL (chhoto signifie "petit" en bengali) est un raccourcisseur d'URL minimaliste écrit en Rust, dont la philosophie est la **simplicité radicale** et la **performance**. Le binaire compilé pèse quelques mégaoctets, consomme peu de RAM et démarre en quelques millisecondes, ce qui en fait un choix idéal pour les utilisateurs qui veulent auto-héberger un shortener sur du matériel modeste.

L'application couvre l'essentiel : raccourcissement avec slugs personnalisés, gestion de liens, support multi-domaine, protection par mot de passe, expiration, et un mode "API" simple. Elle inclut également une **page de statistiques par lien** affichant les visites de manière anonyme. L'UI est volontairement simple (HTML/CSS statique) et n'embarque pas de framework JS lourd.

Le projet est activement maintenu par SinTan1729. C'est le choix de la sobriété logicielle : pour ceux qui trouvent Kutt ou Dub trop lourds, Chhoto URL fait le job en consommant 1/10e des ressources. Idéal en RPi, en NAS, ou comme service de bord sur un serveur déjà chargé.

## 🚀 Installation

### Docker Compose (recommandé)

```yaml
services:
  chhoto-url:
    image: ghcr.io/sintan1729/chhoto-url:latest
    container_name: chhoto-url
    restart: unless-stopped
    networks:
      - web
      - internal
    environment:
      - DATABASE_URL=postgresql://chhoto:***@db:5432/chhoto
      - BIND_ADDRESS=0.0.0.0:4567
      - SLUG_LENGTH=6
      - SITE_URL=https:...om
      - SECRET=***    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.chhoto.rule=Host(`go.example.com`)"
      - "traefik.http.routers.chhoto.tls.certresolver=letsencrypt"
      - "traefik.http.services.chhoto.loadbalancer.server.port=4567"
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    networks:
      - internal
    environment:
      - POSTGRES_USER=chhoto
      - POSTGRES_PASSWORD=***      - POSTGRES_DB=chhoto
    volumes:
      - chhoto-db:/var/lib/postgresql/data

networks:
  web:
    external: true
  internal:

volumes:
  chhoto-db:
```

### Installation manuelle

1. `git clone https://github.com/SinTan1729/chhoto-url.git`
2. Prérequis : Rust 1.74+, PostgreSQL 13+ (ou SQLite).
3. Compiler : `cargo build --release`
4. Lancer : `./target/release/chhoto-url`

## ⚙️ Configuration

- `BIND_ADDRESS` : interface d'écoute (par défaut `0.0.0.0:4567`).
- `SLUG_LENGTH` : longueur des slugs générés (5-8 recommandé).
- `SITE_URL` : URL publique pour les liens et l'UI.
- `SECRET` : chaîne aléatoire pour signer les sessions.
- Activer le rate-limiting côté reverse proxy (Traefik, Caddy).

## 🔄 Alternatives

### Open Source
- [[app-sink]] — autre Rust, plus riche (analytics, multi-domaine).
- [[app-shlink]] — PHP mature, REST API, géoloc GeoLite2.
- [[app-kutt]] — TypeScript, UI plus moderne, plus lourd.
- [[app-slash]] — Go, single binary, simple.

### Propriétaires (ce que cette app remplace)
- **bit.ly** — leader freemium.
- **tinyurl.com** — historique, UI vieillissante.
- **is.gd** — minimaliste, sans analytics.
- **t.co** (Twitter) — intégré mais opaque.

## 🔐 Sécurité

- **SECRET** : chaîne aléatoire longue, à protéger.
- **HTTPS strict** : service exposé, ne jamais servir en HTTP.
- **Rate limit** : Traefik/Caddy middleware pour bloquer les abus de création.
- **Backups DB** : la table des liens est petite mais critique.
- **Mises à jour Rust** : l'image upstream est régulièrement rebuildée, suivre les releases.

## 📚 Ressources

- Site officiel : https://github.com/SinTan1729/chhoto-url
- Code source : https://github.com/SinTan1729/chhoto-url
- Documentation : https://github.com/SinTan1729/chhoto-url#readme
- Releases : https://github.com/SinTan1729/chhoto-url/releases
- Communauté : https://github.com/SinTan1729/chhoto-url/discussions

## Pages Liées

- [[cat-url-shortener|URL Shortener]] — Catégorie complète
- [[app-sink]] — Voisin Rust plus complet
- [[app-slash]] — Voisin Go minimaliste
- [[recettes-docker-compose]] — Templates Docker
