FranceHostun service RootLab
Guide pratique

Installer Nextcloud sur un VPS.

Vos fichiers, votre agenda et vos contacts sur un serveur à vous, hébergé en France, plutôt que chez un géant du cloud. Ce guide installe Nextcloud avec Docker Compose, en HTTPS, accessible depuis vos ordinateurs et votre téléphone.

Quel VPS pour Nextcloud ?

Nextcloud a besoin d'un peu de mémoire pour PHP et sa base de données. Comptez le VPS Start (2 Go de RAM, 20 Go SSD) pour une ou deux personnes qui synchronisent surtout des documents, et le VPS Plus (4 Go, 40 Go) pour une famille, des photos ou quelques applications en plus. L'espace disque de nos offres monte à 100 Go : c'est confortable pour des documents, juste pour une photothèque complète.

Choisissez un VPS KVM pour Docker, et suivez d'abord notre guide Docker sur un VPS IPv6 : il installe Docker, le service NAT64 et le réglage IPv6 dont ce guide a besoin.

Vos sauvegardes : nos snapshots sont stockés sur le même serveur que votre VPS (voir nos limites). Si Nextcloud devient l'endroit où vivent vos fichiers, gardez une copie ailleurs. Le client de synchronisation en conserve déjà une sur vos ordinateurs.

1. Le nom de domaine et l'accès IPv4

Créez un enregistrement AAAA, par exemple cloud.mondomaine.fr, vers l'adresse IPv6 du VPS. Deux cas se présentent ensuite :

  • Tous vos appareils ont l'IPv6 (box et forfait mobile français récents) : rien d'autre à faire, Caddy obtiendra tout seul un certificat Let's Encrypt.
  • Certains n'ont que l'IPv4 (Wi-Fi d'hôtel, réseau d'entreprise) : passez le domaine par Cloudflare avec le proxy activé, comme dans le guide du VPS IPv6, et générez un certificat d'origine Cloudflare (onglet SSL/TLS, « Origin Server »).

Avec Cloudflare en offre gratuite, une requête ne peut pas dépasser 100 Mo. Ce n'est pas gênant en pratique : l'interface web et les clients Nextcloud envoient les gros fichiers en petits morceaux.

2. Préparer les fichiers

mkdir -p /srv/nextcloud/certs && cd /srv/nextcloud

Créez un fichier .env avec des mots de passe longs et différents (openssl rand -base64 24 en génère un) :

DOMAINE=cloud.mondomaine.fr
MYSQL_ROOT_PASSWORD=changez-moi-1
MYSQL_PASSWORD=changez-moi-2
chmod 600 .env

3. Le fichier docker-compose.yml

services:
  db:
    image: mariadb:11
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - db:/var/lib/mysql
    networks: [nc]

  redis:
    image: redis:alpine
    restart: unless-stopped
    networks: [nc]

  app:
    image: nextcloud:stable-apache
    restart: unless-stopped
    depends_on: [db, redis]
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
      REDIS_HOST: redis
      NEXTCLOUD_TRUSTED_DOMAINS: ${DOMAINE}
      OVERWRITEPROTOCOL: https
      TRUSTED_PROXIES: 172.16.0.0/12 fd00::/8
    volumes:
      - nextcloud:/var/www/html
    networks: [nc]

  caddy:
    image: caddy:2
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./certs:/certs:ro
      - caddy:/data
    networks: [nc]

networks:
  nc:
    enable_ipv6: true

volumes:
  db:
  nextcloud:
  caddy:

Les volumes nommés gardent vos données quand les conteneurs sont recréés lors des mises à jour.

4. Le Caddyfile

Créez /srv/nextcloud/Caddyfile. Sans Cloudflare, Caddy obtient et renouvelle seul un certificat Let's Encrypt :

cloud.mondomaine.fr {
    reverse_proxy app:80
    redir /.well-known/carddav /remote.php/dav 301
    redir /.well-known/caldav /remote.php/dav 301
}

Avec Cloudflare, enregistrez le certificat d'origine dans certs/origin.pem et sa clé dans certs/origin.key, puis ajoutez cette ligne juste après l'accolade ouvrante :

    tls /certs/origin.pem /certs/origin.key

Dans Cloudflare, réglez alors le chiffrement SSL/TLS sur « Full (strict) ».

5. Démarrer et terminer l'installation

docker compose up -d
docker compose logs -f app

Ouvrez https://cloud.mondomaine.fr : Nextcloud vous demande de créer le compte administrateur. La base de données est déjà configurée par les variables du fichier Compose.

6. Les tâches de fond

Nextcloud a besoin d'exécuter régulièrement des tâches de maintenance. Ajoutez cette ligne à la crontab de root (crontab -e) :

*/5 * * * * docker compose -f /srv/nextcloud/docker-compose.yml exec -T -u www-data app php -f /var/www/html/cron.php

Dans Nextcloud, ouvrez Paramètres d'administration, Paramètres de base, et choisissez « Cron ». Installez ensuite les applications Nextcloud sur vos ordinateurs et votre téléphone, et connectez-les à votre adresse.

Mettre à jour

cd /srv/nextcloud
docker compose pull
docker compose up -d

Nextcloud ne sait pas sauter de version majeure : l'image stable suit les versions dans l'ordre, mettez donc à jour régulièrement plutôt qu'une fois par an.

Questions fréquentes

Combien d'espace pour mes fichiers ?

Jusqu'à 100 Go avec le VPS Max, une partie étant prise par le système et Docker. C'est confortable pour des documents et des contacts, plus juste pour une photothèque complète ou des vidéos.

Nextcloud fonctionne-t-il sans Cloudflare ?

Oui, si tous vos appareils ont l'IPv6 : Caddy obtient seul un certificat Let's Encrypt. Cloudflare sert seulement à rendre votre Nextcloud joignable depuis des réseaux qui n'ont que l'IPv4, comme certains Wi-Fi publics.

Mes fichiers sont-ils chiffrés ?

Ils transitent en HTTPS. Sur le disque, ils sont en clair par défaut, sur un serveur que vous administrez. Nextcloud propose un module de chiffrement côté serveur, à activer en connaissance de cause : perdre les clés revient à perdre les fichiers.

Que se passe-t-il si le VPS tombe en panne ?

Le client de synchronisation garde une copie de vos fichiers sur vos ordinateurs, et ils restent accessibles hors ligne. Nos snapshots sont sur le même serveur que votre VPS : gardez une sauvegarde ailleurs. Voir nos limites.

Votre cloud, hébergé en France

VPS Plus : 2 vCores, 4 Go de RAM ECC, 40 Go SSD, opéré par une association, dès 3,99 € par mois.