Initial vault setup
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user