Фронтенд на Vue.js с авто-деплоем на Nginx в докере и автоматическим получением сертификатов Letsencrypt
Словом, всё необходимое, чтобы раскатить фронтенд за 10 минут на чистой машине с Ubuntu.
- Vite - сборщик
- Typescript - типизация для JS
- Vue.js - высокоуровневый фреймворк
- Stylus - препроцессор для css-стилей
- TypeDoc - генератор HTML документации по JSDoc-комментариям
- Jest - фреймворк для запуска юнит-тестов
- ESlint - статический анализатор кода
Плагины ESLint:
- JS / TS / Vue - стандартные плагины
- Compat - проверка совместимости со старыми браузерами
- No loops - запрет использования "C-style" циклов for, while
- Sonarjs - проверка когнитивной сложности больших блоков кода
- No use extend native - запрет расширения классов стандартных типов данных
- Optimize regex - проверка качества написания ругулярных выражений
- Promise - проверка работы с промисами
- Import - проверка и оптимизация импортов (отключен из-за проблем использования вместе с Vue)
- Prettier - линтер для JS/TS
- Stylelint - линтер для Stylus
- Husky/pre-commit - инструменты для запуска линтеров перед каждым коммитом
- Nginx/Docker/Make - инструменты для запуска собранного приложения в выделенном контейнере
npm run dev
У вас должна быть установлена node
. Установка Node.js
Развертка выполняется через команды в Makefile
git clone [email protected]:SergTyapkin/vue-frontend-template.git
В самом начале нужно будет настроить .env
файл, прописать правильный DOMAIN_URL
cd vue-frontend-template
make all # not just "make"!
Всё. Наслаждаемся тем, что за нас всё сделали, установили докер, сайт раздаётся, сертификаты обновляются.
Теперь Github CI
сам будет проверять, собирается ли контейнер при Pull Request'ах, а при Push'ах в ветку master
будет автоматически выполняться make update
на сервере и обновлять деплой!
После выполнения не забываем прописать переменные, значения которых команда выдала в консоль, в настройки окружения репозитория на Github, как это написано в пункте 3.
- Устанавливает
docker
, если его ещё нет - Добавляет текущего пользователя в группу
Docker
, чтобы запускать его безsudo
- Предлагает настроить
.env
файл - Получает сертификаты Letsencrypt
- Устанавливает и настраивает
cron
на ежемесячное обновление сертификатов - Создаёт пару SSH ключей, публичный добавляет в
~/.ssh/authorized_keys
, приватный выводит в консоль, его нужно добавить как секретную переменную средыSSH_DEPLOY_KEY
в настройках Github. - Собирает приложение из последнего коммита в ветку
master
, запускает финальный docker-контейнер с ним. - Показывает остальеые переменные, которые необходимо установить в настройках GitHub для настройки CI/CD.