# Gestion électronique de documents : Mayan EDMS

Bulletins de salaires, dossier scolaire du gamin, factures, modes d’emploi… Oui, tout ça peut se gérer en mettant ça dans un [Nextcloud](/books/logiciels/page/espace-de-stockage-nextcloud) dans des dossiers et sous-dossiers, mais cela ne permet pas de lier des documents entre eux (genre la facture d’un appareil avec son mode d’emploi) ni de multi-classer un fichier (genre dans un dossier `Assurance` et en même temps dans un dossier `Appartement`).

C’est pour cela que j’ai installé [Mayan EDMS](https://mayan-edms.com/) sur mon serveur.

Attention : l’installation en elle-même ne pose pas particulièrement de problèmes mais il n’est pas simple à prendre en main. J’ai acheté le [bouquin](https://www.mayan-edms.com/book/) et ça m’a permis de mieux appréhender les différents aspects de Mayan. Ce n’était pas du luxe.

Dans les points intéressants du logiciel :
- possibilité de créer des index soit-même sur les critères qu’on veut
- possibilité de mettre des documents dans plusieurs « classeurs »
- possibilité de créer des méta-données sur les documents
- possibilité d’avoir plusieurs versions d’un même document
- recherche de doublons
- possibilité de créer des actions automatiques (genre classement automatique dans un classeur, renommage du document selon ses méta-données, etc)

## Ma doc de mise à jour

Adapté de la [doc officielle](https://web.archive.org/web/20230617010033/https://docs.mayan-edms.com/parts/upgrades.html) (lien archive.org car la doc d’upgrade n’est plus sur sur le [site de la doc officielle](https://docs.mayan-edms.com/parts/upgrades.html)).

```bash
export VERSION=4.11.1
```

Récupérer les versions des dépendances (copier / coller le résultat de la commande dans le terminal) :
```bash
curl -s https://gitlab.com/mayan-edms/mayan-edms/-/raw/series/4.11/config.env | 
  grep "^PYTHON" |
  sed -e "s/^/export /"
```

```bash
supervisorctl stop mayan-edms-celery-beat \
                      mayan-edms-gunicorn \
                      mayan-edms-worker_a \
                      mayan-edms-worker_b \
                      mayan-edms-worker_c \
                      mayan-edms-worker_d \
                      mayan-edms-worker_e &&
cp /etc/supervisor/conf.d/mayan-edms.conf /etc/supervisor/conf.d/mayan-edms.conf.bak &&
sudo --user=mayan /opt/mayan-edms/bin/pip install --no-cache-dir \
    pip==${PYTHON_PIP_VERSION} \
    setuptools==${PYTHON_SETUPTOOLS_VERSION} \
    wheel==${PYTHON_WHEEL_VERSION} &&
sudo --user=mayan /opt/mayan-edms/bin/pip install --no-cache-dir \
    amqp==${PYTHON_AMQP_VERSION} \
    mysqlclient==${PYTHON_MYSQL_VERSION} \
    psycopg==${PYTHON_PSYCOPG_VERSION} \
    redis==${PYTHON_REDIS_VERSION} &&
sudo --user=mayan /opt/mayan-edms/bin/pip install mayan-edms==${VERSION} &&
sudo --user=mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \
  /opt/mayan-edms/bin/mayan-edms.py platforms_template supervisord \
  | sudo tee /etc/supervisor/conf.d/mayan-edms.conf  &&
vimdiff -c 'map <F2> :diffget<cr>]czz | map <F3> ]czz | syn off | windo set wrap | winc h' \
         /etc/supervisor/conf.d/mayan-edms.conf \
         /etc/supervisor/conf.d/mayan-edms.conf.bak
```

```bash
sudo --user=mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \
  /opt/mayan-edms/bin/mayan-edms.py common_perform_upgrade &&
    supervisorctl start mayan-edms-celery-beat \
                           mayan-edms-gunicorn \
                           mayan-edms-worker_a \
                           mayan-edms-worker_b \
                           mayan-edms-worker_c \
                           mayan-edms-worker_d \
                           mayan-edms-worker_e
```