ownCloud
Cette page contient la documentation technique à destiantion principalement des membres actif⋅ves du Crans. La page pour les utilisateurices est VieCrans/Owncloud
Sommaire
ownCloud est une sorte de Dropbox mais libre. Nous l'avons mis en place sur nos serveurs pour qu'il soit possible de déposer et partager facilement des fichiers. Ce service est accessible via le site https://owncloud.crans.org et par des applications disponibles sur toutes les plateformes (GNU/Linux, Windows, MacOS, Android et iOS).
L'authentification se fait avec vos identifiants Crans habituels (login/ mot de passe identiques à ceux de votre boîte mail).
Installation
Le serveur ownCloud n'est plus dans Debian.
Ansible
Depuis que le serveur a été mis à jour vers Buster, ownCloud est géré via ansible. Il peut être installé via le playbook services_web.yml.
./services_web.yml --limit owncloud-srv.adm.crans.org --check
Si rien ne s'est passé, félicitations vous avez copié-collé une commande trouvée sur le net sans réflechir. Le playbook a été lancé en mode dry-run. Pour véritablement lancer le playbook, retirer l'option --check
Installation à la main
Si vous voulez vraiment savoir comment installer owncloud à la main, suivez la méthode recommandée :
Ajout de la clé de signature à APT
curl -fsSL https://download.opensuse.org/repositories/isv:ownCloud:server:10/Debian_11.0/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/isv_ownCloud_server_10.gpg > /dev/null
Ajout du dépot et installation
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/server:/10/Debian_11/ /' > /etc/apt/sources.list.d/owncloud.list apt update apt install owncloud-complete-files
Le méta paquet owncloud n'existe plus, il faut installer les dépendances à la main. Les dépendances requises sont liées à php7.4.
Lors du premier lancement sur l'interface, il est demandé de créer un utilisateur root, de choisir son mot de passe et de choisir un type de base de données parmi SQLite, MYSQL ou POSTgresql. Cette base de données est celle qui liste les utilisateurs et leurs fichiers. Dans notre cas, la base de données postegresql a été créée sur thot, qui centralise toutes les bases, et le lien est possible via l'option "Adresse URL du serveur".
Une fois la configuration terminée, l'utilisateur est loggué sur sa page personnelle (qui contient par défaut quelques fichiers).
Mode maintenance
Lorsque vous touchez au serveur Owncloud, il peut être de bon alois d'empêcher les utilisateurs de se connecter au service. Pour cela, il existe le mode maintenance. Pour l'activer, il suffit de lancer la commande
sudo -u www-data /var/www/owncloud/occ maintenance:mode --on
Un nouveau message apparaît sur l'interface web pour préciser que le service est en mode maintenance. Aucune application owncloud n'est alors utilisable.
Pour désactiver le mode maintenance, rien de plus simple :
sudo -u www-data /var/www/owncloud/occ maintenance:mode --off
Mise à jour
Via Ansible
Au Crans, on fait gérer les mises à jour des serveurs via Ansible depuis la version Buster de Debian. Pour cela rien de plus simple, il suffit de lancer le playbook upgrade.yml.
Ce playbook en profite aussi pour mettre à jour le service ownCloud via l'utilitaire en ligne de commande occ.
À la main
Lorsque le serveur est mis à jour, il faut parfois faire une opération supplémentaire pour qu'Owncloud remarche. C'est marqué lorsque l'on tente de se connecter sur l'interface web (évidemment, après une mise à jour on teste donc cette information est vue par la nounou ). Il suffit alors de lancer la commande
sudo -u www-data /var/www/owncloud/occ upgrade
Si le service a été mis à jour par occ il faudra alors désactiver le mode maintenance
sudo -u www-data /var/www/owncloud/occ maintenance:mode --off
Annuaire LDAP
On souhaite lier owncloud à notre base des adhérents. Pour cela, un administrateur active l'application "LDAP user and group backend" dans l'onglet idoine. Ainsi, dans la page d'administration apparaissent les options de configuration du binding LDAP, que l'on remplit via les données de notre annuaire (la base en lecture seule suffit amplement).
Authentification CAS
L'application pour le CAS est cassée avec ownCloud > 8.2. À voir pour trouver autre chose.
Si l'application CAS pause soucis, pensez à la désactiver :
sudo -u www-data /var/www/owncloud/occ app:disable user_cas
Pour permettre l'authentification via le CAS du crans https://cas.crans.org, un administrateur active l'application https://github.com/owncloud/user_cas. Il suffit ensuite de renseigner les informations de configuration du CAS (adresse, port…) et bien penser à cocher la case qui dit de faire correspondre les utilisateurs du CAS avec les utilisateurs LDAP.
Utilisation du dossier Owncloud du home
Le dossier Crans dans Owncloud correspond au dossier Owncloud dans le home des adhérents.
Owncloud étant exécuté en tant que www-data, il faut qu'il puisse écrire dans le dossier Owncloud du home des adhérents, mais on veut que les adhérents puissent modifier aussi ces fichiers. La solution employée est la suivante, le dossier /home/${user}/Owncloud est monté via sftp dans /home-owncloud/${user} par autofs. Ensuite le dossier /home-owncloud/${user} est utilisé comme stockage externe dans Owncloud.
Montage auto par sftp
Dans /etc/auto.master, /home-owncloud est déclaré utilisant /etc/auto.home-owncloud. /etc/auto.home-owncloud s'occupe de créer et vérifier les permissions de /home-owncloud/${user} et /home/${user}/Owncloud puis monte le dossier. L'authentification se fait via la clef ssh /root/.ssh/id_rsa_all_user. La clef publique de /root/.ssh/id_rsa_all_user est mise dans /etc/ssh/authorized_keys qui est référencé explicitement dans /etc/ssh/sshd_config sur le serveur. Cette clef ne peut se connecter que depuis localhost et seulement pour un montage sftp.
Options supplémentaires
ownCloud peut être enrichi de plusieurs applications, comme :
- la compilation PDFLatex
- la rédaction de documents
- la prévisualisation de PDF
- ...
Les utilisateurs peuvent se partager des fichiers. Pour prévenir les utilisateurs de partages, le serveur SMTP peut être configuré pour envoyer des notifications. Pour l'instant, cette option n'est pas activée.
Fichier de configuration
ownCloud s'installe par défaut dans /var/www/owncloud. Un modèle très complet de fichier de configuration est disponible dans config/config.sample.php.
Dossiers et fichiers par défauts
On modifie les fichiers et les dossiers proposés par défauts dans /var/localhome/skeleton Ces fichiers sont copiés dans le répertoire de l'utilisateur lors de sa première connexion, donc ils ne sont pas mis à jour avec les nouveaux fichiers. Pour l'instant un fichier ReadMe.pdf explique la configuration de base au Crans
Logs
/var/localhome/owncloud.log
Monitoring
Nginx et php7-fpm sont monitorés par monit sur le serveur
Et comme tous les serveurs du Crans, il est monitoré par Prometheus.