initial commit
Some checks failed
/ Plan (push) Failing after 15s

This commit is contained in:
Dan Hamik 2024-11-26 13:22:46 -06:00
commit a1e168f345
8 changed files with 138 additions and 0 deletions

View File

@ -0,0 +1,29 @@
Name: Commit Checks
run-name: ${{ gitea.actor }}
on:
push:
branches:
- "**"
- "!main"
jobs:
Plan:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
#
- name: List Contents
id: ls
run: ls -al
- name: Deploy
run: |
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
docker build -t git.hamik.net/paradizelost/speedtest:dev .
docker push git.hamik.net/paradizelost/speedtest:dev

View File

@ -0,0 +1,41 @@
Name: Container Build Push
run-name: ${{ gitea.actor }}
on:
pull_request:
types: [closed]
jobs:
Plan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: List Contents
id: ls
run: ls -al
- name: Deploy
run: |
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
docker build -t git.hamik.net/paradizelost/speedtest:latest .
docker push git.hamik.net/paradizelost/speedtest:latest
Deploy:
needs: [Plan]
runs-on: speedtest
defaults:
run:
working-directory: /docker/speedtest
steps:
- name: Destroy Container
id: down
run: docker compose down
- name: Pull Updates
id: pull
run: docker compose pull
- name: Start Containers
id: start
run: docker compose up -d

12
Dockerfile Normal file
View File

@ -0,0 +1,12 @@
FROM debian:bullseye-slim
#
COPY ookla_speedtest_cli.list /etc/apt/sources.list.d/
RUN apt update && apt install python3 python3-pip iputils-ping speedtest -y
COPY logspeedtest.py /usr/local/bin/
COPY requirements.txt /
COPY init.sh /
RUN chmod +x /init.sh
RUN chmod +x /usr/local/bin/logspeedtest.py
RUN pip3 install -r /requirements.txt
RUN apt clean
CMD ["/init.sh"]

9
docker-compose.yml Normal file
View File

@ -0,0 +1,9 @@
services:
speedtest:
image: git.hamik.net/paradizelost/speedtest:latest
container_name: speedtest
restart: always
environment:
- INFLUX_USER=${INFLUX_USER}
- INFLUX_PASSWORD=${INFLUX_PASSWORD}
- INFLUX_URI=${INFLUX_URI}

2
init.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
/usr/local/bin/logspeedtest.py

35
logspeedtest.py Normal file
View File

@ -0,0 +1,35 @@
#!/usr/bin/python3
import os
import subprocess as sp
import requests
import time
import json
def addinfluxrecord(downspeed,upspeed,pktloss,jitter,latencyavg,minlatency,maxlatency):
data = f"Down value={downspeed}\nUp value={upspeed}\nPacketLoss value={pktloss}\nJitter value={jitter}\nLatencyAvg value={latencyavg}\nLatencyLow value={minlatency}\nLatencyHigh value={maxlatency}"
print(data)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
response = requests.post(
influxuri,
data=data,
headers=headers,
auth=(infdbuser,infdbpass)
)
return response
infdbuser = os.environ["INFLUX_USER"]
infdbpass = os.environ["INFLUX_PASSWORD"]
influxuri = os.environ["INFLUX_URI"]
while(True):
response = sp.getstatusoutput(f"speedtest --format=json")[1]
respjson = json.loads(response.split("\n")[1])
print(response)
downspeed = respjson['download']['bandwidth'] * 8 / 1024 / 1024
upspeed = respjson['upload']['bandwidth'] * 8 / 1024 / 1024
pktloss = respjson['packetLoss']
jitter = respjson['ping']['jitter']
latencyavg=respjson['ping']['latency']
minlatency=respjson['ping']['low']
maxlatency=respjson['ping']['high']
result = addinfluxrecord(downspeed,upspeed,pktloss,jitter,latencyavg,minlatency,maxlatency)
print(result)
time.sleep(300)

5
ookla_speedtest_cli.list Normal file
View File

@ -0,0 +1,5 @@
# this file was generated by packagecloud.io for
# the repository at https://packagecloud.io/ookla/speedtest-cli
deb [signed-by=/etc/apt/keyrings/ookla_speedtest-cli-archive-keyring.gpg] https://packagecloud.io/ookla/speedtest-cli/debian/ bookworm main
deb-src [signed-by=/etc/apt/keyrings/ookla_speedtest-cli-archive-keyring.gpg] https://packagecloud.io/ookla/speedtest-cli/debian/ bookworm main

5
requirements.txt Normal file
View File

@ -0,0 +1,5 @@
boto==2.49.0
boto3==1.26.27
botocore==1.29.27
requests==2.28.1
tabulate==0.8.9