Азбука: всё, что нужно знать до начала

Эта страница — для человека, который никогда не работал с серверами. Здесь нет ничего про 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]

Два момента, которые пугают всех новичков:

  1. При первом подключении спросит Are you sure you want to continue connecting? — наберите yes и Enter. Это нормально (компьютер запоминает сервер).
  2. Пароль при вводе НЕ отображается — ни звёздочек, ничего. Это так задумано. Просто введите пароль вслепую и нажмите Enter.

Если увидели строку вида root@server:~# — вы НА СЕРВЕРЕ. Всё, что вы теперь набираете, выполняется на нём, а не на вашем компьютере.

Выйти с сервера: команда exit или закрыть окно.

3. Как вводить команды

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. Как читать ошибки

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 планировщик: «выполняй команду по расписанию»

Что дальше

Откройте Большое руководство — оно проведёт от аренды сервера до работающего проекта, шаг за шагом, с таблицами «вопрос → что ответить». Когда проект уже развёрнут и нужны детали под ваш стек — Развёртывание проектов.