Demo dashboard system for template-based personal execution environments.
lynq-demo/
├── frontend/ # Vite + React + shadcn/ui
├── backend/ # Node.js + Express + TypeScript + MySQL
├── k8s/ # Kubernetes manifests
└── README.md
💡 New to the project? Check DEVELOPMENT.md for detailed development guide.
Quick decision matrix:
| You want to... | Use this |
|---|---|
| 🔥 Develop with hot reload | ./start-dev.sh |
| 🏗️ Test production build | ./start.sh |
| 🐛 Use IDE debugger | Local development (Option 2) |
| 🚀 Deploy to K8s | See Option 3 |
Prerequisites:
- Docker & Docker Compose
Recommended for active development
Start with hot reload enabled:
./start-dev.shThis will:
- Mount your source code as volumes
- Enable hot reload for both backend and frontend
- Auto-install dependencies on startup
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
Edit files in backend/src/ or frontend/src/ and see changes immediately!
Stop services:
docker-compose -f docker-compose.dev.yml downFor testing production builds
Start production containers:
./start.shThis will:
- Build optimized Docker images
- Start MySQL with automatic database initialization
- Start Backend API
- Start Frontend with Nginx
- Open at http://localhost
Stop services:
./stop.shManual commands:
# Development
docker-compose -f docker-compose.dev.yml up -d
docker-compose -f docker-compose.dev.yml logs -f
docker-compose -f docker-compose.dev.yml down
# Production
docker-compose up -d
docker-compose logs -f
docker-compose down
docker-compose down -v # Remove volumesPrerequisites:
- Node.js 20 LTS
- MySQL 8.0+
mysql -u root -p
CREATE DATABASE lynq_demo;
CREATE USER 'lynq_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON lynq_demo.* TO 'lynq_user'@'localhost';
FLUSH PRIVILEGES;
exit;
mysql -u lynq_user -p lynq_demo < backend/src/db/schema.sqlcd backend
npm install
cp .env.example .env
# Edit .env with your MySQL credentials
npm run devcd frontend
npm install
npm run devAccess at http://localhost:5173
# Backend
docker build -t lynq-demo-backend:latest ./backend
# Frontend
docker build -t lynq-demo-frontend:latest ./frontendQuick deploy (recommended):
cd k8s
./deploy.shManual deploy:
# See k8s/README.md for detailed instructions
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/mysql-*.yaml
kubectl wait --for=condition=ready pod -l app=mysql -n lynq-demo --timeout=300s
kubectl apply -f k8s/backend-*.yaml
kubectl apply -f k8s/frontend-*.yaml
kubectl apply -f k8s/ingress.yamlThe deployment includes:
- MySQL 8.0 with automatic database initialization
- Backend API (2 replicas)
- Frontend (2 replicas)
- Ingress for routing
See k8s/README.md for complete deployment guide.
See .env.example files in each directory:
backend/.env.example- Backend configurationfrontend/.env.example- Frontend configuration
MIT