Partager des fichiers volumineux au sein d’une PME, d’une école ou d’un bureau au Togo est souvent un casse-tête. WhatsApp compresse les images, les clés USB se perdent, et les solutions cloud comme Google Drive ou Dropbox deviennent vite coûteuses, surtout avec une connexion limitée. Copyparty est la réponse à ce problème : un serveur de fichiers auto-hébergé, léger, sans base de données, que vous pouvez déployer en quelques minutes sur un simple VPS ou même un vieux PC de bureau recyclé. Dans ce guide, vous apprendrez à installer et configurer Copyparty sur Ubuntu/Debian, à le sécuriser avec une authentification par utilisateurs, à l’exposer sur internet via Cloudflare Tunnel, et à l’optimiser pour les contraintes de bande passante de l’Afrique de l’Ouest. Que vous passiez par Docker (recommandé pour la production) ou directement en Python, chaque étape est détaillée avec les commandes prêtes à l’emploi.
Qu’est-ce que Copyparty ?
Copyparty est un serveur de fichiers HTTP écrit en Python, conçu pour être aussi simple à déployer qu’un fichier unique tout en offrant des fonctionnalités dignes d’un NAS professionnel. Contrairement à Nextcloud ou Seafile qui nécessitent une base de données, un serveur web configuré et des dizaines de dépendances, Copyparty fonctionne avec un seul script Python ou une image Docker.
Fonctionnalités principales
- Upload et téléchargement par navigateur web, avec reprise automatique (
resumable upload) pour les connexions instables - Interface web moderne avec galerie photo, lecteur audio/vidéo intégré
- Authentification multi-utilisateurs avec permissions par dossier (lecture, écriture, liste)
- Support WebDAV pour monter le serveur comme un disque réseau sur Windows/Linux/macOS
- Recherche full-text dans les fichiers texte et documents
- Compression à la volée et déduplication des fichiers
- Aucune base de données la configuration se fait par fichier texte ou arguments en ligne de commande
- Compatible avec Cloudflare Tunnel et tout reverse proxy standard
✅ Bonne Pratique : Copyparty est idéal pour remplacer un serveur FTP ou un partage Samba dans une PME, avec l’avantage d’un accès web depuis n’importe quel appareil sans installation côté client.
Prérequis
Matériel Nécessaire
| Composant | Spécifications minimales | Prix estimé (FCFA) |
|---|---|---|
| Serveur/VPS | 1 vCPU, 512 Mo RAM, 10 Go SSD | 5 000 – 15 000 FCFA/mois |
| VPS recommandé (Hetzner CX11) | 2 vCPU, 2 Go RAM, 20 Go SSD | 6 000 FCFA/mois |
| PC recyclé (option locale) | Core i3, 4 Go RAM, disque HDD | Matériel existant |
| Onduleur | 650VA minimum | 45 000 – 65 000 FCFA |
| Disque externe de stockage | 1 To USB 3.0 | 50 000 – 60 000 FCFA |
🔌 Spécificité Locale : Si vous hébergez Copyparty sur un serveur physique à Lomé, un onduleur est absolument indispensable. Les coupures CEET peuvent corrompre des fichiers en cours d’upload. Un onduleur 650VA de marque APC ou Eaton coûte entre 45 000 et 65 000 FCFA dans les boutiques électroniques du Grand Marché.
Logiciels Requis
- OS : Ubuntu 22.04 LTS ou Ubuntu 24.04 LTS (recommandé), Debian 11/12
- Docker Engine : 24.x ou supérieur (pour la méthode Docker)
- Python : 3.8 ou supérieur (pour la méthode directe)
- Cloudflared : dernière version (pour l’exposition internet)
- Accès SSH à votre serveur
Compétences Techniques
- Manipulation basique de la ligne de commande Linux (SSH, navigation dans les répertoires)
- Notions de Docker (images, conteneurs, volumes) consultez notre guide Docker pour débutants si nécessaire
- Connaissance de base de Cloudflare
Accès et Permissions
- Accès root ou utilisateur sudo sur le serveur
- Un compte Cloudflare gratuit (pour le tunnel)
- Un nom de domaine (optionnel mais recommandé) un sous-domaine comme
files.votre-domaine.tgsuffit
Méthode 1 : Déploiyer copyparty sous Docker (recommandé)
La méthode Docker est recommandée pour la production car elle isole Copyparty de votre système, facilite les mises à jour et s’intègre parfaitement avec votre infrastructure Dockge ou Portainer.
Étape 1.1 : Préparer l’environnement
Connectez-vous à votre serveur en SSH et créez la structure de répertoires :
# Créer les répertoires nécessaires
mkdir -p /opt/copyparty/{config,data}
cd /opt/copyparty
# Créer le sous-répertoire pour les fichiers partagés
mkdir -p data/partage-commun
mkdir -p data/uploads-clients
mkdir -p data/archivesBashÉtape 1.2 : Créer le fichier de configuration
Copyparty utilise un fichier de configuration .conf pour définir les utilisateurs et les volumes. Créez le fichier de configuration principal :
nano /opt/copyparty/config/copyparty.confBashCopiez-y le contenu suivant (nous expliquerons chaque section plus bas) :
[global]
port = 3923
gzip = yes
maxsize = 0
no-thumb = no
[accounts]
admin = MotDePasseAdmin2024!
employe1 = PassEmploye1Secure
employe2 = PassEmploye2Secure
client-externe = PassClientReadOnly
[/]
# Chemin DANS le conteneur (correspondant au volume ./data:/data)
/data
admin: rwmd
employe1: rwmd
employe2: r
[/uploads-clients]
/data/uploads-clients
admin: rwmd
employe1: rw
client-externe: wINI⚠️ Attention : Remplacez immédiatement les mots de passe ci-dessus par des mots de passe forts et uniques. N’utilisez jamais les valeurs d’exemple en production.
Étape 1.3 : Créer le fichier Docker Compose
nano /opt/copyparty/docker-compose.ymlBashversion: "3.8"
services:
copyparty:
image: copyparty/ac:latest
container_name: copyparty
restart: unless-stopped
ports:
- "3923:3923" # Interface web
- "3924:3924" # WebDAV (optionnel)
volumes:
# Fichiers de données
- ./data:/data
# Fichier de configuration
#- ./config/copyparty.conf:/cfg/copyparty.conf:ro
- ./copyparty.conf:/cfg/copyparty.conf:ro
environment:
- TZ=Africa/Lome
# Limites de ressources (adapter selon votre VPS)
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 128M
# Arguments de démarrage Copyparty
command: >
--cfg /cfg/copyparty.conf
--log-utf8BashÉtape 1.4 : Démarrer le conteneur
cd /opt/copyparty
# Télécharger l'image et démarrer
docker compose up -d
# Vérifier que le conteneur tourne
docker compose ps
# Consulter les logs au démarrage
docker compose logs -f copypartyBashVous devriez voir une sortie similaire à :
copyparty | Copyparty v1.x.x
copyparty | listening on http://0.0.0.0:3923/
copyparty | volumes loaded: 2
copyparty | accounts loaded: 4BashTestez l’accès local depuis le serveur :
curl -I http://localhost:3923/
# HTTP/1.1 200 OKLangage du code : PHP (php)
Méthode 2 : Déploiement direct en Python
Si vous ne souhaitez pas utiliser Docker, ou si vous déployez Copyparty sur un serveur avec peu de ressources (Raspberry Pi, vieux PC), la méthode Python est plus légère.
Étape 2.1 : Installer Python et les dépendances
# Mise à jour du système
sudo apt update && sudo apt upgrade -y
# Installer Python 3 et pip
sudo apt install -y python3 python3-pip
# Vérifier la version (doit être >= 3.8)
python3 --versionBashÉtape 2.2 : Télécharger Copyparty
# Créer le répertoire
mkdir -p /opt/copyparty && cd /opt/copyparty
# Télécharger le script standalone
wget https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py
chmod +x copyparty-sfx.py
# Vérifier l'intégrité (optionnel mais recommandé)
python3 copyparty-sfx.py --versionBashÉtape 2.3 : Lancer Copyparty manuellement (test)
# Lancement de test avec un dossier partagé
python3 /opt/copyparty/copyparty-sfx.py \
-p 3923 \
/opt/copyparty/data \
-a admin:MotDePasseAdmin2024!BashAccédez à http://IP-DU-SERVEUR:3923 depuis votre navigateur pour vérifier que tout fonctionne.
Étape 2.4 : Créer un service systemd pour le démarrage automatique
sudo nano /etc/systemd/system/copyparty.serviceBash[Unit]
Description=Copyparty File Server
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/copyparty
ExecStart=/usr/bin/python3 /opt/copyparty/copyparty-sfx.py \
--cfg /opt/copyparty/config/copyparty.conf \
--log-utf8
Restart=on-failure
RestartSec=10
# Sécurité
NoNewPrivileges=yes
PrivateTmp=yes
[Install]
WantedBy=multi-user.targetBash# Recharger systemd et activer le service
sudo systemctl daemon-reload
sudo systemctl enable copyparty
sudo systemctl start copyparty
# Vérifier le statut
sudo systemctl status copypartyBashConfiguration des Utilisateurs et Permissions
La gestion des accès dans Copyparty est l’une de ses forces : vous pouvez définir des permissions très granulaires par dossier et par utilisateur.
Comprendre les permissions
| Code | Signification |
|---|---|
| r | Lecture (téléchargement, liste des fichiers) |
| w | Écriture (upload de nouveaux fichiers) |
| m | Modification (renommer, déplacer) |
| d | Suppression |
| rwmd | Contrôle total |
* | Accès public (sans authentification) |
Exemple de configuration multi-rôles pour une PME
[accounts]
# Administrateur IT
admin = MotDePasseAdmin!
# Équipe interne
directeur = PassDir2024!
comptable = PassCompta2024!
commercial1 = PassComm1!
# Clients/partenaires externes (accès limité)
client-acme = PassClientACME!
partenaire-rh = PassPartRH!
[/]
# Racine — admin seulement
/srv/copyparty/data
admin: rwmd
[/entreprise]
# Documents internes — équipe interne en lecture/écriture
/srv/copyparty/data/entreprise
admin: rwmd
directeur: rwmd
comptable: rw
commercial1: r
[/echanges-clients]
# Zone d'échange avec les clients
/srv/copyparty/data/echanges-clients
admin: rwmd
directeur: rw
client-acme: rw
partenaire-rh: r
[/uploads-public]
# Upload public anonyme (avec lien partagé)
/srv/copyparty/data/uploads-public
*: w
admin: rwmdINI✅ Bonne Pratique : Créez un dossier séparé pour chaque client ou département. Cela vous permet de révoquer un accès sans impacter les autres utilisateurs, et de faire des sauvegardes sélectives.
Rechargement de la configuration à chaud
Avec Docker, rechargez la configuration sans redémarrage :
# Envoyer le signal de rechargement
docker exec copyparty kill -HUP 1
# Ou redémarrer le conteneur (plus simple)
docker compose restart copypartyBashExposition via Cloudflare Tunnel
Pour rendre Copyparty accessible depuis internet sans ouvrir de port sur votre routeur ni exposer votre IP publique, Cloudflare Tunnel est la solution idéale et elle est gratuite.
💡 Astuce Locale : Cloudflare Tunnel fonctionne très bien même avec les connexions ADSL/4G instables de Lomé. Le tunnel maintient la connexion et la rétablit automatiquement en cas de coupure réseau momentanée.
Étape 6.1 : Installer cloudflared
# Télécharger cloudflared (architecture amd64)
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
# Vérifier l'installation
cloudflared --versionBashÉtape 6.2 : Authentifier cloudflared
cloudflared tunnel loginBashUn lien s’affiche dans le terminal. Ouvrez-le dans votre navigateur, connectez-vous à votre compte Cloudflare, et sélectionnez votre domaine. Un fichier de certificat est automatiquement téléchargé dans ~/.cloudflared/.
Étape 6.3 : Créer un tunnel nommé
# Créer le tunnel (remplacez "copyparty-itadmin" par le nom de votre choix)
cloudflared tunnel create copyparty-itadmin
# Notez le Tunnel ID affiché, par exemple :
# Created tunnel copyparty-itadmin with id a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxxBashÉtape 6.4 : Configurer le tunnel
# Créer le répertoire de configuration si inexistant
mkdir -p ~/.cloudflared
nano ~/.cloudflared/config.ymlBashtunnel: a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx # Votre Tunnel ID
credentials-file: /root/.cloudflared/a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json
ingress:
# Rediriger files.votre-domaine.tg vers Copyparty
- hostname: files.votre-domaine.tg
service: http://localhost:3923
# Route de secours (obligatoire)
- service: http_status:404BashÉtape 6.5 : Créer l’enregistrement DNS
# Créer automatiquement l'enregistrement CNAME dans Cloudflare
cloudflared tunnel route dns copyparty-itadmin files.votre-domaine.tgLangage du code : PHP (php)
Étape 6.6 : Démarrer cloudflared comme service système
# Installer le service systemd
sudo cloudflared service install
# Démarrer et activer
sudo systemctl start cloudflared
sudo systemctl enable cloudflared
sudo systemctl status cloudflaredBashVotre Copyparty est maintenant accessible à https://files.votre-domaine.tg avec HTTPS automatique fourni par Cloudflare.
Activer HTTPS et le Domaine Personnalisé
Avec Cloudflare Tunnel, le HTTPS est géré automatiquement par Cloudflare. Cependant, voici quelques réglages supplémentaires recommandés.
Forcer HTTPS dans Cloudflare
Dans le tableau de bord Cloudflare, pour votre domaine :
- Allez dans SSL/TLS → Edge Certificates
- Activez Always Use HTTPS
- Activez Automatic HTTPS Rewrites
Configurer les en-têtes de sécurité
Dans Cloudflare → Rules → Transform Rules → Modify Response Header, ajoutez :
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-originLangage du code : HTTP (http)
Restriction d’accès par pays (optionnel)
Si votre Copyparty est destiné uniquement aux utilisateurs en Afrique de l’Ouest, vous pouvez configurer des règles de géolocalisation dans Cloudflare → Security → WAF pour bloquer les pays non nécessaires et réduire les tentatives de force brute.
Optimisation et Fonctionnalités Avancées
Activer la galerie photo et le lecteur média
Copyparty génère automatiquement des miniatures pour les images si Pillow est installé :
# Dans le conteneur Docker
docker exec copyparty pip install Pillow
# Ou lors du déploiement Python direct
pip3 install PillowBashActiver la recherche full-text
Pour la recherche dans les documents texte et les fichiers Office :
# Installer les dépendances
pip3 install mutagen # Métadonnées audio
pip3 install Pillow # ImagesBashAjoutez dans votre copyparty.conf :
[global]
# Activer l'indexation pour la recherche
e2t = yes # Index plein texte
e2ts = yes # Index plein texte avec sous-dossiersINIMonter Copyparty en WebDAV sous Windows
Cela permet aux utilisateurs de voir Copyparty comme un lecteur réseau dans l’Explorateur Windows, sans installer de logiciel supplémentaire :
- Ouvrez l’Explorateur Windows → Ce PC → Connecter un lecteur réseau
- Entrez l’URL :
https://files.votre-domaine.tg/dav/ - Saisissez vos identifiants Copyparty
Générer des liens de partage temporaires
Copyparty permet de générer des liens de partage avec expiration, idéal pour envoyer des fichiers volumineux à des clients sans leur créer de compte :
Dans l’interface web → sélectionnez un fichier → Share → définissez la durée d’expiration → copiez le lien.
Configurer les limites d’upload par utilisateur
[accounts]
# Format : nom = mot-de-passe [options]
# ulim = limite en octets (ici 5 Go par utilisateur)
employe1 = PassEmploye1! ulim=5368709120
client-externe = PassClient! ulim=1073741824INIVous avez maintenant un serveur de fichiers Copyparty pleinement opérationnel, sécurisé et accessible depuis internet via Cloudflare Tunnel. Voici ce que vous avez accompli :
- ✅ Déploiement de Copyparty via Docker Compose avec volumes persistants
- ✅ Configuration des utilisateurs avec permissions granulaires par dossier
- ✅ Exposition sécurisée via Cloudflare Tunnel avec HTTPS automatique
- ✅ Optimisation pour les contraintes réseau et électriques locales
- ✅ Sauvegarde automatique quotidienne et monitoring Telegram
Copyparty est une solution remarquablement efficace pour les PME togolaises qui cherchent à remplacer les échanges WhatsApp et les clés USB par une plateforme professionnelle, sans les coûts d’un abonnement Dropbox Business (environ 75 000 FCFA/mois pour 5 utilisateurs).
Prochaines étapes suggérées
- Configurer le montage WebDAV sur les postes de travail Windows pour un accès transparent comme lecteur réseau
- Intégrer Copyparty dans votre workflow n8n pour des notifications automatiques lors des nouveaux uploads
- Mettre en place une synchronisation bi-directionnelle avec Immich pour la gestion de vos photos d’entreprise
Partagez votre expérience dans les commentaires : utilisez-vous déjà une solution de partage de fichiers en entreprise ? Quels défis avez-vous rencontrés ?
Documentation officielle
- Copyparty sur GitHub : Documentation complète et releases
- Cloudflare Tunnel Documentation : Guide officiel
- Docker Compose Reference : Référence des options Docker Compose
