Files
sless/doc/infrastructure/remote-dev-workflow.md
T

3.2 KiB
Raw Blame History

Работа с удалённой машиной 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

# Хост
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).

# Пуш с 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 <branch>'

Gitea SSH ключи

Ключ ~/.ssh/id_ed25519 зарегистрирован в Gitea:

  • Email: tazet@narod.ru
  • Fingerprint: SHA256:WUAvQXXmRUr6jHHdkMDljKKBUEQ8ot2cTU3YSixqYe4

Типовой git workflow (commit + push)

Токен лежит в secrets/gitea.token (Gitea PAT, repository read+write).

TOKEN=$(cat /home/naeel/remote_dev/sless/secrets/gitea.token | tr -d '\n')
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 push https://naeel:${TOKEN}@gitea-naeel.giteak8s.services.ngcloud.ru/naeel/sless.git <branch>
"

SSHFS монтирование (восстановить если упало)

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