### Install via Homebrew Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Install the Sniffnet package using Homebrew. ```sh brew install sniffnet ``` -------------------------------- ### Install via FreeBSD pkg Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Install the Sniffnet port on FreeBSD. ```sh pkg install sniffnet ``` -------------------------------- ### Install via Pkgin Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Install Sniffnet on NetBSD using the pkgin repository manager. ```sh pkgin install sniffnet ``` -------------------------------- ### Install via Pacman Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Install the Sniffnet community package on Arch Linux. ```sh pacman -S sniffnet ``` -------------------------------- ### Install via Scoop Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Install Sniffnet on Windows using the Scoop package manager. ```sh scoop bucket add extras scoop install extras/sniffnet ``` -------------------------------- ### Install via Tiny Core Linux Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Install Sniffnet using the tce-load utility. ```sh tce-load -wi sniffnet ``` -------------------------------- ### Launch Sniffnet with administrator privileges Source: https://github.com/gyulyvgc/sniffnet/wiki/Install-on-macOS Use this command when installing via Homebrew to ensure the application has the necessary permissions to monitor network adapters. ```bash sudo sniffnet ``` -------------------------------- ### Install via Nix Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Configure Sniffnet using NixOS, Home Manager, or a temporary shell. ```nix environment.systemPackages = [ pkgs.sniffnet ]; ``` ```nix home.packages = [ pkgs.sniffnet ]; ``` ```sh nix-shell -p sniffnet ``` -------------------------------- ### Install via Cargo Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Build and install the Sniffnet binary using the Rust package manager. ```sh cargo install sniffnet --locked ``` -------------------------------- ### Run Sniffnet with sudo privileges Source: https://github.com/gyulyvgc/sniffnet/wiki/Install-on-Linux Necessary for AppImage installations or when alternative installation methods are used. ```sh sudo -E sniffnet ``` -------------------------------- ### Set network adapter capabilities Source: https://github.com/gyulyvgc/sniffnet/wiki/Install-on-Linux Required when using alternative installation methods to ensure the application can inspect network traffic. ```sh sudo setcap cap_net_raw,cap_net_admin=eip ``` -------------------------------- ### Define Custom Theme Colors (TOML) Source: https://github.com/gyulyvgc/sniffnet/blob/main/resources/themes/README.md Configure theme colors using RGB/RGBA hexadecimal values in a TOML file. This example shows background, connection, text, and accent colors. ```toml # all colors are in RGB/RGBA hexadecimal. primary = "#303446" # background color secondary = "#a6d189" # header, footer, and incoming connections color outgoing = "#f4b8e4" # outgoing connections color text_body = "#c6d0f5" # body text color text_headers = "#232634" # header and footer text color starred = "#e5c890" # favorites' star color ``` -------------------------------- ### Switch to tiny-skia renderer Source: https://github.com/gyulyvgc/sniffnet/blob/main/README.md Set this environment variable to use the CPU-only software renderer if the default wgpu renderer causes interface glitches. ```sh ICED_BACKEND=tiny-skia ``` -------------------------------- ### Run Sniffnet on ARM64 Linux Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Execute Sniffnet in a container while mounting host ARM64 libraries to resolve dependency errors. ```sh sudo docker run -d \ --net=host \ --cap-add=NET_ADMIN \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $HOME/.Xauthority:/root/.Xauthority \ -v /lib/aarch64-linux-gnu:/lib/aarch64-linux-gnu \ -e DISPLAY=$DISPLAY \ --name sniffnet \ ghcr.io/gyulyvgc/sniffnet:latest ``` -------------------------------- ### Run Sniffnet in Docker Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Execute Sniffnet within a container with appropriate network and display permissions. ```sh docker run -it \ --net=host \ -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \ -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \ -e XDG_RUNTIME_DIR=/tmp \ -e RUST_BACKTRACE=full \ -e ICED_BACKEND=tiny-skia \ --cap-add=NET_ADMIN \ --cap-add=NET_RAW \ ghcr.io/gyulyvgc/sniffnet:latest ``` ```sh docker run -it \ --net=host \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e RUST_BACKTRACE=full \ -e ICED_BACKEND=tiny-skia \ --cap-add=NET_ADMIN \ --cap-add=NET_RAW \ ghcr.io/gyulyvgc/sniffnet:latest ``` -------------------------------- ### Manage X11 Docker Permissions Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Grant or revoke local Docker access to the X server. ```sh xhost +local:docker ``` ```sh xhost -local:docker ``` -------------------------------- ### Pull Sniffnet Docker Image Source: https://github.com/gyulyvgc/sniffnet/wiki/Alternative-installation-methods Download the latest Sniffnet image from the GitHub Container Registry. ```sh # Pull the latest version docker pull ghcr.io/gyulyvgc/sniffnet:latest ``` -------------------------------- ### JSON Payload for Favorite Program Activity Source: https://github.com/gyulyvgc/sniffnet/wiki/Remote-notifications Payload sent when new data is exchanged with a favorite program. ```json { "info": "New data exchanged from favorites", "timestamp": "2025/10/23 11:34:42", "favorite": { "program": "example.exe" }, "data": "560 B" } ``` -------------------------------- ### Define Custom Theme Colors in TOML Source: https://github.com/gyulyvgc/sniffnet/wiki/Custom-themes Use this TOML format to define the colors for your custom Sniffnet theme. All colors must be in hexadecimal format. ```toml primary = "#303446" # background color secondary = "#a6d189" # header, footer, and incoming connections color outgoing = "#f4b8e4" # outgoing connections color text_body = "#c6d0f5" # body text color text_headers = "#232634" # header and footer text color starred = "#e5c890" # favorites' star color ``` -------------------------------- ### JSON Payload for Favorite Network Host Activity Source: https://github.com/gyulyvgc/sniffnet/wiki/Remote-notifications Payload sent when new data is exchanged with a favorite network host. ```json { "info": "New data exchanged from favorites", "timestamp": "2025/10/23 11:34:42", "favorite": { "country": "US", "domain": "github.com", "asn": "GitHub, Inc." }, "data": "560 B" } ``` -------------------------------- ### JSON Payload for Favorite Service Activity Source: https://github.com/gyulyvgc/sniffnet/wiki/Remote-notifications Payload sent when new data is exchanged with a favorite service. ```json { "info": "New data exchanged from favorites", "timestamp": "2025/10/23 11:34:42", "favorite": { "service": "https" }, "data": "560 B" } ``` -------------------------------- ### JSON Payload for Blacklisted IP Activity Source: https://github.com/gyulyvgc/sniffnet/wiki/Remote-notifications Payload sent when new data is exchanged with a blacklisted IP address. ```json { "info": "New data exchanged from a blacklisted IP", "timestamp": "2025/10/23 11:34:42", "ip": "8.8.8.8", "host": { "country": "US", "domain": "dns.google", "asn": "Google LLC" }, "data": "560 B" } ``` -------------------------------- ### JSON Payload for Data Threshold Exceeded Source: https://github.com/gyulyvgc/sniffnet/wiki/Remote-notifications Payload sent when the configured data threshold is exceeded. ```json { "info": "Bytes threshold exceeded", "timestamp": "2025/10/23 11:34:42", "threshold": "800 KB", "data": "17 MB" } ``` -------------------------------- ### POST Webhook Notification Source: https://github.com/gyulyvgc/sniffnet/wiki/Remote-notifications Sniffnet sends notifications as JSON payloads via HTTP POST to a user-configured endpoint URL when specific network events occur. ```APIDOC ## POST [User-Configured Endpoint] ### Description Sniffnet sends a JSON payload to the configured endpoint URL whenever a monitored network event occurs. ### Method POST ### Request Body The structure of the JSON object varies based on the event type: - **Data threshold exceeded**: - `info` (string) - Description of the event - `timestamp` (string) - Event time - `threshold` (string) - Configured threshold - `data` (string) - Current data usage - **New data exchanged from favorites**: - `info` (string) - Description of the event - `timestamp` (string) - Event time - `favorite` (object) - Details about the favorite (country, domain, asn, service, or program) - `data` (string) - Data exchanged - **New data exchanged from a blacklisted IP**: - `info` (string) - Description of the event - `timestamp` (string) - Event time - `ip` (string) - The blacklisted IP address - `host` (object) - Host details (country, domain, asn) - `data` (string) - Data exchanged ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.