Orchestrix is a comprehensive, open-source platform designed to build, manage, and execute complex workflows with a strong emphasis on AI-driven tasks, real-time monitoring, and seamless integration with external services.
- Visual Workflow Builder: A drag-and-drop interface to create complex workflows with various node types (Triggers, Actions, Conditions, Outputs).
- Real-time Execution Monitoring: Live tracking of workflow executions with step-by-step details, logs, and status updates via WebSockets.
- Enhanced Dashboard: A central hub for real-time statistics, quick actions, recent activity feeds, and system-wide analytics.
- Workflow Templates Marketplace: A collection of pre-built, real-world workflow templates (e.g., Email Automation, Social Media Scheduling, Customer Support) that can be deployed with one click.
- Advanced Analytics: Interactive charts and data visualizations for tracking workflow performance, execution trends, and system metrics.
- Comprehensive Integration Management: Support for various integration types (OAuth, Webhooks, APIs) with a secure system for managing credentials.
- User Management & RBAC: Role-Based Access Control to manage user permissions (Admin, Manager, User) and a system for inviting new users.
- Interactive API Documentation: A Swagger/OpenAPI interface for exploring and testing the backend API endpoints.
- Real-time Notification System: A notification center with a bell icon, unread count, and dropdown panel for important system alerts.
- Performance Monitoring: A dedicated view for monitoring system health, including CPU, memory, and database performance.
- Mobile-Responsive Design: Fully responsive UI that works seamlessly across desktops, tablets, and mobile devices.
- Dark Mode: A sleek and modern dark theme to reduce eye strain.
- Scalable Architecture: Built with Celery for asynchronous task processing, ensuring that workflows can scale to handle high volumes.
| Category | Technology |
|---|---|
| Backend | Django 5.x, Django REST Framework, Celery, Channels |
| Frontend | Next.js 14, React 18, TypeScript, Tailwind CSS |
| Database | PostgreSQL |
| Message Broker | Redis |
| Real-time | WebSockets (via Django Channels), React Query (for data fetching), EventSource |
| UI/UX | Shadcn/UI, Lucide React (icons), Recharts (charts), Zod (validation), React Hook Form |
| Authentication | JWT (JSON Web Tokens) with automatic token refresh |
| Deployment | Docker, Docker Compose |
| Code Quality | ESLint, Prettier, flake8, black, isort, pre-commit hooks |
orchestrix/
├── backend/ # Django Backend
│ ├── apps/ # Application-specific logic
│ │ ├── authentication/ # User authentication and JWT handling
│ │ ├── executions/ # Workflow execution tracking and logs
│ │ ├── integrations/ # External service integrations (OAuth, Webhooks)
│ │ └── workflows/ # Workflow creation, management, and templates
│ ├── orchestrix/ # Django project settings and core configuration
│ ├── Dockerfile
│ └── manage.py
├── frontend/ # Next.js Frontend
│ ├── src/
│ │ ├── app/ # Next.js App Router, pages, and layouts
│ │ ├── components/ # Reusable React components (UI, dashboard, etc.)
│ │ ├── lib/ # Core logic, API client, services, auth context
│ │ └── types/ # TypeScript type definitions
│ ├── Dockerfile
│ └── package.json
├── docker-compose.yml # Docker configuration for all services
├── .env.example # Template for environment variables
├── LINTING.md # Guide for code quality and linting setup
└── README.md # This file
- Docker & Docker Compose
- Node.js (v18+ for local dev)
- Python (v3.11+ for local dev)
# Clone the repository
git clone <repository-url>
cd orchestrix
# Create an environment file from the example
cp .env.example .env
# Customize your .env file (update secrets, database credentials, etc.)
nano .envThis is the simplest way to get the entire platform running.
# Build and start all services in detached mode
docker-compose up --build -d
# View logs for all services
docker-compose logs -f
# Run database migrations
docker-compose exec backend python manage.py migrate
# Populate the database with workflow templates
docker-compose exec backend python manage.py populate_workflow_templates
# Create a superuser (optional)
docker-compose exec backend python manage.py createsuperuser
# Stop all services
docker-compose down- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api/
- API Docs (Swagger): http://localhost:8000/api/docs/
- Admin Panel: http://localhost:8000/admin/
The backend API is documented using OpenAPI (Swagger). Once the backend service is running, you can explore and interact with all the available endpoints by visiting http://localhost:8000/api/docs/.
For developers who prefer to run services locally without Docker.
cd backend
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set required environment variables (or use a .env file with python-decouple)
export DATABASE_URL=...
export REDIS_URL=...
export SECRET_KEY=...
# Run database migrations
python manage.py migrate
python manage.py populate_workflow_templates
# Start the development server
python manage.py runservercd frontend
# Install dependencies
npm install
# Create a local environment file
echo "NEXT_PUBLIC_API_URL=http://localhost:8000" > .env.local
# Start the development server
npm run devFor asynchronous tasks to run, you need to start the Celery worker and scheduler.
# In the backend directory with virtual env activated
# Start the Celery worker
celery -A orchestrix worker --loglevel=info
# In another terminal, start the Celery beat scheduler
celery -A orchestrix beat --loglevel=infoThis project enforces a high standard of code quality using a combination of linters and formatters.
- Backend:
flake8,black,isort - Frontend:
ESLint,Prettier,TypeScript - Hooks:
pre-commithooks to automate checks before every commit.
For detailed setup instructions, please see LINTING.md.
# Backend: Run all checks and formatting
cd backend && make check
# Frontend: Run all checks and formatting
cd frontend && npm run check-allThis project is licensed under the MIT License. See the LICENSE file for details.