mirror of
https://github.com/mblanke/Dashboard.git
synced 2026-03-01 04:00:22 -05:00
282 lines
7.9 KiB
Markdown
282 lines
7.9 KiB
Markdown
# Dashboard Project Structure
|
|
|
|
```
|
|
Dashboard/
|
|
│
|
|
├── 📄 START_HERE.md ← Read this first! Complete overview
|
|
├── 📄 README.md ← Project overview and features
|
|
├── 📄 QUICKSTART.md ← Deploy in 5 minutes
|
|
├── 📄 DEPLOYMENT.md ← Detailed deployment guide
|
|
├── 📄 DEPLOYMENT_SUMMARY.md ← What's been prepared
|
|
├── 📄 DEPLOYMENT_READY.md ← Readiness verification report
|
|
├── 📄 CHECKLIST.md ← Pre-deployment checklist
|
|
├── 📄 MONITORING.md ← Operations & maintenance
|
|
├── 📄 SECURITY.md ← Security best practices
|
|
│
|
|
├── 🐳 Docker Configuration
|
|
│ ├── Dockerfile ← Multi-stage production build
|
|
│ ├── docker-compose.yml ← Complete Docker Compose setup
|
|
│ └── .dockerignore ← Docker build optimization
|
|
│
|
|
├── 📦 Deployment Scripts
|
|
│ ├── deploy.sh ← Linux/Mac automated deploy
|
|
│ └── deploy.bat ← Windows automated deploy
|
|
│
|
|
├── ⚙️ Configuration
|
|
│ ├── .env.example ← Environment template
|
|
│ ├── .gitignore ← Git ignore rules
|
|
│ ├── next.config.js ← Next.js configuration
|
|
│ ├── tsconfig.json ← TypeScript configuration
|
|
│ ├── tailwind.config.ts ← Tailwind CSS configuration
|
|
│ └── postcss.config.mjs ← PostCSS configuration
|
|
│
|
|
├── 📚 Dependencies
|
|
│ ├── package.json ← Node.js dependencies
|
|
│ └── package-lock.json ← Locked versions
|
|
│
|
|
├── 🤖 GitHub Actions CI/CD
|
|
│ └── .github/
|
|
│ └── workflows/
|
|
│ ├── build.yml ← Build & test on every push
|
|
│ └── deploy.yml ← Auto-deploy to Atlas server
|
|
│
|
|
└── 📱 Application Code
|
|
└── src/
|
|
│
|
|
├── app/
|
|
│ ├── page.tsx ← Main dashboard page
|
|
│ ├── layout.tsx ← Root layout
|
|
│ ├── globals.css ← Global styles
|
|
│ │
|
|
│ └── api/ ← API endpoints
|
|
│ ├── containers/
|
|
│ │ └── route.ts ← GET /api/containers (Docker)
|
|
│ ├── unifi/
|
|
│ │ └── route.ts ← GET /api/unifi (Network)
|
|
│ └── synology/
|
|
│ └── route.ts ← GET /api/synology (Storage)
|
|
│
|
|
├── components/ ← Reusable UI components
|
|
│ ├── ContainerGroup.tsx ← Container display & grouping
|
|
│ ├── SearchBar.tsx ← Search functionality
|
|
│ ├── GrafanaWidget.tsx ← Grafana panel embedding
|
|
│ ├── UnifiWidget.tsx ← Network device display
|
|
│ └── SynologyWidget.tsx ← Storage capacity display
|
|
│
|
|
└── types/
|
|
└── index.ts ← TypeScript type definitions
|
|
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 File Statistics
|
|
|
|
```
|
|
Documentation: 8 markdown files
|
|
Application Code: 5 components + 3 API routes
|
|
Configuration: 7 config files
|
|
Deployment Scripts: 2 automated scripts
|
|
CI/CD Workflows: 2 GitHub Actions
|
|
Docker Setup: 3 Docker files
|
|
|
|
Total: 30 files
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 What Each Section Does
|
|
|
|
### 📄 Documentation (Read First)
|
|
- **START_HERE.md** - Quick overview and next steps
|
|
- **README.md** - Full project description
|
|
- **QUICKSTART.md** - Fastest way to deploy
|
|
- **DEPLOYMENT.md** - Step-by-step setup
|
|
- **CHECKLIST.md** - Verify before deploying
|
|
- **MONITORING.md** - Keep it running
|
|
- **SECURITY.md** - Keep it safe
|
|
|
|
### 🐳 Docker (Containerization)
|
|
- **Dockerfile** - Build production image
|
|
- **docker-compose.yml** - One-command deployment
|
|
- **.dockerignore** - Optimize build size
|
|
|
|
### 📦 Deployment (Automation)
|
|
- **deploy.sh** - Linux/Mac script
|
|
- **deploy.bat** - Windows script
|
|
|
|
### ⚙️ Configuration (Settings)
|
|
- **.env.example** - Environment template
|
|
- **next.config.js** - Next.js optimization
|
|
- Other config files for build tools
|
|
|
|
### 🤖 CI/CD (Automation)
|
|
- **build.yml** - Test on every push
|
|
- **deploy.yml** - Auto-deploy to server
|
|
|
|
### 📱 Application (Core Code)
|
|
- **page.tsx** - Main dashboard UI
|
|
- **route.ts** files - API endpoints
|
|
- **components/** - Reusable UI parts
|
|
- **types/** - TypeScript definitions
|
|
|
|
---
|
|
|
|
## 🔄 Deployment Flow
|
|
|
|
```
|
|
1. Configuration
|
|
.env.example → .env.local (add credentials)
|
|
↓
|
|
2. Build
|
|
Dockerfile → Docker image
|
|
↓
|
|
3. Deploy
|
|
docker-compose.yml → Running container
|
|
↓
|
|
4. Access
|
|
http://100.104.196.38:3001 → Dashboard ready!
|
|
```
|
|
|
|
---
|
|
|
|
## 📡 Component Interaction
|
|
|
|
```
|
|
Client Browser
|
|
↓
|
|
page.tsx (Main UI)
|
|
↓
|
|
Components:
|
|
├─ SearchBar
|
|
├─ ContainerGroup
|
|
├─ UnifiWidget
|
|
├─ SynologyWidget
|
|
└─ GrafanaWidget
|
|
↓
|
|
API Routes:
|
|
├─ /api/containers ──→ Docker API
|
|
├─ /api/unifi ─────→ UniFi Controller
|
|
└─ /api/synology ──→ Synology NAS
|
|
↓
|
|
External Services
|
|
├─ Docker (2375)
|
|
├─ UniFi (8443)
|
|
├─ Synology (5001)
|
|
└─ Grafana (3000)
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Deployment Checklist
|
|
|
|
1. **Review Documentation**
|
|
- [ ] Read START_HERE.md
|
|
- [ ] Read QUICKSTART.md
|
|
- [ ] Review CHECKLIST.md
|
|
|
|
2. **Prepare Server**
|
|
- [ ] Docker installed
|
|
- [ ] SSH access verified
|
|
- [ ] Port 3001 available
|
|
|
|
3. **Gather Credentials**
|
|
- [ ] UniFi username/password
|
|
- [ ] Synology username/password
|
|
- [ ] Grafana API key (optional)
|
|
|
|
4. **Deploy**
|
|
- [ ] Clone repository
|
|
- [ ] Create .env.local
|
|
- [ ] Run docker-compose
|
|
|
|
5. **Verify**
|
|
- [ ] Container running
|
|
- [ ] Dashboard accessible
|
|
- [ ] All widgets loaded
|
|
|
|
---
|
|
|
|
## 🔧 Quick Commands
|
|
|
|
```bash
|
|
# Deploy
|
|
./deploy.sh # Automated
|
|
|
|
# Manual deploy
|
|
ssh soadmin@100.104.196.38
|
|
cd /opt/dashboard
|
|
docker-compose up -d
|
|
|
|
# Monitor
|
|
docker-compose logs -f
|
|
|
|
# Update
|
|
git pull origin main && docker-compose build && docker-compose up -d
|
|
|
|
# Stop
|
|
docker-compose down
|
|
|
|
# Status
|
|
docker-compose ps
|
|
```
|
|
|
|
---
|
|
|
|
## 📦 What Gets Deployed
|
|
|
|
```
|
|
Atlas Dashboard Container
|
|
├── Node.js 20 runtime
|
|
├── Next.js 14 framework
|
|
├── React 18 components
|
|
├── Built assets
|
|
└── Configuration
|
|
├── Environment variables
|
|
├── Docker network
|
|
└── Health checks
|
|
```
|
|
|
|
**Size:** ~200MB
|
|
**Memory:** 256-512MB at runtime
|
|
**Port:** 3001
|
|
|
|
---
|
|
|
|
## ✅ Everything is Ready
|
|
|
|
- ✅ Source code complete
|
|
- ✅ Docker configured
|
|
- ✅ Deployment scripts ready
|
|
- ✅ CI/CD pipelines setup
|
|
- ✅ Documentation complete
|
|
- ✅ Security configured
|
|
- ✅ Operations guide ready
|
|
|
|
**Next step:** Run `./deploy.sh` or read `START_HERE.md`
|
|
|
|
---
|
|
|
|
## 🗂️ File Organization Principles
|
|
|
|
```
|
|
/ Root - deployment & config
|
|
/src Application source code
|
|
/src/app Next.js app directory
|
|
/src/app/api API endpoints
|
|
/src/components Reusable React components
|
|
/src/types TypeScript definitions
|
|
/.github/workflows CI/CD automation
|
|
/documentation/ All guides in root directory
|
|
```
|
|
|
|
Clean, organized, and easy to navigate!
|
|
|
|
---
|
|
|
|
**Status:** ✅ Complete and Ready for Deployment
|
|
|
|
**Access:** http://100.104.196.38:3001
|
|
|
|
**Documentation:** Start with `START_HERE.md`
|