Инструкция · перенос на аккаунт evolutioncar.nsk

Claude Code на новом VPS: всё под ключ через Codex

Отдаёшь Codex один текст, и он по шагам делает всё сам. Ставит Claude Code на сервер, переносит все наши скиллы, агентов и правила, подключает VS Code и скачивает весь набор на твой компьютер. Тебе остаётся ввести пароли, когда он попросит.

0

Что получится

GitHub tema-mail/claude-codex-kit · приватный

  • 64 скилла и 12 агентов Claude
  • 92 скилла и 2 агента Codex
  • Правила, хуки, память
  • Всё одним файлом

Твой компьютер Mac или Windows

  • Codex ведёт установку
  • VS Code + Remote-SSH
  • Копия набора локально

Сервер evo-vps Ubuntu, пользователь claude

  • Claude Code под evolutioncar.nsk
  • Node 22 для сайтов на Astro
  • Весь набор в ~/.claude
  • Проекты в ~/projects

Стек закреплён в правилах: фронт сайтов всегда Astro. Бэкенд выбирает архитектор под задачу. Анимации по возможности на Preact, но можно и другое, если ситуация требует. Claude на сервере будет знать это с первой сессии.

1

Что подготовить

2

Скопируй это в Codex

Нажми «Скопировать всё», открой Codex, вставь текст и отправь. Дальше Codex будет вести по шагам: сам запускает команды и спрашивает тебя, только когда нужен пароль или клик в браузере.

Задание для Codex · CODEX-ИНСТРУКЦИЯ.md
# Задание для Codex: развернуть Claude Code на VPS с набором скиллов

Ты — Codex на компьютере пользователя. Цель: на сервере (VPS) работает Claude Code со всеми скиллами, агентами, правилами и памятью из репозитория `tema-mail/claude-codex-kit`; пользователь открывает его через VS Code (Remote-SSH); копия набора стоит и на этом компьютере.

## Как вести пользователя

- По-русски, коротко. Шаги строго по одному: выполнил → проверил вывод → следующий.
- Команды, которые можешь выполнить сам в терминале этого компьютера, — выполняй сам и показывай результат.
- Пароли вводит только пользователь (запрос пароля SSH, вход в Google). Не проси вставить пароль в чат, не сохраняй пароли и токены в файлы.
- Токен GitHub нужен один раз, на шаге 2. На сервер его не передавай: набор уезжает туда архивом по SSH (шаг 8).
- Ошибку разбирай по её выводу. Не переходи дальше, пока проверка шага не прошла.

## Данные (спроси у пользователя в начале)

| Что | Значение |
| --- | --- |
| Система этого компьютера | macOS или Windows |
| IP сервера | `<IP_СЕРВЕРА>` — из письма или панели хостинга |
| Вход на сервер от хостинга | `root` + пароль из письма хостинга |
| Токен GitHub | `<ТОКЕН_GITHUB>` — дадут отдельно |
| Аккаунт Claude | `evolutioncar.nsk@gmail.com`, пароль дадут отдельно; нужна подписка Claude Pro или Max |

Требования к серверу: чистый Ubuntu 22.04/24.04 (или Debian 12), от 2 ГБ RAM, **в стране, где доступен Claude** (например Нидерланды, Германия, США). Это обязательно: Claude Code обращается к API с самого сервера, и VPN на компьютере пользователя на это не влияет — на российском VPS установка оборвётся, а Claude не заработает.

Ниже `IP` = IP сервера, `TOKEN` = токен GitHub.

---

## Шаг 1. Программы на этом компьютере

**Windows: все команды дальше выполняй в Git Bash** (Пуск → Git Bash), не в PowerShell — тогда они одинаковые для обеих систем.

macOS:

```bash
brew install --cask visual-studio-code   # нет Homebrew — скачать с https://code.visualstudio.com
git --version                            # нет git — xcode-select --install, дождаться окна установки
```

Windows (PowerShell, один раз):

```powershell
winget install --id Git.Git -e
winget install --id Microsoft.VisualStudioCode -e
```

Расширения VS Code (в новом терминале):

```bash
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension anthropic.claude-code
```

Если `code` не найдена (VS Code скачан вручную): открыть VS Code → `F1` → `Shell Command: Install 'code' command in PATH` → повторить.

Проверка: `git --version` и `code --version` печатают версии.

## Шаг 2. Скачать набор на этот компьютер

Токен вводится в запрос пароля, а `credential.helper=` отключает хранилище паролей — поэтому токен не остаётся ни в командной строке, ни в связке ключей, ни в `.git/config`:

```bash
cd ~ && git -c credential.helper= clone https://github.com/tema-mail/claude-codex-kit.git claude-codex-kit
```

На запрос `Username` ввести `x-access-token`, на `Password` — токен (вводит пользователь; в терминале он не отображается).

Проверка: `ls ~/claude-codex-kit/install.sh` и `grep -c token ~/claude-codex-kit/.git/config` → файл есть, счётчик `0`.

