Coder Social home page Coder Social logo

domotel's Introduction

Multi.Kelnik 2.0

Сайт жилого комплекса

Как развернуть проект

Запуск проекта через утилиту make и Docker

Данный вариант требует установки 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-*

Запуск проекта через Docker

  • Скопировать .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}

Запуск проекта на площадке/сервере

  1. Скопировать .env.example в .env
  2. Настроить параметры окружения
  • APP_ENV один из вариантов: development, stage, production
  • APP_DEBUG для production указываем false в остальных случаях можно использовать true
  • APP_URL указываем URL сайта, например https://some-host.ru
  • DB_* - настройки подключения к БД
  • CACHE_DRIVER - драйвер кеш, для production желательно memcached, redis. Варианты: apc, array, database, file, memcached, redis, dynamodb, octane, null
  • QUEUE_CONNECTION - соединение для очередей задач, для production желательно database, redis, sqs. Варианты: sync, database, beanstalkd, sqs, redis, null
  • MAIL_* - настройки для отправки почты
  1. Устанавливаем пакеты composer, генерируем ключ приложения и создаем ссылки для хранилища, создаем кеш
  • composer install -n
  • php artisan key:generate --force
  • php artisan storage:link --relative
  • php artisan optimize
  1. Прописываем в крон скрипт расписания
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
  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-страницы: public/pages
    • Стили: public/css/common/styles.css

domotel's People

Contributors

owlana avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.