# NextCloud

# NextCloud

Voici votre documentation pour Nextcloud :

---

## Introduction

### Objectifs :
- Installer Nextcloud (plateforme de stockage et collaboration)
- Configurer Nextcloud Office (édition de documents)
- Configurer Nextcloud Talk (messagerie et visio)
- Sécuriser avec un certificat SSL Let's Encrypt
- Gérer les droits d'accès par utilisateur et dossier

---

## Contexte du projet

Installation de Nextcloud sur un serveur Ubuntu pour 50 utilisateurs, avec édition collaborative de documents (Word, Excel, PowerPoint), messagerie instantanée, partage de fichiers et gestion des permissions.

**Environnement :**
- Serveur Ubuntu
- Sous-domaine : cloud.votredomaine.com (à adapter)
- PHP 8.2 et MariaDB
- Configuration recommandée : 6-8 cœurs, 16-24 Go RAM, 1 To stockage

---

## Étape 1 : Préparation du serveur

### Connexion SSH

```bash
ssh votre_utilisateur@IP_DU_SERVEUR
```

### Mise à jour du système

```bash
sudo apt update
sudo apt upgrade -y
```

**Explication :**
- `apt update` = Met à jour la liste des paquets disponibles
- `apt upgrade` = Installe les mises à jour

---

## Étape 2 : Installation des dépendances

### Installer Apache

```bash
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2
```

**Explication :**
- `apache2` = Serveur web qui va héberger Nextcloud
- `enable` = Démarre automatiquement au démarrage du serveur
- `start` = Lance le service immédiatement

### Installer PHP et extensions

```bash
sudo apt install php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-imagick php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-xml php8.2-zip php8.2-bcmath php8.2-gmp php8.2-apcu php8.2-redis libapache2-mod-php8.2 -y
```

**Explication des extensions principales :**
- `php8.2-mysql` = Connexion à la base de données
- `php8.2-gd` et `php8.2-imagick` = Manipulation d'images (aperçus, miniatures)
- `php8.2-intl` = Support multilingue
- `php8.2-opcache` = Accélère l'exécution de PHP
- `php8.2-apcu` et `php8.2-redis` = Cache pour meilleures performances
- `php8.2-bcmath` et `php8.2-gmp` = Calculs mathématiques (chiffrement)

### Configurer PHP pour Nextcloud

```bash
sudo nano /etc/php/8.2/apache2/php.ini
```

**Modifiez ces lignes (utilisez Ctrl+W pour rechercher) :**

```ini
memory_limit = 512M
upload_max_filesize = 10G
post_max_size = 10G
max_execution_time = 3600
date.timezone = Europe/Paris
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 1
opcache.save_comments = 1
```

Sauvegardez : `Ctrl + O`, `Entrée`, `Ctrl + X`

**Explication :**
- `memory_limit` = Mémoire maximale pour PHP (512 Mo pour Nextcloud)
- `upload_max_filesize` = Taille maximum d'un fichier uploadé (10 Go)
- `max_execution_time` = Temps maximum d'exécution (1 heure pour gros fichiers)
- `opcache` = Cache qui accélère PHP significativement

### Installer MariaDB

```bash
sudo apt install mariadb-server -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
```

### Sécuriser MariaDB

```bash
sudo mysql_secure_installation
```

**Répondez :**
- Switch to unix_socket authentication? → `N`
- Change root password? → `Y` (choisissez un mot de passe fort)
- Remove anonymous users? → `Y`
- Disallow root login remotely? → `Y`
- Remove test database? → `Y`
- Reload privilege tables? → `Y`

### Installer Redis (cache pour performances)

```bash
sudo apt install redis-server -y
sudo systemctl enable redis-server
sudo systemctl start redis-server
```

**Explication :** Redis accélère considérablement Nextcloud en mettant en cache les données fréquemment utilisées.

---

## Étape 3 : Configuration de la base de données

### Se connecter à MariaDB

```bash
sudo mysql -u root -p
```

Entrez le mot de passe root que vous avez défini.

### Créer la base et l'utilisateur

```sql
CREATE DATABASE nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'VotreMotDePasseSecurise';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

**Explication :**
- `CHARACTER SET utf8mb4` = Support complet des caractères (émojis, langues asiatiques, etc.)
- `GRANT ALL PRIVILEGES` = Donne tous les droits sur la base à l'utilisateur
- `FLUSH PRIVILEGES` = Applique les changements immédiatement

**Informations à retenir :**
- Nom de la base : `nextcloud_db`
- Utilisateur : `nextcloud_user`
- Mot de passe : `VotreMotDePasseSecurise` (à personnaliser et noter)

---

## Étape 4 : Installation de Nextcloud

### Télécharger Nextcloud

```bash
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
```

**Explication :** Télécharge la dernière version stable de Nextcloud.

### Extraire et déplacer Nextcloud

```bash
sudo tar -xjf latest.tar.bz2 -C /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud
```

**Explication :**
- `tar -xjf` = Décompresse l'archive
- `-C /var/www/` = Extrait dans le dossier du serveur web
- `chown www-data` = Donne les droits à l'utilisateur Apache

---

## Étape 5 : Configuration Apache

### Créer le fichier de configuration

```bash
sudo nano /etc/apache2/sites-available/nextcloud.conf
```

**Configuration Apache :**

```apache
<VirtualHost *:80>
    ServerName cloud.votredomaine.com
    DocumentRoot /var/www/nextcloud

    <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
        
        <IfModule mod_dav.c>
            Dav off
        </IfModule>
        
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/nextcloud-error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud-access.log combined
</VirtualHost>
```

Sauvegardez : `Ctrl + O`, `Entrée`, `Ctrl + X`

**Explication :**
- `ServerName` = Le domaine de votre Nextcloud (à remplacer)
- `DocumentRoot` = Dossier racine de Nextcloud
- `AllowOverride All` = Permet à Nextcloud de gérer ses propres règles
- `Dav off` = Désactive DAV d'Apache (Nextcloud gère son propre WebDAV)

### Activer les modules Apache nécessaires

```bash
sudo a2enmod rewrite headers env dir mime ssl
sudo a2ensite nextcloud.conf
sudo a2dissite 000-default.conf
```

**Explication :**
- `a2enmod` = Active des modules Apache
- `rewrite` = Gestion des URLs propres
- `headers` = Manipulation des en-têtes HTTP (sécurité)
- `ssl` = Support HTTPS
- `a2ensite` = Active la configuration Nextcloud
- `a2dissite` = Désactive le site par défaut

### Vérifier et redémarrer Apache

```bash
sudo apache2ctl configtest
sudo systemctl restart apache2
```

**Explication :**
- `configtest` = Vérifie que la configuration Apache est correcte
- Si vous voyez "Syntax OK", c'est bon !

---

## Étape 6 : Configuration DNS

### Dans votre interface de gestion DNS (OVH, Infomaniak, etc.)

1. Allez dans **Zone DNS** de votre domaine
2. Ajoutez un enregistrement **A** :
   - Sous-domaine : `cloud`
   - Type : `A`
   - Cible : `IP_DE_VOTRE_SERVEUR`
   - TTL : `60` ou `3600`

**Attendez 5-10 minutes pour la propagation DNS.**

### Vérifier la propagation DNS

```bash
nslookup cloud.votredomaine.com
```

**Explication :** Doit retourner l'IP de votre serveur.

---

## Étape 7 : Installation du certificat SSL

### Installer Certbot

```bash
sudo apt install certbot python3-certbot-apache -y
```

**Explication :** Outil pour obtenir des certificats SSL gratuits et les configurer automatiquement avec Apache.

### Obtenir le certificat SSL

```bash
sudo certbot --apache -d cloud.votredomaine.com
```

**Ce qui se passe :**
1. Certbot vous demande votre email (pour les alertes d'expiration)
2. Vous acceptez les conditions d'utilisation
3. Certbot vérifie que vous possédez le domaine
4. Il installe le certificat et configure Apache pour HTTPS
5. Choisissez l'option 2 : "Redirect" (redirige automatiquement HTTP vers HTTPS)

**Résultat attendu :**
```
Successfully received certificate.
Congratulations! You have successfully enabled HTTPS on https://cloud.votredomaine.com
```

### Tester le renouvellement automatique

```bash
sudo certbot renew --dry-run
```

**Explication :** Vérifie que le certificat se renouvellera automatiquement tous les 3 mois.

---

## Étape 8 : Installation de Nextcloud via le navigateur

### Accéder à l'interface d'installation

Ouvrez votre navigateur : **https://cloud.votredomaine.com**

### Créer le compte administrateur

1. **Créer un compte administrateur :**
   - Nom d'utilisateur : `admin` (ou votre nom)
   - Mot de passe : Choisissez un mot de passe fort

2. **Configurer la base de données :**
   - Cliquez sur "Stockage et base de données"
   - Sélectionnez **MySQL/MariaDB**
   - Utilisateur : `nextcloud_user`
   - Mot de passe : `VotreMotDePasseSecurise`
   - Nom de la base : `nextcloud_db`
   - Hôte : `localhost`

3. Cliquez sur **Terminer l'installation**

**Attendez quelques minutes**, l'installation peut prendre du temps.

---

## Étape 9 : Configuration de Redis (cache)

### Éditer le fichier de configuration Nextcloud

```bash
sudo nano /var/www/nextcloud/config/config.php
```

**Ajoutez ces lignes juste avant la dernière ligne `);` :**

```php
  'memcache.local' => '\OC\Memcache\APCu',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => [
    'host' => 'localhost',
    'port' => 6379,
  ],
```

Sauvegardez : `Ctrl + O`, `Entrée`, `Ctrl + X`

**Explication :**
- `memcache` = Système de cache pour accélérer Nextcloud
- `APCu` = Cache local pour les petites données
- `Redis` = Cache distribué pour les sessions et le verrouillage de fichiers

---

## Étape 10 : Configurer les tâches en arrière-plan (Cron)

### Configurer Cron pour Nextcloud

```bash
sudo crontab -u www-data -e
```

Si on vous demande un éditeur, choisissez `1` (nano).

**Ajoutez cette ligne à la fin du fichier :**

```
*/5 * * * * php -f /var/www/nextcloud/cron.php
```

Sauvegardez : `Ctrl + O`, `Entrée`, `Ctrl + X`

**Explication :**
- `*/5 * * * *` = Exécute toutes les 5 minutes
- `cron.php` = Script qui effectue les tâches de maintenance Nextcloud (nettoyage, synchronisation, etc.)

### Activer Cron dans l'interface Nextcloud

1. Connectez-vous en tant qu'admin
2. Cliquez sur votre avatar en haut à droite → **Paramètres d'administration**
3. Dans le menu de gauche, cliquez sur **Paramètres de base**
4. Section "Tâches en arrière-plan", sélectionnez **Cron**

---

## Étape 11 : Installation de Nextcloud Office

### Méthode 1 : Collabora Online (Built-in)

Cette méthode installe un serveur Collabora directement sur votre serveur Nextcloud. C'est la solution la plus simple pour 50 utilisateurs.

#### Installer l'application Nextcloud Office

1. Connectez-vous en tant qu'admin
2. Cliquez sur votre avatar → **Applications**
3. Cherchez "**Nextcloud Office**"
4. Cliquez sur **Télécharger et activer**

#### Installer le serveur Collabora Built-in

1. Dans **Applications**, cherchez "**Collabora Online - Built-in CODE Server**"
2. Cliquez sur **Télécharger et activer**

**Explication :** Cette méthode installe un serveur Collabora léger directement dans Nextcloud. Parfait pour 50 utilisateurs, simple à configurer.

#### Configurer Collabora

1. Allez dans **Paramètres d'administration** → **Nextcloud Office**
2. Sélectionnez "**Utiliser le serveur Built-in CODE**"
3. Cliquez sur **Enregistrer**

**C'est tout !** Vous pouvez maintenant créer et éditer des documents Word, Excel et PowerPoint.

---

### Méthode 2 (alternative) : OnlyOffice

Si vous préférez OnlyOffice à Collabora Office :

#### Installer OnlyOffice Document Server

```bash
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list
sudo apt update
sudo apt install onlyoffice-documentserver -y
```

#### Installer l'application OnlyOffice dans Nextcloud

1. Connectez-vous en tant qu'admin
2. **Applications** → Cherchez "**ONLYOFFICE**"
3. **Télécharger et activer**

#### Configurer OnlyOffice

1. **Paramètres d'administration** → **ONLYOFFICE**
2. Adresse du serveur : `http://localhost`
3. Cliquez sur **Enregistrer**

**Explication :** OnlyOffice ressemble plus à Microsoft Office dans son interface. Consomme plus de ressources que Collabora Built-in.

---

## Étape 12 : Installation de Nextcloud Talk (messagerie et visio)

### Installer l'application Talk

1. Connectez-vous en tant qu'admin
2. **Applications** → Cherchez "**Talk**"
3. **Télécharger et activer**

