--- # ========================================================================= # serveur_nextcloud — maison numérique souveraine (fichiers + collaboration). # Codifié depuis le spike empirique du 2026-07-05 : chaque réglage encode un # gotcha prouvé (voir README). Motifs Set-OPS : BD via resoudre_base, SSO via # Keycloak, TLS via cert racine step-ca, exposition derrière l'edge nginx. # ========================================================================= serveur_nextcloud_groupe: "serveur_nextcloud" serveur_nextcloud_utilisateur: "www-data" # --- Version ÉPINGLÉE (robustesse : pas de mise à jour surprise ; upgrade en escale) --- serveur_nextcloud_version: "34.0.1" serveur_nextcloud_url: "https://download.nextcloud.com/server/releases/nextcloud-{{ serveur_nextcloud_version }}.tar.bz2" serveur_nextcloud_racine: "/var/www/nextcloud" # --- PHP (Debian 13 = 8.4) + tuning EXIGÉ par Nextcloud (gotcha : 128M → pages blanches) --- serveur_nextcloud_php_version: "8.4" serveur_nextcloud_php_memory_limit: "512M" serveur_nextcloud_php_upload_max: "512M" # imagick tire ses deps ; NE PAS lister libmagickcore-6 (absent de Debian 13). serveur_nextcloud_paquets: - "php{{ serveur_nextcloud_php_version }}-fpm" - "php{{ serveur_nextcloud_php_version }}-gd" - "php{{ serveur_nextcloud_php_version }}-curl" - "php{{ serveur_nextcloud_php_version }}-mbstring" - "php{{ serveur_nextcloud_php_version }}-xml" - "php{{ serveur_nextcloud_php_version }}-zip" - "php{{ serveur_nextcloud_php_version }}-pgsql" - "php{{ serveur_nextcloud_php_version }}-intl" - "php{{ serveur_nextcloud_php_version }}-bcmath" - "php{{ serveur_nextcloud_php_version }}-gmp" - "php{{ serveur_nextcloud_php_version }}-imagick" - "php{{ serveur_nextcloud_php_version }}-redis" - "php{{ serveur_nextcloud_php_version }}-cli" - "nginx" - "redis-server" - "bzip2" # --- Base de données (dérivée par resoudre_base ; PG en verify-full TLS) --- serveur_nextcloud_db_host: "" # dérivé (FQDN) serveur_nextcloud_db_port: 5432 serveur_nextcloud_db_name: "nextcloud" serveur_nextcloud_db_user: "nextcloud" # Gotcha : PDO pgsql (libpq) lit PGSSLMODE/PGSSLROOTCERT dans l'env de php-fpm. serveur_nextcloud_pg_sslmode: "verify-full" serveur_nextcloud_ca_racine: "/etc/step/certs/root_ca.crt" # --- Cache Redis local (verrous + mémoire) --- serveur_nextcloud_redis_host: "localhost" serveur_nextcloud_redis_port: 6379 # --- Exposition (derrière l'edge nginx ; TLS terminé à l'edge) --- serveur_nextcloud_hostname: "cloud.{{ domaine_interne }}" serveur_nextcloud_http_addr: "0.0.0.0" # l'edge (autre hôte) doit joindre :80 serveur_nextcloud_http_port: 80 # IP de l'edge → trusted_proxies (pour voir la vraie IP client, pas throttler l'edge). serveur_nextcloud_edge_ip: "{{ hostvars[(groups['serveur_nginx'] | default([]) | first) | default('')].ansible_host | default('') }}" # --- SSO OIDC (Keycloak) — app user_oidc --- serveur_nextcloud_oidc_actif: true serveur_nextcloud_oidc_nom: "{{ organisation | default('Organisation') }}" serveur_nextcloud_oidc_client_id: "nextcloud" serveur_nextcloud_oidc_client_secret: "{{ vault_nextcloud_oidc | default('') }}" serveur_nextcloud_oidc_realm: "{{ identite_realm | default('chezlepro') }}" serveur_nextcloud_oidc_discovery: "https://keycloak.{{ domaine_interne }}/realms/{{ serveur_nextcloud_oidc_realm }}/.well-known/openid-configuration" # --- Collabora Online (WOPI) — app richdocuments --- serveur_nextcloud_office_actif: true serveur_nextcloud_wopi_url: "http://127.0.0.1:9980" # serveur → Collabora (local) serveur_nextcloud_wopi_public_url: "https://bureau.{{ domaine_interne }}" # navigateur → edge # --- Données + admin --- serveur_nextcloud_data_dir: "{{ serveur_nextcloud_racine }}/data" serveur_nextcloud_admin_user: "admin" serveur_nextcloud_admin_password: "{{ vault_nextcloud_admin | default('') }}" # Domaines de confiance : hostname exposé + nom court local. serveur_nextcloud_trusted_domains: - "{{ serveur_nextcloud_hostname }}" - "{{ ansible_hostname | default('localhost') }}" # --- Identité visuelle Alliance Boréale --- serveur_nextcloud_branding: true serveur_nextcloud_theme_nom: "{{ organisation | default('Organisation') }}" serveur_nextcloud_theme_slogan: "Votre maison numérique souveraine" serveur_nextcloud_theme_couleur: "#0e1640" serveur_nextcloud_theme_ciel: true # thème custom « ciel boréal » (login + app) # --- Sécurité : whitelister le sous-réseau d'admin (PAS désactiver l'anti-force-brute) --- serveur_nextcloud_bruteforce_whitelist: "{{ (sous_reseau_admin | default('')) }}"