Свой сервер и домен: VPS, деплой, обновления, бэкапы
Твой продукт на своём сервере по адресу с https, файл DEPLOY.md с шагами обновления, отката и восстановления и копия базы вне сервера, проверенная восстановлением.
Задача
Онур (урок 4.3) хочет, чтобы бот принимал заявки и ночью, а не только при включённом ноутбуке. Хасан (урок 4.4) хочет открывать учёт с телефона прямо в мастерской. Обоим нужен круглосуточный сервер и домен с https.
Словарик.
- VPS: арендованный виртуальный компьютер в дата-центре. Обычно на нём стоит Linux, чаще Ubuntu.
- SSH: защищённое подключение к серверу. Вместо пароля используют SSH-ключ: «замок» лежит на сервере, «ключ» есть только у тебя.
- A-запись (DNS): строка «домен → IP-адрес сервера».
- HTTPS-сертификат: даёт замок в браузере и шифрует данные. Let's Encrypt выдаёт его бесплатно.
Шаги
Выбери провайдера VPS. Цены не приводим: они разные и меняются. На что смотреть:
- есть Ubuntu (Claude Code поддерживает Ubuntu 20.04+, если захочешь запускать его на сервере);
- страна дата-центра. Если сервер за границей, а на нём данные клиентов, это передача за рубеж по KVKK (статья 9). С этим к юристу;
- есть ли снимки (snapshots) и бэкапы.
Создай сервер с SSH-ключом. Попроси Claude Code: «Создай SSH-ключ и объясни, какую часть вставить в панель хостинга». В панель идёт только публичная часть (файл
.pub). Приватную никому не отправляй и в чат не вставляй.Подключи Claude Code к серверу.
- Приложение: под полем ввода открой выбор среды → New environment → вкладка SSH → список Host → Add SSH connection…. Заполни Name, SSH host (
пользователь@IP), при необходимости SSH key (например,~/.ssh/id_ed25519) → Add SSH connection. Выбери папку на сервере → Create environment. По документации приложение само ставит Claude Code на сервер при первом подключении. - Терминал: Claude Code работает с сервером через SSH-команды.
Режим ставь Manual: каждая команда проходит через тебя. В терминале сессия стартует в Auto, переключи
Shift + Tab(урок 4.1).
- Приложение: под полем ввода открой выбор среды → New environment → вкладка SSH → список Host → Add SSH connection…. Заполни Name, SSH host (
Базовая защита. Минимум:
- отдельный пользователь вместо root, вход только по ключу, вход по паролю выключен;
- файрвол: открыты только SSH, 80 и 443;
- автообновления безопасности. В Ubuntu пакет
unattended-upgradesстоит по умолчанию и раз в день ставит обновления безопасности. Сервер он не перезагружает: это нужно решить отдельно. ⚠️ Прежде чем выключать вход по паролю, проверь в новом окне, что вход по ключу работает. Иначе закроешь дверь перед собой.
Деплой. Claude Code ставит нужные программы, загружает код и настраивает автозапуск после перезагрузки.
.envс секретами заполняешь ты (урок 4.3). Все шаги Claude записывает вDEPLOY.md, чтобы их можно было повторить.Домен и HTTPS. Купи домен у регистратора и создай у него A-запись на IP сервера. DNS обновляется не мгновенно, подожди. Затем поставь сертификат Let's Encrypt через Certbot (его советует сам Let's Encrypt). Попроси Claude настроить автопродление и показать, как его проверить.
Обновления приложения. Порядок всегда один: правка у себя → проверка у себя → коммит → бэкап базы на сервере → деплой → проверка на сайте. Попроси скрипт деплоя и отката.
Бэкапы: «далеко и проверено».
- автоматическая копия базы по расписанию, с датой в имени;
- копия уходит за пределы сервера;
- старые копии удаляются по правилу «храним последние N»;
- раз в месяц пробное восстановление. Непроверенный бэкап это надежда, а не бэкап.
Наблюдение. Проверка «жив ли сайт» с сообщением в Telegram через бота из урока 4.3.
Шаблон
Я [имя], не программист. Объясняй каждую команду одной фразой ДО запуска.
Сервер: Ubuntu [версия], IP [адрес], вход по SSH-ключу, пользователь [имя].
Приложение: [что и откуда]. Домен: [домен], A-запись указывает на IP.
Настройка:
1. Обнови систему, отдельный пользователь, вход только по ключу; root и пароли выключи. Но сначала убедись, что я вхожу по ключу в новом окне.
2. Файрвол: только SSH, 80, 443.
3. Проверь unattended-upgrades, спроси меня про автоперезагрузку.
Деплой:
4. Установи нужное, загрузи приложение, автозапуск после перезагрузки.
5. Создай .env.example. .env не создавай и не читай: заполню сама и скажу «готово».
6. HTTPS через Let's Encrypt (Certbot) с автопродлением.
Бэкапы:
7. Ежедневная копия базы с датой в [куда, вне сервера], храним последние [N].
8. Пробное восстановление на тестовую копию.
9. Всё запиши в DEPLOY.md: обновление, откат, восстановление.
По одному пункту, после каждого скажи, как проверить.
Возьми один свой продукт из уроков 4.2-4.4 и выпиши по шагу 1, какого провайдера VPS выберешь и почему (Ubuntu, страна дата-центра, снимки). Если готов, разверни продукт по шаблону, по одному пункту, и сделай одно пробное восстановление базы из бэкапа.
✓ Как понять, что получилосьТвой адрес открывается по https с замком, вход на сервер по паролю выключен, а после перезагрузки сервера приложение запускается само. В проекте есть DEPLOY.md с шагами обновления, отката и восстановления, а копия базы лежит вне сервера и реально восстановилась.
- Критерии выбора VPS: Ubuntu, страна дата-центра, снимки и бэкапы
- Минимум защиты сервера: вход только по ключу, файрвол, автообновления
- Порядок обновления: правка, проверка, коммит, бэкап, деплой, проверка на сайте
- Правило бэкапа «далеко и проверено»
Сегодня выбери один свой продукт из уроков 4.2-4.4 и выпиши, какого провайдера VPS возьмёшь и почему: Ubuntu, страна дата-центра, снимки. Шаблон настройки сохрани в заметку «Мои запросы».
Источники
- Desktop quickstart (code.claude.com): среда SSH, автоустановка на удалённую машину (проверено 27.10.2026)
- Desktop (code.claude.com): шаги New environment → SSH → Add SSH connection…, поля подключения
- Setup (code.claude.com): Ubuntu 20.04+, Debian 10+
- Permission modes (code.claude.com): терминал стартует в Auto, переключение на Manual
- Automatic updates (ubuntu.com): unattended-upgrades по умолчанию, без автоперезагрузки
- Getting Started (letsencrypt.org): бесплатно, Certbot для тех, у кого есть доступ к серверу
- 6698 sayılı KVKK (mgm.adalet.gov.tr): статьи 9 и 12