Update README.md for improved clarity and formatting of core components

master
Tudor Stanciu 2025-03-29 15:34:48 +02:00
parent 2cf27c69df
commit 2ef7be585d
2 changed files with 12 additions and 5 deletions

View File

@ -1,22 +1,27 @@
# Network Resurrector
Everything should be manageable remotelyeven powered-off servers. This need led to the creation of **Network Resurrector**, a tool I developed to wake up machines that don't need to be powered on at all times.
Everything should be manageable remotely<EFBFBD>even powered-off servers. This need led to the creation of **Network Resurrector**, a tool I developed to wake up machines that don't need to be powered on at all times.
The system consists of five core components that provide essential functionality. Additional components can be integrated to enhance features like notifications and logging.
## Core Components
### Frontend
The [frontend](https://lab.code-rove.com/gitea/tudor.stanciu/network-resurrector-frontend) is a **React.js**-based web application that provides a user-friendly interface for managing the system.
The frontend is a **React.js**-based web application that provides a user-friendly interface for managing the system.
### API
The API is a **.NET 8 REST API** responsible for handling communication between the frontend, database, and server components. It facilitates data exchange and enables actions such as waking or shutting down machines.
### Server
The server component is a **.NET 8** service that performs **Wake-on-LAN**, **Ping**, and **Shutdown** actions for machines within its network or any accessible network.
### Agent
The agent is a **.NET 8** service that can execute various power-related actions on the host machine, including:
- **Shutdown**
- **Restart**
- **Sleep**
@ -26,6 +31,7 @@ The agent is a **.NET 8** service that can execute various power-related actions
These actions can be executed immediately or scheduled with a delay, allowing cancellation before execution.
#### How It Works
1. A user triggers an action (e.g., wake or shutdown) via the UI.
2. The frontend sends the request to the API.
3. The API determines whether the **Agent** or **Server** should execute the action and forwards the request.
@ -34,6 +40,7 @@ These actions can be executed immediately or scheduled with a delay, allowing ca
The agent can be installed on multiple machines as needed.
### Tuitio
[Tuitio](https://lab.code-rove.com/gitea/tudor.stanciu/tuitio) is my personal identity server, handling user authentication and request authorization. For more details, refer to the [Tuitio documentation](https://lab.code-rove.com/gitea/tudor.stanciu/tuitio/src/branch/master/README.md).
All communication between the core components is done via **HTTP**.
@ -50,7 +57,7 @@ The notification system is designed to inform users about system actions (e.g.,
```json
{
"To": [ "user@homelab.com" ],
"To": ["user@homelab.com"],
"Subject": "Network Resurrector: Machine {MACHINE_NAME} has been powered on. Status: {ACTION_STATUS}",
"Body": "Hello,{NEWLINE:2}Network Resurrector processed a command to start machine {MACHINE_FULLNAME} with IP {MACHINE_IP} at {SYSTEM_DATETIME}.{NEWLINE}The assigned performer for this action was {ACTION_PERFORMER}.{NEWLINE}Action status: {ACTION_STATUS}{NEWLINE:2}Best regards,{NEWLINE}Network Resurrector Notification System."
}
@ -77,6 +84,7 @@ Currently, **Microsoft SQL Server** is the only supported database. Future versi
## Logging
Logging is managed with **Serilog**, configurable via `appsettings.json`. Logs can be stored in:
- **SQL Server**
- **Seq**
@ -101,4 +109,3 @@ These logging destinations can be enabled or disabled based on requirements. If
## Hosting
All components of **Network Resurrector** are built using cross-platform technologies, allowing deployment in any environment that supports them.

View File

@ -7,7 +7,7 @@ The system consists of five core components that provide essential functionality
## Core Components
### Frontend
The [frontend](https://lab.code-rove.com/gitea/tudor.stanciu/network-resurrector-frontend) is a **React.js**-based web application that provides a user-friendly interface for managing the system.
The frontend is a **React.js**-based web application that provides a user-friendly interface for managing the system.
### API
The API is a **.NET 8 REST API** responsible for handling communication between the frontend, database, and server components. It facilitates data exchange and enables actions such as waking or shutting down machines.