Files
2026-06-09 18:40:21 +02:00

133 lines
4.8 KiB
Markdown

---
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