corrected the path for copying nginx.conf in the frontend Dockerfile to point to the correct location relative to the build context
Changes to be committed:
modified: .gitea/workflows/masterbuild.yml
modified: epistine-webserver/frontend/Dockerfile
- Rewrite README.md with comprehensive architecture overview, component descriptions, and deployment instructions
- Update controller/README.md to focus on Docker deployment with pre-built images from Gitea registry
- Simplify epistine-webserver/README.md by removing development setup and focusing on Docker Compose deployment
- Add detailed system diagrams, task type tables, and configuration examples
- Remove redundant development workflow instructions in favor of containerized deployment
- rename build job to build-controller
- split build process into dedicated jobs for controller, webserver-backend, and webserver-frontend
- ensure proper dependencies with needs: build-controller
- update docker build contexts and tags for each service
- maintain build cache configuration for each service
This commit completes steps 1-5 of the database migration plan, moving database responsibility from the webserver to the controller:
1. **Step 3 - Database API Endpoints**: Added comprehensive REST API endpoints in controller for all database operations (machines, extraction jobs, persons, companies, documents) with proper authentication and filtering
2. **Step 4 - Authentication Setup**: Implemented controller-webserver authentication with API keys and created detailed setup documentation (AUTHENTICATION_SETUP.md)
3. **Step 5 - Move Database Models**: Migrated webserver database models to controller and implemented webserver-specific database handler with CRUD operations for agents, tasks, logs, and settings
Key changes:
- Added query functions to controller/dbhandler.py for all database entities
- Created webserver_dbhandler.py for webserver-specific tables
- Implemented ControllerClient in webserver for API communication
- Updated webserver routers to use controller API instead of direct database access
- Added webserver migration SQL schema
- Updated CI/CD workflows to reflect renamed webserver directory
- Removed direct database dependencies from webserver (PostgreSQL, SQLAlchemy)
- Updated docker-compose.yml for new architecture
BREAKING CHANGE: Webserver no longer uses direct database access and requires controller API configuration (CONTROLLER_URL and CONTROLLER_API_KEY environment variables)
This commit adds the full webserver migration from Streamlit to a modern FastAPI + React architecture. The implementation includes:
- Complete backend structure with FastAPI, SQLAlchemy, and PostgreSQL
- React frontend with real-time WebSocket updates
- Docker containerization with multi-stage builds
- Nginx reverse proxy configuration
- Comprehensive environment configuration and documentation
- Database models for agents, tasks, logs, and settings
- API endpoints for all core functionality
- Responsive UI components with Bootstrap
- WebSocket implementation for real-time updates
- Complete CI/CD pipeline configuration
The migration maintains all existing functionality while providing enhanced performance, scalability, and user experience.
This commit adds five new sub-plan documents that provide detailed implementation guidance for the EpistineFiles system:
- agents_subplan.md: Complete roadmap for implementing the missing agents system with OCR, PDF, video, and other processing agents
- architecture_plan.md: Updated architecture plan showing the current state and proposed enhancements
- controller_subplan.md: Detailed plan for enhancing the existing controller to support the new agent-based architecture
- tasks_subplan.md: Comprehensive task management system with standardized task definitions and templates
- webserver_subplan.md: Generic webserver sub-plan with technology stack options and implementation guidance
These sub-plans provide a complete roadmap for implementing the missing components of the EpistineFiles system, starting with the essential agents and task management infrastructure.
This commit adds a new Docker Compose configuration for the webserver service, specifying the build context, ports, environment variables, volumes, working directory, and command to run Streamlit on port 8501 with specific settings.
The API key generation logic in `create_api_key` was updated to remove the extra underscore between the prefix and secret. Additionally, the function now accepts a specified key parameter, allowing for custom API key creation.
- Fixed `create_api_key` in `api_key_handler.py` to properly handle the key prefix without underscores
- Updated `create_api_key` to accept an optional `key` parameter for custom API key creation
- Improved logging messages and database connection handling in `dbhandler.py`
chore: add .temp directory to gitignore to avoid staging temporary files
The commit message has been updated to include:
1. Features overview
2. Architecture details
3. Configuration sections
4. API endpoints documentation
5. Running instructions
6. Dependencies list
Also added .temp directory to gitignore to prevent accidental staging of temporary files
- Moved LogEntryResponse, LogsResponse, WorkerInfo, RegisterRequest, VersionResponse, and CommandRequest models from app.py to model.py
- Moved Scopes enum from scopes.py to model.py
- Updated imports in app.py to reflect the new location of models