sha256:ed46e790f1c27838a700d68f5e0d89e91f02f1a9ce36da7f19fb5d936cecf446
Last pushed
about 1 year by ismael321
Type
Compose
Manifest digest
sha256:ed46e790f1c27838a700d68f5e0d89e91f02f1a9ce36da7f19fb5d936cecf446
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 compose -f oci://ismael321/geo_tresor:latest upUse the above command to pull and run the Compose file. Learn more.