133 lines
4.6 KiB
Markdown
133 lines
4.6 KiB
Markdown
---
|
|
title: Paaster
|
|
created: 2026-06-08
|
|
updated: 2026-06-08
|
|
type: app
|
|
tags: [catalogue, pastebin, self-hosted]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=33, https://github.com/WardPearce/paaster]
|
|
---
|
|
|
|
# 📋 Paaster
|
|
|
|
> **Paaster** est un pastebin moderne écrit en TypeScript, avec chiffrement E2E, multi-utilisateurs, et une UX soignée pensée pour un usage quotidien.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://paaster.io |
|
|
| **GitHub** | https://github.com/WardPearce/paaster |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage principal** | TypeScript |
|
|
| **Étoiles GitHub** | 544 |
|
|
| **Dernière MAJ** | 2026-06-03 |
|
|
| **Catégorie** | [[cat-pastebin]] |
|
|
|
|
## 📝 Description
|
|
|
|
Paaster est un pastebin moderne développé par WardPearce, avec une approche "user-friendly" assumée : UI claire en SvelteKit, multi-utilisateurs, et chiffrement **end-to-end** pour les pastes sensibles. Le projet vise un juste milieu entre la robustesse de PrivateBin et la modernité d'interface de Pastefy.
|
|
|
|
L'application supporte la création de pastes avec **chiffrement côté client** (AES-GCM via Web Crypto API), expiration temporelle (burn-after-read, durées configurables), syntax highlighting, et un système de comptes utilisateurs avec authentification OAuth. L'UI propose un mode clair/sombre et une preview rapide avant envoi. Le backend est en FastAPI (Python) ou Node.js, et le client est en SvelteKit.
|
|
|
|
Le projet est jeune (lancé en 2024) mais déjà solide pour un usage personnel ou en petite équipe. C'est une bonne alternative moderne à PrivateBin pour ceux qui veulent une UX contemporaine sans renoncer au chiffrement E2E.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
services:
|
|
paaster:
|
|
image: ghcr.io/wardpearce/paaster:latest
|
|
container_name: paaster
|
|
restart: unless-stopped
|
|
networks:
|
|
- web
|
|
- internal
|
|
environment:
|
|
- PASTER_HOST=0.0.0.0
|
|
- PASTER_PORT=80
|
|
- PASTER_URL=https:...om
|
|
- PASTER_SECRET=*** - PASTER_MONGO_URL=mongodb://mongo:27017
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.paaster.rule=Host(`paste.example.com`)"
|
|
- "traefik.http.routers.paaster.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.paaster.loadbalancer.server.port=80"
|
|
depends_on:
|
|
- mongo
|
|
|
|
mongo:
|
|
image: mongo:7
|
|
restart: unless-stopped
|
|
networks:
|
|
- internal
|
|
volumes:
|
|
- paaster-mongo:/data/db
|
|
|
|
networks:
|
|
web:
|
|
external: true
|
|
internal:
|
|
|
|
volumes:
|
|
paaster-mongo:
|
|
```
|
|
|
|
### Installation manuelle
|
|
|
|
1. `git clone https://github.com/WardPearce/paaster.git`
|
|
2. Prérequis : Node.js 20+, MongoDB 6+.
|
|
3. Copier `.env.example` vers `.env` et configurer.
|
|
4. Lancer : `pnpm install && pnpm build && pnpm start`.
|
|
|
|
## ⚙️ Configuration
|
|
|
|
- `PASTER_URL` : URL publique servant l'application.
|
|
- `PASTER_SECRET` : chaîne aléatoire pour les sessions.
|
|
- Configurer OAuth (Google, GitHub, Discord) si besoin d'auth externe.
|
|
- Activer le rate-limiting (middleware FastAPI ou reverse proxy).
|
|
- Brancher un SMTP (optionnel) pour la récupération de mot de passe.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-privatebin]] — PHP, E2E, plus mature, plus minimaliste.
|
|
- [[app-chiyogami]] — Go + E2E, plus jeune.
|
|
- [[app-opengist]] — Go, multi-user, sans E2E.
|
|
- [[app-pastefy]] — Java, multi-user, organisation.
|
|
- [[app-wastebin]] — Go, minimaliste, sans E2E.
|
|
|
|
### Propriétaires (ce que cette app remplace)
|
|
- **pastebin.com** — historique mais UI vieillissante.
|
|
- **dpaste.org** — simple, pas d'auth.
|
|
- **ghostbin.org** — fermé, signal de la fragilité de ces services.
|
|
- **hastebin.com** — simple, pas de chiffrement.
|
|
- **gist.github.com** — privé si compte GH, public sinon.
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **Chiffrement E2E** : AES-GCM côté client, le serveur ne voit jamais le contenu.
|
|
- **PASTER_SECRET** : chaîne aléatoire longue, à protéger.
|
|
- **HTTPS strict** : service exposé, ne jamais servir en HTTP.
|
|
- **OAuth providers** : limiter les providers autorisés en production.
|
|
- **Backups MongoDB** : exporter régulièrement la collection des pastes.
|
|
- **Rate limit** : à activer sur l'API de création.
|
|
|
|
## 📚 Ressources
|
|
|
|
- Site officiel : https://paaster.io
|
|
- Code source : https://github.com/WardPearce/paaster
|
|
- Documentation : https://github.com/WardPearce/paaster#readme
|
|
- Démo : https://paaster.io
|
|
- Communauté : https://github.com/WardPearce/paaster/discussions
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-pastebin|Pastebin]] — Catégorie complète
|
|
- [[app-privatebin]] — Voisin E2E mature
|
|
- [[app-chiyogami]] — Voisin Go E2E
|
|
- [[recettes-docker-compose]] — Templates Docker
|