mirror of
https://github.com/rzuasti/oott.git
synced 2026-07-08 19:21:54 +02:00
39 lines
2.4 KiB
Markdown
39 lines
2.4 KiB
Markdown
# OOTT
|
|
Easy to setup and use network device discovery and alert system
|
|
|
|
## What is it?
|
|
OOTT provides a service that runs behind the scenes and monitors your local network. It's most relevant features are:
|
|
* Scan network regularly using ARP probes
|
|
* Notify when a new device is found
|
|
* Notify when a device changed it's IP address or network interface vendor (based on its MAC address)
|
|
* Notify when a device came back online after a configurable period of being offline
|
|
|
|
OOTT can be installed as a NixOS module (using flakes) or as a docker image, see below for instructions on how to deploy and configure it.
|
|
|
|
# Installation & configuration
|
|
## Install OOTT using Docker
|
|
TODO
|
|
|
|
## Install OOTT using NixOS flakes
|
|
|
|
## Configuration options
|
|
The system configuration is centralized in a single config file, you can use TOML, JSON or YAML to write it.
|
|
|
|
If you are using the provided NixOS flake you should set all the options via nix in the service definition (see above).
|
|
|
|
If you are using Docker I recommend writing the config using TOML, [here](https://github.com/rzuasti/oott/blob/main/sample_oott.toml) is a sample with all the supported options.
|
|
|
|
### Options list
|
|
|Option|Sample value|Description|
|
|
|------|-------------|-----------|
|
|
|`database.path`|`/var/lib/oott.db`|Location of the system database|
|
|
|`networking.interface`|`eno1`|Network interface to use for scans|
|
|
|`log.level`|`info`|Log level to use (trace, debug, info, warn, error)|
|
|
|`timings.wait_between_scans`|`15m`|Time to wait between each network scan (you can express it in seconds, minutes, hours, etc. as a suffix - for example: 30s, 10m, 1h)|
|
|
|`timings.arp_sender_timeout`|`1m`|If the ARP sender process takes longer than this it will be stopped (for a class C network - 254 IPs - it should take less than a minute)|
|
|
|`timings.arp_scan_duration`|`10m`|How long to wait for response packets on each scan (5m to 10m is a good timeframe for a class B or C network)|
|
|
|`notifications.method`|`pushover`|For now just pushover, you can set this to "none" to avoid sending notifications (it will just log)|
|
|
|`notifications.notify_when_not_seen_for`|`1w`|Send a notification if a device comes back online after not being seen for this timeframe (you can use hours, weeks, etc.)|
|
|
|`notifications.pushover.token`||Your pushover token goes here, just copy&paste from their website after creating the app|
|
|
|`notifications.pushover.user_key`||User key goes here, this is the account wide code for pushover|
|