Большое руководство: от нуля до работающего проекта
Это пошаговый учебник для человека, который никогда не настраивал серверы. Каждый сценарий — законченный: скопируйте команды по порядку, отвечайте на вопросы на экране — и получите работающий результат.
Совсем не знакомы с серверами? Сначала прочитайте Азбуку (10 минут): что такое VPS и где его арендовать, как подключиться по SSH с Windows/macOS, как вводить команды и редактировать файлы, что такое домен и A-запись, словарик терминов. Здесь мы считаем, что вы это уже знаете.
Руководство разбито на три коротких части, чтобы читать по мере надобности:
Часть 1 — Начало (эта страница):
- Что такое mitdev и как он устроен
- Подготовка: свой сервер установки
- Первый сервер за 10 минут
- Развернуть свой проект (сайт/API) с доменом и HTTPS
Часть 2 — Дальше: свой nginx-конфиг · Docker · Kubernetes · отказоустойчивый кластер PostgreSQL.
Часть 3 — Эксплуатация: бекапы и восстановление · повседневный уход · что делать при сбоях.
Готовые сценарии популярных стеков (Next.js, NestJS, Laravel, HA на 3 VPS) — отдельно в Рецептах.
1. Что такое mitdev
mitdev — это два инструмента:
- инсталлятор (
install.sh) — один раз превращает пустой сервер Ubuntu 24.04 в готовую площадку: ставит Node.js, Docker, nginx, базы данных, настраивает файрвол и защиту SSH. Вы только отвечаете на вопросы. - команда
mitdev— повседневное управление: развернуть проект, выпустить SSL-сертификат, сделать бекап, проверить здоровье сервера.
Философия: вы указываете данные — mitdev делает всё руками за вас.
Пароли генерируются и сохраняются в /root/.mitdev-credentials (файл
читает только root). Любую установку можно запустить повторно — это безопасно.
Что понадобится: сервер(ы) с Ubuntu Server 24.04 (любой VPS от 1 ГБ RAM), root-доступ по SSH и, для доменов, доступ к DNS-панели.
2. Свой сервер установки
Один раз разверните сайт документации — он же сервер установки. После этого любой новый сервер настраивается одной командой. Полная инструкция — SITE.md; краткая версия:
# на рабочей машине (нужен Node.js):
cd mitdev/site && npm install
node build.mjs --url https://mitdev.top # ваш домен!
# содержимое site/public/ загрузите на веб-сервер, привяжите домен, включите SSL
Проверка: откройте https://mitdev.top в браузере — увидите эту документацию.
3. Первый сервер
Возьмите чистый VPS с Ubuntu 24.04, зайдите по SSH под root и выполните:
curl -fsSL https://mitdev.top/get | sudo bash
Инсталлятор проверит сервер (диск, память, интернет) и начнёт задавать вопросы. Что отвечать в типовом случае:
| Вопрос | Что ответить |
|---|---|
| Выбор компонентов | оставьте отмеченное по умолчанию (Node, Docker, Nginx, PM2, Certbot, UFW, Fail2Ban) |
| Имя пользователя | Enter (будет deploy — под ним живут ваши проекты) |
| Пароль пользователя | придумайте и введите дважды |
| SSH-ключ | вставьте ваш публичный ключ (строка ssh-ed25519 …); если нет — Enter |
| Порт SSH | Enter (22) или свой |
| Запретить root по SSH / отключить пароли | пока учитесь — «Нет»; в бою — «Да» |
Дальше — прогресс-бар. В конце — сводка с IP, версиями и статусами.
Проверьте: mitdev doctor — все строки должны быть зелёными.
Что произошло: сервер обновлён, стоит весь стек, файрвол пропускает
только SSH/80/443, Fail2Ban банит перебор паролей, у вас есть пользователь
deploy с каталогами ~/apps (проекты), ~/backups, ~/logs, ~/scripts.
4. Развернуть проект
Ваш проект лежит в git (GitHub/GitLab). В DNS-панели домена создайте
A-запись: myapp.example.com → IP сервера. Затем на сервере:
sudo mitdev app
Вопросы:
| Вопрос | Пример ответа | Пояснение |
|---|---|---|
| Имя приложения | myapp |
имя каталога и процесса |
| URL git-репозитория | https://github.com/you/myapp.git |
приватный — используйте deploy-token в URL |
| Домен | myapp.example.com |
пусто — без nginx (доступ только по порту) |
| Порт приложения | 3000 |
порт, который слушает ваш код внутри сервера |
| Свой nginx-конфиг | Enter | см. часть 2 → nginx |
| Выпустить SSL? | «Да» | сертификат Let's Encrypt + редирект на https |
Что mitdev сделает сам: клонирует репозиторий в /home/deploy/apps/myapp,
создаст .env из .env.example (не забудьте вписать свои значения:
sudo nano /home/deploy/apps/myapp/.env), поставит зависимости (сам поймёт —
npm/pnpm/yarn по lock-файлу), поднимет docker compose, если он есть,
настроит nginx «домен → ваш порт» и выпустит сертификат. Продление
сертификата автоматическое — systemd-таймер certbot проверяет его дважды
в день, вам делать ничего не нужно (контролируется в mitdev doctor).
Если проект — Node без Docker, запустите его через PM2 (менеджер процессов, который переживает перезагрузки):
sudo -u deploy -H bash -lc 'cd ~/apps/myapp && pm2 start npm --name myapp -- start && pm2 save'
Обновление после git push — одна команда:
sudo mitdev deploy myapp # pull → зависимости → build → рестарт
Дальше
Базовый сервер и первый проект работают. Продолжайте по мере надобности:
- Часть 2 — Дальше: свой nginx-конфиг, Docker, Kubernetes, отказоустойчивый кластер PostgreSQL.
- Часть 3 — Эксплуатация: бекапы и восстановление, повседневный уход, что делать при сбоях.
- Рецепты: готовые стеки (Next.js+PG+Redis, NestJS+Mongo, Laravel+PG, HA-кластер на 3 VPS, приложение в Kubernetes).
- Справочник команд и Устранение неполадок.