Skip to content

Application built with Nest.js, Ookla SpeedTest CLI, React.js and Tailwind to monitor internet connection stability through periodic speed tests.

License

Notifications You must be signed in to change notification settings

r1pk/network-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network Monitor

Network Monitor is an application developed using technologies such as Nest.js, Ookla SpeedTest CLI, React.js, and Tailwind. It monitors internet connection stability by performing periodic speed tests via Ookla SpeedTest CLI and presents the results in the form of visual graphs.

Preview

DASHBOARD

Installation

  1. Clone the latest version of the project from the repository.
git clone https://github.com/r1pk/network-monitor.git .
  1. Install the client module dependencies.
cd client

npm install
  1. Install the server module dependencies.
cd server

npm install
  1. Install the Ookla SpeedTest CLI by following the official instructions.

Configuration

The application and its individual features are configured by modifying environment variables defined in .env files located in the client and server folders.

Client Module Configuration (client/.env)

The behavior of the client module is controlled by the following environment variables:

Name Default Description
VITE_API_URL http://127.0.0.1:8080 Specifies the URL to the server module.

Server Module Configuration (server/.env)

The behavior of the server module is controlled by the following environment variables:

Name Default Description
NODE_ENV production Defines the environment (e.g., development, production).
SERVER_PORT 8080 Specifies the application port.
DATABASE_HOST Specifies the host name or IP address of the MySQL server.
DATABASE_PORT Specifies the port number of the MySQL server.
DATABASE_NAME Specifies the MySQL database name.
DATABASE_USER Specifies the MySQL database user.
DATABASE_PASSWORD Specifies the password associated with the MySQL database user.
DATABASE_SYNC_ENABLED true Determines whether to automatically update the database schema based on the defined entities.
SPEEDTEST_CLI_ARGS Specifies additional command-line arguments for the Ookla SpeedTest CLI.

Usage

Ensure that all dependencies are installed and both modules are configured properly.

  1. Start the client module.
cd client

# Development
npm run start:dev

# Production
npm run build
npm run start:prod

Once started, the client module will be accessible at http://127.0.0.1:3000.

  1. Start the server module.
cd server

# Development
npm run start:dev

# Production
npm run build
npm run start:prod

Once started, the server module api will be accessible at http://127.0.0.1:8080.

Docker

The application includes a docker configuration that automates the installation of all dependencies, greatly simplifying the process of launching the application.

Usage

  1. Build and launch the application.
cd docker

docker compose up -d --build

Once started, the client module will be accessible at http://127.0.0.1:3000, while the server module api will be accessible at http://127.0.0.1:8080.

Authors

License

  • Project is licensed under the MIT license.

About

Application built with Nest.js, Ookla SpeedTest CLI, React.js and Tailwind to monitor internet connection stability through periodic speed tests.

Topics

Resources

License

Stars

Watchers

Forks