136 lines
5.0 KiB
Markdown
136 lines
5.0 KiB
Markdown
---
|
|
title: Pastefy
|
|
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/interaapps/pastefy]
|
|
---
|
|
|
|
# 📋 Pastefy
|
|
|
|
> **Pastefy** est un pastebin Java moderne et complet, avec multi-utilisateurs, organisation par dossiers, syntax highlighting avancé et API REST.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://github.com/interaapps/pastefy |
|
|
| **GitHub** | https://github.com/interaapps/pastefy |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage principal** | Java |
|
|
| **Étoiles GitHub** | 432 |
|
|
| **Dernière MAJ** | 2026-06-01 |
|
|
| **Catégorie** | [[cat-pastebin]] |
|
|
|
|
## 📝 Description
|
|
|
|
Pastefy est un pastebin moderne développé par interaapps, écrit en Java (Spring Boot) côté backend et Vue.js côté frontend. Le projet se distingue par sa gestion **multi-utilisateurs** avec organisation par dossiers, ce qui le rapproche davantage d'un **gestionnaire de snippets d'équipe** que d'un simple pastebin jetable.
|
|
|
|
L'application supporte la création de pastes avec syntax highlighting pour 100+ langages, organisation par dossiers et tags, partage public/privé, expiration temporelle, paste multi-fichiers (similaire à un mini-projet), fork de pastes publics, et un système de likes. L'authentification peut être locale (email/password) ou OAuth (Google, GitHub, Discord). L'API REST est complète et bien documentée.
|
|
|
|
L'écosystème comprend des intégrations navigateur (extension Chrome/Firefox) et une CLI officielle. C'est un bon choix pour les **équipes de développement** qui veulent un outil de partage de code auto-hébergé, structuré et collaboratif, dans un stack Java éprouvé.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
services:
|
|
pastefy:
|
|
image: interaapps/pastefy:latest
|
|
container_name: pastefy
|
|
restart: unless-stopped
|
|
networks:
|
|
- web
|
|
- internal
|
|
environment:
|
|
- PASTEFY_BASE_URL=https:...om
|
|
- PASTEFY_FRONTEND_URL=https:...om
|
|
- PASTEFY_DATABASE_URL=jdbc:postgresql://db:5432/pastefy
|
|
- PASTEFY_DATABASE_USERNAME=pastefy
|
|
- PASTEFY_DATABASE_PASSWORD=*** - PASTEFY_SECRET=*** - PASTEFY_MAIL_HOST=smtp.example.com
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.pastefy.rule=Host(`paste.example.com`)"
|
|
- "traefik.http.routers.pastefy.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.pastefy.loadbalancer.server.port=8080"
|
|
depends_on:
|
|
- db
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
networks:
|
|
- internal
|
|
environment:
|
|
- POSTGRES_USER=pastefy
|
|
- POSTGRES_PASSWORD=*** - POSTGRES_DB=pastefy
|
|
volumes:
|
|
- pastefy-db:/var/lib/postgresql/data
|
|
|
|
networks:
|
|
web:
|
|
external: true
|
|
internal:
|
|
|
|
volumes:
|
|
pastefy-db:
|
|
```
|
|
|
|
### Installation manuelle
|
|
|
|
1. `git clone https://github.com/interaapps/pastefy.git`
|
|
2. Prérequis : Java 21+, Maven, PostgreSQL 13+.
|
|
3. Compiler : `mvn clean package`
|
|
4. Configurer `application.yml` puis lancer le JAR.
|
|
|
|
## ⚙️ Configuration
|
|
|
|
- `PASTEFY_SECRET` : chaîne aléatoire pour les sessions.
|
|
- `PASTEFY_BASE_URL` : URL publique du backend.
|
|
- `PASTEFY_FRONTEND_URL` : URL publique du frontend.
|
|
- Configurer OAuth (Google, GitHub, Discord) si besoin d'auth externe.
|
|
- Brancher un SMTP pour les notifications et récupérations de mot de passe.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-opengist]] — Go, multi-user, snippets Git-like.
|
|
- [[app-privatebin]] — PHP, E2E, plus minimaliste.
|
|
- [[app-paaster]] — TypeScript, E2E, multi-user, plus jeune.
|
|
- [[app-chiyogami]] — Go + E2E, interface moderne.
|
|
- [[app-wastebin]] — Go, minimaliste, sans multi-user.
|
|
|
|
### Propriétaires (ce que cette app remplace)
|
|
- **gist.github.com** — snippets GitHub, privé si compte GH, public sinon.
|
|
- **gitlab.com/snippets** — snippets GitLab, intégré au forge.
|
|
- **pastebin.com** — historique, UI vieillissante.
|
|
- **hastebin.com** — simple, pas de chiffrement.
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **PASTEFY_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 Postgres** : la base de pastes et d'utilisateurs doit être sauvegardée.
|
|
- **Rate limit** : à activer sur l'API pour bloquer les abus.
|
|
- **Updates Java** : Spring Boot 3+ doit être maintenu à jour.
|
|
|
|
## 📚 Ressources
|
|
|
|
- Site officiel : https://github.com/interaapps/pastefy
|
|
- Code source : https://github.com/interaapps/pastefy
|
|
- Documentation : https://github.com/interaapps/pastefy#readme
|
|
- API : https://github.com/interaapps/pastefy/blob/master/docs/api.md
|
|
- Communauté : https://github.com/interaapps/pastefy/discussions
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-pastebin|Pastebin]] — Catégorie complète
|
|
- [[app-opengist]] — Voisin multi-user
|
|
- [[app-paaster]] — Voisin moderne E2E
|
|
- [[recettes-docker-compose]] — Templates Docker
|