phone_picture

Цель курса

Научиться самостоятельно разворачивать и сопровождать проекты на VDS: от простой настройки чистого сервера до деплоя одной командой, бэкапов и Docker. Без паники от консоли и без отдельного DevOps-инженера в команде.

Мы пойдём от простого к сложному: начнём с панели управления, чтобы не пугаться консоли, затем настроим всё руками. Наведём порядок по проектам и пользователям, настроим деплой и бэкапы, упрёмся в потолок ручного подхода и только тогда перенесём проект в Docker.

Программа курса

3 ноября, 19:30 — урок 1

  • Быстрый старт с панелью ispmanager
  • Устройство сервера под капотом панели
  • Грамотная настройка PHP-проекта в панели
  • Пользователи и права доступа в Linux
  • Стартовые настройки: обновления, время, swap
  • Защита сервера: SSH-ключи, firewall, fail2ban
  • Настройка доступа без риска потерять сервер

10 ноября, 19:30 — урок 2

  • Переход от панели к чистому серверу
  • Запуск Node-приложения в панели и вручную
  • Установка Node через nvm и процессы в pm2
  • nginx, домен и HTTPS через certbot
  • Полный запуск сайта примерно за 20 команд
  • Разбор типичных ошибок на каждом шаге
  • Уверенная работа в консоли без панели

17 ноября, 19:30 — урок 3

  • Изоляция проектов через системных пользователей
  • Единая структура проектов на сервере
  • nginx как reverse proxy для нескольких проектов
  • Закрытие приложений от прямого доступа извне
  • Работа с логами сервера и приложений
  • Laravel без панели: nginx и php-fpm
  • Правильная настройка базы данных

24 ноября, 19:30 — урок 4

  • Старинный FTP vs git
  • Деплой и откат версий через git
  • Скрипт деплоя: обновление проекта одной командой
  • Работа в ситуации, когда деплой упал с ошибкой
  • Автодеплой по пушу и GitHub Actions
  • Автоматические бэкапы на внешнее хранилище
  • Проверка восстановления системы из бэкапов

1 декабря, 19:30 — урок 5

  • Масштабирование Node на все ядра через pm2 cluster
  • Типичные поломки многопроцессного приложения
  • Задачи по расписанию, которые выполняются N раз
  • Redis для сессий, кеша и Socket.IO
  • Очереди задач на Redis
  • Конфликты версий и системных библиотек
  • Пределы ручного подхода и переход к Docker

8 декабря, 19:30 — урок 6

  • Образы и контейнеры: ключевые принципы Docker
  • Почему группа docker фактически равна root
  • Несколько версий сервисов на одном сервере
  • Локальные RabbitMQ, Redis и Postgres в Docker
  • Dockerfile для Node-приложения
  • Docker Compose для всего стека проекта
  • Отладка упавших контейнеров

15 декабря, 19:30 — урок 7

  • Хранение данных в контейнерах
  • Пользовательские файлы и права доступа
  • База в контейнере: volume, дамп, восстановление
  • Связка nginx и контейнеров
  • Docker и firewall: закрытие лишних портов
  • Очереди и планировщик Laravel в контейнерах
  • Контроль места на диске: логи и старые образы

22 декабря, 19:30 — урок 8

  • Деплой Docker-проекта одной командой
  • Миграции и откат версий в Docker
  • Стратегия бэкапов для Docker-проекта
  • Мониторинг сервера и уведомления в Telegram
  • Порядок действий, когда сайт упал
  • Переезд проекта на новый сервер за час
  • Направления роста для DevOps

Чему вы научитесь

по итогам двух месяцев на курсе

Уверенно работать в консоли

Понимать, что происходит на сервере, от какого пользователя выполнять команды, где лежат файлы и логи, и что делать, когда команды выдают ошибки.

Держать проекты в порядке

Поднимать сайты на Node и PHP по понятным правилам: у каждого проекта свой пользователь, структура папок, конфиг nginx, логи и бэкапы.

Защищать сервер

Закрывать вход по паролю, настраивать firewall, прятать приложения и базы от внешней сети и знать типичные ловушки, из-за которых обычно утекают данные.

Деплоить одной командой

Уйти от ручного копирования файлов к деплою через git: скрипт обновляет сайт одной командой с локалки, а если что-то пошло не так, вы быстро откатываетесь к работающей версии.

Не терять данные

Делать бэкапы, которые хранятся не на том же сервере, проверять восстановление и понимать, какие данные в Docker переживают пересоздание контейнера, а какие нет.

Понимать, когда нужен Docker

