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.
- Clone the latest version of the project from the repository.
git clone https://github.com/r1pk/network-monitor.git .
- Install the client module dependencies.
cd client
npm install
- Install the server module dependencies.
cd server
npm install
- Install the Ookla SpeedTest CLI by following the official instructions.
The application and its individual features are configured by modifying environment variables defined in .env
files located in the client
and server
folders.
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. |
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. |
Ensure that all dependencies are installed and both modules are configured properly.
- 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
.
- 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
.
The application includes a docker configuration that automates the installation of all dependencies, greatly simplifying the process of launching the application.
- 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
.
- Patryk @r1pk Krawczyk
- Project is licensed under the MIT license.