A Docker-based pre-configured environment for CS-Cart development.
For using locally with self-signed certificates:
$ cp compose/.env.local .env
For using with a wildcard certificate (implemented for Selectel and Cloudflare only):
$ cp compose/.env.local .env
Important notes:
- Don't change the values that are already specified by default.
- Directories for volumes will be created with correct permissions automatically on first launch.
- Names of directories with CS-Cart instances in the
CSCART_VOLUMES
directory must contain only letters and numbers:[a-zA-Z0-9]
. Otherwise SEO and storefronts in subdirectories will not work.
What changes to make:
- For local use:
CSCART_VOLUMES
- the path to the directory with СS-Cart instances (the directory will be created automatically if it doesn't exist).MYSQL_LOGS
- the path to the directory with MySQL logs (the directory will be created automatically if it doesn't exist).MYSQL_DATA
- the path to the directory with MySQL databases (the directory will be created automatically if it doesn't exist).MYSQL_CONF
- the path to the directory with MySQL config files (the directory will be created automatically if it doesn't exist).MYSQL_RPASS
- root password for MySQL database server.
- For a wildcard certificate by Selectel:
DNS_API=dns_selectel
- the type of DNS provider for getting the wildcard certificate.SL_Key=******
- Selectel API key.CSCART_VOLUMES
- the path to the directory with СS-Cart instances (the directory will be created automatically if it doesn't exist).MYSQL_LOGS
- the path to the directory with MySQL logs (the directory will be created automatically if it doesn't exist).MYSQL_DATA
- the path to the directory with MySQL databases (the directory will be created automatically if it doesn't exist).MYSQL_CONF
- the path to the directory with MySQL config files (the directory will be created automatically if it doesn't exist).MYSQL_RPASS
- root password for MySQL database server.DOMAIN
- the domain for which we'll be getting the wildcard certificate.PHP56_ADDRESS
- a subdomain for PHP 5.6.PHP70_ADDRESS
- a subdomain for PHP 7.0.PHP71_ADDRESS
- a subdomain for PHP 7.1.PHP72_ADDRESS
- a subdomain for PHP 7.2.
- For a wildcard certificate by Cloudflare:
DNS_API=dns_selectel
- the type of DNS provider for getting the wildcard certificate.CF_Key=******
- Cloudflare API key.CF_Email
- Cloudflare login (the email address associated with the account).CSCART_VOLUMES
- the path to the directory with СS-Cart instances (the directory will be created automatically if it doesn't exist).MYSQL_LOGS
- the path to the directory with MySQL logs (the directory will be created automatically if it doesn't exist).MYSQL_DATA
- the path to the directory with MySQL databases (the directory will be created automatically if it doesn't exist).MYSQL_CONF
- the path to the directory with MySQL config files (the directory will be created automatically if it doesn't exist).MYSQL_RPASS
- root password for MySQL database server.DOMAIN
- the domain for which we'll be getting the wildcard certificate.PHP56_ADDRESS
- a subdomain for PHP 5.6.PHP70_ADDRESS
- a subdomain for PHP 7.0.PHP71_ADDRESS
- a subdomain for PHP 7.1.PHP72_ADDRESS
- a subdomain for PHP 7.2.SMTP_PASS
- a password for the SMTP server.SMTP_USER
- a username on the SMTP server.MAXMAILSIZE
- message_size_limit, the maximum size of the message.
For local use with self-signed certificates:
sudo ./launcher local
Make sure to add the following entries to /etc/hosts:
sudo echo -e '127.0.0.1 php56.cs-cart.local\n127.0.0.1 php70.cs-cart.local\n127.0.0.1 php71.cs-cart.local\n127.0.0.1 php72.cs-cart.local\n' >> /etc/hosts
For a wildcard certificate (only by Selectel or Cloudflare):
sudo ./launcher external
For local use with self-signed certificates:
php56.cs-cart.local
- nginx + php-fpm 5.6php70.cs-cart.local
- nginx + php-fpm 7.0php71.cs-cart.local
- nginx + php-fpm 7.1php72.cs-cart.local
- nginx + php-fpm 7.2
Adminer will be available on port
8080
for working with the database server:database
- the address of the database server.root
- user name; the password is the value of the${MYSQL_RPASS}
variable in the ENV file.
If a wildcard certificate by Selectel or Cloudflare is used instead, then the addresses are the values of the variables in the ENV file:
PHP56_ADDRESS
- a subdomain for PHP 5.6 - nginx + php-fpm 5.6PHP70_ADDRESS
- a subdomain for 7.0 - nginx + php-fpm 7.0PHP71_ADDRESS
- a subdomain for PHP 7.1 - nginx + php-fpm 7.1PHP72_ADDRESS
- a subdomain for PHP 7.2 - nginx + php-fpm 7.2
Important: Adminer will be available on port
8080
for working with the database server. Use a firewall to prevent unauthorized access.database
- the address of the database server.root
- user name; the password is the value of the${MYSQL_RPASS}
variable in the ENV file.
To send emails from CS-Cart instances, go to Settings → E-mails in the CS-Cart admin panel and specify the following settings:
- Method of sending e-mails - choose the via SMTP server variant.
- SMTP host - enter
postfix
. - SMTP username - the value of the
SMTP_USER
variable. - SMTP password - the value of the
SMTP_PASS
variable. - Use encrypted connection - choose None.
- Use SMTP authentication - tick the checkbox.
Готовое окружение для разработки CS-Cart на основе Docker.
Если используем локально c самоподписанными сертификатами:
$ cp compose/.env.local .env
Если хотим получить wildcard-сертификат (реализовано лишь для Selectel и Cloudflare):
$ cp compose/.env.external .env
Важные моменты:
- Заполненные значения оставляем без изменений.
- Папки для волумов будут созданы автоматически с правильными правами при первом запуске.
- Имена папок с экземплярами CS-Cart в директории
CSCART_VOLUMES
должны содержать лишь буквы и цифры:[a-zA-Z0-9]
. В противном случае, не будет работать SEO и вложенные витрины.
Какие изменения вносить:
- Локальное использование:
CSCART_VOLUMES
- путь до папки с экземплярами СS-Cart (будет создана автоматически, если не существует);MYSQL_LOGS
- путь до папки с логами MySQL (будет создана автоматически, если не существует);MYSQL_DATA
- путь до папки с базами данных MySQL (будет создана автоматически, если не существует);MYSQL_CONF
- путь до папки с конфигурационными файлами MySQL (будет создана автоматически, если не существует);MYSQL_RPASS
- root-пароль для сервера баз данных MySQL.
- Wildcard-сертификат через Selectel:
DNS_API=dns_selectel
- тип DNS-провайдера для получения wildcard-сертификата;SL_Key=******
- API-ключ для Selectel;CSCART_VOLUMES
- путь до папки с экземплярами CS-Cart (будет создана автоматически, если не существует);MYSQL_LOGS
- путь до папки с логами MySQL (будет создана автоматически, если не существует);MYSQL_DATA
- путь до папки с базами данных MySQL (будет создана автоматически, если не существует);MYSQL_CONF
- путь до папки с конфигурационными файлами MySQL (будет создана автоматически, если не существует);MYSQL_RPASS
- root-пароль для сервера баз данных MySQL;DOMAIN
- домен, для которого будем получать wildcard-сертификат;PHP56_ADDRESS
- поддомен для PHP 5.6;PHP70_ADDRESS
- поддомен для PHP 7.0;PHP71_ADDRESS
- поддомен для PHP 7.1;PHP72_ADDRESS
- поддомен для PHP 7.2.
- Wildcard-сертификат через Cloudflare:
DNS_API=dns_selectel
- тип DNS провайдера для получения wildcard-сертификата;CF_Key=******
- API-ключ для Cloudflare;CF_Email
- логин для Cloudflare (email-адрес, на который зарегистрирована учетная запись);CSCART_VOLUMES
- путь до папки с экземплярами CS-Cart (будет создана автоматически, если не существует);MYSQL_LOGS
- путь до папки с логами MySQL (будет создана автоматически, если не существует);MYSQL_DATA
- путь до папки с базами данных MySQL (будет создана автоматически, если не существует);MYSQL_CONF
- путь до папки с конфигурационными файлами MySQL (будет создана автоматически, если не существует);MYSQL_RPASS
- root-пароль для сервера баз данных MySQL;DOMAIN
- домен, для которого будем получать wildcard-сертификат;PHP56_ADDRESS
- поддомен для PHP 5.6;PHP70_ADDRESS
- поддомен для PHP 7.0;PHP71_ADDRESS
- поддомен для PHP 7.1;PHP72_ADDRESS
- поддомен для PHP 7.2;SMTP_PASS
- пароль для авторизации на SMTP-сервере;SMTP_USER
- имя пользователя для авторизации на SMTP-сервере;MAXMAILSIZE
- message_size_limit, максимальный размер сообщения.
Если используем локально c самоподписанными сертификатами:
sudo ./launcher local
Также необходимо внести записи в файл /etc/hosts:
sudo echo -e '127.0.0.1 php56.cs-cart.local\n127.0.0.1 php70.cs-cart.local\n127.0.0.1 php71.cs-cart.local\n127.0.0.1 php72.cs-cart.local\n' >> /etc/hosts
Если хотим получить wildcard-сертификат (реализовано лишь для Selectel и Cloudflare):
sudo ./launcher external
Если используем локально c самоподписанными сертификатами:
php56.cs-cart.local
- nginx + php-fpm 5.6;php70.cs-cart.local
- nginx + php-fpm 7.0;php71.cs-cart.local
- nginx + php-fpm 7.1;php72.cs-cart.local
- nginx + php-fpm 7.2.
Также на
8080
порту будет доступен Adminer для работы с сервером баз данных:database
- адрес сервера баз данных;root
- имя пользователя; паролю соответствует значение переменной${MYSQL_RPASS}
в env-файле.
Если используем вариант с wildcard сертификатом (реализовано лишь для Selectel и Cloudflare), то адресами являются значения переменных в env-файле:
PHP56_ADDRESS
- поддомен для PHP 5.6 - nginx + php-fpm 5.6;PHP70_ADDRESS
- поддомен для PHP 7.0 - nginx + php-fpm 7.0;PHP71_ADDRESS
- поддомен для PHP 7.1 - nginx + php-fpm 7.1;PHP72_ADDRESS
- поддомен для PHP 7.2 - nginx + php-fpm 7.2.
Важно: на
8080
порту будет доступен Adminer для работы с сервером баз данных. Используйте файервол для предотвращения несанкционированного доступа.database
- адрес сервера баз данных;root
- имя пользователя; паролю соответствует значение переменной${MYSQL_RPASS}
в env-файле.
Чтобы отправлять электронные письма через экземпляры CS-Cart, перейдите в меню Настройки → Электронная почта в админке CS-Cart и задайте такие настройки:
- Способ отправки почты - выберите вариант Отправка через SMTP сервер;
- SMTP сервер - введите
postfix
; - Имя пользователя для SMTP - значение переменной
SMTP_USER
; - Пароль для SMTP сервера - значение переменной
SMTP_PASS
; - Шифрованное соединение - выберите вариант Не использовать;
- Использовать SMTP аутентификацию - поставьте галочку.