Compare commits

..

24 Commits

@ -1,18 +1,28 @@
FROM node:16-alpine # ---- Base ----
FROM alpine:3 AS base
# Create app directory # Create app directory
WORKDIR /usr/src/app WORKDIR /usr/src/app
# Copy project file
COPY package.json .
# Install required apk-packages
RUN apk add --no-cache nodejs npm tcpdump
# ---- Dependencies ----
FROM base AS dependencies
# Install app dependencies # Install app dependencies
COPY package*.json ./ RUN npm install --only=production
RUN npm install
# remove development dependencies
RUN npm prune --production
# Install required apk-packages & delete cache # ---- Release ----
RUN apk update && apk add tcpdump && rm -rf /var/cache/apk/* FROM base AS release
# copy from build image
COPY --from=dependencies /usr/src/app/ ./
# Bundle app source # Bundle app source
COPY ./src/ . COPY ./src/ .

@ -17,6 +17,7 @@ Table of contents
- [1.1. What kind of data](#11-what-kind-of-data) - [1.1. What kind of data](#11-what-kind-of-data)
- [1.2. Data-Usage](#12-data-usage) - [1.2. Data-Usage](#12-data-usage)
- [1.3. Tools used](#13-tools-used) - [1.3. Tools used](#13-tools-used)
- [1.4. Architecture](#14-architecture)
- [2. Usage/Installation](#2-usageinstallation) - [2. Usage/Installation](#2-usageinstallation)
- [2.1. Prerequisites](#21-prerequisites) - [2.1. Prerequisites](#21-prerequisites)
- [2.2. Choosing an Export-Method](#22-choosing-an-export-method) - [2.2. Choosing an Export-Method](#22-choosing-an-export-method)
@ -81,6 +82,14 @@ e.g.
The program uses `tcpdump` for listening in a subProcess and then extract the metadata when packets arrive. The program uses `tcpdump` for listening in a subProcess and then extract the metadata when packets arrive.
<br>
## 1.4. Architecture
![](docs/img/1.4.architecture.png)
The system heavily uses NodeJS-Streams to read, transform and pass data around.
<br> <br>
# 2. Usage/Installation # 2. Usage/Installation
@ -256,7 +265,7 @@ Variable|Description
Variable|Default|Description Variable|Default|Description
---|---|--- ---|---|---
`LOGLEVEL` | INFO | Loglevel `LOGLEVEL` | INFO | Loglevel
`WIFI_INTERFACE` | wlan0 | Token with write-access `WIFI_INTERFACE` | wlan0 | Wifi-Interface name in Monitor-Mode
~~`HOSTNAME`~~ | ~~Device's Hostname~~ | ~~Hostname to use as global hostname-tag~~ *(Unused)* ~~`HOSTNAME`~~ | ~~Device's Hostname~~ | ~~Hostname to use as global hostname-tag~~ *(Unused)*
<br> <br>

@ -0,0 +1,9 @@
TAG="ruakij/rfmon-to-influx"
PLATFORM="linux/amd64,linux/arm64/v8,linux/arm/v7"
EXTRA_ARGS="$@"
docker buildx build \
--platform $PLATFORM \
--tag $TAG \
$EXTRA_ARGS \
.

@ -0,0 +1,7 @@
TAG="ruakij/rfmon-to-influx"
EXTRA_ARGS="$@"
docker build \
--tag $TAG \
$EXTRA_ARGS \
.

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

@ -47,6 +47,13 @@ class PacketStreamFactory extends Transform{
} }
_transform(chunk, encoding, next){ _transform(chunk, encoding, next){
if(!chunk){
const err = "Chunk was invalid!";
logger.error(err);
next(err);
return;
}
let packet = new Packet(); let packet = new Packet();
const lines = chunk.split("\n"); const lines = chunk.split("\n");

Loading…
Cancel
Save