### Installer le serveur TURN/STUN (pour les appels vidéo)

Le serveur TURN/STUN permet les appels vidéo même si les utilisateurs sont derrière des firewalls.

#### Installer coturn

```bash
sudo apt install coturn -y
```

#### Configurer coturn

```bash
sudo nano /etc/turnserver.conf
```

**Remplacez tout le contenu par :**

```
listening-port=3478
fingerprint
use-auth-secret
static-auth-secret=VotreSecretTurnSecurise
realm=cloud.votredomaine.com
total-quota=100
bps-capacity=0
stale-nonce
no-loopback-peers
no-multicast-peers
```

Sauvegardez : `Ctrl + O`, `Entrée`, `Ctrl + X`

**Explication :**
- `listening-port=3478` = Port standard pour TURN
- `static-auth-secret` = Clé secrète pour l'authentification (à personnaliser)
- `realm` = Votre domaine
- `total-quota=100` = Limite de 100 sessions simultanées

#### Activer et démarrer coturn

```bash
sudo nano /etc/default/coturn
```

Décommentez (enlevez le `#`) cette ligne :

```
TURNSERVER_ENABLED=1
```

Sauvegardez et démarrez :

```bash
sudo systemctl enable coturn
sudo systemctl start coturn
```

#### Ouvrir le port dans le firewall

```bash
sudo ufw allow 3478/tcp
sudo ufw allow 3478/udp
```

**Explication :** Permet aux appels vidéo de passer à travers le firewall.

#### Configurer Talk avec TURN

1. **Paramètres d'administration** → **Talk**
2. Section "Serveur TURN" :
   - Serveur TURN : `cloud.votredomaine.com:3478`
   - Secret : `VotreSecretTurnSecurise`
   - Protocoles : Cochez **UDP** et **TCP**
3. Cliquez sur **Enregistrer**

**Vous pouvez maintenant :**
- Envoyer des messages instantanés
- Faire des appels audio et vidéo
- Créer des conversations de groupe
- Partager des fichiers dans les conversations

---

## Étape 13 : Gestion des utilisateurs et droits d'accès

### Créer des utilisateurs

