# 🍞 Bakery IA - Multi-Service Architecture Welcome to Bakery IA, an advanced AI-powered platform for bakery management and optimization. This project implements a microservices architecture with multiple interconnected services to provide comprehensive bakery management solutions. ## 🚀 Quick Start ### Prerequisites - Docker Desktop with Kubernetes enabled - Docker Compose - Node.js (for frontend development) ### Running the Application 1. **Clone the repository:** ```bash git clone cd bakery-ia ``` 2. **Set up environment variables:** ```bash cp .env.example .env # Edit .env with your specific configuration ``` 3. **Run with Docker Compose:** ```bash docker-compose up --build ``` 4. **Or run with Kubernetes (Docker Desktop):** ```bash # Enable Kubernetes in Docker Desktop # Run the setup script ./scripts/setup-kubernetes-dev.sh ``` ## 🏗️ Architecture Overview The project follows a microservices architecture with the following main components: - **Frontend**: React-based dashboard for user interaction - **Gateway**: API gateway handling authentication and routing - **Services**: Multiple microservices handling different business domains - **Infrastructure**: Redis, RabbitMQ, PostgreSQL databases ## 🐳 Kubernetes Infrastructure ## 🛠️ Services The project includes multiple services: - **Auth Service**: Authentication and authorization - **Tenant Service**: Multi-tenancy management - **Sales Service**: Sales processing - **External Service**: Integration with external systems - **Training Service**: AI model training - **Forecasting Service**: Demand forecasting - **Notification Service**: Notifications and alerts - **Inventory Service**: Inventory management - **Recipes Service**: Recipe management - **Suppliers Service**: Supplier management - **POS Service**: Point of sale - **Orders Service**: Order management - **Production Service**: Production planning - **Alert Processor**: Background alert processing ## 📊 Monitoring The system includes comprehensive monitoring with: - Prometheus for metrics collection - Grafana for visualization - ELK stack for logging (planned) ## 🚀 Production Deployment For production deployment on clouding.io with Kubernetes: 1. Set up your clouding.io Kubernetes cluster 2. Update image references to your container registry 3. Configure production-specific values 4. Deploy using the production kustomization: ```bash kubectl apply -k infrastructure/kubernetes/environments/production/ ``` ## 🤝 Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Submit a pull request ## 🔧 Troubleshooting ### macOS "too many open files" error If you encounter the "too many open files" error when running the application on macOS: ``` failed to create fsnotify watcher: too many open files ``` This is related to system limits on file system watchers. The kind configuration has been updated to handle this, but if you still encounter issues: 1. Restart your Kind cluster with the updated configuration: ```bash kind delete cluster --name bakery-ia-local kind create cluster --config kind-config.yaml --name bakery-ia-local ``` 2. If needed, you can also increase the macOS system limits (though this shouldn't be necessary with the updated kind configuration): ```bash # Check current limits sysctl kern.maxfiles kern.maxfilesperproc # These are usually set high enough by default, but if needed: # sudo sysctl -w kern.maxfiles=65536 # sudo sysctl -w kern.maxfilesperproc=65536 ``` ## 📄 License This project is licensed under the MIT License.