Multiplatformska aplikacija za kreiranje i upravljanje VirtualBox VM i eksternim SSH-serverima: fajlovi preko SFTP-a, instalacija aplikacija, skripte, monitoring — i sve to sa šifrovanjem SSH-lozinki na uređaju još pre slanja na server.
Pun ciklus upravljanja infrastrukturom iz jedne aplikacije — od kreiranja virtuelne mašine do strimovanog izlaza korisničkih skripti.
Mobilna aplikacija na Expo/React Native komunicira sa monolitnim backend-om na NestJS preko REST-a i WebSocket-a. Sve SSH operacije se izvršavaju preko jednokratnih tokena — server nikada ne čuva dešifrovane lozinke duže od jednog zahteva. Kompletan pregled arhitekture →
flowchart LR
subgraph client["Mobilni klijent (Expo / React Native)"]
UI["Ekrani (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["Eksterni SSH-serveri"]
CLOUD["Timeweb / Yandex Cloud API"]
UI --> RQ --> API
UI --> WS
CR -. šifrovanje credentials .-> API
API --> MODS
WS --> MODS
MODS --> DB
MODS --> CACHE
MODS -- SSH --> VBOX
MODS -- SSH --> SSHSRV
MODS -- REST --> CLOUD Opšta arhitektura: klijent, NestJS API, MySQL, Redis/Valkey, SSH-serveri i VirtualBox
SSH-akreditivi nikada ne napuštaju uređaj u čitljivom obliku, a svaka operacija se potvrđuje jednokratnim potpisanim tokenom. Svi nivoi zaštite →
| Mobilna aplikacija | |
|---|---|
| Platforma | Expo SDK 54, React Native 0.81 |
| Rutiranje | expo-router 6 (fajl-bazirano rutiranje) |
| Stanje | Zustand + TanStack React Query 5 |
| Kriptografija | react-native-quick-crypto, react-native-argon2 |
| Skladište | expo-secure-store, AsyncStorage |
| Backend | |
|---|---|
| Framework | NestJS 11, TypeScript |
| Baza podataka | MySQL + Prisma 6 |
| Keš / redovi | Redis (Valkey) preko ioredis |
| SSH / SFTP | ssh2, ssh2-sftp-client |
| Autentifikacija | Passport JWT, Google/Yandex OAuth, MAX Bot |
Nekoliko ekrana aplikacije. Pogledaj svih 15 snimaka ekrana →