A Next.js-based web interface for the ICOS Ecosystem that displays cluster topology and deployment information.
- ✅ Real-time Data: Connects directly to ICOS backend server
- ✅ Authentication: Secure login with real server credentials
- ✅ Topology Visualization: Interactive cluster topology graphs
- ✅ Universal Deployment: Works on any system with Docker
- ✅ Fallback Support: Graceful handling of connection issues
- Docker and Docker Compose installed
- VPN connection to the ICOS testbed (if required)
- Access to the ICOS backend server
-
Clone the repository:
git clone <repository-url> cd <repository-folder>
-
Build and run with Docker:
docker-compose up --build -d
-
Access the application:
- Open your browser and go to
http://127.0.0.1:3000 - Login with your ICOS credentials
- Open your browser and go to
-
Install dependencies:
npm install
-
Run in development mode:
npm run dev
-
Access at
http://localhost:3000
The application uses the following environment variables:
NEXT_PUBLIC_CONTROLLER_ADDRESS: ICOS backend server addressNEXT_PUBLIC_LIGHTHOUSE_ADDRESS: Lighthouse server address
The application connects directly to:
- Backend Server:
http://10.160.3.20:32500 - API Endpoints:
- Login:
/api/v3/user/login - Resources:
/api/v3/resource/ - Deployments:
/api/v3/deployment/
- Login:
- Authentication: Direct connection to ICOS backend
- Topology Graph: D3.js-based visualization
- Data Fetching: Real-time API calls with fallback
- Error Handling: Graceful degradation
- User logs in → Direct API call to backend
- Token stored → Used for subsequent requests
- Data fetched → Real-time cluster information
- Graph rendered → Interactive topology display
- Connection Refused: Check VPN connection and server availability
- Authentication Failed: Verify credentials with backend team
- No Data Displayed: Check API endpoints and token validity
View application logs:
docker-compose logs -f appTo update the application:
docker-compose stop
docker-compose rm -f
docker-compose up --build -d- Method: GET
- URL:
/api/v3/user/login - Parameters:
username,password - Headers:
accept: application/json
- Method: GET
- URL:
/api/v3/resource/ - Headers:
api_key: <token>,accept: application/json
- Make changes to the codebase
- Test with Docker deployment
- Ensure universal compatibility
- Submit pull request
[Add your license information here]