Aujourd'hui nous allons parler de Papra ! Son créateur français, Corentin Thomasset, n'est autre que le développeur d'IT-TOOLS et Enclosed, gage d'un développement sérieux.
Cette application vous permettra de centraliser vos documents afin de les gérer et les archiver.
Fini d'éparpiller les documents en tout genre, vous pouvez les confier à Papra et revenir plus tard en cas de besoin pour les retrouver, vous attendant sagement.
⚡ Caractéristiques
- Gestion des documents : Téléchargez, stockez et gérez vos documents à un seul endroit.
- Organisations : Créez des organisations pour gérer des documents avec votre famille, vos amis ou vos collègues.
- Recherche : Recherchez rapidement des documents grâce à la recherche en texte intégral.
- Authentification : Comptes d'utilisateurs et authentification.
- Mode sombre : Un thème sombre pour les sessions nocturnes de gestion de documents.
- Conception réactive : Fonctionne sur tous les appareils, des ordinateurs de bureau aux téléphones portables.
- Source ouverte : Le projet est open-source et son utilisation est gratuite.
Auto-hébergement : Hébergez votre propre instance de Papra en utilisant Docker ou d'autres méthodes. - Tags : Organisez vos documents avec des balises.
- Envoi de mails : Envoyez/transférez des courriels à une adresse générée pour importer automatiquement des documents.
- Extraction de contenu : Extraction automatique de texte à partir d'images ou de documents numérisés à des fins de recherche.
- i18n : Prise en charge de plusieurs langues.
- Bientôt disponible : Règles d'étiquetage : Marquage automatique des documents en fonction de règles personnalisées.
- Prochainement : Ingestion de dossiers : Importer automatiquement des documents à partir d'un dossier.
- Prochainement : SDK et API, créez vos propres applications à partir de Papra.
- Prochainement : CLI, gérez vos documents à partir de la ligne de commande.
- Prochainement : Partage de documents, partagez des documents avec d'autres personnes.
- Peut-être un jour : Application mobile, accédez aux documents et téléchargez-les en déplacement.
- À venir peut-être un jour : Application de bureau, accédez aux documents et téléchargez-les à partir de votre ordinateur.
💾 Installation
Prérequis
Avant de commencer, assurez-vous d’avoir :
Étapes d'Installation
- Créez votre compose.yml dans le dossier ou vous comptez installer Papra :
sudo nano compose.yml
- Et collez ça dedans :
services:
papra:
image: ghcr.io/papra-hq/papra:latest
ports:
- '1221:1221'
environment:
- CLIENT_BASE_URL=https://parpa.mondomaine.com
- SERVER_CORS_ORIGINS=http://192.168.1.152:3000
- DOCUMENTS_DELETED_DOCUMENTS_RETENTION_DAYS=30
- DOCUMENT_STORAGE_MAX_UPLOAD_SIZE=10485760
- INGESTION_FOLDER_IS_ENABLED=true
volumes:
- ./app-data:/app/app-data
- ./ingestion:/app/ingestion
user: "1000:1000"
restart: unless-stopped
- - CLIENT_BASE_URL=https://parpa.mondomaine.com => Indiquez l'URL de votre instance. Si vous voulez utiliser Papra en local, changez l'URL par http://192.168.1.152:1221 en prenant soin de remplacez l'IP par celle de votre serveur.
- - SERVER_CORS_ORIGINS=http://192.168.1.152:3000 => Changez 192.168.1.152 par l'ip locale de votre serveur.
- - DOCUMENTS_DELETED_DOCUMENTS_RETENTION_DAYS=30 => Permet de régler le nombre de jours pendant lesquels les fichier seront récupérables après avoir été effacés.
- - DOCUMENT_STORAGE_MAX_UPLOAD_SIZE=10485760 => Taille maximale des fichiers joints, valeur exprimée en bytes.
- - INGESTION_FOLDER_IS_ENABLED=true => Mettez sur false pour désactiver.
- user: "1000:1000" => Indiquez votre ID. Pour connaître vote ID, tapez id dans votre terminal et appuyez sur la touche Entrée/Enter de votre clavier.
- On va déployer l'application :
UID=1000 GID=1000 docker compose up -d
- Rendez-vous sur votre domaine :
https://parpa.mondomaine.com
👤 Création du compte utilisateur
Lorsque vous lancez votre instance Papra pour la première fois, vous serez invité à créer un compte, cliquez sur S'inscrire :

Remplissez les champs suivants :

- Email => Entrez l'adresse mail du compte utilisateur.
- Your full name => Entrez votre pseudo ou votre nom complet.
- Password => Choisissez un mot de passe fort.
Cliquez sur Register pour terminer la création du compte.
Entrez le nom de votre organisation et cliquez sur Create organization :

Vous voici sur votre tableau de bord :

⬇️ Gestion des documents
Importer un document
Du tableau de bord, vous pouvez importer vos documents, soit en cliquant sur Select files, en faisant un glisser/déposer ou encore en cliquant sur le bouton Import a document.

Je vais envoyer un fichier PDF, voici comment ça se présente :

Les options
Quand vous cliquez sur un document, suivant sa nature, vous pourrez avoir une prévisualisation de celui-ci. Je vais donc cliquez sur le titre de mon PDF :

Voici le résultat :

Je peux parcourir l’entièreté du document.
D'autres options existent :

- Télécharger
- Ouvrir dans un nouvel onglet
- Supprimer
Vous pouvez également lui attribuer un tag, pour peu que vous en ayez créé au moins un auparavant :

🏷️ Tags
Classez facilement vos documents grâce aux tags. Cliquez sur l'onglet Tags dans le menu latéral gauche :

Cliquez sur + Create tag :

