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

139 lines
5.9 KiB
Markdown

---
title: Chibisafe
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, file-management, nodejs, typescript, uploader, pomf, sharex, discord]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=File+Management, https://github.com/chibisafe/chibisafe]
---
# Chibisafe 🐣
> Service d'**upload de fichiers moderne** écrit en Node.js/TypeScript, conçu pour remplacer des services comme **pomf.cat** ou les CDN Discord. Interface web soignée, API REST complète, **ShareX** compatible (uploads depuis le presse-papiers), albums, et gestion de quotas.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://chibisafe.github.io/chibisafe/ |
| **GitHub** | https://github.com/chibisafe/chibisafe |
| **License** | MIT |
| **Langage** | TypeScript (Node.js + Fastify) |
| **Étoiles** | 302 ⭐ |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-file-management]] |
## Description
Chibisafe est né en 2018-2019 pour répondre à un besoin précis : avoir son **propre service d'upload** style pomf.cat ou litterbox.cat, mais auto-hébergé, moderne, et sans les limitations des alternatives SaaS. Le nom est un clin d'œil aux *chibi* (petit format japonais), sous-entendant « petit service, gros potentiel ».
Fonctionnellement, Chibisafe se concentre sur **l'upload simple et rapide** plutôt que sur l'exploration d'un filesystem (c'est la différence avec [[app-file-browser]] ou [[app-filegator]]). L'utilisateur arrive sur une page d'upload, drag&drop un fichier, et obtient une URL partageable. Pas de treeview, pas d'édition, juste de l'**upload + partage + albums**.
Les forces du projet :
- **API REST complète** : `POST /api/upload` accepte multipart, retourne l'URL. Compatible avec [[app-sharex]] via le format `application/x-www-form-urlencoded` ou multipart.
- **Albums** : regrouper des fichiers dans des galeries privées/publiques avec lien de partage.
- **Quotas par utilisateur** : limite de stockage configurable par compte.
- **Stockage** : filesystem local par défaut, **S3-compatible** optionnel (MinIO, Backblaze B2, Wasabi).
- **Shortener d'URLs** intégré.
- **Authentification** : comptes locaux, OAuth2 (Discord notamment), OIDC.
- **Dashboard admin** : stats, gestion des utilisateurs, modération.
- **UI soignée** : frontend Vue 3 + TailwindCSS, dark/light mode.
C'est l'outil parfait pour qui veut **remplacer pomf.cat / 0x0.st** en privé, ou fournir un service d'upload à une petite communauté (Discord, salon Telegram, etc.) avec une UX moderne.
## Installation
### Option 1 : Docker Compose (recommandé)
```yaml
services:
chibisafe:
image: chibisafe/chibisafe:latest
container_name: chibisafe
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- ./uploads:/home/node/chibisafe/uploads
- ./database:/home/node/chibisafe/database
- ./logs:/home/node/chibisafe/logs
environment:
- NODE_ENV=production
- BASE_URL=http://localhost:8000
- DB_TYPE=sqlite
- SECRET=***
```
UI sur `http://localhost:8000`. Créer le compte admin au premier accès (CLI : `npm run create:user`).
### Option 2 : Manuelle (Node.js)
```bash
git clone https://github.com/chibisafe/chibisafe.git
cd chibisafe
pnpm install
pnpm build
pnpm start
# par défaut sur :3000
```
## Configuration
- **Premier admin** : via CLI dans le conteneur, ou via l'endpoint `/api/auth/setup` au premier démarrage.
- **Stockage S3** : configurer dans le dashboard admin → Settings → Storage, ou via env vars (`S3_*`).
- **Limites d'upload** : `MAX_FILE_SIZE` (par défaut 100 Mo), `MAX_FILES_PER_UPLOAD`.
- **Quota utilisateur** : `USER_QUOTA` (par défaut 1 Go).
- **Auth** : activer OAuth2 Discord, Google dans Settings → Auth.
- **Reverse proxy** : derrière [[app-caddy]] / [[app-traefik]] avec HTTPS. WebSocket non requis.
- **ShareX** : fournir un script `.sxcu` aux utilisateurs pour upload depuis le client ShareX.
## Alternatives
### Open Source
- [[app-file-browser]] — Plutôt exploration de filesystem
- [[app-filegator]] — PHP multi-user, plus classique
- [[app-pomf]] — Le défunt pomf, réincarné en plusieurs forks
- [[app-pico-share]] — Go, minimaliste upload-only
- [[app-zipline]] — TypeScript/Go, plateforme upload moderne
- [[app-gokapi]] — Go, éphémère type GoFile
- [[app-ferrishare]] — WeTransfer-like
- **ProjectSend** — PHP upload multi-user
### Propriétaires
- pomf.cat (historique, fermé)
- litterbox.cat (Cloudflare)
- 0x0.st
- imgur
- Gyazo
- Lightshot (client)
## Sécurité
- **HTTPS obligatoire** ([[app-caddy]] / [[app-traefik]]).
- **Activer la modération** dans Settings → Moderation (anti-CSAM, anti-malware via [[app-clamav]] optionnel).
- **Quotas stricts** : un attaquant peut uploader massivement et saturer le disque. Quotas par user + alerte monitoring ([[app-dozzle]]).
- **Rate limiting** : activer dans la config pour éviter les abus sur l'endpoint `/api/upload`.
- **Liste blanche d'extensions** : bloquer `.exe`, `.bat`, `.scr` si exposition publique.
- **Antivirus** : brancher [[app-clamav]] via l'API de scan.
- **Logs** : `./logs` contient tous les uploads, à monitorer et à purger régulièrement.
- **Backups** : `./uploads` est le cœur, à sauvegarder. La base SQLite `./database` contient les comptes.
## Ressources
- [Site officiel](https://chibisafe.github.io/chibisafe/)
- [Documentation](https://chibisafe.github.io/chibisafe/docs)
- [GitHub](https://github.com/chibisafe/chibisafe)
- [Demo](https://safe.kwiatekmiki.com)
- [selfh.st/apps/?tag=File+Management](https://selfh.st/apps/?tag=File+Management)
## Pages Liées
- [[cat-file-management]] — Catégorie parente
- [[app-pico-share]] — Concurrent Go minimaliste
- [[app-zipline]] — Concurrent TypeScript moderne
- [[app-gokapi]] — Concurrent Go éphémère
- [[app-clamav]] — Antivirus à brancher
- [[app-sharex]] — Client compatible
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Bonnes pratiques