Sign inSign up

ismael321/geo_tresor:latest

Manifest digest

sha256:ed46e790f1c27838a700d68f5e0d89e91f02f1a9ce36da7f19fb5d936cecf446

Last pushed

about 1 year by ismael321

Type

Compose

Manifest digest

sha256:ed46e790f1c27838a700d68f5e0d89e91f02f1a9ce36da7f19fb5d936cecf446

Compose file content

x-mayan-container: 
  &mayan-container
  env_file: .env
  environment:
    TZ: ${TZ:-Africa/Djibouti}
    MAYAN_ADMIN_USER: ${MAYAN_ADMIN_USER:-admin}
    MAYAN_ADMIN_PASSWORD: ${MAYAN_ADMIN_PASSWORD:-ladieh2025@}
    MAYAN_ALLOWED_HOSTS: ${MAYAN_ALLOWED_HOSTS:-.localhost,-.http://localhost,mayan.local,react.local}
    MAYAN_CELERY_BROKER_URL: amqp://${MAYAN_RABBITMQ_USER:-mayan}:${MAYAN_RABBITMQ_PASSWORD:-mayanrabbitpass}@${MAYAN_DOCKER_RABBITMQ_HOSTNAME:-rabbitmq}:${MAYAN_DOCKER_RABBITMQ_PORT:-5672}/${MAYAN_RABBITMQ_VHOST:-mayan}
    MAYAN_CELERY_RESULT_BACKEND: redis://:${MAYAN_REDIS_PASSWORD:-mayanredispassword}@${MAYAN_DOCKER_REDIS_HOSTNAME:-redis}:${MAYAN_DOCKER_REDIS_PORT:-6379}/${MAYAN_REDIS_RESULT_DATABASE:-1}
    MAYAN_DATABASES: "{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'${MAYAN_DATABASE_NAME:-mayan}','PASSWORD':'${MAYAN_DATABASE_PASSWORD:-mayandbpass}','USER':'${MAYAN_DATABASE_USER:-mayan}','HOST':'${MAYAN_DATABASE_HOST:-postgresql}','PORT':${MAYAN_DATABASE_PORT:-},'CONN_MAX_AGE':${MAYAN_DATABASE_CONN_MAX_AGE:-0},${MAYAN_DATABASE_EXTRA_OPTIONS:-}}}"
    MAYAN_LOCK_MANAGER_BACKEND: mayan.apps.lock_manager.backends.redis_lock.RedisLock
    MAYAN_LOCK_MANAGER_BACKEND_ARGUMENTS: "{'redis_url':'redis://:${MAYAN_REDIS_PASSWORD:-mayanredispassword}@${MAYAN_DOCKER_REDIS_HOSTNAME:-redis}:${MAYAN_DOCKER_REDIS_PORT:-6379}/${MAYAN_REDIS_LOCK_MANAGER_DATABASE:-2}'}"
  image: ${MAYAN_DOCKER_IMAGE_NAME:-ismael321/geo_tresor}:${MAYAN_DOCKER_IMAGE_TAG:-v1.0.0}
  logging:
    driver: "json-file"
    options:
      max-size: "100m"
      max-file: "3"
      mode: "non-blocking"
  networks:
    - mayan
  restart: unless-stopped
  volumes:
    - /home/ismael/workspace/dsi-budget/mayan-edms-container/from-SAFEROAD/docker/mayan-volumes-Mounts/mayan-app-1:/var/lib/mayan
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro

x-mayan-dependencies:
  &mayan-dependencies
  depends_on:
    setup_or_upgrade:
      condition: service_completed_successfully

x-mayan-frontend-ports:
  &mayan-frontend-ports
  ports:
    - target: 8000
      published: ${MAYAN_FRONTEND_HTTP_PORT:-80}
      protocol: tcp

x-mayan-traefik-labels:
  &mayan-traefik-labels
  labels:
    - "traefik.enable=${MAYAN_TRAEFIK_FRONTEND_ENABLE:-false}"
    - "traefik.http.middlewares.mayan_frontend_http_redirect.redirectscheme.scheme=https"
    - "traefik.http.middlewares.mayan_frontend_http_redirect.redirectscheme.permanent=false"
    - "traefik.http.routers.mayan_frontend_http.entrypoints=http"
    - "traefik.http.routers.mayan_frontend_http.middlewares=mayan_frontend_http_redirect"
    - "traefik.http.routers.mayan_frontend_http.rule=Host(`${MAYAN_TRAEFIK_EXTERNAL_DOMAIN}`)"
    - "traefik.http.routers.mayan_frontend_https.entrypoints=https"
    - "traefik.http.routers.mayan_frontend_https.rule=Host(`${MAYAN_TRAEFIK_EXTERNAL_DOMAIN}`)"
    - "traefik.http.routers.mayan_frontend_https.service=mayan_frontend_http"
    - "traefik.http.routers.mayan_frontend_https.tls=true"
    - "traefik.http.routers.mayan_frontend_https.tls.certresolver=letsencrypt"
    - "traefik.http.services.mayan_frontend_http.loadbalancer.server.port=8000"

networks:
  mayan:
    driver: bridge
    internal: false
  traefik: {}

services:
  app:
    <<: [*mayan-container, *mayan-traefik-labels, *mayan-frontend-ports]
    profiles:
      - all_in_one

  elasticsearch:
    environment:
      - bootstrap.memory_lock=true
      - discovery.type=single-node
      - http.max_content_length=400mb
      - xpack.security.enabled=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - ELASTIC_PASSWORD=${MAYAN_ELASTICSEARCH_PASSWORD:-mayanespassword}
    image: ${MAYAN_DOCKER_ELASTICSEARCH_IMAGE:-elasticsearch}:${MAYAN_DOCKER_ELASTICSEARCH_TAG:-7.17.26}
    networks:
      - mayan
    profiles:
      - elasticsearch
    restart: unless-stopped
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ${MAYAN_ELASTICSEARCH_VOLUME:-elasticsearch}:/usr/share/elasticsearch/data

  postgresql:
    command:
      - "postgres"
      - "-c"
      - "default_statistics_target=200"
      - "-c"
      - "maintenance_work_mem=128MB"
      - "-c"
      - "max_connections=${MAYAN_DOCKER_POSTGRESQL_MAX_CONNECTIONS:-150}"
      - "-c"
      - "shared_buffers=512MB"
      - "-c"
      - "work_mem=32MB"
    environment:
      POSTGRES_DB: ${MAYAN_DATABASE_NAME:-mayan}
      POSTGRES_PASSWORD: ${MAYAN_DATABASE_PASSWORD:-mayandbpass}
      POSTGRES_USER: ${MAYAN_DATABASE_USER:-mayan}
    healthcheck:
      test: ["CMD", "pg_isready", "--username", "${MAYAN_DATABASE_USER:-mayan}"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
    image: ${MAYAN_DOCKER_POSTGRESQL_IMAGE:-postgres}:${MAYAN_DOCKER_POSTGRESQL_TAG:-14.15-alpine3.21}
    networks:
      - mayan
    profiles:
      - postgresql
    restart: unless-stopped
    shm_size: 128m
    volumes:
      - mayan-postgresql-1:/var/lib/postgresql/data

  rabbitmq:
    environment:
      RABBITMQ_DEFAULT_USER: ${MAYAN_RABBITMQ_USER:-mayan}
      RABBITMQ_DEFAULT_PASS: ${MAYAN_RABBITMQ_PASSWORD:-mayanrabbitpass}
      RABBITMQ_DEFAULT_VHOST: ${MAYAN_RABBITMQ_VHOST:-mayan}
      RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: ${MAYAN_RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS:--rabbit consumer_timeout ${MAYAN_RABBITMQ_CONSUMER_TIMEOUT:-1800000}}
    hostname: ${MAYAN_DOCKER_RABBITMQ_HOSTNAME:-rabbitmq}
    image: ${MAYAN_DOCKER_RABBITMQ_IMAGE:-rabbitmq}:${MAYAN_DOCKER_RABBITMQ_TAG:-4.0.5-management-alpine}
    networks:
      - mayan
    profiles:
      - rabbitmq
    restart: unless-stopped
    volumes:
      - mayan-rabbitmq-1:/var/lib/rabbitmq

  redis:
    command:
      - redis-server
      - --appendonly
      - "no"
      - --databases
      - "3"
      - --maxmemory
      - "100mb"
      - --maxclients
      - "500"
      - --maxmemory-policy
      - "allkeys-lru"
      - --save
      - ""
      - --tcp-backlog
      - "256"
      - --requirepass
      - "${MAYAN_REDIS_PASSWORD:-mayanredispassword}"
    image: ${MAYAN_DOCKER_REDIS_IMAGE:-redis}:${MAYAN_DOCKER_REDIS_TAG:-7.4.1-alpine3.20}
    networks:
      - mayan
    profiles:
      - redis
    restart: unless-stopped
    volumes:
      - mayan-redis-1:/data

  frontend:
    <<: [*mayan-container, *mayan-traefik-labels, *mayan-frontend-ports, *mayan-dependencies]
    command:
      - run_frontend
    profiles:
      - extra_frontend
      - multi_container

  setup_or_upgrade:
    <<: *mayan-container
    command:
      - run_initial_setup_or_perform_upgrade
    profiles:
      - extra_setup_or_upgrade
      - multi_container
    restart: "no"

  traefik:
    container_name: "traefik"
    command:
      - "--api.dashboard=true"
      - "--api.insecure=${MAYAN_TRAEFIK_API_INSECURE:-false}"
      - "--certificatesresolvers.letsencrypt.acme.caserver=${MAYAN_TRAEFIK_LETS_ENCRYPT_SERVER:-https://acme-staging-v02.api.letsencrypt.org/directory}"
      - "--certificatesresolvers.letsencrypt.acme.dnschallenge=${MAYAN_TRAEFIK_LETS_ENCRYPT_DNS_CHALLENGE:-false}"
      - "--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=${MAYAN_TRAEFIK_LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER}"
      - "--certificatesresolvers.letsencrypt.acme.email=${MAYAN_TRAEFIK_LETS_ENCRYPT_EMAIL}"
      - "--certificatesresolvers.letsencrypt.acme.storage=/traefik-certificates-letsencrypt/acme.json"
      - "--certificatesresolvers.letsencrypt.acme.tlschallenge=${MAYAN_TRAEFIK_LETS_ENCRYPT_TLS_CHALLENGE:-false}"
      - "--entrypoints.http.address=:80"
      - "--entrypoints.https.address=:443"
      - "--entrypoints.keycloak_http.address=:${MAYAN_TRAEFIK_KEYCLOAK_HTTP_PORT:-8081}"
      - "--entrypoints.rabbitmq_admin_http.address=:15672"
      - "--entrypoints.traefik_dashboard_http.address=:8080"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
    image: ${MAYAN_DOCKER_TRAEFIK_IMAGE:-traefik}:${MAYAN_DOCKER_TRAEFIK_TAG:-v2.11.16}
    networks:
      - mayan
      - traefik
    ports:
      - target: 15672
        published: ${MAYAN_RABBITMQ_ADMIN_HTTP_PORT:-15672}
        protocol: tcp
      - target: 8080
        published: ${MAYAN_TRAEFIK_DASHBOARD_HTTP_PORT:-8080}
        protocol: tcp
      - target: 8081
        published: ${MAYAN_TRAEFIK_KEYCLOAK_HTTP_PORT:-8081}
        protocol: tcp
      - target: 80
        published: ${MAYAN_TRAEFIK_HTTP_PORT:-80}
        protocol: tcp
      - target: 443
        published: ${MAYAN_TRAEFIK_HTTPS_PORT:-443}
        protocol: tcp
    profiles:
      - traefik
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ${MAYAN_TRAEFIK_LETSENCRYPT_VOLUME:-traefik-certificates-letsencrypt}:/traefik-certificates-letsencrypt

volumes:
  app:
  elasticsearch:
  postgres:
  postgres-backups:
  postgres-initdb:
  mountindex:
  rabbitmq:
  redis:
  traefik-certificates-letsencrypt:
  mayan-app-1:
  mayan-postgresql-1:
  mayan-rabbitmq-1:
  mayan-redis-1:

Docker commands

docker compose -f oci://ismael321/geo_tresor:latest up

Use the above command to pull and run the Compose file. Learn more⁠.

Images used

No images found
No images were found in the Compose file.