Remplissez les champs suivants :

- Name => Nommez votre étiquette.
- Color => Choisissez la couleur.
- Description => Ajoutez une description, optionnel.
Cliquez sur Create tag pour terminer.

👥 Organisation
Pour créer ou consulter les organisation crées, cliquez sur cette icône :

Vous arriverez ici :

Soit vous cliquez sur une organisation pour voir son contenu, ou vous cliquez sur le ➕ pour en créer une nouvelle.
📭 Envoyer un document par mail
Une fonction facultative (suivant vos besoins, bien entendu) mais intéressante, c'est de pouvoir envoyer un documents par mail !
Le principe est simple, vous rédigez un mail à une adresse spécifique, vous joignez votre document en pièce jointe et vous envoyez le tout. Quelques secondes après, votre document est ajouté à votre instance Papra comme si vous l'aviez envoyé directement de votre instance.
Je vous explique tout.
Pour que cela fonctionne il faudra vous rendre ici :

Cliquez sur Register en haut à droite :

Choisissez la méthode pour créer un compte, par mail ou par GitHub, je vais choisir par mail :

Replissez les informations demandées :

- Email => Indiquez votre mail.
- Your full name => Soit vous mettez un pseudo, votre nom, peu importe.
- Password => Choisissez un mot de passe fort.
Cliquez sur Register pour terminer.
Vous aurez ce petit message vous demandant de vérifier votre adresse mail :

Attention, vérifiez bien dans spam au cas où.
Lorsque vous avez cliqué sur le lien vous arrivez sur le tableau de bord de OwIRelay :

Cliquez en haut à droite sur l'icone 👤 et choisissez l'option Clés API :

Il est temps de créer votre clé API en cliquant sur + Créer une clé API :

Nommez votre clé API et cliquez sur Créer la clé API :

Copiez & notez précieusement votre clé API :

Maintenant il faudra adapter votre compose :
services:
papra:
image: corentinth/papra:latest-rootless
ports:
- '1221:1221'
environment:
- CLIENT_BASE_URL=https://papra.mondomaine.com
- SERVER_CORS_ORIGINS=http://192.168.1.152:3000
- DOCUMENTS_DELETED_DOCUMENTS_RETENTION_DAYS=30
- DOCUMENT_STORAGE_MAX_UPLOAD_SIZE=10485760
- DOCUMENTS_DELETED_DOCUMENTS_RETENTION_DAYS=30
- DOCUMENT_STORAGE_MAX_UPLOAD_SIZE=10485760
- INTAKE_EMAILS_IS_ENABLED=true
- INTAKE_EMAILS_DRIVER=owlrelay
- OWLRELAY_API_KEY=owrl_xxxxxxxxxxxxxxxx
- INTAKE_EMAILS_WEBHOOK_SECRET=xxxxxxxxxxxxxx
- OWLRELAY_WEBHOOK_URL=https://papra.mondomaine.com/api/intake-emails/ingest
volumes:
- papra-data:/app/app-data
restart: unless-stopped
volumes:
papra-data:
driver: local
Vous aurez remarqué que j'ai ajouté ces variables d'environnement :
- INTAKE_EMAILS_IS_ENABLED=true => Permet d'activer le service.
- INTAKE_EMAILS_DRIVER=owlrelay => Indique que vous choisissez la méthode owlrelay.
- OWLRELAY_API_KEY=owrl_xxxxxxxxxxxxxxxx => Collez la clé API qui commence par owrl_, générée à l'étape précédente.
- INTAKE_EMAILS_WEBHOOK_SECRET=xxxxxxxxxxxxxx => Définissez une clé aléatoire qui sera transmise à OwlRelay pour signer les requêtes. Cela peut-être sous forme de mot de passe ou phrase de passe. Personnellement j'ai créé un mot de passe de 64 caractères, mais cela peut-être moins, à vous de voir.
- OWLRELAY_WEBHOOK_URL=https://papra.mondomaine.com/api/intake-emails/ingest => Remplacer https://papra.mondomaine.com par votre propre domaine ou sous domaine tout en conservant la suite, c'est à dire /api/intake-emails/ingest.
Déployez à nouveau votre container :
docker compose up -d
Rendez-vous dans votre instance Papra et cliquez sur Intégrations :

Cliquez sur + Generate intake email :

Cela va avoir pour effet de créer une adresse mail aléatoire :

Cliquez sur Manage origins addresses afin d'ajouter les adresses mails à partir desquelles il sera admis d'envoyer des documents vers votre instance, tout autre adresse sera refusée. Cliquez sur + Add pour terminer :

Ce qui donne :

C'est terminé ! Je vais, à partir de mon adresse mail autorisée, envoyer un fichier PDF à l'adresse mail aléatoirement crée :

Après avoir envoyé le mail, quelques instants après, vous retrouverez le document dans votre instance Papra :

Ce service est-il gratuit ? Jusqu'à 10 adresses mails, oui.
Si vous avez des besoins plus importants, voici les plans disponibles :

📁 Dossier d'ingestion
Le dossier d'ingestion est un dossier spécial qui est surveillé par Papra à la recherche de nouveaux fichiers. Lorsqu'un nouveau fichier est ajouté au dossier d'ingestion, Papra l'importe automatiquement.
Dans mon compose, mon dossier d'ingestion est ingestion. Dans ce dossier, je vais créer un autre dossier avec l'ID de votre organisation :

Je vais créer le dossier org_sk75vak3vk2w6f2qrqt62vdi :
mkdir org_sk75vak3vk2w6f2qrqt62vdi
Dorénavant, tout ce qui sera mis dans le dossier org_sk75vak3vk2w6f2qrqt62vdisera ajouté par Papra.