Installer YeetFile avec Docker
YeetFile

Installer YeetFile avec Docker

Table des matières

GitHub - benbusby/yeetfile: An encrypted file sharing and file/password vault service
An encrypted file sharing and file/password vault service - benbusby/yeetfile

Le dev de YeetFile, Ben Busby, n'est autre que le dev de Whoogle. Le monde est petit.

Aujourd'hui nous allons parler de YeetFile ! Une application permettant d'envoyer des fichiers et qui fait également coffre-fort pour vos fichiers et mots de passe, tout est chiffré et axé sur la confidentialité de vos données.

Bien configuré, c'est une petite merveille ! Quand vous partagez un fichier, un dossier ou un mot de passe avec un autre utilisateur de votre instance, tout ce que vous partagez sera directement disponible dans l'interface de votre destinataire :

Cette application mérite d'avoir son succès, à mon humble avis.


⚡ Caractéristiques

YeetFile est un service de coffre-fort de fichiers et de transfert de fichiers/texte, avec un client Web et CLI officiellement pris en charge. Tout le contenu est chiffré localement et le serveur est incapable de déchiffrer le contenu transmis.

YeetFile Send

  • Envoyez des fichiers et du texte à l'aide de liens partageables.
    Les liens ne nécessitent pas de compte pour être ouverts.
  • Paramètres de téléchargement configurables.
    Date/heure d'expiration. configurable en X minutes/heures/jours (max 30 jours).
    Nombre de téléchargements (max. 10).
    Protection par mot de passe en option.
  • Transferts de texte libre (jusqu'à 2000 caractères).

YeetFile Vault

  • Stockage de fichiers et de mots de passe + création de dossiers.
  • Partage de fichiers/mots de passe/dossiers avec les utilisateurs de YeetFile.
    Autorisations de lecture/écriture par utilisateur.
  • Aucune limite de taille de téléchargement.

Comptes

  • E-mail non requis lors de l'inscription.
    Inscription avec identifiant de compte uniquement autorisée.

Autre

  • Facilement auto-hébergé.
    La CLI officielle peut être configurée pour utiliser n'importe quel serveur.

💾 L'installation

En SSH, il faudra générer 3 clés avec cette commande:

openssl rand -base64 32

Vous aurez 3 clés gardez-les au chaud.

  1. Créez votre compose.yml dans le dossier ou vous comptez installer YeetFile:
nano compose.yml
  1. Et collez ça dedans:
services:

  api:
    image: ghcr.io/benbusby/yeetfile:latest
    container_name: yeetfile
    restart: unless-stopped
    ports:
      - 8090:8090
    expose:
      - 8090
    depends_on:
      db:
        condition: service_healthy
    environment:
      - YEETFILE_DEBUG=0
      - YEETFILE_STORAGE=local
      - YEETFILE_DEFAULT_USER_STORAGE=-1
      - YEETFILE_DEFAULT_USER_SEND=-1
      #- YEETFILE_SERVER_PASSWORD=MonMotDePasse
      - YEETFILE_MAX_NUM_USERS=-1
      - YEETFILE_DOMAIN=https://yeetfile.mondomaine.com
      - YEETFILE_HOST=0.0.0.0
      - YEETFILE_PORT=8090
      - YEETFILE_DB_USER=postgres
      - YEETFILE_DB_PASS=postgres
      - YEETFILE_DB_NAME=yeetfile
      - YEETFILE_DB_HOST=db
      - YEETFILE_DB_PORT=5432
      - YEETFILE_SERVER_SECRET=xxxxx  
      - YEETFILE_SESSION_AUTH_KEY=xxxx
      - YEETFILE_SESSION_ENC_KEY=xxxxx
      #- YEETFILE_EMAIL_ADDR=zarev@belginux.com
      #- YEETFILE_EMAIL_HOST=smtp.xxx.xxx
      #- YEETFILE_EMAIL_PORT=587
      #- YEETFILE_EMAIL_USER=zarev@belginux.com
      #- YEETFILE_EMAIL_PASSWORD=MonMotDePasse
      #- YEETFILE_EMAIL_NO_REPLY=zarev@belginux.com
    volumes:
      - ./uploads:/app/uploads

  db:
    image: postgres:16-alpine
    container_name: yeetfile-db
    restart: unless-stopped
    volumes:
      - ./data:/var/lib/postgresql/data
    environment:
      - POSTGRES_HOST_AUTH_METHOD=md5
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=yeetfile
    expose:
      - 5432
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U postgres" ]
      interval: 3s

Votre attention sur les points suivants :

  • - YEETFILE_DEFAULT_USER_STORAGE=-1 => -1 veut dire "illimité".
    C'est l'espace octroyé en bytes pour les nouveaux utilisateurs, par ex 1024000000 pour 1GO.
  • - YEETFILE_DEFAULT_USER_SEND=-1 => -1 veut dire "illimité.
    C'est la taille du fichier en bytes pouvant être envoyé par l'utilisateur, par ex 1024000000 pour 1GO.
  • - YEETFILE_SERVER_PASSWORD=MonMotDePasse => Active la protection par mot de passe pour les inscriptions des utilisateurs.
  • - YEETFILE_MAX_NUM_USERS=-1 => -1 veut dire "illimité".
  • - YEETFILE_DOMAIN=https://yeetfile.mondomaine.com => Indiquez votre domaine ou sous-domaine.
  • - YEETFILE_SERVER_SECRET=xxxxx => Remplacez xxxxx par une des 3 clés générées.
  • - YEETFILE_SESSION_AUTH_KEY=xxxxx => Remplacez xxxxx par une des 3 clés générées.
  • - YEETFILE_SESSION_ENC_KEY=xxxxx => Remplacez xxxxx par une des 3 clés générées.

📫 Inscription par e-mail et configuration du serveur mail

Cette partie assurera la possibilité de s’inscrire avec une adresse e-mail et de configurer le serveur mail. C'est une option pratique car vous pourrez partager un fichier, un mot de passe ou encore un dossier en utilisant les adresses e-mail des utilisateurs étant inscrits sur votre instance.

Si vous avez votre propre service mail, vous avez les informations nécessaires à entrer ci-dessous.

Mais vous pouvez également utiliser les serveurs mail de Google, Outlook, Infomaniak,.. Jetez un œil ici pour avoir les paramètres nécessaires :

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.

Complétez et n'oubliez pas de décommenter chaque ligne, c'est à dire retirer le # :

  • - YEETFILE_EMAIL_ADDR=zarev@belginux.com => Indiquez votre adresse e-mail complète.
  • - YEETFILE_EMAIL_HOST=smtp.xxx.xxx => Indiquez le host du serveur.
  • - YEETFILE_EMAIL_PORT=587 => Indiquez le port du serveur.
  • - YEETFILE_EMAIL_USER=zarev@belginux.com => Indiquez à nouveau votre adresse e-mail.
  • - YEETFILE_EMAIL_PASSWORD=MonMotDePasse => Indiquez le mot de passe de votre adresse e-mail.
  • - YEETFILE_EMAIL_NO_REPLY=zarev@belginux.com => Facultatif. Si vous souhaitez une adresse no-reply.
  1. On va déployer l'application:
docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 8090 par défaut :
http://ip:890/

ou votre domaine:

https://yeetfile.mondomaine.com

👤 Créer un compte avec e-mail

Cliquez sur Sign Up en haut à droite de votre instance :

Complétez les informations demandées :

  • Email Address => Entrez une adresse e-mail.
  • Password => Choisissez un mot de passe fort.
  • Confirm Password => Confirmez votre mot de passe.
  • Password Hint => Choisissez un indice vous permettant de vous rappeler de votre mot de passe.

⚠️ Attention, il ne sera pas possible de récupérer votre mot de passe en cas de perte !

Cliquez sur Create Account :

Un code de vérification sera envoyé à votre adresse e-mail :

Soit vous copiez le code et vous l'entrez dans le champ Code ou vous cliquez simplement sur le lien :

👤 Créer un compte sans e-mailDans les deux cas vous serez redirigé, connecté à votre instance, des options supplémentaires sont présentes dans le coin supérieur droit :


👤 Créer un compte sans e-mail

Cliquez sur Sign Up en haut à droite de votre instance :

Choisissez Account ID Only et entrez deux fois votre mot de passe, terminez en cliquant sur Create Account ID :

Entrez par deux fois votre mot de passe et tapez le code de vérification. Pour terminer, cliquer sur Verify :

Récupérez bien votre ID qui sera donc votre nom d'utilisateur et cliquez sur Start Yeeting :

Vous êtes connecté à votre instance :


🚀 Envoyer un fichier ou un texte

🗒️ Envoyer du texte

Dans la zone de saisie, tapez votre texte.

  • Downloads => Indiquez le nombre de téléchargement possible. -1 sera infini.
  • Expiration => Indiquez le temps d'expiration du fichier. En minutes heures ou jours.
  • Protect with password => Cochez cette option pour activer cette option.
  • Password => Indiquez le mot de passe pour protéger le partage.
  • Confirm => Confirmez le mot de passe pour protéger le partage.

Cliquez sur Upload pour terminer.

Cela génère un lien :

Du côté de la personne qui reçoit le lien, elle devra entrer le mot de passe et cliquez sur Submit :

Il ne reste qu'à cliquer sur Show Text Content :

Tadaaaam :

🗃️ Envoyer du fichier

Même principe, mais on coche Upload File , cliquez sur Parcourir... et sélectionner votre fichier

Cliquez sur Upload pour terminer :

Récupérez votre lien :

Et votre destinataire pourra télécharger le fichier :


🧰 Le coffre-fort

Une partie très intéressante, c'est la partie coffre-fort !

Il y a la partie Password Vault, qui va garder au chaud vos mots de passe :

Et la partie File Vault, qui va s'occuper de garder vos fichiers chaud :

🔑 Password Vault

Cette partie servira à :

  • Stocker vos mots de passe.
  • Générer des mots de passe.
  • Créer un dossier pour classer vos mots de passe.

Cliquez sur Add pour ajouter un mot de passe :

  • Name => Nommez le service ou le site.
  • Username / Email => Indiquez votre pseudo ou e-mail du compte.
  • Password => Le mot de passe.
  • URL(s) => L'URL du site ou du service.
  • Notes => Si vous souhaitez ajouter une note, c'est ici même.

Cliquez sur Add pour ajouter votre mot de passe.

Ce qui donne :

Plusieurs options s'offrent à vous :

Si vous cliquez :

  • Sur l'icône de gauche : cela copie le nom d'utilisateur.
  • Sur l'icône de droite : cela copie le mot de passe.

Dans les actions, vous avez :

  • Rename => Renommez le nom.
  • Share => Partagez votre mot de passe avec une autre personne.
  • Delete => Supprimer l'entrée.

Générateur de mot de passe

Un générateur classique de mots de passe.

📂 Créer un dossier

Cliquez sur Create Folder :

Nommez votre dossier et cliquez sur Create :

C'est bel et bien créé :

🗄️ File Vault

Cette partie servira à :

  • Stocker vos fichiers.
  • Créer un dossier.
  • Pour envoyer un fichier, cliquez sur Upload et sélectionner votre fichier. Un classique.
  • Pour créer un dossier, cliquez sur Create Folder, comme pour la partie Password Vault.

Et toujours en bout de ligne, les trois points pour les options :


📬 Partager un fichier avec une adresse e-mail

C'est vraiment sympa, vous allez voir ! Pour le tutoriel j'ai donc créé deux comptes.

Sur le premier, je vais dans mon coffre pour partager un fichier :

Indiquez l'adresse e-mail avec qui vous voulez partager votre fichier :

  • Can Modify => Cette option va permettre à votre destinataire de faire des modifications.

Cliquez sur Share pour terminer, on voit le petit symbole, dans l'encadré noir, indiquant que c'est bien partagé :

Du côté de votre destinataire, qui donc un compte sur votre instance, le fichier est disponible :

Sympa non ?


🔒 Sécuriser les inscriptions sur votre instance

Il faut pour cela avoir ajouté la variable YEETFILE_SERVER_PASSWORD dans votre compose.

Lors d'une inscription, vous devrez partager le mot de passe sans quoi l'utilisateur ne saura pas s'inscrire :

N'hésitez pas parfois à changer le mot de passe dans votre compose.


🖍️ Modifier son mot de passe

Dans la partie Account, vous avez la possibilité de changer votre mot de passe, votre adresse e-mail, d'activer la 2FA, d'activer ou désactiver l'indice de votre mot de passe.

En cliquant sur Advanced, vous pouvez effacer votre compte utilisateur :


🛡️ Activer la 2FA

Toujours dans la partie Account, cliquez sur Enable en face de 2FA :

Scannez le QR Code dans votre application et mettez le code de validation dans le champ Code :


ℹ️ Avoir des informations sur les options activées ou non de votre instance

Cliquez en bas à droite de votre instance, sur Server Info :

Et en un coup d’œil vous pouvez constater que :

  • Server Backend => Indique ou se trouvent les fichiers.
  • Base Vault Storage => Indique le stockage, ici illimité.
  • Base Sens => Indique la taille des fichiers joints, ici illimité.
  • Email Signup => Indique que les inscriptions avec une adresse e-mail est possible.
  • Billing => Heu....

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.

Vous pourriez aussi aimer