Guide d'installation d'Alfresco pour freelance

Vous avez décidé de plonger dans le monde d’Alfresco sur votre système Ubuntu, une décision qui ouvre la porte à un monde de gestion de contenu open source puissant. Alfresco est une ECM (système de gestion de contenu) open source offrant une suite complète de fonctionnalités de gestion de contenu. C’est une plateforme open source robuste qui offre des fonctionnalités avancées de gestion documentaire, de collaboration et bien plus encore.

Pré-requis et choix d'architecture

Les serveurs physiques et virtuels sont acceptables. Les serveurs Windows, Linux et UNIX ont été utilisés avec succès en production. Pour ce tutoriel, nous allons utiliser Ubuntu 22.04. Vous pouvez utiliser Ubuntu 18.04 ou Ubuntu 20.04. Afin de commencer, vous devrez installer certaines bibliothèques requises sur votre système.

  • Il utilise la technologie Java JEE.
  • Il est possible d'installer le package Alfresco avec son serveur Apache Tomcat, et tous les composants.
  • Pour une installation propre, les fichiers d'installation sont disponibles ici (en version 3.4c). Il est possible qu'il y ait une mise à jour d'ici là, pour être sûr d'avoir la dernière version, il suffira alors d'aller sur la page de téléchargement d'Alfresco et de choisir "Custom Installs & Optional Modules".
  • Les serveurs physiques et virtuels sont acceptables.
  • Les serveurs Windows, Linux et UNIX ont été utilisés avec succès en production.

Remarques d'architecture :

  • Cette solution présente quelques inconvénients en termes de disponibilité. Il est possible que le serveur tombe en panne, il n'y a alors pas de secours.
  • L'architecture répliquée est utilisée lorsque le nombre d'utilisateur augmente grandement et qu'on a besoin de monter en charge.
  • Répartiteur de charge : Un répartiteur de charge qui supporte les Sticky Sessions. Chaque nœud serveur doit pouvoir accéder aux noms des nœuds via l'IP routée.
  • Base de données : Plusieurs bases de données peuvent être choisies (PostgreSQL, MySQL, Hypersonic, ...). Il est conseillé de mettre la base de données dans un autre serveur que le disque partagé pour avoir plus de performances.
  • Contenu des fichiers : Le contenu des fichiers est stocké sur un disque partagé NFS. Ce disque peut être redondé lui-même pour offrir plus de disponibilité.

Étapes d'installation pas à pas (Ubuntu)

Dans cet exemple pour freelance, nous montrons les étapes principales pour obtenir Alfresco opérationnel sur Ubuntu.

  1. Avant tout, installer les bibliothèques requises. J’ai constaté qu’il y a quelques librairies qu’il faut installer: libsm6, libxrender1 et libxinerama1 dans mon cas (sudo apt-get install libsm6, libxrender1, libxinerama1).
  2. Si votre serveur n’a pas été installé avec l’option MySQL Server coché, installé le tout simplement avec la commande : sudo apt-get install mysql-server. Choisir l’option “Avancé” afin de remplir les paramètres de la base de données et renseignez les champs.
  3. Tout d’abord, vous devrez ajouter le référentiel tiers PPA à votre système.
  4. Maintenant, sélectionnez la langue anglaise et cliquez sur le bouton Valider. Cliquez suivant sur le bouton Suivant. Maintenant, cliquez sur le type d’installation facile et cliquez sur le bouton Suivant.
  5. Choisissez un dossier pour installer Alfresco, puis cliquez sur le bouton Suivant. Créer le mot de passe administrateur, ensuite cliquez sur le bouton Suivant. Maintenant, sélectionnez Oui, après cliquez sur le bouton Suivant.
  6. Cliquez sur le bouton Suivant. Maintenant, cliquez sur le bouton Suivant pour démarrer l’installation.
  7. Si vous avez activé le pare-feu sur votre système, il est important d’ouvrir le port 8080. Pour accéder à l’interface web d’Alfresco, ouvrez votre navigateur et tapez l’adresse IP du serveur suivi du 8080 /share.

Paramétrage et fichiers importants

Le fichier de configuration alfresco-global.properties contient les principaux paramètres de configuration d'Alfresco. Ils contiennent les différentes configurations du serveur ainsi que des exemples de configuration. Voici les lignes à rajouter dans /opt/tomcat/bin/catalina.sh ou dans le fichier de lancement du serveur.

