# Bare metal (mevnode) jako IaC: runner na VPS Cel: utrzymywać `mevnode-baremetal` (Solana RPC box) jako **IaC w Git**, wdrażane z VPS. Dlaczego z VPS: - masz stały “runner” (k3s box), który i tak żyje 24/7, - łatwiej ograniczyć dostęp do bare metalu (WireGuard + allowlist), - nie mieszasz kluczy i narzędzi na laptopie. ## Założenia - Na VPS masz alias SSH `mevnode-baremetal` (w `~/.ssh/config`). - Na bare metalu w `root/.ssh/authorized_keys` jest publiczny klucz z VPS. - Repo `trade` jest dostępne na VPS (clone). ## Katalog IaC w repo W tym repo jest starter Ansible: - `infra/baremetal-solana-rpc/` — Agave (systemd) + opcjonalny Geyser + monitoring. Sekrety (identity keypair, tokeny) **nie są w repo**. ## Setup na VPS (runner) 1) Zainstaluj Ansible (Ubuntu/Debian na VPS): ```bash sudo apt-get update sudo apt-get install -y ansible ``` 2) Clone repo (jeśli nie masz): ```bash git clone trade cd trade ``` 3) Uzupełnij inventory/vars (lokalne, nie commitujemy): ```bash cd infra/baremetal-solana-rpc/ansible cp inventory/hosts.ini.example inventory/hosts.ini cp group_vars/solana_rpc.yml.example group_vars/solana_rpc.yml ``` 4) Dostosuj `group_vars/solana_rpc.yml` pod Wasz WireGuard IP, ścieżki danych i opcje Geyser. 5) Wdroż: ```bash ansible-playbook -i inventory/hosts.ini playbook.yml ``` ## Co to już robi (MVP) - instaluje pakiety bazowe + `chrony`, - przygotowuje usera `solana` + katalogi danych/logów, - wrzuca systemd unit `solana-rpc` (Agave), - (opcjonalnie) wrzuca config Yellowstone i podpina plugin, - instaluje monitoring (node_exporter + probe RPC) opisany w `doc/rpc/baremetal-monitoring.md`. ## Co dalej (kolejne warstwy) - WireGuard + firewall (żeby RPC/WS/gRPC nie wisiały publicznie), - ograniczenie `RPC/WS` bind do WG IP, - rotacja logów / limity journald, - backup identity keypair + runbook odtwarzania.