flare / flare-ui /ReadMe.md
ciyidogan's picture
Upload 18 files
3b93905 verified
# Flare Admin UI Setup
## Quick Start (HuggingFace Deployment)
Just push all files to HuggingFace Space. The Dockerfile will handle everything:
- Build Angular UI
- Install Python dependencies
- Serve both UI and API on port 7860
## Local Development
### Backend Setup
```bash
# Install Python dependencies
pip install -r requirements.txt
# Set encryption key (if needed)
export FLARE_TOKEN_KEY="your-32-byte-base64-key"
# Run backend
python app.py
```
### Frontend Setup (for development only)
```bash
# Navigate to UI directory
cd flare-ui
# Install dependencies
npm install
# Run development server (proxies to backend on port 7860)
npm start
# Build for production (creates static/ directory)
npm run build
```
## Docker Deployment
```bash
# Build and run
docker build -t flare-admin .
docker run -p 7860:7860 flare-admin
```
Access at `http://localhost:7860`
## Default Login
- Username: `admin`
- Password: `admin`
## Creating Admin User
To create a new admin user with proper password hash:
```python
import hashlib
password = "your-password"
password_hash = hashlib.sha256(password.encode()).hexdigest()
print(f"Password hash: {password_hash}")
```
Add the user to `service_config.jsonc`:
```json
{
"config": {
"users": [
{
"username": "newuser",
"password_hash": "your-hash-here",
"salt": "random_salt_string"
}
]
}
}
```
## Project Structure
```
/
β”œβ”€β”€ app.py # Main FastAPI application
β”œβ”€β”€ admin_routes.py # Admin API endpoints
β”œβ”€β”€ chat_handler.py # Chat functionality
β”œβ”€β”€ service_config.jsonc # Configuration file
β”œβ”€β”€ Dockerfile # Handles everything for deployment
β”œβ”€β”€ flare-ui/ # Angular UI source
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ app/
β”‚ β”‚ β”‚ β”œβ”€β”€ components/
β”‚ β”‚ β”‚ β”œβ”€β”€ services/
β”‚ β”‚ β”‚ └── guards/
β”‚ β”‚ └── index.html
β”‚ └── package.json
└── static/ # Built UI files (auto-generated by Docker)
```
## Features Implemented
- βœ… User authentication with JWT
- βœ… Environment configuration
- βœ… Project management
- βœ… Version control
- βœ… API management
- βœ… Activity logging
- βœ… Race condition handling
- βœ… Import/Export functionality
## TODO
- [ ] User Info tab (password change)
- [ ] APIs tab (CRUD operations)
- [ ] Projects tab (full CRUD)
- [ ] Test tab implementation
- [ ] Intent/Parameter dialogs
- [ ] Version comparison
- [ ] Auto-save for drafts
- [ ] Keyboard shortcuts
---
## ⚠️ Production Deployment Note
**This setup is optimized for HuggingFace Spaces and development environments.** For production on-premise deployment, a more robust architecture will be implemented.
### Planned Production Architecture:
#### 1. **Web Server Layer**
- **Nginx** as reverse proxy and static file server
- SSL/TLS termination
- Request rate limiting and security headers
- Gzip compression for static assets
#### 2. **Application Layer**
- **Gunicorn/Uvicorn** workers for Python ASGI
- Process management with **Supervisor** or **systemd**
- Horizontal scaling with multiple worker processes
- Health check endpoints for monitoring
#### 3. **Session & Cache Layer**
- **Redis** for distributed session storage
- Centralized cache for LLM responses
- Session affinity for WebSocket connections
#### 4. **Database Layer** (Optional)
- **PostgreSQL** for configuration storage (replacing JSON file)
- Backup and replication strategies
- Migration tools for schema updates
#### 5. **Monitoring & Logging**
- **Prometheus** + **Grafana** for metrics
- **ELK Stack** (Elasticsearch, Logstash, Kibana) for log aggregation
- Application Performance Monitoring (APM)
- Alert configuration for critical events
#### 6. **Deployment Options**
**Option A: Docker Compose** (Small-Medium Scale)
```yaml
services:
nginx:
image: nginx:alpine
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./static:/usr/share/nginx/html
ports:
- "80:80"
- "443:443"
app:
image: flare-admin:production
scale: 3 # 3 instances
environment:
- REDIS_URL=redis://redis:6379
redis:
image: redis:alpine
volumes:
- redis-data:/data
```
**Option B: Kubernetes** (Large Scale)
- Helm charts for easy deployment
- Horizontal Pod Autoscaler (HPA)
- Ingress controller for routing
- Persistent Volume Claims for data
- Secrets management for credentials
#### 7. **Security Considerations**
- JWT token rotation and refresh
- API rate limiting per user
- Input validation and sanitization
- Regular security audits
- Compliance with data protection regulations
#### 8. **Backup & Disaster Recovery**
- Automated daily backups
- Point-in-time recovery
- Geo-redundant storage
- Disaster recovery procedures
- RTO/RPO targets defined
### Production Deployment Timeline:
1. **Phase 1**: Current setup (HF Spaces, development)
2. **Phase 2**: Docker Compose setup for on-premise pilot
3. **Phase 3**: Full production architecture with monitoring
4. **Phase 4**: Kubernetes deployment for enterprise scale
A comprehensive `DEPLOYMENT.md` guide will be created when transitioning to production architecture.