Aujourd'hui nous allons parler de ProjectSend! L'originalité de cette application réside dans le fait que vous pouvez créer des comptes clients/amis, clients/amis qui auront leur propre accès à leur page personnelle sur votre instance, avec les fichiers que vous avez décidé de partager avec eux et ce, de manière aisée!
ProjectSend permet d'ajouter un serveur mail facilement, procédure qui sera expliquée dans le tutoriel. L'application est complètement traduite en français, mais je vous expliquerai étalement comment faire car de base il n'y a que 2 langues et il va falloir faire une petite manipulation.
Je dirais que c'est pour tout publique, mais si vous avez des clients à fournir en fichiers (photographe, production musicale, contenu,...), c'est vraiment bien foutu! Cette application mérite le coup d’œil.
⚡Caractéristiques
ProjectSend est une application Web gratuite, orientée client et de partage de fichiers privés.
Les clients sont créés et se voient attribuer un nom d'utilisateur et un mot de passe.
Les fichiers téléchargés peuvent être attribués à des clients ou à des groupes de clients spécifiques.
D'autres fonctionnalités incluent l'expiration automatique du téléchargement, les notifications, la journalisation complète des actions des utilisateurs et des clients, l'option permettant aux clients de télécharger également des fichiers, des thèmes, plusieurs langues...
L'installation
- Créez votre docker-compose.yml dans le dossier ou vous comptez installer ProjectSend:
sudo nano docker-compose.yml
- Collez ça dedans en prenant soin d'adapter les ports et les volumes suivant votre configuration:
services:
projectsend:
image: lscr.io/linuxserver/projectsend:latest
container_name: projectsend
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- MAX_UPLOAD=5000
volumes:
- ./config:/config
- ./data:/data
ports:
- 8444:80
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:latest
container_name: mariadb
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- MYSQL_ROOT_PASSWORD=ggh6f5dfgdf
- MYSQL_DATABASE=projectsend
- MYSQL_USER=goldorak
- MYSQL_PASSWORD=9wYwoRbM2TcAHhsPO
volumes:
- ./mariadb/config:/config
ports:
- 3306:3306
restart: unless-stopped
Veillez à changer:
- - MYSQL_ROOT_PASSWORD=ggh6f5dfgdf => Changez ggh6f5dfgdf par un mot de passe fort.
- - MYSQL_DATABASE=projectsend => Vous pouvez laisser comme ça.
- - MYSQL_USER=goldorak => Changer goldorak par un autre nom d'utilisateur.
- - MYSQL_PASSWORD=9wYwoRbM2TcAHhsPO => Changez 9wYwoRbM2TcAHhsPO, par un autre mot de passe utilisateur.
- On installe l'application:
docker-compose up -d
ou avec docker-compose V2:
docker compose up -d
- Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 8444 par défaut:
https://ip:8444/
ou votre domaine:
https://mondomaine.com
Terminer l'installation
La première fois que vous lancez l'application, vous arriverez ici:
Remplissez les informations demandées:
- Host => mariadb
- Database name => projectsend
- Username => Indiquez celui que vous avez choisi plus haut, dans mon cas goldorak.
(- MYSQL_USER=goldorak) - Password => Indiquez celui que vous avez choisi plus haut, dans mon cas 9wYwoRbM2TcAHhsPO, qui correspond à MYSQL_PASSWORD.
Faites une vérification en cliquant en bas de page, sur:
Si tout est ok, vous devez une réponse comme ceci:
Maintenant que vous êtes assuré que tout va bien, cliquez sur Write config file:
Dans Site name, choisissez le nom de votre site et dans ProjectSend URI, indiquez votre domaine/sous-domaine complet:
Nous allons créer dans cette partie, le compte administrateur. Quand c'est complété, cliquez sur Install:
Vous voilà félicité! Cliquez sur Log in:
Entrez les informations du compte utilisateur et cliquez sur Log in:
Vous voilà arrivé à destination!
Mettre ProjectSend en français
On commence par arrêter les containers de ProjectSend, il y en a deux, ProjectSend et celui de MariaDB.
Placez-vous à la racine du dossier, où vous avez installé ProjectSend, et faites:
cd /config/translations/
Maintenant on va supprimer trois dossiers:
sudo rm -rf default/ gallery/ pinboxes/
Connectez-vous en sftp à votre serveur pour la suite. Quand c'est fait vous devez récupérer le zip de traduction sur le site officiel:
https://www.projectsend.org/translations/
Parfois il est un peu lent donc je l'ai récupéré et vous pouvez le télécharger ici:
Vous allez extraire ce fichier zip et vous allez obtenir:
Toujours dans le dossier /config/translations/, vous allez transférer par sftp les dossiers gallery, pinboxes et default qui sont dans le dossier templates.
Quand c'est fait, toujours en sftp, vous allez dans le dossier lang situé sur le serveur et vous transférez les deux fichiers qui sont dans le dossier lang issus du fichier zip précédemment extrait:
Vous pouvez relancer les containers,vous connecter à ProjectSend, et en haut à droite, choisir French dans l'onglet Language:
Wateuh the feuckeuh, c'est en français!
⚠️ Si vous avez un problème de permissions pour envoyer des fichiers en sftp
Pas de panique, la solution est simple, à la racine d'où vous avez installé ProjectSend, faites cette commande:
sudo chown 1000:1000 config/translations/
Pour peu que l'ID de votre utilisateur soit 1000. Comment connaître son ID? Tout simplement en tapant la commande suivante:
id
Ce qui retourne:
Adaptez la commande suivant votre ID.
On peut fermer ce volet, vous avez votre application en français!
Configurer la langue française par défaut
Si vous ne faites pas ça, à chaque connexion vous allez devoir changer la langue.
Quand vous êtes à la racine du dossier de ProjectSend, faites cette commande pour éditer le fichier config:
sudo nano /config/projectsend/sys.config.php
Repérez cette ligne, dans le fond du fichier et mettez fr:
Redémarrez le container de ProjectSend pour que ce soit pris en compte.
Configurer le serveur mail
Pour la partie mail, soit vous avez votre serveur à vous et vous connaissez les informations pour se connecter, ou vous pouvez utiliser n'importe quel serveur SMTP comme Gmail, Outlook,...
Je vous explique tout ici:
Pour configurer le serveur mail, rendez-vous dans Options, Notification par courriel:
Dans Options d'envoi de courriel, vous aurez SMTP, ce que nous allons choisir:
Veillez à remplir correctement les informations suivantes:
- Nom d'utilisateur => Votre adresse e-mail complète.
- Mot de passe => Le mot de passe créé avec la procédure expliquée plus haut.
- Hôte => Le nom du serveur SMTP.
- Port => 587 ou variable suivant le serveur mail.
- Authentification => TLS ou variable suivant le serveur mail.
Quand c'est terminé, cliquez sur Enregistrer les options:
Il est préférable de tester la configuration du serveur mail en cliquant sur l'option suivante:
Choisissez un destinataire, tapez un petit message et cliquez sur Envoyer un email de test:
Vérifications faite, le serveur mail fonctionne bien.
Définir la taille des pièces jointes
Quand vous êtes à la racine du dossier de ProjectSend, faites cette commande pour éditer le fichier config:
sudo nano /config/projectsend/sys.config.php
Et vous pouvez décider de la taille maximale des fichiers, par défaut 2Go.
Gestion des inscriptions
Dans la partie Options, cliquez sur Clients:
Personnaliser le pied de page des e-mails
Colonne de gauche Modèles de message courriel, En-tête / pied de page:
Dans la partie Pied de page, vous pouvez afficher un logo et/ou un petit message. Voici un comme simple mais qui fait le taf. Modifiez l'URL entre les " " par celle de votre lovo:
Cliquez sur Enregistrer les options.
<p>Ce message a été envoyé à partir de belginux.</p>
<img src="https://belginux.com/content/images/2024/02/publi.png">
Ce qui donne:
Attribuer un utilisateur à un fichier
Juste après avoir envoyé un fichier, vous pouvez le partager à une/des personne(s) en cliquant dans le champ Clients situé sous Assignations:
Cela fonctionne aussi avec les groupes que vous pourriez créer.
Prévisualisation des fichiers
Il est possible de visualiser certains types de fichiers:
Vidéo
Il existe un petit bug qui fait qu'une partie de l'image est hors écran:
Donc il vaut mieux double cliquer dessus pour l'avoir en plein écran.
Audio:
Image:
Pour le reste je vous laisse découvrir l'application, sa prise en main est super intuitive.
Bon amusement!