Сайт жилого комплекса
Данный вариант требует установки make и Docker (Linux, MacOS, Windows).
На Linux и MacOS утилита make
уже установлена в системе.
Для Windows
рекомендуется использовать WSL,
либо Cygwin и mlink.
Копируем ssh-ключ (rsync.key
) в папку storage/
для будущей синхронизации хранилища.
Права на файл устанавливаем как 600
.
Для первого запуска проекта выполнить команду make install
.
или make install-backend
если не требуется установка зависимостей npm
.
Если все зависимости проекта уже установлены, то запуск проекта можно выполнить командой make up
или make up-backend
.
install
установить все зависимостиcomposer
иnpm
install-backend
установка зависимостей только дляcomposer
up
запустить проект (nginx+php, nodejs)up-backend
запустить толькоbackend
down
останавливает и удаляет все контейнеры проектаclear-cache
полная очистка кэшаbackend
sync-packages
- актуализация пакетов composer и npm в соответствии с lock-файламиsync-db
- импортирует базу данных с dev сервера в контейнерsync-storage
- копирует файлы хранилища с dev сервера (требуется ssh-ключ)sync
- запуск всех командsync-*
- Скопировать
.env.example
в.env
- Применить настройки окружения в
.env
- Запустить сервис
web
иdb
-docker compose up -d web db
, автоматически запустится сервисphp
- В контейнере сервиса
php
выполнить команды:composer install -n
php artisan storage:link --relative
- Импортируем базу с dev сервера в контейнер
docker exec --env-file=".env" -it <APP_NAME>-db sh -c 'mysqldump -qQR --add-drop-table --skip-lock-tables --skip-comments --ssl -h${DB_SRC_HOST} -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_DATABASE} | mysql -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_DATABASE}'
- Копируем файлы из хранилища. Размещаем ключ
rsync.key
в папкеstorage/
docker exec --env-file=".env" -it <APP_NAME>-php sh -c 'rsync -azmh --exclude="image/" --delete -e "ssh -i ${RSYNC_KEY_PATH}" ${RSYNC_SRC_PATH} ${RSYNC_DST_PATH}'
- Скопировать
.env.example
в.env
- Применить настройки окружения в
.env
- Выполнить команды:
composer install -n
php artisan storage:link --relative
- Меняем в
.env
значение параметраDB_HOST
наlocalhost
и импортируем базу с dev сервера в локальный сервер
export $(cat .env | xargs) && \
mysqldump -qQR --add-drop-table --skip-lock-tables --skip-comments --ssl -h${DB_SRC_HOST} -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_DATABASE} | \
mysql -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_DATABASE}
- Копируем файлы из хранилища. Для этого необходима утилита
rsync
и ssh-ключrsync.key
, который необходимо разместить вstorage/
export $(cat .env | xargs) && \
LC_ALL="en_US.UTF-8" rsync -azm --exclude="image/" --delete -e "ssh -i ${RSYNC_KEY_PATH}" ${RSYNC_SRC_PATH} ${RSYNC_DST_PATH}
- Скопировать
.env.example
в.env
- Настроить параметры окружения
APP_ENV
один из вариантов: development, stage, productionAPP_DEBUG
дляproduction
указываемfalse
в остальных случаях можно использоватьtrue
APP_URL
указываем URL сайта, например https://some-host.ruDB_*
- настройки подключения к БДCACHE_DRIVER
- драйвер кеш, дляproduction
желательно memcached, redis. Варианты: apc, array, database, file, memcached, redis, dynamodb, octane, nullQUEUE_CONNECTION
- соединение для очередей задач, дляproduction
желательно database, redis, sqs. Варианты: sync, database, beanstalkd, sqs, redis, nullMAIL_*
- настройки для отправки почты
- Устанавливаем пакеты composer, генерируем ключ приложения и создаем ссылки для хранилища, создаем кеш
composer install -n
php artisan key:generate --force
php artisan storage:link --relative
php artisan optimize
- Прописываем в крон скрипт расписания
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
- Запускаем воркер очередей, желательно прописать в supervisor
php artisan queue:work
Панель управления основана на пакете Orchid Platform
Для запуска тестов выполняем команду composer test
- Модули -
packages/*
NODE VERSION: 18
npm run watch
- запускает browserSync, отслеживание изменений в twig-шаблонах, стиляхnpm run prod
- запускает сборку для production'а
Сайт
- Исходники:
- HTML-страницы:
frontend/src/pages
- Стили:
frontend/src/common/styles.scss
- HTML-страницы:
- Компилируются в:
- HTML-страницы:
public/pages
- Стили:
public/css/common/styles.css
- HTML-страницы: