webiland/bitrix-install

bitrix-install: Docker starter for 1C-Bitrix (nginx, PHP 8.2, MySQL 8, Redis, MailHog, cron)

Maintainers

Package info

gitlab.com/webiland/bitrix-install

Issues

Type:project

pkg:composer/webiland/bitrix-install

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.4 2026-04-03 02:16 UTC

This package is not auto-updated.

Last update: 2026-04-02 23:47:26 UTC


README

Проект bitrix-installстартовый каркас для разработки и тестирования сайтов на 1С-Битрикс: Управление сайтом в контейнерах. Корень сайта (document root) — каталог public/: сюда кладут bitrixsetup.php / bitrix_server_test.php, сюда же установщик распакует bitrix/, upload/ и остальные файлы CMS. В корне репозитория остаются только Docker, .env, Composer и служебные файлы — они в веб не торчат. Каталоги public/bitrix/ и public/upload/ в Git не входят (см. .gitignore). Официальные скрипты установки и проверки нужно скачать с сайта 1С-Битрикс (см. ниже).

Для чего сделан

  • Единообразно поднять окружение nginx + PHP 8.2 (FPM) + MySQL 8 + Redis без ручной установки стека на хост.
  • После скачивания официальных скриптов — проверить окружение и установить продукт через bitrix_server_test.php и bitrixsetup.php.
  • Отлаживать почту через MailHog (письма не уходят наружу).
  • Запускать агенты Битрикс по cron в отдельном контейнере.

Требования

  • Docker и Docker Compose (v2, команда docker compose).
  • На Linux / WSL2: для части проверок ФС у каталога проекта должны быть подходящие права для пользователя www-data (uid 33), см. раздел Права на файлы.
  • Для установки шаблона через Composer на машине нужен Composer и PHP 8.2+ (скрипт после create-project выполняется локально).

Установка через Composer

Вместо git clone можно развернуть тот же каркас командой composer create-project (пакет на Packagistwebiland/bitrix-install):

composer create-project webiland/bitrix-install имя-проекта
cd имя-проекта

После установки Composer выполнит post-create-project-cmd: scripts/init-env.php создаст .env из .env.example, если .env ещё нет. Вручную то же самое: composer run init-env. Проверьте в .env значения PUID/PGID (id -u / id -g на хосте). Дальше — как в быстром старте: docker compose up -d --build и браузер.

Проверка с локального клона без Packagist (без git-тегов версия пакета будет dev-*, поэтому укажите стабильность):

composer create-project webiland/bitrix-install /tmp/bitrix-test \
  --stability=dev \
  --repository='{"type":"path","url":"/абсолютный/путь/к/этому/репозиторию"}'

Быстрый старт

  1. Клонировать репозиторий и перейти в каталог проекта (или использовать установку через Composer):

    git clone git@gitlab.com:webiland/bitrix-install.git bitrix-install
    cd bitrix-install
    
  2. Создать файл окружения из примера, подставить свои UID/GID с хоста и при необходимости изменить порты и пароли:

    cp .env.example .env
    # в .env выставьте PUID и PGID (см. ниже) — иначе public/ может стать недоступен для записи из IDE
    
  3. Собрать образы и запустить контейнеры:

    docker compose up -d --build
    
  4. Скачать официальные скрипты и положить их в public/ (document root): bitrix_server_test.php и bitrixsetup.php (установщик BitrixSetup). Дистрибутив и папки bitrix/, upload/ появятся в public/. Подробнее — в разделе Скрипты проверки и установки.

  5. Открыть в браузере (порт по умолчанию из .env.example8088):

    • проверка сервера: http://localhost:8088/bitrix_server_test.php
    • установка дистрибутива: http://localhost:8088/bitrixsetup.php
  6. В мастере установки Битрикс в поле хост (сервер) БД укажите mysql — это имя сервиса MySQL в сети Docker (не localhost). Логин и пароль зависят от сценария:

    • Подключаетесь к уже созданной базе: хост mysql; логин и пароль — MYSQL_USER / MYSQL_PASSWORD, база — MYSQL_DATABASEdocker-compose база создаётся при старте; в .env.example по умолчанию пользователь bitrix / bitrix, база bitrix).
    • Создаёте новую базу через мастер: хост mysql; логин root, пароль MYSQL_ROOT_PASSWORD из .env (в примере — root).

    Установщик сам создаст public/bitrix/php_interface/dbconn.php. После установки при необходимости проверьте параметры БД в админке.

MailHog

Веб-интерфейс перехваченной почты: http://localhost:8025 (порт задаётся переменной MAILHOG_PORT в .env). Отправка из PHP идёт через msmtp в контейнере php на сервис mailhog:1025.

Cron (агенты Битрикс)

Контейнер cron раз в минуту запускает public/bitrix/php_interface/cron_events.php, если файл появился после установки CMS.

Сервисы и порты

СервисОписание
nginxHTTP, раздача проекта
phpPHP 8.2 FPM
mysqlMySQL 8.0, данные в томе mysql_data
redisRedis 7, кэш/сессии при настройке в Битрикс
mailhogТестовая SMTP
cronПланировщик агентов

Порт сайта: HTTP_PORT в .env (в примере — 8088). Если .env нет, используется значение по умолчанию из docker-compose.yml (8080).

Скрипты проверки и установки с сайта 1С-Битрикс

Файлы bitrix_server_test.php (проверка окружения) и bitrixsetup.php / установщик BitrixSetup не входят в репозиторий bitrix-install и не попадают в пакет Composer. Скачайте их у правообладателя по прямым ссылкам или через документацию.

НазначениеФайлПрямая загрузка (1С-Битрикс)
Проверка сервера и хостингаbitrix_server_test.phpwww.1c-bitrix.ru/.../bitrix_server_test.php
Установка дистрибутива (BitrixSetup)bitrixsetup.phpwww.1c-bitrix.ru/.../bitrixsetup.php

Зеркало для bitrix_server_test.php на поддомене разработчиков: dev.1c-bitrix.ru/.../bitrix_server_test.php.

Скачать в public/ из терминала:

curl -fLo public/bitrix_server_test.php https://www.1c-bitrix.ru/download/scripts/bitrix_server_test.php
curl -fLo public/bitrixsetup.php https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php

Дополнительно в документации: урок про скрипт проверки, урок про BitrixSetup, общий курс «Установка и настройка», раздел загрузок.

Положите оба файла в public/ (в контейнере это /var/www/html/public), затем откройте в браузере — URL не меняются: http://localhost:ПОРТ/bitrixsetup.php и т.д.

Подключение к БД

Переменные *`MYSQL_** задаются в **.env** и пробрасываются в контейнер php (см. docker-compose.yml). Файла **public/bitrix/php_interface/dbconn.php` в репозитории нет** — его создаёт мастер установки Битрикс.

Хост БД в форме установки и в dbconn.php всегда mysql (для PHP внутри Docker это имя контейнера/сервиса; localhost не подойдёт).

СитуацияХостЛогинПарольБаза
Работа с базой, которую уже создал Docker (рекомендуется)mysqlMYSQL_USER (по умолчанию bitrix)MYSQL_PASSWORD (по умолчанию bitrix)MYSQL_DATABASE (по умолчанию bitrix)
Создание новой базы в мастере установкиmysqlrootMYSQL_ROOT_PASSWORD (по умолчанию root)имя новой БД по вашему выбору

Значения по умолчанию см. в .env.example; если меняли .env, ориентируйтесь на него.

Права на файлы (Linux / WSL)

В .env задайте PUID и PGID — это uid и gid вашего пользователя на хосте (не в контейнере):

id -u   # → PUID
id -g   # → PGID

В .env.example стоят заглушки 1000/1000; если у вас другие числа — поправьте .env, иначе после docker compose up каталог public/ может оказаться «чужим» (владелец uid 33 или несовпадающий с вами), и редактор не сможет сохранять файлы.

При старте php и cron скрипт docker/php/docker-entrypoint-bitrix.sh:

  1. Меняет в контейнере пользователя www-data на PUID/PGID (usermod/groupmod), чтобы PHP писал в bind-mount под тем же числовым владельцем, что и вы на хосте.
  2. Создаёт public/ при необходимости, делает chown www-data:www-data (уже с вашим uid) и 775/664 на каталоги и файлы.

После смены PUID/PGID перезапустите контейнеры: docker compose up -d.

Самотест bitrix_server_test.php иногда требует права на весь репозиторий — тогда из корня проекта:

sudo chown -R "$(id -u):$(id -g)" .
# или временно
chmod -R a+rwx .

На Docker Desktop (macOS / Windows) владение на томах ведёт себя иначе, чем в Linux/WSL; при проблемах удобнее разрабатывать в Linux / WSL2.

Остановка и данные

docker compose down

Тома mysql_data и redis_data сохраняются — база и данные Redis не пропадут при следующем up. Полное удаление томов:

docker compose down -v

Репозиторий Git: как развернуть «с нуля»

Подходит для команды: один раз настроили репозиторий — дальше клонируют и поднимают стек одними и теми же шагами.

Инициализация у владельца проекта

cd /path/to/shablon
git init
git add .
git commit -m "Initial commit: Docker-окружение для Битрикс"
git branch -M main
git remote add origin git@gitlab.com:webiland/bitrix-install.git
git push -u origin main

Файл .env в репозиторий не попадает (см. .gitignore). В облачном Git обязательно хранить только .env.example без секретов; реальные пароли — в CI/CD переменных или в .env только на сервере/у разработчика.

У нового разработчика или на сервере

git clone git@gitlab.com:webiland/bitrix-install.git bitrix-install
cd bitrix-install
cp .env.example .env
# отредактировать .env при необходимости
docker compose up -d --build

Дальше — скачать официальные bitrix_server_test.php и bitrixsetup.php, установить CMS через bitrixsetup.php или восстановить из бэкапа по документации Битрикс.

Что обычно не коммитят после установки CMS

После полной установки в public/ появятся bitrix/, upload/ и файлы сайта. В .gitignore исключены /public/bitrix/ и /public/upload/, чтобы ядро и загрузки не попадали в Git.

Структура репозитория (кратко)

ПутьНазначение
composer.jsonМетаданные пакета для composer create-project, скрипт инициализации .env
scripts/init-env.phpКопия .env.example.env (create-project и composer run init-env)
docker-compose.ymlСервисы и сеть
docker/nginx/Конфиг nginx
docker/php/Dockerfile PHP-FPM, php.ini, cron, msmtp
docker/mysql/Настройки MySQL под Битрикс
.env.exampleШаблон .env: порты, MySQL, PUID/PGID (права на public/), установка Битрикс
public/Document root: сюда установщик и CMS; в репозитории закреплён public/.gitkeep

Каталоги public/bitrix/ и public/upload/ после установки не версионируются (см. .gitignore). Скрипты bitrix_server_test.php и bitrixsetup.php в репозитории отсутствуют — прямые ссылки: bitrix_server_test.php, bitrixsetup.php (см. раздел выше).

Лицензия и торговые марки

1С-Битрикс — продукт компании «1С-Битрикс». Данный репозиторий содержит только окружение запуска; лицензирование и использование ПО Битрикс регулируются условиями правообладателя. Официальные скрипты установки и проверки распространяются отдельно по правилам правообладателя.