docker alpine

This commit is contained in:
aceberg 2022-08-21 16:18:43 +07:00
parent 21fafce4a8
commit 48d385e230
7 changed files with 50 additions and 16 deletions

View file

@ -1,10 +1,17 @@
FROM ubuntu:20.04 FROM golang:alpine AS builder
RUN apt update && apt install -y arp-scan && apt clean \ RUN apk add build-base
COPY src /src
RUN cd /src && go build .
FROM alpine
RUN apk add arp-scan \
&& mkdir /data && mkdir /data
COPY src/templates /app/templates COPY src/templates /app/templates
COPY src/watchyourlan /app/ COPY --from=builder /src/watchyourlan /app/
EXPOSE 8840 EXPOSE 8840

13
Dockerfile.ubuntu Normal file
View file

@ -0,0 +1,13 @@
FROM ubuntu:20.04
RUN apt update && apt install -y arp-scan && apt clean \
&& mkdir /data
COPY src/templates /app/templates
COPY src/watchyourlan /app/
EXPOSE 8840
WORKDIR /app
ENTRYPOINT ["./watchyourlan"]

View file

@ -1,7 +1,7 @@
DUSER=aceberg DUSER=aceberg
DNAME=watchyourlan DNAME=watchyourlan
VERSION=0.4 VERSION=0.5
mod: mod:
cd src && \ cd src && \

View file

@ -16,7 +16,7 @@ func host_in_db(host Host, dbHosts []Host) bool {
return false return false
} }
func db_compare(foundHosts []Host, dbHosts []Host) { func hosts_compare(foundHosts []Host, dbHosts []Host) {
// fmt.Println("Found hosts:", foundHosts) // fmt.Println("Found hosts:", foundHosts)
// fmt.Println("DB hosts:", dbHosts) // fmt.Println("DB hosts:", dbHosts)

View file

@ -10,6 +10,7 @@ func get_config(path string) (config Conf) {
viper.SetDefault("DBPATH", "/data/db.sqlite") viper.SetDefault("DBPATH", "/data/db.sqlite")
viper.SetDefault("GUIIP", "localhost") viper.SetDefault("GUIIP", "localhost")
viper.SetDefault("GUIPORT", "8840") viper.SetDefault("GUIPORT", "8840")
viper.SetDefault("TIMEOUT", "60")
viper.SetConfigFile(path) viper.SetConfigFile(path)
viper.SetConfigType("env") viper.SetConfigType("env")
@ -21,6 +22,7 @@ func get_config(path string) (config Conf) {
config.DbPath = viper.Get("DBPATH").(string) config.DbPath = viper.Get("DBPATH").(string)
config.GuiIP = viper.Get("GUIIP").(string) config.GuiIP = viper.Get("GUIIP").(string)
config.GuiPort = viper.Get("GUIPORT").(string) config.GuiPort = viper.Get("GUIPORT").(string)
config.Timeout = viper.GetInt("TIMEOUT")
// fmt.Println(viper.Get("DBPATH")) // fmt.Println(viper.Get("DBPATH"))

View file

@ -1,8 +1,9 @@
package main package main
// import ( import (
// "fmt" // "fmt"
// ) "time"
)
type Host struct { type Host struct {
Id uint16 Id uint16
@ -20,21 +21,32 @@ type Conf struct {
DbPath string DbPath string
GuiIP string GuiIP string
GuiPort string GuiPort string
Timeout int
} }
var AppConfig Conf var AppConfig Conf
var AllHosts []Host var AllHosts []Host
func scan() {
for {
foundHosts := parse_output(scan_iface(AppConfig.Iface))
dbHosts := db_select()
db_setnow()
hosts_compare(foundHosts, dbHosts)
AllHosts = db_select()
// fmt.Println("Refresh")
time.Sleep(time.Duration(AppConfig.Timeout) * time.Second)
}
}
func main() { func main() {
AllHosts = []Host{}
AppConfig = get_config("./data/config") AppConfig = get_config("./data/config")
db_create() db_create()
foundHosts := parse_output(scan_iface(AppConfig.Iface)) // fmt.Println("Timeout: ", AppConfig.Timeout)
dbHosts := db_select() go scan()
db_setnow()
db_compare(foundHosts, dbHosts)
AllHosts = db_select()
webgui() webgui()
} }

View file

@ -4,7 +4,7 @@
<title>Watch Your LAN</title> <title>Watch Your LAN</title>
<meta charset="utf-8"> <meta charset="utf-8">
<!--Auto refresh (seconds)--> <!--Auto refresh (seconds)-->
<!-- <meta http-equiv="refresh" content="10"> --> <!-- <meta http-equiv="refresh" content="60"> -->
<!--Favicon--> <!--Favicon-->
<link href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA/6k7AP+uSQD/z50A7urjAD85MgAAOO8AWlpaAADIawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEREQAAAAAzEREREQAAAzEREREREAAzFxEREVERADN3d3VVVREDM3d3dYVlERMzd3d1VVUREzM3ERESERETMzcRESERERMzNxESMREREzM3ESNEQREwMzcSMxEREwAzNyM0REQzAAMzMzMzMzAAADMzMzMzAAAAADMzMwAAD4HwAA4AcAAMADAACAAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAHAAD4HwAA" rel="icon" type="image/x-icon" /> <link href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA/6k7AP+uSQD/z50A7urjAD85MgAAOO8AWlpaAADIawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEREQAAAAAzEREREQAAAzEREREREAAzFxEREVERADN3d3VVVREDM3d3dYVlERMzd3d1VVUREzM3ERESERETMzcRESERERMzNxESMREREzM3ESNEQREwMzcSMxEREwAzNyM0REQzAAMzMzMzMzAAADMzMzMzAAAAADMzMwAAD4HwAA4AcAAMADAACAAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAHAAD4HwAA" rel="icon" type="image/x-icon" />
<!--Bootstrap theme--> <!--Bootstrap theme-->