1. **Paramètres d'administration** → **Utilisateurs**
2. Cliquez sur **Nouvel utilisateur**
3. Remplissez :
   - Nom d'utilisateur
   - Nom d'affichage
   - Email
   - Mot de passe (l'utilisateur peut le changer)
   - Groupes (optionnel)
   - Quota (limite d'espace disque par utilisateur)

**Conseil :** Créez les 50 utilisateurs avec un quota adapté (par exemple 20 Go par personne).

### Créer des groupes

1. **Paramètres d'administration** → **Utilisateurs**
2. Cliquez sur **Ajouter un groupe**
3. Nommez le groupe (exemple : "Comptabilité", "Marketing", "Direction")

**Explication :** Les groupes permettent de gérer facilement les permissions de plusieurs personnes à la fois.

### Partager des dossiers avec permissions

#### Créer un dossier partagé

1. Allez dans **Fichiers**
2. Créez un nouveau dossier (exemple : "Documents Comptabilité")
3. Cliquez sur l'icône **Partager** à côté du dossier
4. Choisissez :
   - **Utilisateur ou groupe** : Sélectionnez qui peut accéder
   - **Permissions** :
     - ✅ **Peut partager** = L'utilisateur peut partager avec d'autres
     - ✅ **Peut modifier** = Peut créer, modifier, supprimer des fichiers
     - ❌ **Peut modifier** (décoché) = Lecture seule
     - ✅ **Peut créer** = Peut ajouter des fichiers
     - ✅ **Peut supprimer** = Peut effacer des fichiers

**Exemple de configuration :**
- **Direction** → Tous les droits
- **Comptabilité** → Peut modifier et créer
- **Stagiaires** → Lecture seule

#### Définir des permissions avancées

1. Cliquez sur les **3 petits points** à côté d'un partage
2. **Permissions personnalisées** :
   - Créer
   - Modifier
   - Supprimer
   - Partager
   - Télécharger uniquement (pour empêcher les modifications)

**Explication :** Vous pouvez définir précisément qui fait quoi dans chaque dossier, exactement comme vous le souhaitiez.

### Partager avec un lien public

Si vous voulez qu'un dossier soit accessible sans compte Nextcloud :

1. Cliquez sur **Partager** → **Partage par lien**
2. Options :
   - **Autoriser les modifications** (ou lecture seule)
   - **Protection par mot de passe**
   - **Date d'expiration** du lien
   - **Note pour le destinataire**

---

## Étape 14 : Optimisation des performances

### Activer la compression

```bash
sudo a2enmod deflate
sudo systemctl restart apache2
```

**Explication :** Compresse les fichiers envoyés au navigateur = plus rapide.

### Configurer PHP-FPM (plus performant qu'Apache mod_php)

```bash
sudo apt install php8.2-fpm -y
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo a2dismod php8.2
sudo systemctl restart apache2
```

**Explication :** PHP-FPM gère mieux plusieurs utilisateurs simultanés qu'Apache mod_php.

### Activer HTTP/2 (plus rapide)

```bash
sudo a2enmod http2
sudo systemctl restart apache2
```

**Explication :** HTTP/2 charge les pages plus rapidement que HTTP/1.1.

### Augmenter le cache APCu

```bash
sudo nano /etc/php/8.2/mods-available/apcu.ini
```

**Ajoutez :**

```ini
apc.enabled=1
apc.shm_size=128M
```

Sauvegardez et redémarrez :

```bash
sudo systemctl restart apache2
```

---

## Étape 15 : Sauvegardes automatiques

### Créer un script de sauvegarde

```bash
sudo nano /usr/local/bin/backup-nextcloud.sh
```

**Contenu du script :**

```bash
#!/bin/bash

# Configuration
BACKUP_DIR="/var/backups/nextcloud"
NC_DIR="/var/www/nextcloud"
DATE=$(date +%Y%m%d_%H%M%S)

# Créer le dossier de sauvegarde
mkdir -p $BACKUP_DIR

# Activer le mode maintenance
sudo -u www-data php $NC_DIR/occ maintenance:mode --on

# Sauvegarder la base de données
mysqldump -u nextcloud_user -p'VotreMotDePasseSecurise' nextcloud_db > $BACKUP_DIR/nextcloud_db_$DATE.sql

# Sauvegarder le dossier data
tar -czf $BACKUP_DIR/nextcloud_data_$DATE.tar.gz $NC_DIR/data

# Sauvegarder le fichier de configuration
cp $NC_DIR/config/config.php $BACKUP_DIR/config_$DATE.php

# Désactiver le mode maintenance
sudo -u www-data php $NC_DIR/occ maintenance:mode --off

# Supprimer les sauvegardes de plus de 30 jours
find $BACKUP_DIR -type f -mtime +30 -delete

echo "Sauvegarde terminée : $DATE"
```

Sauvegardez : `Ctrl + O`, `Entrée`, `Ctrl + X`

### Rendre le script exécutable

```bash
sudo chmod +x /usr/local/bin/backup-nextcloud.sh
```

### Programmer la sauvegarde automatique

```bash
sudo crontab -e
```

**Ajoutez cette ligne (sauvegarde tous les jours à 2h du matin) :**

```
0 2 * * * /usr/local/bin/backup-nextcloud.sh >> /var/log/nextcloud-backup.log 2>&1
```

**Explication :**
- `0 2 * * *` = Tous les jours à 2h00
- Le script crée une sauvegarde de la base de données, des fichiers et de la configuration
- Supprime automatiquement les sauvegardes de plus de 30 jours

---

## Étape 16 : Sécurité supplémentaire

### Configurer le pare-feu UFW

```bash
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS
sudo ufw allow 3478/tcp  # TURN (Talk)
sudo ufw allow 3478/udp  # TURN (Talk)
sudo ufw enable
```

**Explication :** N'autorise que les ports nécessaires, bloque tout le reste.

### Activer l'authentification à deux facteurs (2FA)

1. **Applications** → Cherchez "**Two-Factor TOTP Provider**"
2. **Télécharger et activer**

Les utilisateurs peuvent ensuite activer la 2FA dans leurs **Paramètres personnels** → **Sécurité**.

### Configurer le scan antivirus (optionnel)

```bash
sudo apt install clamav clamav-daemon -y
sudo freshclam
sudo systemctl start clamav-daemon
```

Dans Nextcloud :
1. **Applications** → "**Antivirus for files**"
2. **Télécharger et activer**
3. **Paramètres d'administration** → **Antivirus**
4. Mode : **Daemon (socket)**
5. Socket : `/var/run/clamav/clamd.ctl`

**Explication :** Analyse automatiquement les fichiers uploadés pour détecter les virus.

---

## Étape 17 : Applications recommandées pour 50 utilisateurs

### Productivité

1. **Nextcloud Office** = Édition de documents (déjà installé)
2. **Talk** = Messagerie et visio (déjà installé)
3. **Calendar** = Calendrier partagé
4. **Contacts** = Carnet d'adresses
5. **Tasks** = Gestion de tâches
6. **Deck** = Tableaux Kanban (type Trello)

### Collaboration

7. **Group folders** = Dossiers partagés par groupe avec quotas
8. **Forms** = Créer des formulaires (sondages, inscriptions)
9. **Notes** = Prise de notes collaborative

### Sécurité et administration

10. **Brute-force settings** = Protection contre les attaques
11. **Admin audit** = Journaux d'activité
12. **Quota warning** = Alerte quand les utilisateurs atteignent leur quota

**Pour installer :**
1. **Applications** → Cherchez le nom
2. **Télécharger et activer**

---

## Informations importantes

### Identifiants administrateur
- Définis lors de l'installation web
- **À protéger absolument** (utilisez un mot de passe fort + 2FA)

### Ports utilisés
- Port 80 : HTTP (redirige vers HTTPS)
- Port 443 : HTTPS (Nextcloud)
- Port 3478 : TURN/STUN (Talk - appels vidéo)

### Commandes utiles

**Mettre Nextcloud en mode maintenance :**
```bash
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
```

**Désactiver le mode maintenance :**
```bash
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
```

**Analyser et réparer :**
```bash
sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
```

**Mettre à jour Nextcloud via le terminal :**
```bash
sudo -u www-data php /var/www/nextcloud/updater/updater.phar
```

**Voir les logs d'erreur :**
```bash
sudo tail -f /var/www/nextcloud/data/nextcloud.log
```

### Renouvellement SSL
Le certificat SSL se renouvelle automatiquement tous les 3 mois via Certbot.

### Maintenance

**Mettre à jour Nextcloud :**
- Via l'interface web : **Paramètres d'administration** → **Aperçu** → Cliquez sur **Mettre à jour**
- Ou via terminal (voir commandes utiles ci-dessus)

---

## Résumé des accès

- **Nextcloud :** https://cloud.votredomaine.com
- **Serveur SSH :** `ssh utilisateur@IP_DU_SERVEUR`
- **Applications disponibles :** Fichiers, Office, Talk, Calendar, Contacts, Tasks

---

## Dépannage

### Erreur "Your data directory is not writable"

```bash
sudo chown -R www-data:www-data /var/www/nextcloud/data
sudo chmod -R 750 /var/www/nextcloud/data
```

### Les documents Office ne s'ouvrent pas

```bash
sudo -u www-data php /var/www/nextcloud/occ app:disable richdocuments
sudo -u www-data php /var/www/nextcloud/occ app:enable richdocuments
sudo systemctl restart apache2
```

### Talk : les appels vidéo ne fonctionnent pas

Vérifiez que coturn est démarré et le port ouvert :

```bash
sudo systemctl status coturn
sudo ufw status
sudo netstat -tulpn | grep 3478
```

### Problèmes de performances avec 50 utilisateurs

Augmentez les ressources PHP-FPM :

```bash
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
```

Modifiez :
```
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18
```

```bash
sudo systemctl restart php8.2-fpm
```

### Voir les erreurs détaillées

```bash
sudo tail -f /var/log/apache2/nextcloud-error.log
sudo tail -f /var/www/nextcloud/data/nextcloud.log
```

---

## Conclusion

Vous disposez maintenant d'un **Nextcloud complet** pour 50 utilisateurs avec :
- ✅ Stockage et partage de fichiers
- ✅ Édition collaborative de documents (Word, Excel, PowerPoint)
- ✅ Messagerie instantanée et visioconférence
- ✅ Gestion fine des droits d'accès par utilisateur et dossier
- ✅ Sauvegardes automatiques
- ✅ Sécurité SSL et pare-feu

**Prochaines étapes conseillées :**
1. Créer vos 50 utilisateurs et groupes
2. Configurer les quotas par utilisateur
3. Créer les dossiers partagés avec les bonnes permissions
4. Former vos utilisateurs à l'utilisation de Nextcloud
5. Surveiller les performances et ajuster les ressources si nécessaire

---