139 lines
5.9 KiB
Markdown
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
|