Канонический контент гайда «Поднять сервер через ИИ». Принцип: универсально. ИИ здесь — любой (ChatGPT, Claude, Gemini, DeepSeek, Qwen, локальный Ollama). Не привязываемся к одному инструменту. Уровень: проходит и школьник/бабушка по шагам, и сеньор найдёт заметки для себя (блоки 🧠). Хостинг в примере — Timeweb Cloud (можно заменить любым: Hetzner, Selectel, Reg.ru, DigitalOcean — шаги те же).
🧭 Сначала — картина целиком (чтобы не бояться)
Сервер — это просто чужой компьютер, который всегда включён и в интернете. Ты его «арендуешь», подключаешься к нему по сети и ставишь туда свой проект, чтобы он работал 24/7 и был доступен другим по ссылке.
Весь путь — это 7 шагов:
- Завести хостинг и создать сервер (VPS).
- Подключиться к нему (SSH).
- Подготовить сервер (обновить, создать пользователя, включить firewall).
- Поставить Docker (чтобы запускать проекты одинаково и без боли).
- Завести Git и ветки (чтобы хранить код и не терять версии).
- Принести проект на сервер: либо создать новый, либо выгрузить из локалки.
- Запустить и открыть по ссылке (домен + HTTPS).
🤖 Золотое правило новичка. Если на ЛЮБОМ шаге не понимаешь — не гадай. Скопируй ошибку и спроси ИИ по шаблону из конца гайда (раздел «Промт-спасалка»). Это и есть навык. Сеньор отличается не тем, что всё знает, а тем, что умеет быстро выяснить.
Шаг 1. Завести хостинг и создать сервер (VPS)
Что делаем: регистрируемся и создаём виртуальный сервер.
- Зайди на сайт Timeweb Cloud → зарегистрируйся (почта/телефон) → пополни баланс (старт стоит копейки в день).
- В панели нажми «Создать» → Серверы (Облачные серверы / VPS).
- Регион: ближе к твоим пользователям (Москва/СПб/Новосибирск/Казахстан/Польша/Нидерланды).
- Операционная система: выбери Ubuntu 24.04 LTS (почему — ниже).
- Конфигурация для старта: 2 CPU · 2 ГБ RAM · 40 ГБ SSD — этого хватает для обучения, сайта, бота, небольшого приложения. Мощность потом можно добавить в пару кликов.
- Доступ: выбери SSH-ключ (безопаснее) — как сделать ключ, в Шаге 2. Если пока сложно — можно «по паролю» (root-пароль появится на Дашборде сервера).
- Нажми «Создать» и подожди ~минуту. Сервер готов: на Дашборде будет его IP-адрес (например
185.12.34.56).
Какую ОС выбрать и почему
Бери Ubuntu LTS (сейчас 24.04). LTS = Long-Term Support, обновления безопасности на годы. Под Ubuntu больше всего инструкций и ответов в интернете и у ИИ → меньше тупиков для новичка. Альтернативы: Debian (ещё стабильнее, чуть аскетичнее), AlmaLinux/Rocky (если нужен RHEL-мир). Windows-сервер новичку для веба/кода не нужен.
🧠 Для сеньора: для одноразовых сервисов смотри managed/Apps; для прод — фиксируй версию образа, включай бэкап-снапшоты по расписанию, держи infrastructure-as-code (хотя бы cloud-init / Terraform-провайдер Timeweb).
🤖 Спроси у ИИ (если завис на выборе): «Я новичок, хочу арендовать VPS под <свой проект: сайт/бот/приложение на ___>. Какую конфигурацию (CPU/RAM/диск) и какую ОС взять для старта и почему? Объясни простыми словами.»
Шаг 2. Подключиться к серверу (SSH)
Что такое SSH: защищённый способ «зайти в терминал» сервера со своего компьютера.
Вариант А — по паролю (самый простой)
- Windows: открой PowerShell. macOS/Linux: открой Терминал.
- Введи (IP возьми с Дашборда):
ssh root@185.12.34.56 - Введи пароль root (с Дашборда). Ты внутри сервера. 🎉
Вариант Б — по SSH-ключу (правильный, без пароля, безопаснее)
На своём компьютере:
ssh-keygen -t ed25519 -C "моя почта" # Enter на все вопросы — создастся пара ключей
cat ~/.ssh/id_ed25519.pub # это ПУБЛИЧНЫЙ ключ — его можно показывать
Скопируй вывод (строка вида ssh-ed25519 AAAA...) и в панели Timeweb при создании сервера нажми «Загрузить новый ключ» → вставь → Добавить. Теперь подключение — без пароля:
ssh root@185.12.34.56
⚠️ Безопасность: приватный ключ (
id_ed25519без.pub) — НИКОМУ и НИКУДА не вставляй и не отправляй. Это как ключ от квартиры.Если ключ не цепляется — можно открыть веб-консоль прямо в панели Timeweb и вставить публичный ключ в
~/.ssh/authorized_keysвручную (черезnano).
🤖 Спроси у ИИ: «Я на <Windows/Mac>. Объясни по шагам, как сгенерировать SSH-ключ и подключиться к моему серверу Ubuntu по адресу
. После каждой команды скажи, что должно появиться на экране.»
Шаг 3. Подготовить сервер (5 минут, делается один раз)
Ты внутри сервера. Сделай базовую гигиену:
apt update && apt upgrade -y # обновить систему
adduser anton # создать своего пользователя (не работать под root)
usermod -aG sudo anton # дать ему права админа
Включи firewall (пускаем только нужное):
ufw allow OpenSSH # чтобы не потерять доступ по SSH!
ufw allow 80 # сайт (HTTP)
ufw allow 443 # сайт (HTTPS)
ufw enable # включить
⚠️ Сначала
ufw allow OpenSSH, потомufw enable— иначе закроешь сам себе вход.🧠 Для сеньора: отключи парольный вход (
PasswordAuthentication noв/etc/ssh/sshd_config), оставь только ключи; поставьfail2ban; делайunattended-upgrades; снапшоты Timeweb по расписанию; не держи секреты в истории shell.
🤖 Спроси у ИИ: «Объясни простыми словами, что делает каждая из этих команд, и безопасно ли их выполнять на моём новом сервере Ubuntu 24.04: <вставь команды>.»
Шаг 4. Поставить Docker (чтобы запускать проекты без боли)
Зачем Docker: он упаковывает проект вместе со всем окружением в «коробку» (контейнер). На твоём компе и на сервере всё запускается одинаково — конец фразе «у меня работало». Для новичка это меньше ошибок, для сеньора — повторяемость.
Установка официальным способом (Ubuntu, репозиторий apt):
# базовые пакеты
sudo apt update
sudo apt install -y ca-certificates curl
# ключ репозитория Docker (актуальный формат — файл .asc)
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# подключить репозиторий
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# установка
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# проверка
sudo docker run hello-world
docker compose version
⚠️ В интернете часто советуют
curl ... | sh— это удобно, но запускать скрипт «вслепую из трубы» — плохая привычка (так распространяют вредонос). Способ выше — официальный и прозрачный.🧠 Для сеньора: добавь пользователя в группу
docker(usermod -aG docker anton), помни про риск root-эквивалента; для прод — ограничения ресурсов, healthchecks, отдельная сеть, не светить порты наружу (только через reverse-proxy).
🤖 Спроси у ИИ: «Объясни простыми словами, что такое Docker и зачем он мне для проекта на <язык/фреймворк>. Дай Dockerfile и docker-compose.yml под мой проект и объясни каждую строку.»
Шаг 5. Git и ветки (хранилище кода + защита от потерь)
Git — это «машина времени» для кода: фиксирует версии, позволяет откатиться, вести параллельные направления (ветки) и переносить код между компом и сервером.
Завести репозиторий (на своём компьютере, в папке проекта)
git init
git add .
git commit -m "Первый коммит: старт проекта"
Создай пустой репозиторий на GitHub/GitLab → подключи и отправь:
git remote add origin https://github.com/ТВОЙ_ЛОГИН/мой-проект.git
git branch -M main
git push -u origin main
Ветки — универсальная схема (подходит и соло, и команде)
main— стабильное, то что «в проде». Не пишем сюда напрямую.dev— куда собираем готовые куски.feature/<что-делаешь>— отдельная ветка под каждую задачу.
git checkout -b feature/login # создать ветку под фичу и перейти в неё
# ...пишешь код...
git add .
git commit -m "Добавил вход по почте"
git push -u origin feature/login # отправить ветку
# готово и проверено → влить в dev:
git checkout dev
git merge feature/login
Минимальный набор на каждый день
git status # что изменилось
git add . # подготовить изменения
git commit -m "понятное описание"
git push # отправить в облако
git pull # забрать чужие/свои изменения с другого устройства
.gitignore — что НЕ коммитить (важно!)
Создай файл .gitignore:
node_modules/
.venv/
.env # секреты/пароли — НИКОГДА в git!
*.log
dist/
⚠️ Секреты (пароли, ключи, токены) — НИКОГДА в git. Храни в
.env(он в.gitignore). Утёкший в публичный репозиторий ключ = взлом.🧠 Для сеньора: trunk-based vs git-flow по контексту; защити
main(PR + ревью + CI), conventional commits, подписанные коммиты, секреты — в Vault/Secrets, а не в.envна проде.
🤖 Спроси у ИИ (если запутался): «Я сделал что-то не так в git: <опиши/вставь вывод git status>. Объясни простыми словами, что произошло, и дай точные команды, чтобы вернуть как было, ничего не потеряв.»
Шаг 6. Принести проект на сервер
Путь А — выгрузить существующий проект из локалки (рекомендую)
На сервере (под своим пользователем):
ssh anton@185.12.34.56
git clone https://github.com/ТВОЙ_ЛОГИН/мой-проект.git
cd мой-проект
Дальше создаёшь .env прямо на сервере (секреты вводишь руками, не из git) и запускаешь.
Путь Б — создать новый проект с нуля сразу на сервере
Просто опиши задачу ИИ и собирай по шагам:
🤖 «Помоги создать новый проект <что хочу: лендинг / телеграм-бот / API на ___>. Я на чистом Ubuntu-сервере с Docker. Дай по шагам: структуру файлов, код минимальной рабочей версии, Dockerfile, docker-compose.yml и команду запуска. После каждого шага — как проверить, что работает.»
Шаг 7. Запустить и открыть по ссылке
Запуск через Docker
docker compose up -d # поднять проект в фоне
docker compose logs -f # смотреть логи (Ctrl+C — выйти из просмотра)
docker compose ps # что запущено
Проверь, что приложение отвечает на сервере (например, на порту 3000):
curl http://localhost:3000
Домен + HTTPS (чтобы был красивый адрес и замочек 🔒)
- Купи домен (или возьми бесплатный поддомен), в DNS пропиши A-запись на IP сервера.
- Поставь Caddy — он сам получает HTTPS-сертификат (проще всего для новичка). Минимальный
Caddyfile:
Запусти Caddy (через Docker или пакет) — он автоматически выдаст HTTPS. Готово: проект открывается помойдомен.ru { reverse_proxy localhost:3000 }https://мойдомен.ru.
🧠 Для сеньора: альтернативы — Nginx + certbot, Traefik (лейблы на контейнерах). Добавь healthcheck, авто-рестарт (
restart: unless-stopped), отдельную docker-сеть, логирование/мониторинг (Sentry/Grafana), бэкап БД по cron + снапшоты.
🤖 Спроси у ИИ: «Мой проект слушает порт <3000> на Ubuntu-сервере. Помоги настроить домен <мойдомен.ru> с HTTPS через Caddy по шагам, дай Caddyfile и команды запуска, объясни DNS A-запись простыми словами.»
🆘 Промт-спасалка (работает с любым ИИ)
Сохрани этот шаблон. Когда застрял — заполни и вставь в любой ИИ (ChatGPT, Claude, Gemini, DeepSeek, Qwen, локальный Ollama — без разницы):
Я новичок, объясняй простыми словами и по шагам.
МОЯ ЦЕЛЬ: <что хочу получить в итоге>
ГДЕ Я: VPS на Timeweb, Ubuntu 24.04, есть Docker и Git. <что уже сделал>
Я ЗАСТРЯЛ НА: <какой шаг / что пытаюсь сделать>
ВОТ ЧТО ВИЖУ (ошибка/вывод):
<вставь точный текст ошибки или опиши что на экране>
Что делать:
1) Объясни простыми словами, что это значит и почему так.
2) Дай точные команды по шагам ПОД МОЮ СИСТЕМУ (Ubuntu 24.04).
3) После каждой команды скажи, что должно произойти и как понять, что всё ок.
4) Если шаг необратимый (удаление, перезапись, деплой) — предупреди и предложи бэкап.
5) В конце — как проверить, что цель достигнута.
Мини-промты под каждый шаг (на случай тупика):
- Выбор сервера → «Какой VPS и ОС под мой проект и почему?»
- Подключение → «Как зайти на сервер по SSH с <Windows/Mac>, по шагам?»
- Подготовка → «Что делают эти команды и безопасны ли они? <вставь>»
- Docker → «Дай Dockerfile и docker-compose.yml под мой проект на <стек>, объясни строки.»
- Git → «Я запутался в git:
. Как вернуть как было, ничего не потеряв?» - Деплой → «Настрой домен + HTTPS через Caddy для порта
, по шагам.»
💎 Глубина и ценность (зачем всё это)
- Ты перестаёшь зависеть от «специально обученных людей». Связка «дешёвый сервер + Git + Docker + любой ИИ как наставник» = ты сам доводишь идею до живого продукта в интернете.
- Принцип важнее кнопок. Интерфейсы хостингов и версии команд меняются — но модель «арендовал → подключился → подготовил → запустил в контейнере → выложил через Git → открыл по домену» не меняется. Понял модель — справишься на любом хостинге.
- ИИ — это наставник, а не костыль. Не «сделай за меня вслепую», а «объясни и проведи по шагам, чтобы я понял». Тогда растёшь: от «бабушка по инструкции» до «сам себе DevOps».
- Безопасность — часть мастерства. Ключи не светить, секреты не в git, firewall включён, перед необратимым — бэкап. Это отличает уверенного человека от того, кто однажды потеряет данные.
Когда базовый путь освоен и хочется автономности следующего уровня (команда ИИ-агентов: владелец продукта + архитектор + инженер + ревью + безопасность, доведение задачи до конца с авто-тестом) — смотри вкладку Laskoff OS в сервисе. Это уже продвинутый трек поверх этих же принципов.