Retour au blog

Auto-hébergez Rocket.Chat et Nextcloud sur DigitalOcean : guide étape par étape

1 mars 20265 min
Apps cloud managées

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
# 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
# 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
# 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
# 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

💸SaaS Subscriptions

Slack Pro

$7.25/user/month × 25

$181/mo

Dropbox Business

$15/user/month × 25

$375/mo
Total

$556/mo

$6,672/yr

🖥️Self-Hosted on DigitalOcean

Rocket.Chat Droplet

4 GB RAM

$24/mo

Nextcloud Droplet + Spaces

2 GB RAM + object storage

$18–30/mo
Total

~$42–54/mo

$504–$648/yr

🎯

~$6,000

saved per year for 25 people — savings that scale as headcount grows

Contactez-moi

Un sujet vous intéresse ? Laissez un mot et choisissez une catégorie. Je suis aussi disponible pour une réunion de conseil gratuite — écrivez-moi et nous organiserons cela.