ansible-role-docker_nextcloud/README.md

73 lines
5.3 KiB
Markdown

# Role : docker_nextcloud
## Services fournis
- main.yml : Installation de nextcloud sur un serveur docker_host
## Variables
Fournir les variables suivantes. Par exemple :
```yaml
docker_nextcloud_fqdn: nextcloud.example.com
docker_nextcloud_version: 23.0.3-apache
docker_nextcloud_data_dir: /data1
docker_nextcloud_service_id: nextcloud
docker_nextcloud_db: nextcloud
docker_nextcloud_db_user: nextcloud
docker_nextcloud_db_password: motdepassebdd
docker_nextcloud_smtp_host: smtp.example.com
docker_nextcloud_php_ini:
php_upload_max_filesize = 512M
php_post_max_size = 512M
php_max_execution_time = 200
php_memory_limit = 1024M
```
| Option | Valeur par défaut | Description |
|-----------------------------------|-------------------|------------------------------------------------------------------------------------------------------------------|
| docker_nextcloud_fqdn | | Le fqdn pour accéder à nextcloud |
| docker_nextcloud_version | | Version de l'image nextcloud |
| docker_nextcloud_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
| docker_nextcloud_service_id | | Le nom de service souhaité : conditionne le nommage des dossiers et le routage par traefik |
| docker_nextcloud_db | | Le nom de la base de données |
| docker_nextcloud_db_user | | Le nom du user propriétaire de la base de données |
| docker_nextcloud_db_password | | Le mot de passe du user propriétaire de la base de données |
| docker_nextcloud_smtp_host | | FQDN du serveur smtp pour l'envoi de mails par nextcloud |
| docker_nextcloud_php_ini | | Une liste de variables d'environnement pour la configuration de healtchecks |
| docker_nextcloud_custom_volumes | | Si défini, liste de dictionnaires (volume, target) permettant d'ajouter des volumes spécifiques a docker-compose |
| docker_nextcloud_healthchecks_url | | Si définie, cette url est appelée par la tâche en crontab pour notifier healthchecks |
| docker_nextcloud_trusted_proxies | | Si définie, reverse proxies en lesquels nextcloud peut avoir confiance |
## Configuration de nextcloud
### Premier démarrage
* Créer un compte administrateur de l'instance Nextcloud
* Accepter la proposition d'applications par défaut
* Aller dans le profil de l'administrateur et lui attribuer une adresse email
* Dans la section "vie privée", paramétrer la localisation
* Dans le fichier config.php, envisager les paramètres suivants :
```
'default_language' => 'fr',
'default_locale' => 'fr_FR'
```
* Dans la section "Paramètres de base/tâches d'arrière plan" configurer "cron"
* Dans la section "Paramètres de base", configurer le serveur SMTP, l'adresse d'expédition, l'authentification sasl et tester un envoi
### Configuration LDAP
* Ajouter l'application "LDAP user and group backend"
* Dans les paramètres d'administration / Intégration LDAP. Il pourra être nécessaire de quitter et revenir dans la configuration pour que les tests fonctionnent.
* Configurer le serveur et l'authentification auprès de ce dernier avec un compte de service dédié, le dn de base, et passer à l'onglet utilisateur
* Dans l'onglet utilisateur, configurer le filtre de recherche des utilisateurs et cliquer "vérifier et compter les utilisateurs" pour s'assurer de la validité du filtre (exemple avec un groupe pour filtrer les utilisateurs autorisés : (&(objectClass=inetOrgPerson)(memberOf=cn=nextcloud-users,ou=groups,dc=example,dc=com))
* Passer en mode avancé pour configurer l'attribut du nom d'affichage (par exemple : cn), le dn de base des utilisateurs et des groupes (par exemple ou=users,dc=example,dc=com et ou=groups,dc=example,dc=com) et l'attribut d'association groupe-membre (par exemple : uniqueMember)
* Dans l'onglet attributs de login, configurer le filtre permettant de déterminer l'attribut login utilisateur (par exemple : uid=%uid)
* Dans l'onglet groupes, configurer le filtre de recherche des groupes (par exemple : objectClass=posixGroup)
* Eventuellement, passer en mode avancé pour configurer l'attribut de Quota, l'attribut de mail...
* Tester l'intégration par un login d'utilisateur
* Retourner dans les paramètres d'administration / privilèges d'administration, et paramétrer le ou les groupes ldap pouvant donner des droits particuliers
* Dans la section "vue d'ensemble", éventuellement un groupe ldap des administrateurs