diff --git a/doc/infrastructure/remote-dev-workflow.md b/doc/infrastructure/remote-dev-workflow.md new file mode 100644 index 0000000..6484cc6 --- /dev/null +++ b/doc/infrastructure/remote-dev-workflow.md @@ -0,0 +1,87 @@ +# Работа с удалённой машиной Nubes + +Дата: 2026-03-12 + +## Проблема + +Локальный терминал Copilot нестабилен из-за VPN — команды зависают, таймауты. +**Весь код физически живёт на удалённой Ubuntu VM**, доступной по SSH. + +## Архитектура + +``` +Локальная машина (Krupski) + └── SSHFS → /home/naeel/remote_dev → naeel@5.172.178.213:/home/naeel/terra + └── sless/ ← реальный репозиторий +``` + +## Подключение к VM + +```bash +# Хост +VM_HOST=naeel@5.172.178.213 +VM_KEY=/home/naeel/.ssh/id_ed25519 # ~/.ssh/id_ed25519 = копия secrets/naeel_vm_id_ed25519 + +# Проверить подключение +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 "hostname && whoami" + +# Выполнить команду удалённо +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 "cd /home/naeel/terra/sless && <команда>" +``` + +## Путь к репозиторию на VM + +``` +/home/naeel/terra/sless +``` + +## Git push через SSH (Gitea) + +Remote origin использует HTTPS → нужен SSH для беспарольного пуша. + +На VM уже лежит ключ `~/.ssh/gitea_key` (тот же ключ, что `id_ed25519`, зарегистрирован в Gitea). + +```bash +# Пуш с VM +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 \ + 'cd /home/naeel/terra/sless && \ + GIT_SSH_COMMAND="ssh -i ~/.ssh/gitea_key -o StrictHostKeyChecking=no" \ + git push git@gitea-naeel.giteak8s.services.ngcloud.ru:naeel/sless.git ' +``` + +## Gitea SSH ключи + +Ключ `~/.ssh/id_ed25519` зарегистрирован в Gitea: +- Email: tazet@narod.ru +- Fingerprint: `SHA256:WUAvQXXmRUr6jHHdkMDljKKBUEQ8ot2cTU3YSixqYe4` + +## Типовой git workflow (commit + push) + +```bash +ssh -i /home/naeel/.ssh/id_ed25519 -o StrictHostKeyChecking=no naeel@5.172.178.213 ' + cd /home/naeel/terra/sless + git add <файлы> + git commit -m "<сообщение>" + GIT_SSH_COMMAND="ssh -i ~/.ssh/gitea_key -o StrictHostKeyChecking=no" \ + git push git@gitea-naeel.giteak8s.services.ngcloud.ru:naeel/sless.git +' +``` + +## SSHFS монтирование (восстановить если упало) + +```bash +sshfs \ + -o IdentityFile=/home/naeel/.ssh/id_ed25519 \ + -o StrictHostKeyChecking=no \ + -o UserKnownHostsFile=/dev/null \ + -o reconnect \ + -o ServerAliveInterval=15 \ + -o ServerAliveCountMax=3 \ + naeel@5.172.178.213:/home/naeel/terra /home/naeel/remote_dev +``` + +## Примечания + +- `secrets/naeel_vm_id_ed25519` и `~/.ssh/id_ed25519` — одинаковые ключи (SHA256 совпадает) +- При зависании локального терминала — выполнять команды через SSH на VM напрямую +- Git config на VM настроен: `user.name=Naeel`, `user.email=naeel@nubes.ru`