Comprehensive Network Infrastructure Management System
SwitchScope is a modern web-based platform designed to provide complete visibility and control over network infrastructure. The system offers comprehensive management of network switches, ports, patch panels, and equipment inventory with real-time monitoring capabilities.
Perfect for: Healthcare organizations, educational institutions, enterprise networks, and government facilities seeking professional network infrastructure management without enterprise licensing costs.
- Automated network device discovery via SNMP
- Complete equipment inventory management
- Physical location tracking with IT closets
- Cable connection mapping and documentation
- Support for copper, fiber, and mixed infrastructures
- Switch and port status monitoring
- MAC address tracking and history
- DHCP server integration and synchronization
- Historical performance analytics
- Broadcast storm detection and prevention
- Web-based switch configuration interface
- SSH and Telnet device communication
- Role-based access control with multiple permission levels
- Change tracking, auditing, and rollback capabilities
- Configuration backup and automated restore
- Location-based ticket system
- Equipment-specific issue tracking
- Multi-level approval workflows
- User delegation and task management
- Integration with existing ITSM systems
- HIPAA compliance considerations
- Multi-tenant architecture support
- Active Directory/LDAP integration
- Audit trails for regulatory compliance
- 24/7 monitoring capabilities
- Java 21 with Spring Boot 3.x framework
- Spring Security for authentication and authorization
- Spring Data JPA for database operations
- PostgreSQL 13+ database with JSONB support
- Liquibase for database version control
- Redis for caching and session management
- SSHJ for secure device communication
- ExpectIt for CLI automation and parsing
- SNMP4J for SNMP protocol support
- Vue 3 with Composition API
- Quasar Framework for professional UI components
- Pinia for state management
- D3.js and Vis.js for network topology visualization
- Chart.js for performance analytics
- Axios for HTTP client with interceptors
- Responsive design optimized for desktop and mobile
- Docker and Docker Compose for containerization
- GitHub Actions for CI/CD pipeline
- SonarQube integration for code quality
- Prometheus and Grafana for application monitoring
- nginx reverse proxy configuration
- Let's Encrypt SSL automation
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Vue 3 β β Spring Boot β β PostgreSQL β
β Frontend βββββΊβ Backend βββββΊβ + TimescaleDB β
β + Quasar β β + Security β β Extension β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
βββββββββββββββββββ βββββββββββββββββββ
β Redis β β Liquibase β
β (Cache + Jobs) β β Migrations β
βββββββββββββββββββ βββββββββββββββββββ
β
βββββββββββββββββββ
β Network Layer β
β SNMP + SSH β
β + ExpectIt β
βββββββββββββββββββ
β
βββββββββββββββββββ
β Network Devices β
β Switches, APs, β
β Patch Panels β
βββββββββββββββββββ
The system is built around 7 main entities:
Location (IT Closets, Floors, Buildings)
βββ Equipment (Active & Passive Network Equipment)
βββ NetworkSwitch (Managed L2/L3 Switches)
βββ PatchPanel (Passive Connection Panels)
βββ DataPort (Physical RJ45/Fiber Ports)
βββ Cable (Copper/Fiber Connections)
βββ Connection (Logical Port-to-Port Links)
Key Relationships:
- Locations contain multiple pieces of equipment
- Equipment has multiple data ports
- Cables create physical connections between ports
- Connections represent logical relationships and data flows
- Java 21 or higher (OpenJDK recommended)
- Node.js 18+ and npm 9+
- PostgreSQL 13+ with TimescaleDB extension (optional)
- Redis 6+ for optimal performance (optional for development)
- Docker and Docker Compose (recommended)
-
Clone and start:
git clone https://github.com/aalexeen/switchscope.git cd switchscope # Start all services docker-compose up -d # View logs docker-compose logs -f
-
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- API Documentation: http://localhost:8080/swagger-ui.html
-
Database Setup:
# Install PostgreSQL and create database sudo -u postgres createdb switchscope sudo -u postgres createuser switchscope_user --password # Optional: Install TimescaleDB for time-series data sudo apt install timescaledb-postgresql
-
Backend Setup:
cd backend # Configure database connection cp src/main/resources/application.properties.example \ src/main/resources/application.properties # Edit database credentials and SNMP settings nano src/main/resources/application.properties # Run database migrations ./mvnw liquibase:update # Start backend server ./mvnw spring-boot:run
-
Frontend Setup:
cd frontend # Install dependencies npm install # Start development server npm run dev # Or build for production npm run build
Copy and customize configuration files:
# Backend configuration
cp backend/src/main/resources/application.properties.example \
backend/src/main/resources/application.properties
# Frontend configuration
cp frontend/.env.example frontend/.env.localKey configuration settings:
- Database connection (PostgreSQL)
- Redis cache settings (optional)
- SNMP community strings and credentials
- SSH connection timeouts and retry policies
- LDAP/Active Directory integration (if needed)
- Database schema and core entities
- Basic CRUD operations for all entities
- Connection tracking and relationship management
- Basic web interface with Vue 3 + Quasar
- Docker containerization
- SNMP integration for device discovery
- Real-time switch port status monitoring
- MAC address tracking and history
- Performance metrics collection
- Alerting system with email/Slack notifications
- SSH-based device configuration
- Web-based switch port management
- User access controls and role management
- Configuration templates and automation
- Change approval workflows
- Advanced ticketing system
- DHCP server synchronization
- LDAP/Active Directory integration
- Advanced analytics and reporting
- REST API for third-party integrations
- Mobile application (iOS/Android)
- Machine learning for anomaly detection
- Predictive maintenance capabilities
- Advanced network topology mapping
- Integration with network monitoring tools (Nagios, Zabbix)
- Compliance reporting (SOX, HIPAA, PCI-DSS)
Once running, comprehensive API documentation is available at:
- Swagger UI:
http://localhost:8080/swagger-ui.html - OpenAPI 3.0 Spec:
http://localhost:8080/v3/api-docs - Redoc:
http://localhost:8080/redoc
GET /api/v1/switches # List all switches
POST /api/v1/switches # Create new switch
GET /api/v1/switches/{id}/ports # Get switch ports
PUT /api/v1/ports/{id}/config # Update port configuration
GET /api/v1/locations # List all locations
POST /api/v1/connections # Create new connection
GET /api/v1/cables # List all cables
GET /api/v1/monitoring/status # Get real-time status
- JWT-based authentication with refresh tokens
- Role-based access control (RBAC) with granular permissions
- Multi-factor authentication (MFA) support via TOTP
- Session management with Redis-based storage
- Password policies with complexity requirements
- Encryption at rest for sensitive configuration data
- TLS/SSL encryption for all API communications
- Audit logging for all configuration changes
- Backup and recovery procedures for critical data
- GDPR compliance considerations for user data
- SSH key-based authentication for device access
- SNMPv3 support with encryption and authentication
- Network segmentation recommendations
- Firewall rules documentation for required ports
- Vulnerability scanning integration with security tools
We welcome contributions from the community! Please see CONTRIBUTING.md for detailed guidelines.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Set up pre-commit hooks:
npm run prepare - Make your changes and add tests
- Run the test suite:
npm run test:all - Submit a pull request with a clear description
- Backend: Java with Google Style Guide
- Frontend: Vue 3 Composition API with TypeScript
- Database: PostgreSQL best practices with proper indexing
- Testing: Minimum 80% code coverage required
- Documentation: All public APIs must be documented
cd backend
./mvnw test # Unit tests
./mvnw integration-test # Integration tests
./mvnw verify # Full test suitecd frontend
npm run test:unit # Unit tests with Vitest
npm run test:e2e # End-to-end tests with Cypress
npm run test:coverage # Coverage report# Using k6 for performance testing
k6 run tests/performance/load-test.js-
Using Docker Compose:
# Production environment docker-compose -f docker-compose.prod.yml up -d # With SSL and nginx reverse proxy docker-compose -f docker-compose.prod.yml -f docker-compose.ssl.yml up -d
-
Kubernetes Deployment:
# Apply Kubernetes manifests kubectl apply -f k8s/ # Or using Helm chart helm install switchscope ./helm/switchscope
-
Environment Variables:
# Required production settings SPRING_PROFILES_ACTIVE=production DATABASE_URL=postgresql://switchscope:password@db:5432/switchscope REDIS_URL=redis://redis:6379 JWT_SECRET=your-256-bit-secret-key # Java 21 Virtual Threads settings SPRING_THREADS_VIRTUAL_ENABLED=true JAVA_OPTS="-XX:+UseG1GC -XX:+UseContainerSupport -Xms512m -Xmx4g --enable-preview"
- Application Metrics: Prometheus + Grafana dashboards
- Log Aggregation: ELK Stack (Elasticsearch, Logstash, Kibana)
- Health Checks: Spring Boot Actuator endpoints
- Error Tracking: Sentry integration for production errors
- Performance Monitoring: APM with New Relic or DataDog
This project is licensed under the Business Source License 1.1 - see the LICENSE file for complete details.
- β Free for healthcare, educational, and government use
- β Free for internal business operations
- β Open source development and contributions welcome
- β Cannot be offered as a competing commercial service
- π Becomes Apache 2.0 licensed on January 1, 2029
You may use SwitchScope for:
β’ Internal operations of healthcare organizations
β’ Educational institutions and research
β’ Government and municipal organizations
β’ Non-profit organizations
β’ Personal and development use
For commercial licensing or enterprise support, contact: [alexan.alekseenko@gmail.com]
- π Documentation: docs.switchscope.net
- π Issue Tracker: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π§ Email Support: support@switchscope.net
- π¬ Discord: Community Discord Server
- Professional Services: Implementation, customization, training
- Enterprise Support: 24/7 support with SLA guarantees
- Custom Development: Feature development and integration services
- Compliance Consulting: HIPAA, SOX, PCI-DSS compliance assistance
- View our public roadmap
- Submit feature requests
- Vote on upcoming features
Built with industry-leading open source technologies:
- Spring Framework team for excellent enterprise Java framework
- Vue.js team for the progressive JavaScript framework
- PostgreSQL community for the robust database system
- Quasar Framework for the comprehensive Vue UI library
- NetBox for network infrastructure modeling concepts
- LibreNMS for network monitoring approaches
- Nautobot for modern network automation patterns
- OpenNMS for enterprise network management practices
Thanks to all contributors who help make SwitchScope better! π
SwitchScope - Bringing clarity to your network infrastructure
Made with β€οΈ for network administrators worldwide
Website β’ Documentation β’ Demo