Aplicație cross-platform pentru crearea și gestionarea mașinilor virtuale VirtualBox și a serverelor SSH externe: fișiere prin SFTP, instalare de aplicații, scripturi, monitorizare — totul cu criptarea parolelor SSH pe dispozitiv, chiar înainte de a fi trimise către server.
Ciclu complet de administrare a infrastructurii dintr-o singură aplicație — de la crearea unei mașini virtuale până la afișarea în flux a rezultatului scripturilor personalizate.
Aplicația mobilă pe Expo/React Native comunică cu un backend monolitic pe NestJS prin REST și WebSocket. Toate operațiunile SSH sunt executate prin token-uri de unică folosință — serverul nu stochează niciodată parolele decriptate mai mult decât durata unei singure cereri. Analiza completă a arhitecturii →
flowchart LR
subgraph client["Client mobil (Expo / React Native)"]
UI["Ecrane (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["Servere SSH externe"]
CLOUD["Timeweb / Yandex Cloud API"]
UI --> RQ --> API
UI --> WS
CR -. criptarea credențialelor .-> API
API --> MODS
WS --> MODS
MODS --> DB
MODS --> CACHE
MODS -- SSH --> VBOX
MODS -- SSH --> SSHSRV
MODS -- REST --> CLOUD Arhitectura generală: client, API NestJS, MySQL, Redis/Valkey, servere SSH și VirtualBox
Datele de autentificare SSH nu părăsesc niciodată dispozitivul în formă necriptată, iar fiecare operațiune este confirmată printr-un token semnat de unică folosință. Toate nivelurile de protecție →
| Aplicație mobilă | |
|---|---|
| Platformă | Expo SDK 54, React Native 0.81 |
| Rutare | expo-router 6 (rutare bazată pe fișiere) |
| Stare | Zustand + TanStack React Query 5 |
| Criptografie | react-native-quick-crypto, react-native-argon2 |
| Stocare | expo-secure-store, AsyncStorage |
| Backend | |
|---|---|
| Framework | NestJS 11, TypeScript |
| Bază de date | MySQL + Prisma 6 |
| Cache / cozi | Redis (Valkey) prin ioredis |
| SSH / SFTP | ssh2, ssh2-sftp-client |
| Autentificare | Passport JWT, Google/Yandex OAuth, MAX Bot |
Câteva ecrane din aplicație. Vezi toate cele 15 capturi de ecran →