Multiplatformová aplikácia na vytváranie a správu VirtualBox VM a externých SSH serverov: súbory cez SFTP, inštalácia aplikácií, skripty, monitoring — a to všetko so šifrovaním SSH hesiel na zariadení ešte pred odoslaním na server.
Kompletný cyklus správy infraštruktúry z jednej aplikácie — od vytvorenia virtuálneho stroja až po streamovaný výstup vlastných skriptov.
Mobilná aplikácia na Expo/React Native komunikuje s monolitickým backendom na NestJS cez REST a WebSocket. Všetky SSH operácie sa vykonávajú prostredníctvom jednorazových tokenov — server nikdy neuchováva dešifrované heslá dlhšie ako jeden request. Kompletný rozbor architektúry →
flowchart LR
subgraph client["Mobilný klient (Expo / React Native)"]
UI["Obrazovky (expo-router)"]
RQ["React Query"]
CR["Crypto Layer (Argon2id, AES-256-GCM)"]
end
subgraph backend["Backend (NestJS)"]
API["REST API"]
WS["WebSocket Gateway"]
MODS["auth / vps / server-connection /
cloud-provider / custom-scripts"]
end
DB[("MySQL")]
CACHE[("Redis / Valkey")]
VBOX["VirtualBox"]
SSHSRV["Externé SSH servery"]
CLOUD["Timeweb / Yandex Cloud API"]
UI --> RQ --> API
UI --> WS
CR -. šifrovanie credentials .-> API
API --> MODS
WS --> MODS
MODS --> DB
MODS --> CACHE
MODS -- SSH --> VBOX
MODS -- SSH --> SSHSRV
MODS -- REST --> CLOUD Celková architektúra: klient, NestJS API, MySQL, Redis/Valkey, SSH servery a VirtualBox
SSH prihlasovacie údaje nikdy neopúšťajú zariadenie v otvorenej podobe a každá operácia je potvrdená jednorazovým podpísaným tokenom. Všetky vrstvy ochrany →
| Mobilná aplikácia | |
|---|---|
| Platforma | Expo SDK 54, React Native 0.81 |
| Routing | expo-router 6 (súborové smerovanie) |
| Stav | Zustand + TanStack React Query 5 |
| Kryptografia | react-native-quick-crypto, react-native-argon2 |
| Úložisko | expo-secure-store, AsyncStorage |
| Backend | |
|---|---|
| Framework | NestJS 11, TypeScript |
| Databáza | MySQL + Prisma 6 |
| Cache / fronty | Redis (Valkey) cez ioredis |
| SSH / SFTP | ssh2, ssh2-sftp-client |
| Autentifikácia | Passport JWT, Google/Yandex OAuth, MAX Bot |
Niekoľko obrazoviek aplikácie. Zobraziť všetkých 15 snímok →