Synology Install Huntly with Portainer

Synology Install Huntly with Portainer

My previous guide for Huntly involved the use of Task Scheduler. Today I’m offering a recommended and excellent alternative for installing the latest Huntly version via Portainer. Huntly is a self-hosted information management tool, in simple terms, contains the following features: RSS subscription and reading, automatically saves the pages that have been viewed, then you can save them … Read more about Synology Install Huntly with Portainer

How to Install FlowiseAI on Your Synology NAS

How to Install FlowiseAI on Your Synology NAS

FlowiseAI is an Open Source Graphic User Interface to build your customized LLM flow on LangChain. LLM (Large Language Model): A large language model (LLM) is a deep learning algorithm that can perform a variety of natural language processing (NLP) tasks. These models (also referred to as neural networks) are typically built on transformer architectures … Read more about How to Install FlowiseAI on Your Synology NAS

How to Install Mayan EDMS on Your Synology NAS

How to Install Mayan EDMS on Your Synology NAS

How to Install Mayan EDMS on Your Synology NAS

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.

💡Note: This guide works perfectly with the latest Mayan EDMS v4.9.1 release.

  • STEP 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.

Mayan EDMS Synology NAS Set up 1

  • 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.

Mayan EDMS Synology NAS Set up 2

  • 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.

1 Synology Portainer Add Stack

  • STEP 6

In the Name field type in mayanedms. Follow the instructions in the image below.

Note: Copy Paste the code below in the Portainer Stacks Web editor.

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

Read more