Arnaud Ouvrier

Mon blog à propos d'informatique, d'électronique, de tout, de rien

AccueilÀ proposGit (sourcehut)

Installer copyparty sur Alpine Linux (pour avoir un serveur de fichiers performant sur un vieux PC)

Par Arnaud Ouvrier publié le 04/08/2025

Introduction

J'ai récemment récupéré un client léger HP ThinClient t520. C'est un petit ordinateur de 2014, avec peu de ressources ayant pour but de se connecter sur des bureaux à distance. En soi, c'est juste un PC avec des ressources limitées (CPU double cœur de 1,2 GHz, 2 Go de RAM et un SSD de 8 Go). J'ai aussi besoin d'un NAS local et j'ai des disques durs USB qui traînent.

J'ai donc décidé d'installer Alpine Linux sur le client léger et de brancher un disque USB dessus pour tester le tout récent serveur de fichiers copyparty. Si le test est concluant, je connecterai un boîtier USB RAID à la place du disque dur simple pour plus de sécurité.

copyparty est un serveur de fichiers performant et peu gourmand en ressources et contenu dans un seul script Python. Son installation est donc simple et rapide (moins de 30 minutes dans mon cas, en comptant l'installation d'Alpine Linux sur le serveur). Il devrait aussi tourner sans problème sur un petit système, tel que ce client léger.

Plus d'informations sur la page GitHub du projet copyparty

Prérequis

Pour procéder à l'installation de copyparty, il vous faudra au préalable :

  • Un serveur. Dans mon cas un client léger HP, mais n'importe quel vieux PC, serveur, Raspberry Pi pourra faire l'affaire
  • Alpine Linux installé sur ce serveur
  • Un accès à internet depuis ce serveur
  • Un disque dur externe USB formaté en EXT4

Installation

Pour commencer, nous allons créer le répertoire de montage du disque dur et modifier le fichier "/etc/fstab" pour monter le disque dur automatiquement au démarrage du serveur :

# Création du répertoire de montage 
mkdir -p /mnt/usb

# Récupération de l'UUID du disque (liste les UUID de tous les disques)
ls -al /dev/disk/by-uuid*

Nous modifions ensuite le fichier "/etc/fstab" :

vi /etc/fstab

Pour y ajouter à la fin :

# Disque externe                                                           
UUID=[UUID du disque récupéré précédemment] /mnt/usb ext4 defaults,nofail 0 0

([ECHAP] puis ":wq" pour sauvegarder et quitter)

Et pour finir, nous montons le disque :

mount -a

Le disque devrait maintenant être accessible depuis le répertoire "/mnt/usb/". Ce répertoire servira de racine à copyparty.

Nous passons ensuite à l'installation des paquets requis et optionnels, mais conseillés, pour faire tourner copyparty :

# Installer les paquets requis
apk add build-base python3-dev openssl-dev libffi-dev

# Et les paquets optionnels (voir la documentation de copyparty)
apk add py3-pillow ffmpeg

Puis nous téléchargeons le script copyparty dans le bon répertoire et le rendons exécutable :

# Télécharger copyparty
wget -O /usr/local/bin/copyparty-sfx.py https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py
chmod +x /usr/local/bin/copyparty-sfx.py

Nous pourrions nous arrêter là et simplement lancer le script pour démarrer le serveur. Pour que l'installation soit plus propre, nous allons créer un service. Cela permettra que le serveur se lance automatiquement au redémarrage de la machine.

Pour ce faire, nous téléchargeons le script de service officiel et nous le rendons exécutable :

wget -O /etc/init.d/copyparty https://github.com/9001/copyparty/raw/refs/heads/hovudstraum/contrib/openrc/copyparty
chmod +x /etc/init.d/copyparty 

Puis nous l'ouvrons avec un éditeur pour le modifier :

vi /etc/init.d/copyparty

Il faut modifier la dernière ligne comme suit, pour définir la racine du serveur sur notre disque dur USB et activer l'indexation des fichiers :

command_args="-q -e2dsa -v /mnt/usb::rw"

Puis nous enregistrons le service au démarrage du système et le lançons :

rc-update add copyparty
service start copyparty

Et voilà, c'est tout. Vous devriez avoir un serveur de fichiers fonctionnel. Il doit être accessible depuis votre réseau local sur l'URL "http://[IP de votre serveur]:3923/" (commande "ip a" pour connaître l'IP de votre serveur).

Conclusion

copyparty est vraiment un serveur de fichiers simple à installer. Il y a peu de configuration préalable pour l'exécuter. Ce tutoriel pourrait s'arrêter au téléchargement du script Python et votre serveur fonctionnerait tout aussi bien.

Concernant les performances, pour l'instant j'ai seulement envoyé sur le serveur un fichier vide de 10 Gb et l'ai re-téléchargé. Le temps d'envoi d'une minute environ et de téléchargement de deux minutes sont prometteurs. Je continuerai mes tests un peu avant de l'adopter définitivement, mais à première vue ce serveur de fichiers est vraiment performant.

Page d'accueil de copyparty

Page d'accueil de copyparty

N'hésitez pas à lire la documentation de copyparty, pour configurer plus finement votre serveur.

La documentation est sur la page GitHub du projet copyparty