Colas Mérand
28/02/2025
PotreeViewer
VPS
SSHFS
5 minutes
Dans un monde où la visualisation 3D devient essentielle pour de nombreux secteurs, la capacité à partager efficacement des nuages de points constitue un avantage concurrentiel majeur. Que vous soyez dans l'architecture, la topographie, l'ingénierie ou tout autre domaine utilisant des données spatiales, la mise en place d'une solution robuste pour visualiser et partager ces données est cruciale.
PotreeViewer s'est imposé comme une référence pour la visualisation web de nuages de points volumineux. Cette solution open-source permet de rendre accessibles des données 3D complexes directement dans un navigateur, sans nécessiter l'installation de logiciels spécifiques par les utilisateurs finaux.
Les avantages de PotreeViewer sont nombreux :
Pour une solution performante et évolutive, nous recommandons une architecture combinant un VPS (serveur privé virtuel) pour l'hébergement de PotreeViewer et un stockage externe pour les données volumineuses.
Nous privilégions généralement des distributions Linux comme Ubuntu Server pour sa stabilité et son support étendu. Voici les étapes essentielles :
# Mise à jour du système
sudo apt update && sudo apt upgrade -y
# Installation des dépendances
sudo apt install -y nginx apache2-utils certbot python3-certbot-nginx
# Configuration de base de Nginx
sudo nano /etc/nginx/sites-available/potreeviewer
La configuration Nginx doit inclure des paramètres optimisés pour les fichiers statiques volumineux :
server {
listen 80;
server_name votre-domaine.com;
client_max_body_size 100M;
location / {
root /var/www/potreeviewer;
index index.html;
try_files $uri $uri/ =404;
}
}
SSHFS (SSH Filesystem) permet de monter un système de fichiers distant via SSH, offrant une solution sécurisée pour accéder aux données stockées sur un autre serveur.
# Installation de SSHFS
sudo apt install -y sshfs
# Création du point de montage
sudo mkdir -p /mnt/external-storage
# Génération d'une paire de clés SSH (sans passphrase pour le montage automatique)
ssh-keygen -t ed25519 -f ~/.ssh/storage_key -N ""
# Copie de la clé publique sur le serveur de stockage
ssh-copy-id -i ~/.ssh/storage_key.pub user@storage-server
Pour assurer un montage persistant après redémarrage, nous configurons le fichier /etc/fstab :
sshfs#user@storage-server:/path/to/data /mnt/external-storage fuse identityfile=/home/user/.ssh/storage_key,allow_other,_netdev,reconnect,uid=www-data,gid=www-data 0 0
La sécurisation des communications est essentielle, particulièrement pour les plateformes professionnelles :
# Obtention d'un certificat SSL avec Let's Encrypt
sudo certbot --nginx -d votre-domaine.com
# Configuration du renouvellement automatique
sudo systemctl status certbot.timer
Pour répondre aux exigences de sécurité avec différents niveaux d'accès, nous implémentons une solution à deux niveaux :
# Création du fichier d'authentification pour les utilisateurs
sudo htpasswd -c /etc/nginx/.htpasswd_projects user1
Configuration Nginx pour les pages projet :
location /projects/ {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd_projects;
root /var/www/potreeviewer;
try_files $uri $uri/ =404;
}
# Création du fichier d'authentification pour les administrateurs
sudo htpasswd -c /etc/nginx/.htpasswd_admin admin
Configuration Nginx pour l'interface d'administration :
location /admin/ {
auth_basic "Administrator Access";
auth_basic_user_file /etc/nginx/.htpasswd_admin;
root /var/www/potreeviewer;
try_files $uri $uri/ =404;
}
Pour garantir des performances optimales, nous recommandons plusieurs ajustements supplémentaires :
location ~* \.(e57|las|laz)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
application/javascript
application/json
application/x-javascript
text/css
text/javascript
text/plain;
La mise en place d'outils de monitoring comme Prometheus et Grafana permet de surveiller les performances du système et d'anticiper les problèmes potentiels.
Chez Platane, nous avons récemment déployé une architecture similaire pour Epictory, une plateforme de génération de posters basés sur des parcours GPS. Bien que le contexte soit différent, les défis techniques étaient comparables : gestion de fichiers volumineux, nécessité d'un accès rapide aux données et sécurisation des accès.
Notre solution a permis à Epictory de traiter efficacement des milliers de fichiers GPS quotidiennement, tout en maintenant d'excellentes performances même en période de forte charge. L'architecture séparée (application/stockage) s'est révélée particulièrement pertinente lorsque le volume de données a augmenté significativement, permettant une mise à l'échelle sans interruption de service.
Cette architecture constitue une base solide, mais plusieurs évolutions peuvent être envisagées :
La mise en place d'une plateforme PotreeViewer avec stockage externe via SSHFS représente une solution technique robuste pour le partage de nuages de points 3D. Cette architecture offre un équilibre optimal entre performance, sécurité et évolutivité.
Chez Platane, nous avons développé une expertise approfondie dans la conception et l'implémentation de ce type d'infrastructures techniques. Notre approche combine une maîtrise des technologies de pointe avec une compréhension fine des besoins métiers, permettant de créer des solutions sur mesure qui évoluent avec votre activité.
Vous avez un projet similaire ou souhaitez optimiser votre infrastructure existante ? N'hésitez pas à prendre rendez-vous via notre formulaire de contact. Nos experts se feront un plaisir d'échanger avec vous sur vos besoins spécifiques et de vous proposer des solutions adaptées. Collaborer avec Platane, c'est bénéficier d'un partenaire technique engagé dans la réussite de vos projets sur le long terme.
Vous préférez discuter de vive voix ? Nous aussi et c'est évidemment sans engagement !
Une question, un besoin de renseignements ? N'hésitez pas à nous contacter.