Уверенно работать с обеими схемами: поддерживать существующие проекты на pm2 и php-fpm и переносить их в контейнеры, понимая цену и выгоду каждого подхода.

Преподаватель курса

Дмитрий Лаврик

Профессиональный веб-разработчик

Опыт работы в сфере разработки сайтов более 15 лет. Ориентируется во всех вопросах создания сайтов, от вёрстки до backend-а.

Опытный преподаватель

Начиная с 2011 года, под его руководством тысячи учеников прошли путь от новичков до успешных веб-программистов. Если вы ещё не знакомы с Дмитрием, рекомендуем заглянуть на его youtube-канал, где вы найдете много полезных видео и сможете узнать стиль преподавания Дмитрия.

Дмитрий Лаврик

Что вы получите

8 онлайн уроков

Один раз в неделю, по вторникам, с 19:30 МСК. Каждое занятие идёт чуть больше двух часов. На уроках разбираются домашние работы учеников и новый материал.

Видеозаписи всех уроков

Если вы по какой-то причине не смогли посетить урок, не переживайте, спустя пару часов после окончания занятия он доступен в записи в хорошем качестве.

Материалы и исходники

Все примеры, которые мы рассматриваем на уроках, вы получаете в архиве. Таким образом, даже не написав ни строчки кода, вы получаете набор готовых решений, сделанных на уроке.

Домашние задания

После каждого урока выдаётся домашнее задание на своём сервере и со своим проектом. Плохие оценки не ставим, только конструктивные комментарии :)

Обратную связь от преподавателя

Домашнее задание каждого ученика разбирается на уроке. Если прислано много работ, преподаватель записывает отдельный видеоролик с комментариями по каждой работе.

Доступ в закрытую группу

Во время прохождения курса все участники тусуются в рамках закрытой площадки, где помогают друг другу, а также задают вопросы преподавателю и получают ответы на них.

Обзор курса

Если вы хотите подробнее ознакомиться с идеями курса, программой и комментариями преподавателя по поводу необходимых начальных знаний

посмотрите видео, расположенное рядом

Внимание! Для прохождения курса нужен опыт разработки на Node.js или PHP на уровне своего проекта и базовое умение работать с git. Подойдёт и фронтендеру со своим проектом на Next или Nuxt. Опыт администрирования серверов не нужен.

Запись на курс

Скидка на раннюю запись!

24 000 руб. 16 800 руб.

Хотите цену ещё лучше?
Осенние старты!
 
Способы оплаты

Часто задаваемые вопросы

Я разработчик, а не админ. Справлюсь?

Да, курс сделан именно для разработчиков. Админы сами знают, что делать. Мы не готовим системных администраторов, а закрываем реальную ситуацию: проект написан, есть чистый VDS, и отвечать за него придётся программисту.

Курс только про Node или про PHP тоже?

Сквозной проект курса на Node.js. PHP идёт для сравнения: Laravel в панели, без неё на php-fpm и в контейнерах. Серверная часть у них почти одинаковая, и отличия укладываются в несколько пунктов.

Зачем это изучать, если ИИ сам всё настроит?

Нейросеть действительно отлично пишет конфиги и команды. Но цена ошибки здесь огромная. Кривая вёрстка видна сразу и чинится за минуту, а кривой конфиг сервера часто ничем себя не выдаёт: сайт работает, но база открыта в интернет, .env скачивается из браузера, а бэкапы не восстанавливаются. Поэтому серверные команды нужно понимать, а не копировать.

Почему Docker только с шестого урока?

Потому что курс идёт от проблем к инструментам, а не наоборот. Сначала вы разворачиваете проекты классическим способом. Так устроено большинство существующих серверов, и эти знания пригодятся в любом случае. А когда мы упрёмся в конфликты версий и зависимостей, станет понятно, какую проблему решает Docker и зачем он нужен.

Нужен ли свой сервер?

Да, для практики понадобится недорогой VDS на Linux (Ubuntu) у любого хостера. Сервер можно пересоздать в любой момент, на курсе мы как раз учимся не бояться этого.

У меня нет ispmanager, он обязателен?

Нет. Панель нужна только на первом уроке как быстрый и наглядный старт, у неё есть чему поучиться. Уже со второго урока всё делаем в консоли, и основа курса от панели не зависит.

У меня Windows, это проблема?

Нет. К серверу подключаемся по SSH, это работает из любой системы. Свой код на локалке в контейнеры не переносим, а для RabbitMQ или нужной версии Redis хватит Docker Desktop.

Будут ли записи уроков?

Да, конечно. Видеозапись и материалы выкладываются в течение нескольких часов после окончания урока.