Lire aussi: Transformer un appartement en local commercial : les démarches

S'il y a une erreur Context initialization failed, c'est à cause des restes de la base de données Apache Derby (générée automatiquement au lancement si aucune base de données n'est configurée dans la ligne hibernate.dialectt du fichier fichier alfresco-global.properties).

Le File System Name par défaut est Alfresco, ce qui est souvent embêtant. Ceci se trouve par défaut à la racine de notre système GED, les utilisateurs qui se connectent via FTP, CIFS ou même NFS ont donc plusieurs clics à faire avant d’arriver à l’espace documentaire de leur site. Vous voulez vos propres mots et vos propres liens dans les messages générés par votre système, eh ben rien de plus normal!

Stockage des contenus et architecture interne

Alfresco range les fichiers binaires des contenus sur le système de fichiers. Tous les fichiers binaires sont conservés dans le référentiel, dans un répertoire racine nommé contentstore. Ce dossier contient des sous-dossiers de mois, de jours, ainsi de suite jusqu'à la minute.

ContentStoreService est implémenté par la classe abstraite AbstractContentStore qui est la classe de base fournissant le support pour divers type de stockage de contenu. AbstractContentStore est étendue par une implémentation du stockage de contenu dans le système de fichier: FileContentStore. FileContentStore fournit une implémentation du stockage des nodes directement dans le système de fichier (le repository).

FileContentStore utilise un contexte dans lequel toutes les informations pour le stockage, le traitement des mimetypes etc. sont conservées et rendues accessibles via des Url de la forme store://year/month/day/hour/minute/GUID.bin. Lorsqu'un contenu est stocké sur le système de fichier via (FileContentStore), l'url du document nouvellement stocké est créée et le document est accessible via cette url. Le GUID est le nom d'identification généré par le JCR. Les fichiers importés sont renommés avec un GUID généré automatiquement.

Lire aussi: Optimiser le confort thermique avec un thermostat connecté

Un store est un Workspace dans le référentiel (repository). Un store contient les informations sur les nodes du Workspace et des références vers les contenus binaires dans contentstore. Les Workspaces sont définis dans Alfresco à partir de deux choses: Un protocole et un identificateur. Il est possible de créer d'autres stores en utilisant des identifier différents.

Services fondamentaux d'Alfresco (pour développeur/freelance)

V. L'utilisation de ces services primitifs est assez complexe. Pour palier à ce problème une couche de services de haut niveau encapsule toutes ces complexités. Cette couche est appelée dans le jargon d'Alfresco: Repository Foundation Services. Ces services sont spécialisés c'est à dire que pour chaque domaine fonctionnel de l'ECM (gestion des noeuds, gestion des versions, gestion des catégories, etc.) un service de haut niveau est dédié.

  • V-1. Cette instruction permet de retourner la propriété du node référencé par person (NodeRef) et qualifié par le QName ContentModel.PROP_HOMEFOLDER.
  • V-2. ContentService fournit les fonctionnalités pour accéder aux contenus et les manipuler. Alfresco stocke les méta-données primaires (titre, auteur, date de création, mimetype, etc.) et les métadonnées applicatives en base de donnée. ContentService permet également d'obtenir un objet de type ContentWriter qui permet d'écrire un contenu binaire dans le repository (sur le File System).
  • V-3. Ce service permet de créer des fichiers et des dossiers, de les supprimer (ils peuvent être archivés). Ce service utilise le service ContentService pour réaliser l'écriture et la lecture du contenu dans le système de stockage. Ce service est implémenté par le composant FileFolderServiceImpl.
  • V-5. Il permet de manipuler le dictionnaire de données c'est-à-dire la banque de tous les types de données enregistrés et manipulés par la plateforme. DictionaryService permet d'obtenir les informations (la définition) d'une propriété d'une entité définie dans un modèle.
  • V-7. Le service VersionService fournit une API pour manipuler les versions des objets. Ce service fournit des API pour créer de nouvelles versions d'un node à partir de son NodeRef et pour obtenir l'historique des versions.
  • V-10. Ce service fournit les API de recherche à travers différents mécanismes d'indexage. Ses implémentations fournissent la recherche à partir de 3 langages: XPath, lucene, et jcr-XPath. SearchService est l'interface du service de recherche.
  • V-12. Ce Service vital fournit une API pour verrouiller et déverrouiller des nodes afin d'éviter toute modification concurrente.
  • V-15. Une Action Alfresco est une unité de tâche qui peut être exécutée sur un node. ActionService permet de créer, exécuter et supprimer des actions Alfresco.
  • V-18. Ce service vital fournit une API pour manipuler les règles de gestion dans le système. L'instruction (3) retrouve toutes les règles associées à un node référencé par un NodeRef y compris les règles héritées des nodes parents.
  • V-19. Le service d'authentification définit une API pour manager les informations d'authentification des utilisateurs. AuthenticationComponentImpl s'appuie sur ACEGI security.
  • V-22. Ce Service vital permet de manager les utilisateurs et les groupes d'utilisateurs. L'instruction (1) permet de retrouver un utilisateur à partir du username.
  • V-23. CategoryService permet de faire des recherches et de créer des catégories de documents.
  • V-25. Ce Service vital fournit une API pour check-in et check-out les contenus. L'argument versionProperties spécifie les propriétés de la nouvelle version.
  • V-30. Ce Service vital fournit une API pour interagir avec les workflows et les tâches Alfresco. WorkflowService permet de déployer des workflows; comme moteur de workflow préenrégistré nous avons jBPM.
  • V-32. Ce service fournit une API pour manipuler la traduction des contenus. Une traduction d'un document est représentée par le type de contenu cm:mlDocument (aspect) et contenue dans un conteneur ml:mlContainer.

Conseils pratiques et dépannages courants

  • Alfresco me prenait plus de 150% de CPU! - surveillez l'utilisation processeur et installez les librairies nécessaires.
  • Resolving www.swftools.org... Connecting to www.swftools.org|212.112.241.67|:80... HTTP request sent, awaiting response... checking build system type... checking host system type... - lors de l'installation de composants externes, soyez attentif aux dépendances réseau et aux accès HTTP nécessaires.
  • Pour que la prévisualisation fonctionne dans Share pour les documents Word, Powerpoint, Excel, etc ... - vous devrez vérifier l'installation des outils de prévisualisation et des librairies associées.
  • S'il y a une erreur Context initialization failed, c'est souvent à cause des restes de la base de données Apache Derby générée automatiquement - nettoyez les restes ou configurez correctement hibernate.dialect dans alfresco-global.properties.

Couplage avec d'autres solutions

Plusieurs fonctionnalités de travail collaboratif ont été ajoutées dans les dernières versions, et l’interface Alfresco Share nous permet déjà de faire pas mal de choses. Seulement ceci reste très loin des fonctionnalités que l’on attend d’un portail Intranet ou Extranet comme Liferay. Heureusement il est possible de coupler les deux applications afin d’avoir un système abouti de portail collaboratif.

Bonnes pratiques pour un freelance

  • Testez d’abord sur une VM ou un serveur de staging avant toute mise en production.
  • Externalisez la base de données sur un serveur dédié pour de meilleures performances.
  • Placez le contentstore sur un disque partagé NFS redondé si possible pour la disponibilité.
  • Prévoyez un répartiteur de charge si vous anticipez une montée en charge et configurez des Sticky Sessions.
  • Maintenez à jour les composants via la page officielle: allez sur la page de téléchargement d'Alfresco et choisissez "Custom Installs & Optional Modules" pour vérifier les mises à jour.

Checklist rapide d'installation

Étape Action
OS Ubuntu 22.04 (ou 20.04 / 18.04)
Dépendances Installer libsm6, libxrender1, libxinerama1, ajouter PPA nécessaire
Base de données Installer MySQL/PostgreSQL; configurer hibernate.dialect dans alfresco-global.properties
Serveur d'app Tomcat (fichier de lancement: /opt/tomcat/bin/catalina.sh)
Ports Ouvrir 8080 si firewall actif
Stockage Contentstore sur disque partagé NFS

Installer Alfresco sur Ubuntu est une démarche passionnante qui ouvre les portes à une gestion de contenu avancée et efficace. En suivant les étapes décrites dans ce guide, vous avez maintenant Alfresco opérationnel sur votre serveur Ubuntu.

Lire aussi: Installation étape par étape : logiciel de caisse et intégration TPE

balises: #Freelance

Articles populaires: