Домены

ВАЖНО:

Использование переменной DOMAIN: $DOMAIN включает только настройку конфигов маршрутизации на машине. Для автоматического управления dns записями необходимо использовать DNS провайдер.

По умолчанию genesis подразумевает наличие одного домена на проект.

Включение управления доменами

Для использования доменных имен нужно указать env переменные DOMAIN: example.com DNS_PROVIDER: [CF | YA], DNS_TOKEN: token, в .gitlab-ci.yml файле.

Для всех сервисов по умолчанию используется конструкция {SERVICE}.{BRANCH}.$DOMAIN, где SERVICE - имя сервиса из docker-compose.yml. (прим backend.branch.genesis-framework.com)

Рекомендуется форма записи через переменные:

variables:
  DOMAIN: genesis-framework.com
  DNS_PROVIDER: CF
  DNS_TOKEN: $CLOUDFLARE_TOKEN

Настройка корневого сервиса (Домен для корневого сервиса)

В случае, если требуется указать корневой сервис (прим. используется простенький статичный сайт и требуется, чтобы он был доступен по корневому урлу ветки branch.genesis-framework.com) указывается переменная ROOT_SERVICE (указание сервиса). Для всех веток используется стандартный шаблон без указания сервиса (Прим. branch.genesis-framework.com).

variables:
  DOMAIN: genesis-framework.com
  DNS_PROVIDER: CF
  DNS_TOKEN: $CLOUDFLARE_TOKEN
  ROOT_SERVICE: site

Как настроить корневую ветку (выбор ветки для использования, как корневой)

В случае, если требуется чтобы сервис был доступен под корневым доменом (прим. используется простенький статичный сайт и требуется чтобы он был доступен по корневому урлу genesis-framework.com) помимо переменной ROOT_SERVICE (указание сервиса) указывается также ROOT_BRANCH.

variables:
  DOMAIN: genesis-framework.com
  DNS_PROVIDER: CF
  DNS_TOKEN: $CLOUDFLARE_TOKEN
  ROOT_SERVICE: site
  ROOT_BRANCH: prod

Смена формирования путей на path like

Выбор типа формирования домена управляется переменной PATH_LIKE_DOMAIN, принимающей значения 0 (выключен, дефолтное значение) и 1 (включен).

Шаблон маршрутизации: $DOMAIN/{BRANCH}/{SERVICE}/ (ex. https://genesis-framework.com/prod/docs)

Важно: при значении PATH_LIKE_DOMAIN: 1 - переменные DNS_TOKEN, ROOT_SERVICE, ROOT_BRANCH не работают и настройка dns записей делается в ручном режиме.

variables:
  DOMAIN: genesis-framework.com
  DNS_PROVIDER: CF
  DNS_TOKEN: $CLOUDFLARE_TOKEN
  PATH_LIKE_DOMAIN: 1

Использование кастомных настроек для Nginx

Для настройки конфигурации Nginx необходимо создать папку genesis в корне проекта и в нее поместить файл nginx.conf с кастомной конфигурацией. Пример: /genesis/nginx.conf

server_names_hash_bucket_size 128;