This playbook deploys a Docker-based Mayan EDMS stack for Debian 10+, Ubuntu LTS, and RHEL 9+ compatible systems.
[mayan_edms]
10.10.10.25
- name: Deploy Mayan EDMS with Docker Compose
hosts: mayan_edms
become: true
vars:
mayan_root: /opt/mayan-edms
mayan_http_port: 8000
tasks:
- name: Install Docker packages on Debian and Ubuntu
ansible.builtin.apt:
name:
- docker.io
- docker-compose-plugin
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Install Docker packages on RHEL family
ansible.builtin.dnf:
name:
- docker
- docker-compose-plugin
state: present
when: ansible_os_family == "RedHat"
- name: Enable and start Docker daemon
ansible.builtin.service:
name: docker
state: started
enabled: true
- name: Create project directory
ansible.builtin.file:
path: "{{ mayan_root }}"
state: directory
owner: root
group: root
mode: "0755"
- name: Write docker-compose.yml
ansible.builtin.copy:
dest: "{{ mayan_root }}/docker-compose.yml"
mode: "0644"
content: |
services:
mayan:
image: mayanedms/mayanedms:s4
restart: unless-stopped
ports:
- "{{ mayan_http_port }}:8000"
environment:
MAYAN_DATABASE_ENGINE: django.db.backends.postgresql
MAYAN_DATABASE_HOST: postgres
MAYAN_DATABASE_NAME: mayan
MAYAN_DATABASE_USER: mayan
MAYAN_DATABASE_PASSWORD: change-me
MAYAN_CELERY_BROKER_URL: redis://redis:6379/0
depends_on:
- postgres
- redis
volumes:
- ./mayan/media:/var/lib/mayan
postgres:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_DB: mayan
POSTGRES_USER: mayan
POSTGRES_PASSWORD: change-me
volumes:
- ./postgres/data:/var/lib/postgresql/data
redis:
image: redis:7
restart: unless-stopped
- name: Start Mayan EDMS stack
ansible.builtin.command: docker compose up -d
args:
chdir: "{{ mayan_root }}"
- name: Show endpoint
ansible.builtin.debug:
msg: "Mayan EDMS is available on http://{{ ansible_default_ipv4.address }}:{{ mayan_http_port }}"
Any questions?
Feel free to contact us. Find all contact information on our contact page.