Разложить скиллы и правила локально (для Codex и Claude Code на этом компьютере):

```bash
cd ~/claude-codex-kit && bash install.sh
```

Проверка: в конце «Готово.», «Скиллы Claude: не меньше 64», «Скиллы Codex: не меньше 76». Если у пользователя были свои скиллы, чисел будет больше — это нормально; заменённое лежит в `~/.kit-backup-<дата>`.

## Шаг 3. SSH-ключ

```bash
mkdir -p ~/.ssh && ssh-keygen -t ed25519 -f ~/.ssh/evo_vps_ed25519 -N "" -C "evo-vps"
```

## Шаг 4. Положить ключ на сервер (пароль вводит пользователь)

Попроси пользователя выполнить в своём терминале и ввести пароль root от хостинга:

```bash
cat ~/.ssh/evo_vps_ed25519.pub | ssh root@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
```

Первый раз спросит `Are you sure you want to continue connecting` → `yes`.

Проверка (пароль уже не спрашивает): `ssh -i ~/.ssh/evo_vps_ed25519 root@IP "echo ok"` → `ok`.

## Шаг 5. Рабочий пользователь `claude` на сервере

```bash
ssh -i ~/.ssh/evo_vps_ed25519 root@IP 'bash -s' <<'EOF'
set -e
id claude >/dev/null 2>&1 || adduser --disabled-password --gecos "" claude
usermod -aG sudo claude
echo 'claude ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/claude && chmod 440 /etc/sudoers.d/claude
mkdir -p /home/claude/.ssh
cp /root/.ssh/authorized_keys /home/claude/.ssh/authorized_keys
chown -R claude:claude /home/claude/.ssh && chmod 700 /home/claude/.ssh && chmod 600 /home/claude/.ssh/authorized_keys
echo user-ok
EOF
```

Проверка: вывод `user-ok`.

## Шаг 6. Алиас сервера в SSH-конфиге

Добавь в `~/.ssh/config` (Windows в Git Bash — тот же путь), подставив IP:

```
Host evo-vps
    HostName IP
    User claude
    IdentityFile ~/.ssh/evo_vps_ed25519
    IdentitiesOnly yes
    ServerAliveInterval 30
    ServerAliveCountMax 3
```

Проверка: `ssh evo-vps "whoami"` → `claude`.

## Шаг 7. Закрыть вход по паролю (только после успешной проверки шага 6)

```bash
ssh evo-vps 'printf "PasswordAuthentication no\nKbdInteractiveAuthentication no\nPermitRootLogin prohibit-password\n" | sudo tee /etc/ssh/sshd_config.d/00-keys-only.conf >/dev/null && sudo sshd -t && (sudo systemctl restart ssh || sudo systemctl restart sshd) && echo ssh-ok'
```

Проверка: `ssh-ok`, затем снова `ssh evo-vps whoami` → `claude`. Если второй проверки нет — не закрывай терминал, зайди через консоль в панели хостинга и удали `/etc/ssh/sshd_config.d/00-keys-only.conf`.

## Шаг 8. Claude Code и набор на сервере

Набор уезжает архивом по SSH — токен на сервер не попадает:

```bash
tar -C ~ -czf - claude-codex-kit | ssh evo-vps 'tar -xzf - -C ~ && bash ~/claude-codex-kit/vps-setup.sh'
```

Скрипт ставит git, Node.js 22, gitleaks, Claude Code и раскладывает набор. Занимает 3–7 минут (архив ~130 МБ).

Проверка: в конце «Сервер готов», версии `node v22…` и `claude …`.

## Шаг 9. VS Code → сервер

1. VS Code → `F1` → `Remote-SSH: Connect to Host` → `evo-vps` → платформа **Linux**.
2. Внизу слева зелёная плашка `SSH: evo-vps`.
3. File → Open Folder → `/home/claude/projects` → «Yes, I trust the authors».
4. Extensions → Claude Code → **Install in SSH: evo-vps** (если кнопка есть).

## Шаг 10. Вход в Claude (делает пользователь)

1. Включить VPN в стране, где работает Claude. Это нужно только для входа в браузере: из России сайт claude.ai не открывается.
2. Панель Claude слева → **Log in** → в браузере **Continue with Google** → `evolutioncar.nsk@gmail.com` → пароль.
3. Браузер покажет «Authentication successful» или код → вернуться в VS Code, код вставить в поле.
4. После входа VPN можно выключить: логин хранится на сервере, а сам сервер стоит в стране, где Claude доступен.

Запасной путь, если кнопки нет: терминал VS Code (`Ctrl+\``) → `claude` → `/login` → открыть ссылку в браузере → вставить код.

## Шаг 11. Итоговая проверка

В терминале VS Code (он уже на сервере, папка `/home/claude/projects`):

```bash
claude --version && ls ~/.claude/skills | wc -l && ls ~/.claude/agents | wc -l && grep -c Astro ~/.claude/CLAUDE.md && ls ~/.claude/projects/-home-claude-projects/memory | wc -l
```

