> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mastermindcms.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Запуск через Docker

> Запуск MastermindCMS через Docker / Docker Compose

Эта страница описывает самый быстрый способ локального запуска через Docker Compose.

## Требования

* Docker
* Docker Compose (v2)

## Запуск

1. Укажите версию MastermindCMS в `.env`:

```dotenv theme={null}
TAG="2.16.8"
```

2. Поднимите контейнеры:

```shell theme={null}
docker compose --env-file .env up -d
```

3. Откройте в браузере:

`http://localhost:5000`

## Пример `docker-compose.yml`

```yaml theme={null}
version: "${TAG}"
services:
  mongodb-msm2-demo:
    image: mongo:4.4
    command: mongod --port ${DB_PORT}
    container_name: mongodb-msm2-demo
    restart: always
    healthcheck:
      test: echo 'db.adminCommand('ping').ok' | mongo admin -u ${MONGO_INITDB_ROOT_USERNAME} -p ${MONGO_INITDB_ROOT_PASSWORD} --quiet | grep 1
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - ${WORKING_DIR}/data:/data/db
    ports:
      - ${DB_PORT}:${DB_PORT}
    environment:
      - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
      - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
      - MONGO_INITDB_DATABASE=admin
  mastermindcms-demo:
    image: mastermindcms/enterprise:${TAG}
    container_name: mastermindcms-demo
    restart: always

    volumes:
      - ${WORKING_DIR}/www:/MSM2/www
      - ${WORKING_DIR}/files:/MSM2/files
      - ${WORKING_DIR}/config:/MSM2/config
    user: "1000:1000"
    ports:
      - 5000:5000
    environment:
      - SPRING_DATA_MONGODB_URI=mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb-msm2-demo:${DB_PORT}/admin?authSource=admin
    depends_on:
      mongodb-msm2-demo:
        condition: service_healthy
```

## Переменные окружения (`.env`)

| Переменная                   | Что управляет                                                | Примечания                                                                                                            |
| ---------------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| `TAG`                        | Тег образа MastermindCMS (`mastermindcms/enterprise:${TAG}`) | Например `2.16.8`.                                                                                                    |
| `DB_PORT`                    | Порт MongoDB                                                 | Можно изменить, если порт занят.                                                                                      |
| `MONGO_INITDB_ROOT_USERNAME` | Root-пользователь MongoDB                                    | Инициализация MongoDB при первом запуске.                                                                             |
| `MONGO_INITDB_ROOT_PASSWORD` | Root-пароль MongoDB                                          | Инициализация MongoDB при первом запуске. Для не-demo окружений обязательно меняйте.                                  |
| `WORKING_DIR`                | Папка на хосте для volume-ов                                 | Монтируются `${WORKING_DIR}/www`, `${WORKING_DIR}/files`, `${WORKING_DIR}/config`, `${WORKING_DIR}/data`. Обычно `.`. |
| `REPO_USER`                  | Логин к репозиторию артефактов                               | Нужен только если установка тянет артефакты из защищённого репозитория (для базового docker-demo не обязателен).      |
| `REPO_PASS`                  | Пароль к репозиторию артефактов                              | Секрет.                                                                                                               |
| `LOCALE_ALL`                 | Locale (LC\_ALL)                                             | Опционально.                                                                                                          |
| `LOCALE_LANG`                | Locale (LANG)                                                | Опционально.                                                                                                          |
| `LOCALE_LANGUAGE`            | Locale (LANGUAGE)                                            | Опционально.                                                                                                          |
