Un guide pratique pour une infrastructure open source sécurisée et économique
Pour les entreprises en croissance, les abonnements SaaS peuvent discrètement devenir l'un des postes budgétaires technologiques les plus importants. Une équipe qui paie pour Slack et Dropbox peut facilement dépenser des centaines, voire des milliers de dollars par utilisateur et par an — avant même les dépassements de stockage ou les modules complémentaires entreprise. Il existe une meilleure solution.
Déployer les applications
Le marketplace 1-Click App de DigitalOcean préconfigure les dépendances et les réglages de base. Le lancement d'un Droplet ne prend que quelques minutes — 1-Click est un point de départ, pas un déploiement fini.
🚀 Rocket.Chat — Messagerie d'équipe auto-hébergée
- Alternative complète à Slack et Microsoft Teams
- Canaux, messages directs, visioconférence (Jitsi), partage de fichiers, bots et une API REST complète
- Un Droplet à 24 $/mois (4 Go de RAM) prend en charge les équipes de moins de 50 utilisateurs
- Configurez le SMTP (Admin → Settings → Email) pour que les réinitialisations de mot de passe et les notifications atteignent les utilisateurs
- Restreignez l'inscription ouverte (Admin → Settings → Accounts → Registration → Disabled)
- Pour les équipes plus grandes : déplacez MongoDB vers une base de données gérée DigitalOcean
☁️ Nextcloud — Synchronisation, partage et collaboration de fichiers
- La plateforme de fichiers auto-hébergée la plus largement déployée
- Collaboration documentaire (Collabora ou OnlyOffice), calendrier, contacts, appels vidéo, et un riche écosystème d'applications
- Pointez le stockage de fichiers vers DigitalOcean Spaces dès le départ — migrer plus tard est complexe
- Passez les tâches d'arrière-plan d'AJAX à un cron système (Admin → Basic Settings → Background Jobs)
Configuration de production
Appliquez ces réglages à chaque déploiement avant la mise en production. Ils sont classés par priorité.
Règles de pare-feu et SSL
- Les Droplets DigitalOcean ont tous les ports ouverts par défaut
- Créer un Cloud Firewall est l'étape de durcissement la plus importante — faites-le immédiatement après le lancement
- Sécurisez chaque application avec un certificat Let's Encrypt via Certbot avant la mise en production
▶ show code▼ hide code
# Firewall Configuration
# 1. Create a Cloud Firewall in the DigitalOcean control panel:
# Networking → Firewalls → Create Firewall
# Inbound rules: TCP 80, TCP 443, TCP <your-ssh-port>
# 2. Harden SSH on the Droplet
sudo nano /etc/ssh/sshd_config
# Set: Port 2222 (or any non-default port)
# Set: PasswordAuthentication no
# Set: PubkeyAuthentication yes
sudo systemctl restart ssh
# 3. Assign the firewall to your Droplet in the control panel
# 4. Install Certbot (Ubuntu + Nginx)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
# Verify auto-renewal
sudo certbot renew --dry-run
sudo systemctl status certbot.timer
Sauvegardes
- Activez les sauvegardes hebdomadaires du Droplet — désactivées par défaut, coûtent environ 20 % du prix mensuel du Droplet
▶ show code▼ hide code
# Backups Configuration
# Enable backups: DigitalOcean control panel → Droplet → Backups → Enable
# Cost: ~20% of the Droplet monthly price
Surveillance et disponibilité
- Installez l'agent de métriques DigitalOcean pour activer les alertes CPU, mémoire et disque
- Ajoutez des vérifications de disponibilité avant que les utilisateurs ne dépendent du service — gratuit dans le panneau de contrôle
- UptimeRobot fournit des vérifications multi-régions et une page de statut publique
▶ show code▼ hide code
# Monitoring Configuration
# Install the DigitalOcean metrics agent
curl -sSL https://repos.insights.digitalocean.com/install.sh | sudo bash
# Set alert policies in the control panel:
# Droplet → Monitoring → Create Alert Policy
# Thresholds: CPU > 80%, Memory > 85%, Disk > 80%
# Notify via: email or Rocket.Chat webhook
# Enable Uptime Checks (free):
# Monitoring → Uptime → Create Check → HTTP/HTTPS
# Add UptimeRobot (uptimerobot.com) for multi-region checks + status page
Réseau, base de données et journalisation
- Utilisez une IP réservée pour que l'adresse survive aux redimensionnements et reconstructions du Droplet
- Placez tous les Droplets dans un VPC pour garder le trafic interne hors de l'internet public
- Envoyez les journaux vers un service géré pour qu'ils survivent à une reconstruction de Droplet et soient consultables sur plusieurs serveurs
- Plafonnez la taille des fichiers de journaux locaux avec logrotate pour éviter la saturation du disque
▶ show code▼ hide code
# Networking, Database & Logging Configuration
# Reserved IP — survives Droplet resizes and rebuilds
# Networking → Reserved IPs → Create → Assign to Droplet
# VPC — keeps internal traffic off the public internet
# Networking → VPCs → Create VPC
# Move all Droplets for this project into the same VPC
# Managed Database (Rocket.Chat — MongoDB)
# Databases → Create → MongoDB → Select plan ($15/mo base)
# Update Rocket.Chat: set MONGO_URL env var to the managed DB connection string
# Managed Database (Nextcloud — MySQL or PostgreSQL)
# Update config.php with the new managed DB host, user, and password
# Spaces for Nextcloud file storage (start here — migrating later is complex)
# Spaces → Create Space → copy endpoint URL and access keys
# Nextcloud admin panel → External Storage → Add S3-compatible storage
# Centralized logging — forward logs to Papertrail via rsyslog
sudo apt install rsyslog -y
echo "*.* @logs.papertrailapp.com:XXXXX" | sudo tee -a /etc/rsyslog.conf
sudo systemctl restart rsyslog
# Cap local log file sizes with logrotate
sudo nano /etc/logrotate.d/apps
# weekly / rotate 4 / compress / missingok
# Monitor Rocket.Chat MongoDB logs (database errors surface here first)
sudo tail -f /var/log/mongodb/mongod.log
Des économies de coûts spectaculaires par rapport aux alternatives SaaS
Cost Comparison — 25-Person Team
SaaS subscriptions vs. self-hosted stack on DigitalOcean
Slack Pro
$7.25/user/month × 25
Dropbox Business
$15/user/month × 25
$556/mo
$6,672/yr
Rocket.Chat Droplet
4 GB RAM
Nextcloud Droplet + Spaces
2 GB RAM + object storage
~$42–54/mo
$504–$648/yr
~$6,000
saved per year for 25 people — savings that scale as headcount grows