Ожидается: версия Claude Code, не меньше `64`, не меньше `12`, число больше `0`, `13` файлов памяти.

В панели Claude спросить: «какой стек для сайтов у нас закреплён?» → ответ: фронт Astro, бэкенд выбирает архитектор под задачу, анимации предпочтительно Preact.

## Если сломалось

| Симптом | Что делать |
| --- | --- |
| `Permission denied (publickey)` | Ключ не на сервере или не тот файл: повторить шаги 4–6. |
| `Connection closed` до ввода пароля | Сервер временно забанил IP: подождать 15–60 мин или сменить IP (VPN); запасной вход — консоль в панели хостинга. |
| `git clone`: 401 или 403 | Токен неверный или истёк — попросить новый. |
| Установщик Claude Code не скачивается | Сервер в стране, где Claude недоступен. Нужен другой VPS; VPN на компьютере не поможет. |
| `claude: command not found` | Открыть новый терминал или `export PATH="$HOME/.local/bin:$PATH"`. |
| Claude пишет «not available in your region» | VPN выключен или страна не та; включить и повторить Log in. |
| Windows: `ssh` не найден | Settings → Apps → Optional features → OpenSSH Client. |
| `apt-get`: could not get lock | Идут автообновления; скрипт ждёт до 10 минут сам, иначе подождать и запустить `bash ~/claude-codex-kit/vps-setup.sh` снова. |

## Обновление набора потом

```bash
cd ~/claude-codex-kit && git pull && bash install.sh     # на компьютере, спросит логин и токен
tar -C ~ -czf - claude-codex-kit | ssh evo-vps 'tar -xzf - -C ~ && bash ~/claude-codex-kit/install.sh'   # на сервер
```

Этот же текст лежит в репозитории файлом CODEX-ИНСТРУКЦИЯ.md.

3

Что будет по шагам

  1. 1
    Программы. Git, VS Code, расширения Remote-SSH и Claude Code. Codex
  2. 2
    Набор на компьютер. Скачивает репозиторий и раскладывает скиллы локально. дай токен GitHub
  3. 3
    SSH-ключ. Создаёт ключ evo_vps_ed25519. Codex
  4. 4
    Ключ на сервер. Одна команда, она спросит пароль root. введи пароль
  5. 5
    Пользователь claude на сервере с правами администратора. Codex
  6. 6
    Алиас evo-vps в SSH-конфиге. Codex
  7. 7
    Вход только по ключу. Пароль на сервере отключается. Codex
  8. 8
    Claude Code на сервере. Node 22, gitleaks, Claude Code и весь набор, 2–5 минут. Codex
  9. 9
    VS Code к серверу. Connect to Host → evo-vps → папка /home/claude/projects. клики в VS Code
  10. 10
    Вход в Claude. Включи VPN, нажми Log in, затем Continue with Google под evolutioncar.nsk@gmail.com. вход в браузере
  11. 11
    Проверка. Сверка количества скиллов и агентов, вопрос Claude про стек. Codex
4

Что в наборе

ЧтоКуда ставитсяСколько
Правила Claude~/.claude/CLAUDE.md1
Агенты и субагенты Claude~/.claude/agents12
Скиллы Claude~/.claude/skills64
Хуки и настройки~/.claude/hooks, settings.json2 + 1
Память~/.claude/projects/…/memory11
Правила и агенты Codex~/.codex/AGENTS.md, ~/.codex/agents1 + 2
Скиллы Codex~/.codex/skills, ~/.agents/skills76 + 16
Всё одним файломВСЁ-В-ОДНОМ.md в репозитории16 МБ

Ключей сервисов в наборе нет: OpenRouter, Segmind, Scrape Creators, база viberendered. Без них соответствующие скиллы работают только как справочники. Ключи кладутся вручную в ~/.claude/secrets/<имя>.key.

5

Проверка

В терминале VS Code (он уже на сервере):

claude --version && ls ~/.claude/skills | wc -l && ls ~/.claude/agents | wc -l

Должно быть: версия, 64, 12. Потом в панели Claude:

какой стек для сайтов у нас закреплён?

Правильный ответ: фронт Astro, бэкенд выбирает архитектор, анимации по возможности Preact.

6

Если сломалось

СимптомЧто делать
Permission denied (publickey)Ключ не попал на сервер или указан не тот файл. Повторить шаги 4–6.
Connection closed до ввода пароляСервер временно заблокировал IP. Подождать 15–60 минут, сменить IP через VPN или зайти через консоль в панели хостинга.
git clone: 401 или 403Токен GitHub неверный или истёк. Попросить новый.
claude: command not foundОткрыть новый терминал или выполнить export PATH="$HOME/.local/bin:$PATH".
«not available in your region»VPN выключен или выбрана не та страна. Включить VPN и снова нажать Log in.
Windows: ssh не найденSettings → Apps → Optional features → OpenSSH Client.

Обновить набор, когда в репозитории появятся новые скиллы:

cd ~/claude-codex-kit && git pull && bash install.sh