Азбука: всё, что нужно знать до начала
Эта страница — для человека, который никогда не работал с серверами. Здесь нет ничего про mitdev — только базовые вещи, без которых непонятны остальные руководства. Прочитайте один раз, дальше будет легко.
Путь новичка: 1. эта страница → 2. Большое руководство → 3. Развёртывание проектов.
1. Что такое сервер и где его взять
Сервер — это обычный компьютер, который стоит в дата-центре и работает круглосуточно. Вы арендуете его через интернет. Такая аренда называется VPS (виртуальный сервер) и стоит от 3–10 $/мес.
Где арендовать: Hetzner, DigitalOcean, Vultr, Timeweb, Selectel — любой. При заказе вас спросят:
| Вопрос при заказе | Что выбрать |
|---|---|
| Операционная система | Ubuntu 24.04 (обязательно — под неё всё проверено) |
| Тариф | для начала хватит 2 ГБ RAM / 2 CPU / 40 ГБ диска |
| SSH-ключ | если не знаете, что это — пропустите, будет пароль |
После оплаты (обычно через 1–2 минуты) вы получите три вещи:
IP-адрес (например 203.0.113.10 — «номер телефона» вашего сервера),
логин root (главный администратор) и пароль.
2. Как подключиться к серверу (SSH)
SSH — способ управлять сервером с вашего компьютера через текстовые команды. Экрана у сервера нет — только командная строка.
Windows: откройте PowerShell (Пуск → наберите «PowerShell» → Enter). macOS: программа «Терминал» (Cmd+Пробел → «Terminal»). Linux: любой терминал.
В открывшемся окне наберите (подставьте СВОЙ IP) и нажмите Enter:
ssh [email protected]
Два момента, которые пугают всех новичков:
- При первом подключении спросит
Are you sure you want to continue connecting?— наберитеyesи Enter. Это нормально (компьютер запоминает сервер). - Пароль при вводе НЕ отображается — ни звёздочек, ничего. Это так задумано. Просто введите пароль вслепую и нажмите Enter.
Если увидели строку вида root@server:~# — вы НА СЕРВЕРЕ. Всё, что вы
теперь набираете, выполняется на нём, а не на вашем компьютере.
Выйти с сервера: команда exit или закрыть окно.
3. Как вводить команды
- Копировать из документации — выделите команду и скопируйте (Ctrl+C). Вставить в PowerShell — правая кнопка мыши (не Ctrl+V!). В macOS — Cmd+V. Затем Enter.
- Команда из нескольких строк — копируйте целиком, так и задумано.
- Команда «зависла»? Многие команды работают долго (минуты) — это нормально, ждите. Прервать принудительно: Ctrl+C.
- Повторить прошлую команду: стрелка вверх, затем Enter.
- Регистры важны:
Mitdevиmitdev— разные слова. Копируйте, не перепечатывайте. - Строки, начинающиеся с
#в примерах — комментарии, их вводить не нужно.
4. root и sudo
root — администратор с полными правами. Если вы вошли как root,
приставка sudo в командах не мешает — работает так же. Если вы вошли
обычным пользователем (например deploy), sudo перед командой означает
«выполнить с правами администратора» — спросит пароль пользователя.
В этой документации все команды написаны с sudo — копируйте как есть,
они работают в обоих случаях.
5. Как редактировать файлы на сервере
Редактор nano (уже установлен). Открыть файл:
nano /home/deploy/apps/myapp/.env
Управление (мышь не работает!): стрелки — перемещение, печатаете как обычно.
Сохранить: Ctrl+O, затем Enter. Выйти: Ctrl+X. Внизу экрана —
подсказки (символ ^ означает Ctrl).
6. Домен и DNS
Домен — имя сайта (example.com). Покупается у регистратора
(Namecheap, Cloudflare, reg.ru) за ~10–15 $/год.
DNS — система, которая превращает имя в IP-адрес сервера. Чтобы домен «указывал» на ваш сервер, в панели регистратора создайте A-запись:
| Поле в панели | Что вписать |
|---|---|
| Тип (Type) | A |
| Имя/Хост (Name/Host) | @ — для самого домена; app — для app.example.com |
| Значение (Value/Points to) | IP вашего сервера, например 203.0.113.10 |
| TTL | не трогайте (или 3600) |
Изменения применяются от минуты до часа. Проверить, что домен уже указывает на сервер (команда на сервере или на вашем компьютере):
nslookup app.example.com
В ответе должен быть IP вашего сервера. Пока его нет — SSL выпустить не получится, подождите.
7. Git и репозиторий
Git — система хранения кода. Репозиторий — папка с кодом проекта на сервисе вроде GitHub или GitLab. Ваш проект (или проект, который вам передали) обычно лежит именно там.
Всё, что понадобится, — URL репозитория: на странице проекта в GitHub
зелёная кнопка «Code» → вкладка HTTPS → скопировать
(https://github.com/user/project.git). Если репозиторий приватный —
способы доступа описаны в DEPLOY.md, раздел 2.3.
8. Файл .env
Почти каждый проект хранит настройки (пароли БД, ключи API) в файле
с именем .env — по строке ИМЯ=значение:
DATABASE_URL=postgresql://deploy:пароль@127.0.0.1:5432/app
TELEGRAM_TOKEN=123456:ABC...
Этого файла нет в репозитории (секреты не хранят в коде) — есть образец
.env.example. mitdev создаёт .env из образца автоматически, но
заполнить настоящие значения — ваша задача (nano, раздел 5). Проект,
который «не работает» сразу после развёртывания, в 8 случаях из 10 —
это незаполненный .env.
9. Как читать ошибки
- Ошибка — это текст, обычно последние строки вывода. Красный цвет — ошибка, жёлтый — предупреждение (обычно не страшно).
- Первая команда при любой проблеме:
mitdev doctor— она сама скажет, что сломано, и подскажет команду для починки прямо в строке ошибки. - Скопировать текст из терминала: выделите мышью (в PowerShell выделение = копирование; в других — Ctrl+Shift+C).
- Готовые решения типовых проблем: TROUBLESHOOTING.md.
10. Словарик
| Термин | Простыми словами |
|---|---|
| VPS / сервер | арендованный компьютер в дата-центре, работает 24/7 |
| IP-адрес | «номер телефона» сервера: 203.0.113.10 |
| SSH | способ управлять сервером командами с вашего компьютера |
| Терминал | окно, куда вводят команды |
| root | администратор сервера с полными правами |
| sudo | «выполнить команду от администратора» |
| Домен | имя сайта (example.com) |
| DNS / A-запись | настройка «имя → IP сервера» |
| Порт | «дверь» на сервере; сайт — 80/443, ваш код слушает свой (напр. 3000) |
| Файрвол (UFW) | охранник: пропускает только разрешённые порты |
| nginx | принимает запросы из интернета и передаёт вашему приложению |
| SSL / HTTPS | шифрование сайта (замочек в браузере); сертификат — бесплатно |
| Git / репозиторий | система хранения кода / папка с проектом на GitHub |
| .env | файл с секретными настройками проекта |
| База данных (БД) | хранилище данных приложения; здесь — PostgreSQL |
| Репликация | вторые сервера БД с живой копией данных |
| Primary / replica | главный сервер БД (принимает записи) / его копия |
| Failover | автопереключение на копию, когда главный сервер умер |
| Docker / контейнер | «коробка» с приложением и всем его окружением |
| Kubernetes / под | система управления контейнерами / один запущенный контейнер |
| PM2 | нянька для Node-приложений: перезапускает упавшие |
| Бекап | резервная копия; хранить — не на том же сервере |
| cron | планировщик: «выполняй команду по расписанию» |
Что дальше
Откройте Большое руководство — оно проведёт от аренды сервера до работающего проекта, шаг за шагом, с таблицами «вопрос → что ответить». Когда проект уже развёрнут и нужны детали под ваш стек — Развёртывание проектов.