# Linux Appliance MVP - Product Specification
## Product Overview
**Name**: "Gluebox Node" Drupal+AI Appliance
**Target**: Small to medium businesses requiring local CMS with AI-powered documentation
**Form Factor**: Pre-configured mini PC appliance
## Core Technical Stack
### Operating System
- **Base**: Debian 12 (Bookworm) - Minimal Server Installation
- **Boot Target**: Multi-user.target (no GUI)
- **Memory Footprint**: ~200MB base OS overhead
- **Rationale**: Maximum resource availability for LLM, enterprise stability
### Application Stack
- **CMS**: Drupal 10.x (latest stable)
- **Search**: Apache Solr 9.x
- **LLM Engine**: Ollama with optimized model selection
- **Web Server**: Nginx (reverse proxy + static assets)
- **Database**: MariaDB 10.11
- **PHP**: PHP 8.2 with OPcache enabled
### Management Interface
- **Primary Interface**: Custom web dashboard (port 9000)
- **Access Method**: Browser-based from any network device
- **Authentication**: Local admin account + session management
- **Features**: System status, service management, backup controls
## Hardware Requirements
### Minimum Specifications
- **CPU**: 4-core x86-64 (Intel N100 or AMD equivalent)
- **RAM**: 16GB DDR4/DDR5
- **Storage**: 512GB NVMe SSD
- **Network**: Gigabit Ethernet
- **USB**: 2x USB 3.0 (for backup drives)
### Recommended Specifications
- **CPU**: 6-8 core (Intel i5/AMD Ryzen 5)
- **RAM**: 32GB
- **Storage**: 1TB NVMe SSD
- **Additional**: Hardware monitoring sensors
## User Experience Design
### Boot Sequence
1. **Power On**: Silent boot, no splash screens
2. **Service Startup**: Automatic systemd service initialization
3. **Ready State**: LED indicator + network availability
4. **Access**: Navigate to appliance IP address in browser
### Web Dashboard Features
- **System Overview**: CPU, memory, disk usage, service status
- **Content Management**: Direct link to Drupal admin
- **AI Assistant**: Interface to Ollama LLM for documentation queries
- **Backup Management**: USB backup status, cloud sync controls
- **Network Settings**: Static IP configuration, hostname settings
- **Maintenance**: Update management, log access, restart controls
### No-Desktop Policy
- No graphical desktop environment installed
- No user login prompts on console
- SSH access available but not advertised to end users
- All management through web interface
## Service Architecture
### Systemd Services (Auto-start)
```
drupal-stack.service # Nginx + PHP-FPM + MariaDB
solr.service # Apache Solr search engine
ollama.service # LLM inference engine
appliance-dashboard.service # Management web interface
backup-monitor.service # USB backup detection/automation
```
### Network Configuration
- **Web Dashboard**: Port 9000
- **Drupal Site**: Port 80/443
- **SSH**: Port 22 (firewalled by default)
- **Internal Services**: Localhost binding only
## Data Management
### Local Storage Strategy
- **OS Partition**: 50GB (read-only after setup)
- **Application Data**: 200GB (Drupal files, database)
- **LLM Models**: 100GB (Ollama model storage)
- **User Content**: Remaining space
- **Log Rotation**: Automated cleanup, 30-day retention
### Backup System
- **USB Auto-Detection**: Plug-in backup drive recognition
- **Incremental Backups**: Daily automated backups to USB
- **Cloud Sync**: Optional encrypted sync to customer's cloud storage
- **Recovery**: Web-based restore interface
## Security Model
### Network Security
- **Firewall**: UFW enabled, minimal open ports
- **SSL/TLS**: Self-signed certificates (customer can replace)
- **Access Control**: Web dashboard requires authentication
- **Updates**: Automatic security updates enabled
### Application Security
- **Drupal**: Security hardened, regular core updates
- **Database**: Local binding only, strong authentication
- **SSH**: Key-based authentication only (if enabled)
- **Isolation**: Services run as dedicated users
## Initial Setup Process
### First Boot Experience
1. **Network Discovery**: DHCP assignment + IP display on connected monitor
2. **Web Setup Wizard**: Navigate to IP address in browser
3. **Configuration Steps**:
- Admin account creation
- Network settings (static IP option)
- Drupal site configuration
- LLM model selection and download
- Backup preferences
4. **Completion**: Automatic service restart + ready status
### Time to Production
- **Target**: 15 minutes from power-on to functional Drupal site
- **LLM Ready**: Additional 10-30 minutes for model download
- **User Training**: Zero - self-evident web interface
## Performance Targets
### Resource Allocation
- **OS + Services**: 2GB RAM maximum
- **Drupal + Database**: 4-6GB RAM
- **Ollama LLM**: 8-12GB RAM (depending on model)
- **Available Models**: 7B parameter models optimized for documentation
### Response Times
- **Drupal Pages**: <2 seconds load time
- **Search Queries**: <1 second (Solr)
- **LLM Responses**: 5-15 seconds (depending on query complexity)
- **Dashboard**: <500ms page loads
## Maintenance & Updates
### Automatic Maintenance
- **OS Security Updates**: Weekly, automatic reboot if required
- **Application Updates**: Quarterly, manual approval required
- **Health Monitoring**: Daily self-checks, email alerts
- **Log Management**: Automatic rotation and cleanup
### Customer Support
- **Remote Diagnostics**: SSH key deployment option
- **Status Reports**: Downloadable system health reports
- **Documentation**: Built-in help system in web dashboard
- **Professional Services**: Optional managed update service
## Success Criteria
### MVP Validation Metrics
- **Setup Time**: <15 minutes to working Drupal site
- **Memory Efficiency**: <4GB total OS + web stack footprint
- **Stability**: 30+ day uptime without intervention
- **Performance**: LLM responses under 15 seconds
- **User Adoption**: Customer can manage without technical support
### Go-to-Market Readiness
- **Documentation**: Complete setup and user guides
- **Quality Assurance**: 100 hours continuous operation testing
- **Backup/Recovery**: Tested restore procedures
- **Support Infrastructure**: Knowledge base and ticket system
- **Compliance**: Basic security audit completion