# Folder Structure ```text NexaVPN/ ├── README.md ├── docs/ │ ├── api.md │ ├── architecture.md │ ├── deployment.md │ ├── enrollment.md │ ├── folder-structure.md │ ├── gateway.md │ └── schema.md ├── backend/ │ ├── cmd/api/ │ │ └── main.go │ ├── internal/ │ │ ├── apiutil/ │ │ ├── app/ │ │ ├── audit/ │ │ ├── auth/ │ │ ├── config/ │ │ ├── db/ │ │ ├── device/ │ │ ├── gateway/ │ │ ├── httpserver/ │ │ ├── ipam/ │ │ ├── policy/ │ │ ├── profile/ │ │ ├── user/ │ │ └── wireguard/ │ ├── migrations/ │ │ └── 000001_init.sql │ ├── seed/ │ │ └── 001_seed.sql │ ├── Dockerfile │ └── go.mod ├── admin-web/ │ ├── src/ │ │ ├── api/ │ │ ├── app/ │ │ ├── components/ │ │ ├── features/ │ │ │ ├── audit/ │ │ │ ├── dashboard/ │ │ │ ├── devices/ │ │ │ ├── gateways/ │ │ │ ├── policies/ │ │ │ ├── settings/ │ │ │ └── users/ │ │ └── styles/ │ ├── Dockerfile │ ├── index.html │ ├── package.json │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── vite.config.ts ├── desktop-client/ │ ├── src/ │ │ ├── App.tsx │ │ ├── main.tsx │ │ └── styles.css │ ├── src-tauri/ │ │ ├── src/ │ │ │ ├── lib.rs │ │ │ └── main.rs │ │ ├── build.rs │ │ ├── Cargo.toml │ │ └── tauri.conf.json │ ├── index.html │ ├── package.json │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── vite.config.ts └── deploy/ ├── .env.example ├── docker-compose.yml ├── nginx/ │ ├── admin.conf │ └── reverse-proxy.conf └── scripts/ ├── bootstrap-admin.sh └── gateway-entrypoint.sh ```