A comprehensive Software-Defined Networking (SDN) management platform that enables easy and automated adoption of the SDN paradigm into new or pre-existing networks. This monorepo contains both the backend API and frontend.
There is an installation manual for the v1.0.0-beta realease here. This will give you guidance on setting up the software and a network. There is also a video version of this manual here.
Alternatively follow the instructions below to set up the software.
Successfully Tested on Ubuntu Desktop, Ubuntu Server, Windows WSL and Mac.
- Docker and Docker Compose
-
From the root of the repo Navigate to the backend directory:
cd backend/
-
Create environment configuration:
cp control_center/.env.example control_center/.env # Edit .env with your configuration
-
Run the automated setup:
./setup.sh
-
From the root of the repo Navigate to the UI directory:
cd ui/ui/
-
Create environment configuration:
cp .example .env.local # Edit .env.local with your backend API URLs
-
Install dependencies and start:
./setup.sh
-
Access the application:
- Frontend: http://localhost:3000 / http://<SERVER_IP_ADDRESS>:3000
- Backend API: http://localhost:8000 / http://<SERVER_IP_ADDRESS>:8000
- Admin Interface: http://localhost:8000/admin / http://<SERVER_IP_ADDRESS>:8000/admin
sdn-launch-control/
βββ backend/ # Django REST API backend
β βββ control_center/ # Main Django application
β β βββ account/ # User authentication & profiles
β β βββ ansible/ # Ansible playbooks & automation
β β βββ classifier/ # ML traffic classification
β β βββ controller/ # SDN controller management
β β βββ device_monitoring/ # Real-time device monitoring
β β βββ network_data/ # Network analytics & data
β β βββ network_device/ # Device management
β β βββ notification/ # Telegram notifications
β β βββ odl/ # OpenDaylight integration
β β βββ onos/ # ONOS integration
β β βββ ovs_install/ # Open vSwitch installation
β β βββ software_plugin/ # Plugin system
β β βββ utils/ # Utility functions
β βββ setup.sh # Backend setup script
β βββ README.md # Backend documentation
βββ ui/ # Next.js React frontend
β βββ src/
β β βββ app/ # Next.js app router pages
β β βββ components/ # React components
β β βββ context/ # React context providers
β β βββ hooks/ # Custom React hooks
β β βββ lib/ # Utility functions & API calls
β β βββ locales/ # Internationalization files
β βββ public/ # Static assets
β βββ Dockerfile # Frontend containerization
β βββ docker-compose.yml # Frontend services
β βββ README.md # Frontend documentation
βββ README.md # This file
- Device Management: Automated installation and configuration of Open vSwitch
- Controller Integration: Support for OpenDaylight controllers
- Traffic Classification: Machine learning-based traffic analysis and categorization
- Network Monitoring: Real-time device statistics and performance metrics
- Plugin System: Extensible architecture for custom network functionality
- Automation: Ansible-based deployment and configuration management
- Notifications: Telegram integration for alerts and reports
- REST API: Comprehensive API for frontend integration
- Typesafe: Built with React, TypeScript, and Next.js
- Device Management: Intuitive interface for switches and controllers
- Real-time Monitoring: Live charts and statistics using WebSocket connections
- Network Visualization: Interactive network topology diagrams
- Plugin Management: Install and configure network plugins
- Multi-language Support: Internationalization (English/Spanish)
- Responsive Design: interface designed with shadcn components
- Framework: Django with Django REST Framework
- Database: PostgreSQL with TimescaleDB for time-series data
- Message Broker: Redis with Celery for background tasks
- WebSockets: Django Channels for real-time communication
- ML/AI: TensorFlow/Keras for traffic classification
- Automation: Ansible for infrastructure management
- Containerization: Docker & Docker Compose
- Framework: Next.js with React
- Language: TypeScript for type safety
- Styling: Tailwind CSS with shadcn/ui components
- State Management: React Context API
- HTTP Client: Axios for API communication
- Charts: Recharts for data visualization
- Icons: Lucide React
- Forms: React Hook Form with Zod validation
cd backend/control_center/
docker compose -f docker-compose.dev.yml up
cd ui/ui/
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
# Database
DB_HOST=pgdatabase
DB_NAME=postgres
DB_USER=postgres
DB_PASS=postgres
DB_PORT=5432
# Redis
CELERY_BROKER_URL=redis://redis:6379/1
CHANNEL_REDIS_HOST=redis
CHANNEL_REDIS_PORT=6379
# Django
DEBUG=False
DJANGO_LOG_LEVEL=INFO
DJANGO_SUPERUSER_USERNAME=admin
DJANGO_SUPERUSER_PASSWORD=admin
# Telegram
TELEGRAM_API_KEY=your_telegram_api_key
NEXT_PUBLIC_API_BASE_URL=http://localhost:8000/api/v1
NEXT_PUBLIC_WS_OPENFLOW=ws://localhost:8000/ws/openflow_metrics/
NEXT_PUBLIC_WS_DEVICESTATS=ws://localhost:8000/ws/device_stats/
NEXT_PUBLIC_WS_CLASIFICATIONS=ws://localhost:8000/ws/flow_updates/
cd backend/control_center/
docker-compose up -d
cd ui/
docker-compose up -d
- Backend Architecture: backend/control_center/docs/
Please keep your contributions focused and small to help with pull request management.
- Fork the repository
- Create a feature branch
- Make your changes
- Run linting and integration tests
- Submit a pull request
- Follow TypeScript best practices for frontend code
- Use Django coding standards for backend code
- Write comprehensive tests for new features
- Update documentation for API changes
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
β οΈ Warning: Closed-source commercial usage is not permitted with the GPL-3.0 license. If this license is not compatible with your use case, please contact [email protected] to purchase a commercial license.
For issues, questions, or commercial licensing:
- Email: [email protected]
- Contributor License Agreement: CLA
Watch the v1.0.0 release installation guide here
[DEPRECIATED] Watch the pre-production alpha release installation guide to see SDN Launch Control in action.
SDN Launch Control - Empowering network automation and management through modern SDN technologies.