Table des matières

Installation

Suivre les instructions sur le github.

Notes :

Cargo est le gestionnaire de paquets pour rust, il faut l'installer avant d'installer dufs. Créer votre dossier que vous voulez servir. Je l'ai pour ma part mis a la racine utilisateur (j'ai gardé l'espace web pour autre chose)

Lancement

la commande dufs /chemin/vers/votre/dossier lance le serveur en local sur le port 5000 en servant le dossier spécifié. Enfin, ça devrais marcher comme ça ^^'. Sauf que si on fait ça le serveur n'a pas accés aux assets présents dans le dépot git. une solution serait de cloner le dépot dans le dossier mais ce n'est pas très propre a mon goût (les fichiers que l'on veux partager sont tous mélangés).

Pour vérifier l'installation et la mise en place du serveur proxy je vous conseille de le faire, on pourras les déplace aprés.

Nginx

 
location ~ /chemin {     
proxy_pass https://127.0.0.1:5000 };
client_max_body_size 10G;               #permet de pourvoir importer des photos (10G c'est peut être overkill mais au moins ça marche ^^)

Configuration

Je vous copie le fichier fournis dans la doc avec les petites remarques que j'ai pour que tout marche bien :

 
serve-path: '.'        #toujours le même chemin
bind: 0.0.0.0
port: 5000
path-prefix: /chemin     #utiliser le même chemin que celui de la redirection nginx (ici chemin) si a la racine du site on met rien
hidden:
  - tmp
  - '*.log'
  - '*.lock'
auth:
  - admin:admin@/:rw
  - user:pass@/src:rw,/share
  - '@/'  # According to the YAML spec, quoting is required.   # pour que l'utilisateur non connecté ne voie pas les dossiers a la racine ne pas mettre de droit pour /. Il verra que les dossiers auquel il a un droit de lecture
allow-all: false
allow-upload: true
allow-delete: true
allow-search: true
allow-symlink: true
allow-archive: true
enable-cors: true
render-index: true
render-try-index: true
render-spa: true
assets: ./assets/
log-format: '$remote_addr "$request" $status $http_user_agent'
log-file: ./dufs.log
compress: low
tls-cert: tests/data/cert.pem                       # les certificats peuvent être gérés par nginx, pas la peine de les mettre dans la config
tls-key: tests/data/key_pkcs1.pem

Gérer les assets avec le dépot git ailleur

Le truc c'est que dufs a besoin que les assets soient mis en ligne au bon endroit pour que le navigateur puisse les télécharger. Je ne comprends pas bien pourquoi c'est pas possible automatiquement (via le lancement du serveur) et y a peut être une autre solution mais la mienne c'est de les servir a la racine du site web comme si on passait pas par nginx.

Je sais pas trop comment expliquer ça en vrai, n'hésitez pas a proposer via le fediverse.

Démarrage automatique du service

Pour que le service se lance automatiquement au démarrage du serveur, on lui crée un service systemd.

J'ai suivi une proposition trouvée sur le github du projet. J'ai du modifier la commande de lancement de dufs par

~.cargo/bin/dufs

parceque sinon systemd ne le trouvais pas (sûrement une histoire de PATH).

J'ai aussi enlevé la redirection des logs qui sont gérés par la config de dufs.

Et je crois que j'ai fais le tour des trucs qui n'ont pas marché comme je l'aurais cru en lisant le read.me ^^