Skip to content

dwin-gharibi/quera-net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

╔═══════════════════════════════════════════════════════════════════╗
β•‘                                                                   β•‘
β•‘    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—       β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•‘
β•‘   β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ•β•β–ˆβ–ˆβ•”β•β•β• β•‘
β•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—     β–ˆβ–ˆβ•‘    β•‘
β•‘   β–ˆβ–ˆβ•‘β–„β–„ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β•šβ•β•β•β•β•β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•     β–ˆβ–ˆβ•‘    β•‘
β•‘   β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘      β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•‘    β•‘
β•‘    β•šβ•β•β–€β–€β•β•  β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•      β•šβ•β•  β•šβ•β•β•β•β•šβ•β•β•β•β•β•β•   β•šβ•β•    β•‘
β•‘                                                                   β•‘
β•‘              🌐 Network College CLI Tool 🌐                        β•‘
β•‘                                                                   β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

A beautiful CLI tool for Quera Network College - GNS3 network exercises made easy!

PyPI version Python Version License CI Platform

🧭 What is Quera-Net?

Quera-Net is a developer-friendly CLI tool designed to simplify and automate GNS3-based networking exercises for Quera Network College. It removes the complexity of manual setup, letting you focus purely on learning and practicing networking concepts.

Whether you're a beginner or an advanced learner, Quera-Net streamlines environment setup, lesson management, and submission workflows into a smooth, guided experience.


🎯 Why Use Quera-Net?

Setting up networking labs can be time-consuming and error-prone. Quera-Net solves this by providing a fully automated, consistent, and visually appealing interface for managing your lab environment.

With Quera-Net, you can:

  • ⚑ Skip manual configuration and start instantly
  • πŸ”„ Stay synced with the latest course requirements
  • πŸ§ͺ Experiment safely in isolated Docker environments
  • 🎨 Enjoy a modern, themed CLI experience
  • πŸ“¦ Manage everything from setup to submission in one place

✨ Features

  • πŸš€ One-Command Setup - Initialize your entire GNS3 environment with a single command
  • 🌐 Server-Synced Config - Automatically fetches latest configurations from Quera server
  • 🎨 Beautiful UI - Gorgeous terminal interface with multiple color themes
  • πŸ” Smart Checks - Automatic system requirements verification
  • 🐳 Docker Integration - Seamless Docker management
  • πŸ“š Easy Lessons - Setup and submit exercises effortlessly
  • 🌍 Cross-Platform - Works on Linux, macOS, and Windows

πŸ“¦ Installation

One-Line Install (Recommended)

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/dwin-gharibi/quera-net/main/scripts/install.sh | bash

Or using wget:

wget -qO- https://raw.githubusercontent.com/dwin-gharibi/quera-net/main/scripts/install.sh | bash

Windows (PowerShell as Administrator):

irm https://raw.githubusercontent.com/dwin-gharibi/quera-net/main/scripts/install.ps1 | iex

Using pip

pip install quera-net

Using pipx (Isolated Environment)

pipx install quera-net

From Source

git clone https://github.com/dwin-gharibi/quera-net.git
cd quera-net
pip install -e .

πŸš€ Quick Start

1. Initialize Environment

quera-net init

This will:

  • βœ… Fetch latest configuration from Quera server
  • βœ… Check system requirements (RAM, OS, Docker)
  • βœ… Pull the required Docker image
  • βœ… Create configuration files
  • βœ… Start the GNS3 container
  • βœ… Open GNS3 in your browser

2. Setup a Lesson

quera-net setup 295501

Replace 295501 with your lesson ID from Quera.

3. Submit Your Solution

quera-net submit 295501

πŸ“– Commands

Command Description
quera-net init πŸš€ Initialize the environment
quera-net setup <id> πŸ“š Setup a lesson by ID
quera-net submit <id> πŸ“€ Submit your solution
quera-net status πŸ“Š Show environment status
quera-net start ▢️ Start GNS3 container
quera-net stop ⏹️ Stop GNS3 container
quera-net restart πŸ”„ Restart GNS3 container
quera-net logs πŸ“œ Show container logs
quera-net open-gns3 🌐 Open GNS3 in browser
quera-net themes 🎨 List available themes
quera-net clean 🧹 Clean up containers

Command Options

quera-net init --skip-checks
quera-net init --no-pull
quera-net init --offline
quera-net init --force

quera-net logs --follow
quera-net logs --lines 100

🎨 Themes

Quera-Net comes with beautiful color themes! Use the --theme flag with any command:

quera-net status --theme cyberpunk
quera-net init --theme matrix
quera-net setup 295501 --theme ocean

Available themes:

Theme Description
🟣 quera Default - Elegant indigo and purple
🟒 matrix Hacker green vibes
πŸ”΅ ocean Calm and professional blue
🟠 sunset Warm coral tones
🟑 cyberpunk Neon pink and cyan

Preview all themes:

quera-net themes

πŸ’» System Requirements

Requirement Minimum
RAM 4 GB
Disk Space 10 GB
Docker Latest
Python 3.8+

Supported Operating Systems

  • βœ… Linux - Ubuntu, Debian, Fedora, CentOS, Arch, etc.
  • βœ… macOS - 10.15 (Catalina) and later
  • βœ… Windows - 10/11 with WSL2 and Docker Desktop

πŸ”§ Configuration

Quera-Net stores its configuration in ~/.quera-net/:

~/.quera-net/
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ config_cache.json
└── data/
    └── ...

Server Configuration

The CLI fetches configuration from the Quera server including:

  • Docker image versions
  • System requirements
  • docker-compose.yml content

Use --offline flag to skip server fetch and use cached/default values.


πŸ› οΈ Development

Setup Development Environment

# Clone the repository
git clone https://github.com/dwin-gharibi/quera-net.git
cd quera-net

# Install with dev dependencies
make dev
# or
pip install -e ".[dev]"

# Run linting
make lint

# Run tests
make test

# Build package
make build

Project Structure

quera-net/
β”œβ”€β”€ quera_net/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ cli.py
β”‚   β”œβ”€β”€ core/
β”‚   β”‚   β”œβ”€β”€ api.py
β”‚   β”‚   β”œβ”€β”€ config.py
β”‚   β”‚   β”œβ”€β”€ docker_manager.py
β”‚   β”‚   └── system_check.py
β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   β”œβ”€β”€ components.py
β”‚   β”‚   └── themes.py
β”‚   └── utils/
β”‚       β”œβ”€β”€ network.py
β”‚       └── platform.py
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ install.sh
β”‚   └── install.ps1
β”œβ”€β”€ .github/workflows/
β”‚   β”œβ”€β”€ ci.yml
β”‚   β”œβ”€β”€ publish.yml
β”‚   └── release.yml
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ Makefile
└── README.md

πŸ†˜ Troubleshooting

Docker not found

Linux:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Log out and log back in

macOS/Windows: Download Docker Desktop

Container won't start

# Check logs
quera-net logs

# Restart container
quera-net restart

# Full reset
quera-net clean --all
quera-net init

GNS3 not accessible

  1. Make sure the container is running: quera-net status
  2. Check if port 3080 is available
  3. Try restarting: quera-net restart

Permission denied (Linux)

# Add user to docker group
sudo usermod -aG docker $USER
# Log out and log back in

πŸ”— Links


Made with ❀️ by Quera

Happy Networking! 🌐

About

Quera-Net is a powerful CLI tool that simplifies GNS3-based networking labs for Quera Network College. It automates environment setup, lesson management, and submissions with Docker integration, smart checks, and a visually rich terminal interface for seamless learning.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors