An AI Project Management System that allows you to create and manage AI agents and crews for your projects.
- Agent/crew creation interface
- Project tracking dashboard
- Queue system with priority management
- Complex result handling
- Automatic SSL via Let's Encrypt
- NVIDIA GPU with 12GB VRAM
- Docker and Docker Compose
- Domain name (for production deployment)
- Clone the repository:
git clone https://github.com/virgilejarrige/MAIT.git
cd MAIT- Set up environment variables:
# Copy the example environment file
cp .env.example .env
# Edit the .env file with your settings
nano .env- Install dependencies (optional for development):
# Frontend dependencies
cd frontend && npm install
cd ..
# Backend dependencies
cd backend && npm install
cd ..
# Python dependencies (if developing the AI components)
cd backend && pip install -r requirements.txt
cd ..- Start the development environment:
# Start all services
docker-compose up
# Or start in detached mode
docker-compose up -d
# View logs if running in detached mode
docker-compose logs -f- Access the application:
- Development: http://localhost:3001
- Production: https://your-domain.com
-
Set up your domain and point it to your server.
-
Configure your GitLab CI/CD variables:
- VM_IP: Your server IP
- DOMAIN: Your domain name
- ADMIN_USER: Admin username
- ADMIN_PASSWORD: Admin password (masked)
-
Push to main branch to trigger deployment.
-
Initial SSL certificate setup:
docker-compose run --rm certbot certonly --webroot --webroot-path /var/www/certbot -d your-domain.comMAIT/
├── .github/ # GitHub templates and workflows
├── backend/ # Node.js Express API
│ ├── api/ # API routes and AI runner
│ ├── data/ # JSON data storage
│ ├── Dockerfile # Backend container configuration
│ ├── package.json # Node.js dependencies
│ └── requirements.txt # Python dependencies
├── frontend/ # React application
│ ├── src/ # Source code
│ │ ├── components/ # React components
│ │ └── assets/ # Static assets
│ ├── Dockerfile # Frontend container configuration
│ └── package.json # Frontend dependencies
├── infrastructure/ # Infrastructure configuration
│ ├── nginx/ # Nginx reverse proxy
│ └── certbot/ # SSL certificate management
├── docker-compose.yml # Container orchestration
├── .env.example # Environment variables template
└── README.md # Project documentation
The application uses three main JSON files to store data. You can find examples in /backend/data/examples/.
Stores AI agent definitions with their roles and capabilities.
Fields:
id: Unique identifier (timestamp-based)name: Agent's namerole: Agent's specialized role or functioncreatedAt: Creation timestamp
Defines teams of agents that work together.
Fields:
id: Unique identifiername: Crew namedescription: Crew's purpose and specializationagents: Array of agent IDs that form this crewcreatedAt: Creation timestamp
Contains project definitions and their execution status.
Fields:
id: Unique identifiername: Project namedescription: Project details and objectivespriority: Importance level (1-5, 1 being highest)status: Current state (pending,running,completed,failed)crews: Array of crew IDs assigned to this projectresults: (Optional) Project outcomes including:summary: Result overviewrecommendations: Action items or suggestionscompletedAt: Completion timestamp
createdAt: Creation timestamp
Example files are provided in /backend/data/examples/. To initialize your own data:
# Create empty data files
cd backend/data
echo '[]' > agents.json
echo '[]' > crews.json
echo '[]' > projects.json
# Or copy example files
cp examples/agents.example.json agents.json
cp examples/crews.example.json crews.json
cp examples/projects.example.json projects.jsonGET /api/agents- List all agentsPOST /api/agents- Create a new agent{ "name": "DataAnalyst", "role": "Financial analysis" }
GET /api/crews- List all crewsPOST /api/crews- Create a new crew{ "name": "Analytics Team", "description": "Financial data analysis team", "agents": ["agent_id_1", "agent_id_2"] }
GET /api/projects- List all projectsPOST /api/projects- Create a new project{ "name": "Q3 Analysis", "description": "Analyze Q3 financial data", "priority": 1, "crews": ["crew_id_1"] }POST /api/projects/:id/run- Run a project{ "crewIds": ["crew_id_1"] }
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT
-
Docker Compose Issues
# Remove all containers and volumes docker-compose down -v # Rebuild all images docker-compose build --no-cache # Start fresh docker-compose up
-
Permission Issues
# Fix data directory permissions sudo chown -R 1000:1000 backend/data -
SSL Certificate Issues
# Force SSL certificate renewal docker-compose run --rm certbot renew --force-renewal docker-compose restart nginx
View logs for specific services:
# All services
docker-compose logs
# Specific service
docker-compose logs backend
docker-compose logs frontend
docker-compose logs nginx- Update dependencies:
# Frontend
cd frontend
npm update
npm audit fix
# Backend
cd backend
npm update
npm audit fix
pip install --upgrade -r requirements.txt- Update Docker images:
# Pull latest base images
docker-compose pull
# Rebuild services
docker-compose build --pull- Backup data:
# Create a backup of the data directory
tar -czf mait_backup_$(date +%Y%m%d).tar.gz backend/data/
# Backup environment configuration
cp .env env_backup_$(date +%Y%m%d)- Container health:
# View container status
docker-compose ps
# View container resource usage
docker stats- System resources:
# View GPU usage
nvidia-smi
# View system resources
htop- Always keep your
.envfile secure and never commit it to version control - Regularly update dependencies to patch security vulnerabilities
- Monitor system logs for suspicious activities
- Keep Docker and host system updated
- Follow the security best practices in SECURITY.md