Mayan is a web-based free/libre document management system for managing documents within an organization. All functionality is available in its free public version. It has an active community of volunteers and third-party service and support providers. I think Mayan EDMS is the most advanced open source document management system. In this step by step guide I will show you how to installĀ Mayan EDMSĀ on yourĀ Synology NASĀ using Docker and Portainer.
Mayan EDMS v4.8.3 release.
This guide works perfectly with the latestSTEP 1
Please Support My work by Making a Donation.
STEP 2
InstallĀ Portainer using my step by step guide. If you already have Portainer installed on your Synology NAS, skip this STEP. Attention: Make sure you have installed the latest Portainer version.
STEP 3
Go toĀ File StationĀ and open the docker folder. Inside the docker folder, create one new folder and name itĀ mayanedms. Follow the instructions in the image below.
Note: Be careful to enter only lowercase, not uppercase letters.
STEP 4
Now create six new folders inside the mayanedmsĀ folder that you created at STEP 3 and name them app, db, rabbitmq, redis, staging, watch. Follow the instructions in the image below.
Note: Be careful to enter only lowercase, not uppercase letters.
STEP 5
Log into Portainer using your username and password. On the left sidebar in Portainer, click on StacksĀ thenĀ + Add stack. Follow the instructions in the image below.
STEP 6
In the Name field type in mayanedms. Follow the instructions in the image below.
services: mayan-redis: image: redis command: - redis-server - --appendonly - "no" - --databases - "3" - --maxmemory - "100mb" - --maxclients - "500" - --maxmemory-policy - "allkeys-lru" - --save - "" - --tcp-backlog - "256" - --requirepass - "mayanredispassword" container_name: Mayan-REDIS hostname: mayan-redis security_opt: - no-new-privileges:true healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] user: 1026:100 environment: - TZ=Europe/Bucharest volumes: - /volume1/docker/mayanedms/redis:/data:rw restart: on-failure:5 mayan-db: image: postgres:17 command: - "postgres" - "-c" - "checkpoint_completion_target=0.6" - "-c" - "default_statistics_target=200" - "-c" - "maintenance_work_mem=128MB" - "-c" - "max_connections=150" - "-c" - "shared_buffers=256MB" - "-c" - "work_mem=8MB" container_name: Mayan-DB hostname: mayan-db security_opt: - no-new-privileges:true healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "mayan", "-U", "mayanuser"] interval: 10s timeout: 5s retries: 5 volumes: - /volume1/docker/mayanedms/db:/var/lib/postgresql/data:rw environment: - TZ=Europe/Bucharest - POSTGRES_DB=mayan - POSTGRES_USER=mayanuser - POSTGRES_PASSWORD=mayandbpass restart: on-failure:5 maya-rabbitmq: image: rabbitmq:3.9-management-alpine container_name: Mayan-RABBITMQ hostname: mayan-rabbitmq security_opt: - no-new-privileges:true healthcheck: test: rabbitmq-diagnostics -q ping interval: 30s timeout: 30s retries: 3 user: 1026:100 volumes: - /volume1/docker/mayanedms/rabbitmq:/var/lib/rabbitmq:rw environment: RABBITMQ_DEFAULT_USER: mayanuser RABBITMQ_DEFAULT_PASS: mayanrabbitpass RABBITMQ_DEFAULT_VHOST: mayan restart: on-failure:5 mayan: image: mayanedms/mayanedms:s4.8 container_name: Mayan hostname: mayan security_opt: - no-new-privileges:true ports: - 8340:8000 volumes: - /volume1/docker/mayanedms/app:/var/lib/mayan:rw - /volume1/docker/mayanedms/staging:/staging_folder:rw - /volume1/docker/mayanedms/watch:/watch_folder:rw environment: MAYAN_CELERY_BROKER_URL: amqp://mayanuser:mayanrabbitpass@mayan-rabbitmq:5672/mayan MAYAN_CSRF_TRUSTED_ORIGINS: "['https://mayanedms.yourname.synology.me']" MAYAN_CELERY_RESULT_BACKEND: redis://:mayanredispassword@mayan-redis:6379/1 MAYAN_DATABASES: "{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayandbpass','USER':'mayanuser','HOST':'mayan-db'}}" MAYAN_LOCK_MANAGER_BACKEND: mayan.apps.lock_manager.backends.redis_lock.RedisLock MAYAN_LOCK_MANAGER_BACKEND_ARGUMENTS: "{'redis_url':'redis://:mayanredispassword@mayan-redis:6379/2'}" restart: on-failure:5 depends_on: mayan-redis: condition: service_healthy mayan-db: condition: service_started maya-rabbitmq: condition: service_started