forked from urvishpatelce/lxd-app
52 lines
1.2 KiB
Markdown
52 lines
1.2 KiB
Markdown
# LXD Frontend (Nuxt.js)
|
|
|
|
This is the **frontend Nuxt.js** application that works with the [LXD Proxy API](../backend/README.md) to dynamically provision LXD containers based on subdomain access and user CAPTCHA validation.
|
|
|
|
---
|
|
|
|
## 🌐 Overview
|
|
|
|
- Each user has a subdomain (e.g., `mitul.lxdapp.local`)
|
|
- On visiting the subdomain, a login page prompts for CAPTCHA
|
|
- Upon successful CAPTCHA, a request is made to the backend to:
|
|
- Create or start an LXD container
|
|
- Wait until it's ready
|
|
- Proxy user to the container
|
|
|
|
---
|
|
|
|
## 🧩 Features
|
|
|
|
- Subdomain-aware dynamic environment provisioning
|
|
- CAPTCHA login screen for triggering container creation
|
|
- API integration with backend (Slim PHP) service
|
|
- Axios-based POST to `/api/v1/proxy`
|
|
|
|
---
|
|
|
|
## 🛠 Project Setup
|
|
|
|
1. **Install dependencies**
|
|
```bash
|
|
npm install
|
|
|
|
2. **Run the development server**
|
|
```bash
|
|
npm run dev
|
|
|
|
|
|
|
|
**🗂 Project Structure**
|
|
|
|
frontend/
|
|
├── pages/
|
|
│ └── index.vue # Login screen
|
|
├── plugins/
|
|
│ └── axios.js # Axios config (if used)
|
|
├── nuxt.config.js # App config
|
|
├── static/
|
|
│ └── favicon.ico
|
|
├── package.json
|
|
└── README.md
|
|
|