Skip to content

Commit

Permalink
cleanup dev workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Saturn-V committed Oct 11, 2023
1 parent fefcc89 commit a42825f
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 15 deletions.
3 changes: 0 additions & 3 deletions .env.sample

This file was deleted.

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ data/grafana/*
.env
*/**/node_modules

*/**/data/influxdb/*
*/**/data/influxdb/*
influxdb/data/*
8 changes: 2 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,7 @@ Docker setup consisting out of Grafana incl. a pre-configured dashboard, InfluxD
git clone https://github.com/sjultra/speedtest.git
```

3. Create a copy of the sample `.env` file and adjust it at will:

```shell
cp .env.sample .env
```
3. Open docker-compose.yml and override env vars at will:

4. Spin up the containers:

Expand All @@ -32,7 +28,7 @@ You can make use of the following environment variables / configurations:
| Environment variable | Default value | Description
|----------------------|---------------|------------|
| `GRAFANA_PORT` | `3000` | Port to bind Grafana webinterface on the host system |
| `SPEEDTEST_SPEEDTEST_INTERVAL` | `3600` | Interval/pause (in seconds) between speedtests |
| `SPEEDTEST_INTERVAL` | `3600` | Interval/pause (in seconds) between speedtests |
| `SPEEDTEST_HOST` | `local` | Display name of the client |
| `SPEEDTEST_SERVER` | none | Optionally set specific speedtest.net server ID, otherwise use the closest |
| `INFLUXDB_DB` | `speedtest` | Database to save speedtest results |
Expand Down
45 changes: 45 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
version: "1.0"
services:
speedtest:
build:
context: .
dockerfile: ./docker/Dockerfile
# environment:
# - INFLUXDB_HOST=influxdb
# - INFLUXDB_DB=speedtest
# - INFLUXDB_USERNAME=admin
# - INFLUXDB_PASSWORD=password
# - SPEEDTEST_HOST=local
# - SPEEDTEST_INTERVAL=3600
restart: unless-stopped
depends_on:
- "influxdb"
- "grafana"

influxdb:
image: sjultra/influxdb-legacy:latest
environment:
- INFLUXDB_ADMIN_USER=admin
- INFLUXDB_ADMIN_PASSWORD=password
- DB_NAME=speedtest
volumes:
- ./influxdb/data:/var/lib/influxdb2
- ./influxdb/config:/etc/influxdb2
ports:
- 8086:8086
restart: always

grafana:
image: grafana/grafana:10.1.2
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_AUTH_ANONYMOUS_ENABLED=true
volumes:
- ./helm/service/files/grafana/dashboards:/etc/grafana/provisioning/dashboards
- ./helm/service/files/grafana/datasources:/etc/grafana/provisioning/datasources
ports:
- 3000:3000
restart: always
depends_on:
- "influxdb"
4 changes: 2 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ LABEL maintainer="contact@sjultra.com"
WORKDIR /app

# install depencies
COPY package.json package-lock.json .
COPY docker/package.json docker/package-lock.json .
RUN npm ci

# include speedtest cli in build
COPY --from=get-speedtest /usr/bin/speedtest /usr/bin/speedtest

# run script
COPY index.js .
COPY docker/index.js .
CMD [ "node", "index.js" ]
6 changes: 3 additions & 3 deletions docker/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ const delay = require("delay");

process.env.INFLUXDB_HOST = (process.env.INFLUXDB_HOST) ? process.env.INFLUXDB_HOST : 'influxdb';
process.env.INFLUXDB_DB = (process.env.INFLUXDB_DB) ? process.env.INFLUXDB_DB : 'speedtest';
process.env.INFLUXDB_USERNAME = (process.env.INFLUXDB_USERNAME) ? process.env.INFLUXDB_USERNAME : 'root';
process.env.INFLUXDB_PASSWORD = (process.env.INFLUXDB_PASSWORD) ? process.env.INFLUXDB_PASSWORD : 'root';
process.env.INFLUXDB_USERNAME = (process.env.INFLUXDB_USERNAME) ? process.env.INFLUXDB_USERNAME : 'admin';
process.env.INFLUXDB_PASSWORD = (process.env.INFLUXDB_PASSWORD) ? process.env.INFLUXDB_PASSWORD : 'password';
process.env.SPEEDTEST_HOST = (process.env.SPEEDTEST_HOST) ? process.env.SPEEDTEST_HOST : 'local';
process.env.SPEEDTEST_INTERVAL = (process.env.SPEEDTEST_INTERVAL) ? process.env.SPEEDTEST_INTERVAL : 3600;
process.env.SPEEDTEST_INTERVAL = (process.env.SPEEDTEST_INTERVAL) ? process.env.SPEEDTEST_INTERVAL : 60;

const bitToMbps = bit => (bit / 1000 / 1000) * 8;

Expand Down

0 comments on commit a42825f

Please sign in to comment.