WIP
- commit
- ca7485c1c810a01996e19ac0ce9865e0da34ab2c
- author
- bnema · · 2023-09-04 16:38 UTC
- parent
- 249d4fc
- signature
- unsigned
8 files · +248 -129
M .gitignore +2 -3
| @@ -1,5 +1,4 @@ | |||
| 1 | 1 | .env | |
| 2 | 2 | node_modules/ | |
| 3 | - | tmp/ | |
| 4 | - | logs/ | |
| 5 | - | *.log⏎̸ | |
| 3 | + | tmp/* | |
| 4 | + | logs/*⏎̸ | |
| @@ -1,5 +1,4 @@ | |||||
| 1 | .env | 1 | .env | ||
| 2 | node_modules/ | 2 | node_modules/ | ||
| 3 | - | tmp/ | 3 | + | tmp/* |
| 4 | - | logs/ | 4 | + | logs/*⏎̸ |
| 5 | - | *.log⏎̸ | |||
M cmd/main.go +2 -1
| @@ -25,7 +25,7 @@ func main() { | |||
| 25 | 25 | return | |
| 26 | 26 | } | |
| 27 | 27 | ||
| 28 | - | docker.ListDocker() // List docker containers | |
| 28 | + | docker.CreateImageFromDockerfile() | |
| 29 | 29 | ||
| 30 | 30 | e := echo.New() | |
| 31 | 31 | e.HideBanner = true | |
| @@ -38,4 +38,5 @@ func main() { | |||
| 38 | 38 | return e.Start(":" + port) | |
| 39 | 39 | } | |
| 40 | 40 | utils.RunAppCatchSIGINT(startFunc, &gordon.APPLogger.Logger) | |
| 41 | + | ||
| 41 | 42 | } | |
| @@ -25,7 +25,7 @@ func main() { | |||||
| 25 | return | 25 | return | ||
| 26 | } | 26 | } | ||
| 27 | 27 | ||||
| 28 | - | docker.ListDocker() // List docker containers | 28 | + | docker.CreateImageFromDockerfile() |
| 29 | 29 | ||||
| 30 | e := echo.New() | 30 | e := echo.New() | ||
| 31 | e.HideBanner = true | 31 | e.HideBanner = true | ||
| @@ -38,4 +38,5 @@ func main() { | |||||
| 38 | return e.Start(":" + port) | 38 | return e.Start(":" + port) | ||
| 39 | } | 39 | } | ||
| 40 | utils.RunAppCatchSIGINT(startFunc, &gordon.APPLogger.Logger) | 40 | utils.RunAppCatchSIGINT(startFunc, &gordon.APPLogger.Logger) | ||
| 41 | + | ||||
| 41 | } | 42 | } | ||
M go.mod +12 -3
| @@ -11,18 +11,27 @@ require ( | |||
| 11 | 11 | require ( | |
| 12 | 12 | github.com/Microsoft/go-winio v0.6.1 // indirect | |
| 13 | 13 | github.com/andybalholm/cascadia v1.3.1 // indirect | |
| 14 | + | github.com/containerd/containerd v1.7.5 // indirect | |
| 14 | 15 | github.com/docker/distribution v2.8.2+incompatible // indirect | |
| 15 | 16 | github.com/docker/docker v24.0.5+incompatible // indirect | |
| 16 | 17 | github.com/docker/go-connections v0.4.0 // indirect | |
| 17 | 18 | github.com/docker/go-units v0.5.0 // indirect | |
| 18 | 19 | github.com/gogo/protobuf v1.3.2 // indirect | |
| 19 | 20 | github.com/golang-jwt/jwt v3.2.2+incompatible // indirect | |
| 21 | + | github.com/klauspost/compress v1.16.7 // indirect | |
| 22 | + | github.com/moby/patternmatcher v0.6.0 // indirect | |
| 23 | + | github.com/moby/sys/sequential v0.5.0 // indirect | |
| 20 | 24 | github.com/opencontainers/go-digest v1.0.0 // indirect | |
| 21 | - | github.com/opencontainers/image-spec v1.0.2 // indirect | |
| 25 | + | github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect | |
| 26 | + | github.com/opencontainers/runc v1.1.9 // indirect | |
| 22 | 27 | github.com/pkg/errors v0.9.1 // indirect | |
| 23 | - | golang.org/x/mod v0.8.0 // indirect | |
| 28 | + | github.com/sirupsen/logrus v1.9.0 // indirect | |
| 29 | + | github.com/tidwall/gjson v1.16.0 // indirect | |
| 30 | + | github.com/tidwall/match v1.1.1 // indirect | |
| 31 | + | github.com/tidwall/pretty v1.2.1 // indirect | |
| 32 | + | golang.org/x/mod v0.9.0 // indirect | |
| 24 | 33 | golang.org/x/time v0.3.0 // indirect | |
| 25 | - | golang.org/x/tools v0.6.0 // indirect | |
| 34 | + | golang.org/x/tools v0.7.0 // indirect | |
| 26 | 35 | ) | |
| 27 | 36 | ||
| 28 | 37 | require ( | |
| @@ -11,18 +11,27 @@ require ( | |||||
| 11 | require ( | 11 | require ( | ||
| 12 | github.com/Microsoft/go-winio v0.6.1 // indirect | 12 | github.com/Microsoft/go-winio v0.6.1 // indirect | ||
| 13 | github.com/andybalholm/cascadia v1.3.1 // indirect | 13 | github.com/andybalholm/cascadia v1.3.1 // indirect | ||
| 14 | + | github.com/containerd/containerd v1.7.5 // indirect | |||
| 14 | github.com/docker/distribution v2.8.2+incompatible // indirect | 15 | github.com/docker/distribution v2.8.2+incompatible // indirect | ||
| 15 | github.com/docker/docker v24.0.5+incompatible // indirect | 16 | github.com/docker/docker v24.0.5+incompatible // indirect | ||
| 16 | github.com/docker/go-connections v0.4.0 // indirect | 17 | github.com/docker/go-connections v0.4.0 // indirect | ||
| 17 | github.com/docker/go-units v0.5.0 // indirect | 18 | github.com/docker/go-units v0.5.0 // indirect | ||
| 18 | github.com/gogo/protobuf v1.3.2 // indirect | 19 | github.com/gogo/protobuf v1.3.2 // indirect | ||
| 19 | github.com/golang-jwt/jwt v3.2.2+incompatible // indirect | 20 | github.com/golang-jwt/jwt v3.2.2+incompatible // indirect | ||
| 21 | + | github.com/klauspost/compress v1.16.7 // indirect | |||
| 22 | + | github.com/moby/patternmatcher v0.6.0 // indirect | |||
| 23 | + | github.com/moby/sys/sequential v0.5.0 // indirect | |||
| 20 | github.com/opencontainers/go-digest v1.0.0 // indirect | 24 | github.com/opencontainers/go-digest v1.0.0 // indirect | ||
| 21 | - | github.com/opencontainers/image-spec v1.0.2 // indirect | 25 | + | github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect |
| 26 | + | github.com/opencontainers/runc v1.1.9 // indirect | |||
| 22 | github.com/pkg/errors v0.9.1 // indirect | 27 | github.com/pkg/errors v0.9.1 // indirect | ||
| 23 | - | golang.org/x/mod v0.8.0 // indirect | 28 | + | github.com/sirupsen/logrus v1.9.0 // indirect |
| 29 | + | github.com/tidwall/gjson v1.16.0 // indirect | |||
| 30 | + | github.com/tidwall/match v1.1.1 // indirect | |||
| 31 | + | github.com/tidwall/pretty v1.2.1 // indirect | |||
| 32 | + | golang.org/x/mod v0.9.0 // indirect | |||
| 24 | golang.org/x/time v0.3.0 // indirect | 33 | golang.org/x/time v0.3.0 // indirect | ||
| 25 | - | golang.org/x/tools v0.6.0 // indirect | 34 | + | golang.org/x/tools v0.7.0 // indirect |
| 26 | ) | 35 | ) | ||
| 27 | 36 | ||||
| 28 | require ( | 37 | require ( | ||
M go.sum +27 -0 generated file: collapsed
M logs/app.log +69 -50
| @@ -1,50 +1,69 @@ | |||
| 1 | - | {"level":"info","time":"2023-09-04T11:58:38+02:00","message":"Logger initialized directly after setup in app.go"} | |
| 2 | - | {"level":"info","time":"2023-09-04T11:58:38+02:00","message":"Middlewares have been registered!"} | |
| 3 | - | {"level":"info","time":"2023-09-04T12:03:03+02:00","message":"Logger initialized directly after setup in app.go"} | |
| 4 | - | {"level":"info","time":"2023-09-04T12:03:03+02:00","message":"Middlewares have been registered!"} | |
| 5 | - | {"level":"info","time":"2023-09-04T12:06:57+02:00","message":"Middlewares have been registered!"} | |
| 6 | - | {"level":"info","time":"2023-09-04T12:06:57+02:00","message":"Server is listening on port 1323"} | |
| 7 | - | {"level":"info","time":"2023-09-04T12:12:05+02:00","message":"Middlewares have been registered!"} | |
| 8 | - | {"level":"info","time":"2023-09-04T12:12:05+02:00","message":"Server is listening on port 1323"} | |
| 9 | - | {"level":"info","time":"2023-09-04T12:16:03+02:00","message":"Middlewares have been registered!"} | |
| 10 | - | {"level":"info","time":"2023-09-04T12:16:03+02:00","message":"Server is listening on port 1323"} | |
| 11 | - | {"level":"warn","time":"2023-09-04T12:16:41+02:00","message":"Graceful shutdown initiated, server will shutdown in 5 seconds"} | |
| 12 | - | {"level":"info","time":"2023-09-04T12:16:46+02:00","message":"Server shutdown"} | |
| 13 | - | {"level":"info","time":"2023-09-04T12:19:53+02:00","message":"Server is listening on port 1323"} | |
| 14 | - | {"level":"info","time":"2023-09-04T12:19:54+02:00","message":"Graceful shutdown initiated"} | |
| 15 | - | {"level":"warn","time":"2023-09-04T12:19:54+02:00","message":"Server will shutdown in 5 seconds press any key to cancel"} | |
| 16 | - | {"level":"info","time":"2023-09-04T12:19:59+02:00","message":"Server shutdown"} | |
| 17 | - | {"level":"info","time":"2023-09-04T12:21:28+02:00","message":"Server is listening on port 1323"} | |
| 18 | - | {"level":"info","time":"2023-09-04T12:21:31+02:00","message":"Graceful shutdown initiated"} | |
| 19 | - | {"level":"warn","time":"2023-09-04T12:21:31+02:00","message":"Server will shutdown in 5 seconds press any key to cancel"} | |
| 20 | - | {"level":"info","time":"2023-09-04T12:21:36+02:00","message":"Server shutdown"} | |
| 21 | - | {"level":"info","time":"2023-09-04T12:23:49+02:00","message":"Server is listening on port 1323"} | |
| 22 | - | {"level":"info","time":"2023-09-04T12:23:51+02:00","message":"Graceful shutdown initiated"} | |
| 23 | - | {"level":"warn","time":"2023-09-04T12:23:51+02:00","message":"Server will shutdown in 5 seconds press any key to cancel"} | |
| 24 | - | {"level":"info","time":"2023-09-04T12:23:54+02:00","message":"Shutdown cancelled by user"} | |
| 25 | - | {"level":"info","time":"2023-09-04T12:24:40+02:00","message":"Server is listening on port 1323"} | |
| 26 | - | {"level":"info","time":"2023-09-04T12:39:06+02:00","message":"Server is listening on port 1323"} | |
| 27 | - | {"level":"info","time":"2023-09-04T12:40:11+02:00","message":"Server is listening on port 1323"} | |
| 28 | - | {"level":"warn","time":"2023-09-04T12:40:12+02:00","message":"Graceful shutdown initiated"} | |
| 29 | - | {"level":"warn","time":"2023-09-04T12:40:12+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 30 | - | {"level":"info","time":"2023-09-04T12:40:17+02:00","message":"Server shutdown"} | |
| 31 | - | {"level":"info","time":"2023-09-04T14:05:05+02:00","message":"Server is listening on port 1323"} | |
| 32 | - | {"level":"info","time":"2023-09-04T14:05:15+02:00","message":"Server is listening on port 1323"} | |
| 33 | - | {"level":"info","time":"2023-09-04T14:39:43+02:00","message":"Server is listening on port 1323"} | |
| 34 | - | {"level":"info","time":"2023-09-04T14:39:43+02:00","message":"Server is listening on port 1323"} | |
| 35 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:39:43+02:00","message":"Failed to start the server"} | |
| 36 | - | {"level":"info","time":"2023-09-04T14:42:19+02:00","message":"Server is listening on port 1323"} | |
| 37 | - | {"level":"info","time":"2023-09-04T14:42:19+02:00","message":"Server is listening on port 1323"} | |
| 38 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:42:19+02:00","message":"Failed to start the server"} | |
| 39 | - | {"level":"info","time":"2023-09-04T14:45:00+02:00","message":"Server is listening on port 1323"} | |
| 40 | - | {"level":"info","time":"2023-09-04T14:45:00+02:00","message":"Server is listening on port 1323"} | |
| 41 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:45:00+02:00","message":"Failed to start the server"} | |
| 42 | - | {"level":"info","time":"2023-09-04T14:50:37+02:00","message":"Server is listening on port 1323"} | |
| 43 | - | {"level":"info","time":"2023-09-04T14:50:37+02:00","message":"Server is listening on port 1323"} | |
| 44 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:50:37+02:00","message":"Failed to start the server"} | |
| 45 | - | {"level":"info","time":"2023-09-04T14:50:51+02:00","message":"Server is listening on port 1323"} | |
| 46 | - | {"level":"info","time":"2023-09-04T14:51:08+02:00","message":"Server is listening on port 1323"} | |
| 47 | - | {"level":"warn","time":"2023-09-04T14:51:10+02:00","message":"Graceful shutdown initiated"} | |
| 48 | - | {"level":"warn","time":"2023-09-04T14:51:10+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 49 | - | {"level":"info","time":"2023-09-04T14:51:15+02:00","message":"Server shutdown"} | |
| 50 | - | {"level":"info","time":"2023-09-04T17:18:16+02:00","message":"Server is listening on port 1323"} | |
| 1 | + | {"level":"info","time":"2023-09-04T17:22:20+02:00","message":"Server is listening on port 1323"} | |
| 2 | + | {"level":"warn","time":"2023-09-04T17:27:06+02:00","message":"Graceful shutdown initiated"} | |
| 3 | + | {"level":"warn","time":"2023-09-04T17:27:06+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 4 | + | {"level":"info","time":"2023-09-04T17:27:06+02:00","message":"Shutdown cancelled by user"} | |
| 5 | + | {"level":"info","time":"2023-09-04T17:27:12+02:00","message":"Server is listening on port 1323"} | |
| 6 | + | {"level":"warn","time":"2023-09-04T17:30:20+02:00","message":"Graceful shutdown initiated"} | |
| 7 | + | {"level":"warn","time":"2023-09-04T17:30:20+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 8 | + | {"level":"info","time":"2023-09-04T17:30:21+02:00","message":"Shutdown cancelled by user"} | |
| 9 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting to list Docker containers..."} | |
| 10 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting Docker client..."} | |
| 11 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting Docker client..."} | |
| 12 | + | ,"time":"2023-09-04T17:30:26+02:00","message":"Listing Docker containers..."} | |
| 13 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Finished listing Docker containers."} | |
| 14 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Server is listening on port 1323"} | |
| 15 | + | {"level":"warn","time":"2023-09-04T17:32:37+02:00","message":"Graceful shutdown initiated"} | |
| 16 | + | {"level":"warn","time":"2023-09-04T17:32:37+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 17 | + | {"level":"info","time":"2023-09-04T17:32:42+02:00","message":"Server shutdown"} | |
| 18 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Starting to list Docker containers..."} | |
| 19 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Starting Docker client..."} | |
| 20 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Starting Docker client..."} | |
| 21 | + | ,"time":"2023-09-04T17:33:12+02:00","message":"Listing Docker containers..."} | |
| 22 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Finished listing Docker containers."} | |
| 23 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Server is listening on port 1323"} | |
| 24 | + | {"level":"warn","time":"2023-09-04T17:37:16+02:00","message":"Graceful shutdown initiated"} | |
| 25 | + | {"level":"warn","time":"2023-09-04T17:37:16+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 26 | + | {"level":"info","time":"2023-09-04T17:37:21+02:00","message":"Server shutdown"} | |
| 27 | + | {"level":"info","time":"2023-09-04T17:38:24+02:00","message":"Server is listening on port 1323"} | |
| 28 | + | {"level":"warn","time":"2023-09-04T17:41:08+02:00","message":"Graceful shutdown initiated"} | |
| 29 | + | {"level":"warn","time":"2023-09-04T17:41:08+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 30 | + | {"level":"info","time":"2023-09-04T17:41:08+02:00","message":"Shutdown cancelled by user"} | |
| 31 | + | {"level":"info","time":"2023-09-04T17:41:18+02:00","message":"Server is listening on port 1323"} | |
| 32 | + | {"level":"warn","time":"2023-09-04T17:41:48+02:00","message":"Graceful shutdown initiated"} | |
| 33 | + | {"level":"warn","time":"2023-09-04T17:41:48+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | |
| 34 | + | {"level":"info","time":"2023-09-04T17:41:53+02:00","message":"Server shutdown"} | |
| 35 | + | {"level":"info","time":"2023-09-04T17:41:57+02:00","message":"Server is listening on port 1323"} | |
| 36 | + | {"level":"info","time":"2023-09-04T17:43:29+02:00","message":"Server is listening on port 1323"} | |
| 37 | + | {"level":"info","time":"2023-09-04T17:44:23+02:00","message":"Server is listening on port 1323"} | |
| 38 | + | {"level":"info","time":"2023-09-04T17:44:23+02:00","message":"Server is listening on port 1323"} | |
| 39 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:44:23+02:00","message":"Failed to start the server"} | |
| 40 | + | {"level":"info","time":"2023-09-04T17:45:14+02:00","message":"Server is listening on port 1323"} | |
| 41 | + | {"level":"info","time":"2023-09-04T17:45:14+02:00","message":"Server is listening on port 1323"} | |
| 42 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:45:14+02:00","message":"Failed to start the server"} | |
| 43 | + | {"level":"info","time":"2023-09-04T17:46:57+02:00","message":"Server is listening on port 1323"} | |
| 44 | + | {"level":"info","time":"2023-09-04T17:49:28+02:00","message":"Server is listening on port 1323"} | |
| 45 | + | {"level":"info","time":"2023-09-04T17:49:28+02:00","message":"Server is listening on port 1323"} | |
| 46 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:49:28+02:00","message":"Failed to start the server"} | |
| 47 | + | {"level":"info","time":"2023-09-04T17:53:19+02:00","message":"Server is listening on port 1323"} | |
| 48 | + | {"level":"info","time":"2023-09-04T17:53:34+02:00","message":"Server is listening on port 1323"} | |
| 49 | + | {"level":"info","time":"2023-09-04T17:53:34+02:00","message":"Server is listening on port 1323"} | |
| 50 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:53:34+02:00","message":"Failed to start the server"} | |
| 51 | + | {"level":"info","time":"2023-09-04T17:54:26+02:00","message":"Server is listening on port 1323"} | |
| 52 | + | {"level":"info","time":"2023-09-04T17:54:26+02:00","message":"Server is listening on port 1323"} | |
| 53 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:54:26+02:00","message":"Failed to start the server"} | |
| 54 | + | {"level":"info","time":"2023-09-04T18:07:59+02:00","message":"Server is listening on port 1323"} | |
| 55 | + | {"level":"info","time":"2023-09-04T18:07:59+02:00","message":"Server is listening on port 1323"} | |
| 56 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:07:59+02:00","message":"Failed to start the server"} | |
| 57 | + | {"level":"info","time":"2023-09-04T18:15:34+02:00","message":"Server is listening on port 1323"} | |
| 58 | + | {"level":"info","time":"2023-09-04T18:15:34+02:00","message":"Server is listening on port 1323"} | |
| 59 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:15:34+02:00","message":"Failed to start the server"} | |
| 60 | + | {"level":"info","time":"2023-09-04T18:35:05+02:00","message":"Server is listening on port 1323"} | |
| 61 | + | {"level":"info","time":"2023-09-04T18:35:11+02:00","message":"Server is listening on port 1323"} | |
| 62 | + | {"level":"info","time":"2023-09-04T18:35:11+02:00","message":"Server is listening on port 1323"} | |
| 63 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:35:11+02:00","message":"Failed to start the server"} | |
| 64 | + | {"level":"info","time":"2023-09-04T18:35:50+02:00","message":"Server is listening on port 1323"} | |
| 65 | + | {"level":"info","time":"2023-09-04T18:35:50+02:00","message":"Server is listening on port 1323"} | |
| 66 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:35:50+02:00","message":"Failed to start the server"} | |
| 67 | + | {"level":"info","time":"2023-09-04T18:36:13+02:00","message":"Server is listening on port 1323"} | |
| 68 | + | {"level":"info","time":"2023-09-04T18:36:13+02:00","message":"Server is listening on port 1323"} | |
| 69 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:36:13+02:00","message":"Failed to start the server"} | |
| @@ -1,50 +1,69 @@ | |||||
| 1 | - | {"level":"info","time":"2023-09-04T11:58:38+02:00","message":"Logger initialized directly after setup in app.go"} | 1 | + | {"level":"info","time":"2023-09-04T17:22:20+02:00","message":"Server is listening on port 1323"} |
| 2 | - | {"level":"info","time":"2023-09-04T11:58:38+02:00","message":"Middlewares have been registered!"} | 2 | + | {"level":"warn","time":"2023-09-04T17:27:06+02:00","message":"Graceful shutdown initiated"} |
| 3 | - | {"level":"info","time":"2023-09-04T12:03:03+02:00","message":"Logger initialized directly after setup in app.go"} | 3 | + | {"level":"warn","time":"2023-09-04T17:27:06+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} |
| 4 | - | {"level":"info","time":"2023-09-04T12:03:03+02:00","message":"Middlewares have been registered!"} | 4 | + | {"level":"info","time":"2023-09-04T17:27:06+02:00","message":"Shutdown cancelled by user"} |
| 5 | - | {"level":"info","time":"2023-09-04T12:06:57+02:00","message":"Middlewares have been registered!"} | 5 | + | {"level":"info","time":"2023-09-04T17:27:12+02:00","message":"Server is listening on port 1323"} |
| 6 | - | {"level":"info","time":"2023-09-04T12:06:57+02:00","message":"Server is listening on port 1323"} | 6 | + | {"level":"warn","time":"2023-09-04T17:30:20+02:00","message":"Graceful shutdown initiated"} |
| 7 | - | {"level":"info","time":"2023-09-04T12:12:05+02:00","message":"Middlewares have been registered!"} | 7 | + | {"level":"warn","time":"2023-09-04T17:30:20+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} |
| 8 | - | {"level":"info","time":"2023-09-04T12:12:05+02:00","message":"Server is listening on port 1323"} | 8 | + | {"level":"info","time":"2023-09-04T17:30:21+02:00","message":"Shutdown cancelled by user"} |
| 9 | - | {"level":"info","time":"2023-09-04T12:16:03+02:00","message":"Middlewares have been registered!"} | 9 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting to list Docker containers..."} |
| 10 | - | {"level":"info","time":"2023-09-04T12:16:03+02:00","message":"Server is listening on port 1323"} | 10 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting Docker client..."} |
| 11 | - | {"level":"warn","time":"2023-09-04T12:16:41+02:00","message":"Graceful shutdown initiated, server will shutdown in 5 seconds"} | 11 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting Docker client..."} |
| 12 | - | {"level":"info","time":"2023-09-04T12:16:46+02:00","message":"Server shutdown"} | 12 | + | ,"time":"2023-09-04T17:30:26+02:00","message":"Listing Docker containers..."} |
| 13 | - | {"level":"info","time":"2023-09-04T12:19:53+02:00","message":"Server is listening on port 1323"} | 13 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Finished listing Docker containers."} |
| 14 | - | {"level":"info","time":"2023-09-04T12:19:54+02:00","message":"Graceful shutdown initiated"} | 14 | + | {"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Server is listening on port 1323"} |
| 15 | - | {"level":"warn","time":"2023-09-04T12:19:54+02:00","message":"Server will shutdown in 5 seconds press any key to cancel"} | 15 | + | {"level":"warn","time":"2023-09-04T17:32:37+02:00","message":"Graceful shutdown initiated"} |
| 16 | - | {"level":"info","time":"2023-09-04T12:19:59+02:00","message":"Server shutdown"} | 16 | + | {"level":"warn","time":"2023-09-04T17:32:37+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} |
| 17 | - | {"level":"info","time":"2023-09-04T12:21:28+02:00","message":"Server is listening on port 1323"} | 17 | + | {"level":"info","time":"2023-09-04T17:32:42+02:00","message":"Server shutdown"} |
| 18 | - | {"level":"info","time":"2023-09-04T12:21:31+02:00","message":"Graceful shutdown initiated"} | 18 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Starting to list Docker containers..."} |
| 19 | - | {"level":"warn","time":"2023-09-04T12:21:31+02:00","message":"Server will shutdown in 5 seconds press any key to cancel"} | 19 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Starting Docker client..."} |
| 20 | - | {"level":"info","time":"2023-09-04T12:21:36+02:00","message":"Server shutdown"} | 20 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Starting Docker client..."} |
| 21 | - | {"level":"info","time":"2023-09-04T12:23:49+02:00","message":"Server is listening on port 1323"} | 21 | + | ,"time":"2023-09-04T17:33:12+02:00","message":"Listing Docker containers..."} |
| 22 | - | {"level":"info","time":"2023-09-04T12:23:51+02:00","message":"Graceful shutdown initiated"} | 22 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Finished listing Docker containers."} |
| 23 | - | {"level":"warn","time":"2023-09-04T12:23:51+02:00","message":"Server will shutdown in 5 seconds press any key to cancel"} | 23 | + | {"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Server is listening on port 1323"} |
| 24 | - | {"level":"info","time":"2023-09-04T12:23:54+02:00","message":"Shutdown cancelled by user"} | 24 | + | {"level":"warn","time":"2023-09-04T17:37:16+02:00","message":"Graceful shutdown initiated"} |
| 25 | - | {"level":"info","time":"2023-09-04T12:24:40+02:00","message":"Server is listening on port 1323"} | 25 | + | {"level":"warn","time":"2023-09-04T17:37:16+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} |
| 26 | - | {"level":"info","time":"2023-09-04T12:39:06+02:00","message":"Server is listening on port 1323"} | 26 | + | {"level":"info","time":"2023-09-04T17:37:21+02:00","message":"Server shutdown"} |
| 27 | - | {"level":"info","time":"2023-09-04T12:40:11+02:00","message":"Server is listening on port 1323"} | 27 | + | {"level":"info","time":"2023-09-04T17:38:24+02:00","message":"Server is listening on port 1323"} |
| 28 | - | {"level":"warn","time":"2023-09-04T12:40:12+02:00","message":"Graceful shutdown initiated"} | 28 | + | {"level":"warn","time":"2023-09-04T17:41:08+02:00","message":"Graceful shutdown initiated"} |
| 29 | - | {"level":"warn","time":"2023-09-04T12:40:12+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | 29 | + | {"level":"warn","time":"2023-09-04T17:41:08+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} |
| 30 | - | {"level":"info","time":"2023-09-04T12:40:17+02:00","message":"Server shutdown"} | 30 | + | {"level":"info","time":"2023-09-04T17:41:08+02:00","message":"Shutdown cancelled by user"} |
| 31 | - | {"level":"info","time":"2023-09-04T14:05:05+02:00","message":"Server is listening on port 1323"} | 31 | + | {"level":"info","time":"2023-09-04T17:41:18+02:00","message":"Server is listening on port 1323"} |
| 32 | - | {"level":"info","time":"2023-09-04T14:05:15+02:00","message":"Server is listening on port 1323"} | 32 | + | {"level":"warn","time":"2023-09-04T17:41:48+02:00","message":"Graceful shutdown initiated"} |
| 33 | - | {"level":"info","time":"2023-09-04T14:39:43+02:00","message":"Server is listening on port 1323"} | 33 | + | {"level":"warn","time":"2023-09-04T17:41:48+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} |
| 34 | - | {"level":"info","time":"2023-09-04T14:39:43+02:00","message":"Server is listening on port 1323"} | 34 | + | {"level":"info","time":"2023-09-04T17:41:53+02:00","message":"Server shutdown"} |
| 35 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:39:43+02:00","message":"Failed to start the server"} | 35 | + | {"level":"info","time":"2023-09-04T17:41:57+02:00","message":"Server is listening on port 1323"} |
| 36 | - | {"level":"info","time":"2023-09-04T14:42:19+02:00","message":"Server is listening on port 1323"} | 36 | + | {"level":"info","time":"2023-09-04T17:43:29+02:00","message":"Server is listening on port 1323"} |
| 37 | - | {"level":"info","time":"2023-09-04T14:42:19+02:00","message":"Server is listening on port 1323"} | 37 | + | {"level":"info","time":"2023-09-04T17:44:23+02:00","message":"Server is listening on port 1323"} |
| 38 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:42:19+02:00","message":"Failed to start the server"} | 38 | + | {"level":"info","time":"2023-09-04T17:44:23+02:00","message":"Server is listening on port 1323"} |
| 39 | - | {"level":"info","time":"2023-09-04T14:45:00+02:00","message":"Server is listening on port 1323"} | 39 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:44:23+02:00","message":"Failed to start the server"} |
| 40 | - | {"level":"info","time":"2023-09-04T14:45:00+02:00","message":"Server is listening on port 1323"} | 40 | + | {"level":"info","time":"2023-09-04T17:45:14+02:00","message":"Server is listening on port 1323"} |
| 41 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:45:00+02:00","message":"Failed to start the server"} | 41 | + | {"level":"info","time":"2023-09-04T17:45:14+02:00","message":"Server is listening on port 1323"} |
| 42 | - | {"level":"info","time":"2023-09-04T14:50:37+02:00","message":"Server is listening on port 1323"} | 42 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:45:14+02:00","message":"Failed to start the server"} |
| 43 | - | {"level":"info","time":"2023-09-04T14:50:37+02:00","message":"Server is listening on port 1323"} | 43 | + | {"level":"info","time":"2023-09-04T17:46:57+02:00","message":"Server is listening on port 1323"} |
| 44 | - | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T14:50:37+02:00","message":"Failed to start the server"} | 44 | + | {"level":"info","time":"2023-09-04T17:49:28+02:00","message":"Server is listening on port 1323"} |
| 45 | - | {"level":"info","time":"2023-09-04T14:50:51+02:00","message":"Server is listening on port 1323"} | 45 | + | {"level":"info","time":"2023-09-04T17:49:28+02:00","message":"Server is listening on port 1323"} |
| 46 | - | {"level":"info","time":"2023-09-04T14:51:08+02:00","message":"Server is listening on port 1323"} | 46 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:49:28+02:00","message":"Failed to start the server"} |
| 47 | - | {"level":"warn","time":"2023-09-04T14:51:10+02:00","message":"Graceful shutdown initiated"} | 47 | + | {"level":"info","time":"2023-09-04T17:53:19+02:00","message":"Server is listening on port 1323"} |
| 48 | - | {"level":"warn","time":"2023-09-04T14:51:10+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"} | 48 | + | {"level":"info","time":"2023-09-04T17:53:34+02:00","message":"Server is listening on port 1323"} |
| 49 | - | {"level":"info","time":"2023-09-04T14:51:15+02:00","message":"Server shutdown"} | 49 | + | {"level":"info","time":"2023-09-04T17:53:34+02:00","message":"Server is listening on port 1323"} |
| 50 | - | {"level":"info","time":"2023-09-04T17:18:16+02:00","message":"Server is listening on port 1323"} | 50 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:53:34+02:00","message":"Failed to start the server"} |
| 51 | + | {"level":"info","time":"2023-09-04T17:54:26+02:00","message":"Server is listening on port 1323"} | |||
| 52 | + | {"level":"info","time":"2023-09-04T17:54:26+02:00","message":"Server is listening on port 1323"} | |||
| 53 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:54:26+02:00","message":"Failed to start the server"} | |||
| 54 | + | {"level":"info","time":"2023-09-04T18:07:59+02:00","message":"Server is listening on port 1323"} | |||
| 55 | + | {"level":"info","time":"2023-09-04T18:07:59+02:00","message":"Server is listening on port 1323"} | |||
| 56 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:07:59+02:00","message":"Failed to start the server"} | |||
| 57 | + | {"level":"info","time":"2023-09-04T18:15:34+02:00","message":"Server is listening on port 1323"} | |||
| 58 | + | {"level":"info","time":"2023-09-04T18:15:34+02:00","message":"Server is listening on port 1323"} | |||
| 59 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:15:34+02:00","message":"Failed to start the server"} | |||
| 60 | + | {"level":"info","time":"2023-09-04T18:35:05+02:00","message":"Server is listening on port 1323"} | |||
| 61 | + | {"level":"info","time":"2023-09-04T18:35:11+02:00","message":"Server is listening on port 1323"} | |||
| 62 | + | {"level":"info","time":"2023-09-04T18:35:11+02:00","message":"Server is listening on port 1323"} | |||
| 63 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:35:11+02:00","message":"Failed to start the server"} | |||
| 64 | + | {"level":"info","time":"2023-09-04T18:35:50+02:00","message":"Server is listening on port 1323"} | |||
| 65 | + | {"level":"info","time":"2023-09-04T18:35:50+02:00","message":"Server is listening on port 1323"} | |||
| 66 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:35:50+02:00","message":"Failed to start the server"} | |||
| 67 | + | {"level":"info","time":"2023-09-04T18:36:13+02:00","message":"Server is listening on port 1323"} | |||
| 68 | + | {"level":"info","time":"2023-09-04T18:36:13+02:00","message":"Server is listening on port 1323"} | |||
| 69 | + | {"level":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T18:36:13+02:00","message":"Failed to start the server"} | |||
M logs/http.log +9 -67
| @@ -1,67 +1,9 @@ | |||
| 1 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 2 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 3 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 4 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 5 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 6 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 7 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 8 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 9 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 10 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |
| 11 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 12 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 13 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 14 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 15 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 16 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 17 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 18 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 19 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 20 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |
| 21 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:05:22+02:00","message":"request"} | |
| 22 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:05:23+02:00","message":"request"} | |
| 23 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 24 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 25 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 26 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 27 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 28 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 29 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 30 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 31 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 32 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |
| 33 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 34 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 35 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 36 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 37 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 38 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 39 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 40 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 41 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 42 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |
| 43 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:22+02:00","message":"request"} | |
| 44 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:22+02:00","message":"request"} | |
| 45 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:42+02:00","message":"request"} | |
| 46 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:42+02:00","message":"request"} | |
| 47 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:42+02:00","message":"request"} | |
| 48 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:46+02:00","message":"request"} | |
| 49 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:47+02:00","message":"request"} | |
| 50 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:47+02:00","message":"request"} | |
| 51 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:48+02:00","message":"request"} | |
| 52 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:49+02:00","message":"request"} | |
| 53 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:49+02:00","message":"request"} | |
| 54 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:53+02:00","message":"request"} | |
| 55 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:54+02:00","message":"request"} | |
| 56 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:54+02:00","message":"request"} | |
| 57 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:55+02:00","message":"request"} | |
| 58 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |
| 59 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |
| 60 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |
| 61 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |
| 62 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |
| 63 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |
| 64 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |
| 65 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |
| 66 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |
| 67 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |
| 1 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 2 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 3 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 4 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 5 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 6 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 7 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 8 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| 9 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} | |
| @@ -1,67 +1,9 @@ | |||||
| 1 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 1 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 2 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 2 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 3 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 3 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 4 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 4 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 5 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 5 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 6 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 6 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 7 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 7 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 8 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 8 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 9 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | 9 | + | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T17:22:23+02:00","message":"request"} |
| 10 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T11:57:03+02:00","message":"request"} | |||
| 11 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 12 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 13 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 14 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 15 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 16 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 17 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 18 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 19 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 20 | - | {"level":"info","type":"http","remote_ip":"::1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T11:57:48+02:00","message":"request"} | |||
| 21 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:05:22+02:00","message":"request"} | |||
| 22 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:05:23+02:00","message":"request"} | |||
| 23 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 24 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 25 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 26 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 27 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 28 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 29 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 30 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 31 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 32 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T14:05:25+02:00","message":"request"} | |||
| 33 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 34 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 35 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 36 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 37 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 38 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 39 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 40 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 41 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 42 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T14:31:47+02:00","message":"request"} | |||
| 43 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:22+02:00","message":"request"} | |||
| 44 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:22+02:00","message":"request"} | |||
| 45 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:42+02:00","message":"request"} | |||
| 46 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:42+02:00","message":"request"} | |||
| 47 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:42+02:00","message":"request"} | |||
| 48 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:46+02:00","message":"request"} | |||
| 49 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:47+02:00","message":"request"} | |||
| 50 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:47+02:00","message":"request"} | |||
| 51 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:48+02:00","message":"request"} | |||
| 52 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:49+02:00","message":"request"} | |||
| 53 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:49+02:00","message":"request"} | |||
| 54 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:53+02:00","message":"request"} | |||
| 55 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:54+02:00","message":"request"} | |||
| 56 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:32:54+02:00","message":"request"} | |||
| 57 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:32:55+02:00","message":"request"} | |||
| 58 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/admin","status":200,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |||
| 59 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/css/tailwind.css","status":200,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |||
| 60 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/iconoir.css","status":200,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |||
| 61 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/js/custom.js","status":404,"time":"2023-09-04T14:33:13+02:00","message":"request"} | |||
| 62 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/alpine.min.js","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |||
| 63 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/libs/htmx.min.js","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |||
| 64 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/LilitaOne/LilitaOne-Regular.ttf","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |||
| 65 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/fonts/IBMPlex/IBMPlexSans-Regular.woff2","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |||
| 66 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/assets/imgs/gordon-mascot-hq-trsp.png","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |||
| 67 | - | {"level":"info","type":"http","remote_ip":"127.0.0.1","method":"GET","URI":"/favicon.ico","status":200,"time":"2023-09-04T14:33:14+02:00","message":"request"} | |||
M pkg/docker/registry.go +106 -5
| @@ -3,24 +3,125 @@ package docker | |||
| 3 | 3 | import ( | |
| 4 | 4 | "context" | |
| 5 | 5 | "fmt" | |
| 6 | + | "io" | |
| 7 | + | "os" | |
| 6 | 8 | ||
| 7 | 9 | "github.com/docker/docker/api/types" | |
| 10 | + | "github.com/docker/docker/api/types/container" | |
| 8 | 11 | "github.com/docker/docker/client" | |
| 12 | + | "github.com/docker/docker/pkg/archive" | |
| 13 | + | "github.com/docker/docker/pkg/stdcopy" | |
| 9 | 14 | ) | |
| 10 | 15 | ||
| 11 | - | // basic list of containers and images | |
| 12 | - | func ListDocker() { | |
| 13 | - | cli, err := client.NewClientWithOpts(client.FromEnv) | |
| 16 | + | func DockertPullImageTest() { | |
| 17 | + | ctx := context.Background() | |
| 18 | + | cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) | |
| 14 | 19 | if err != nil { | |
| 15 | 20 | panic(err) | |
| 16 | 21 | } | |
| 22 | + | defer cli.Close() | |
| 17 | 23 | ||
| 18 | - | containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) | |
| 24 | + | reader, err := cli.ImagePull(ctx, "docker.io/library/alpine", types.ImagePullOptions{}) | |
| 19 | 25 | if err != nil { | |
| 20 | 26 | panic(err) | |
| 21 | 27 | } | |
| 28 | + | io.Copy(os.Stdout, reader) | |
| 29 | + | ||
| 30 | + | resp, err := cli.ContainerCreate(ctx, &container.Config{ | |
| 31 | + | Image: "alpine", | |
| 32 | + | Cmd: []string{"echo", "hello world"}, | |
| 33 | + | }, nil, nil, nil, "") | |
| 34 | + | if err != nil { | |
| 35 | + | panic(err) | |
| 36 | + | } | |
| 37 | + | ||
| 38 | + | if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { | |
| 39 | + | panic(err) | |
| 40 | + | } | |
| 41 | + | ||
| 42 | + | statusCh, errCh := cli.ContainerWait(ctx, resp.ID, container.WaitConditionNotRunning) | |
| 43 | + | select { | |
| 44 | + | case err := <-errCh: | |
| 45 | + | if err != nil { | |
| 46 | + | panic(err) | |
| 47 | + | } | |
| 48 | + | case <-statusCh: | |
| 49 | + | } | |
| 50 | + | ||
| 51 | + | out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true}) | |
| 52 | + | if err != nil { | |
| 53 | + | panic(err) | |
| 54 | + | } | |
| 55 | + | ||
| 56 | + | stdcopy.StdCopy(os.Stdout, os.Stderr, out) | |
| 57 | + | } | |
| 58 | + | ||
| 59 | + | func DockerListContainersTest() { | |
| 60 | + | fmt.Println("Executing DockerListContainersTest()") | |
| 61 | + | ||
| 62 | + | ctx := context.Background() | |
| 63 | + | cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) | |
| 64 | + | if err != nil { | |
| 65 | + | panic(err) | |
| 66 | + | } | |
| 67 | + | defer cli.Close() | |
| 68 | + | ||
| 69 | + | fmt.Println("Initialized Docker client.") | |
| 70 | + | ||
| 71 | + | containers, err := cli.ContainerList(ctx, types.ContainerListOptions{All: true}) | |
| 72 | + | if err != nil { | |
| 73 | + | panic(err) | |
| 74 | + | } | |
| 75 | + | ||
| 76 | + | fmt.Printf("Found %d containers.\n", len(containers)) | |
| 22 | 77 | ||
| 23 | 78 | for _, container := range containers { | |
| 24 | - | fmt.Printf("%s %s\n", container.ID[:10], container.Image) | |
| 79 | + | fmt.Printf("%s %s\n", container.ID[:10], container.Status) | |
| 80 | + | } | |
| 81 | + | } | |
| 82 | + | ||
| 83 | + | // I have a Dockerfile inside tmp/docker-test/Dockerfile and i want to create an image from it and place it at the same directory. | |
| 84 | + | func CreateImageFromDockerfile() { | |
| 85 | + | fmt.Println("Executing CreateImageFromDockerfile()") | |
| 86 | + | fmt.Println("Initialized Docker client.") | |
| 87 | + | ctx := context.Background() | |
| 88 | + | cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) | |
| 89 | + | if err != nil { | |
| 90 | + | panic(err) | |
| 91 | + | } | |
| 92 | + | defer cli.Close() | |
| 93 | + | ||
| 94 | + | fmt.Println("Building image...") | |
| 95 | + | buildCtx, err := archive.TarWithOptions("tmp/docker-test/", &archive.TarOptions{}) | |
| 96 | + | if err != nil { | |
| 97 | + | panic(err) | |
| 98 | + | } | |
| 99 | + | defer buildCtx.Close() | |
| 100 | + | ||
| 101 | + | fmt.Println("Building image...") | |
| 102 | + | imageBuildResponse, err := cli.ImageBuild(ctx, buildCtx, types.ImageBuildOptions{ | |
| 103 | + | Tags: []string{"gordon-echo:latest"}, | |
| 104 | + | }) | |
| 105 | + | if err != nil { | |
| 106 | + | panic(err) | |
| 107 | + | } | |
| 108 | + | defer imageBuildResponse.Body.Close() | |
| 109 | + | ||
| 110 | + | fmt.Println("Saving image to file...") | |
| 111 | + | ||
| 112 | + | imageTar, err := cli.ImageSave(ctx, []string{"gordon-echo:latest"}) | |
| 113 | + | if err != nil { | |
| 114 | + | panic(err) | |
| 115 | + | } | |
| 116 | + | ||
| 117 | + | outputFile, err := os.Create("tmp/docker-test/gordon-echo.tar") | |
| 118 | + | if err != nil { | |
| 119 | + | panic(err) | |
| 120 | + | } | |
| 121 | + | defer outputFile.Close() | |
| 122 | + | ||
| 123 | + | _, err = io.Copy(outputFile, imageTar) | |
| 124 | + | if err != nil { | |
| 125 | + | panic(err) | |
| 25 | 126 | } | |
| 26 | 127 | } | |
| @@ -3,24 +3,125 @@ package docker | |||||
| 3 | import ( | 3 | import ( | ||
| 4 | "context" | 4 | "context" | ||
| 5 | "fmt" | 5 | "fmt" | ||
| 6 | + | "io" | |||
| 7 | + | "os" | |||
| 6 | 8 | ||||
| 7 | "github.com/docker/docker/api/types" | 9 | "github.com/docker/docker/api/types" | ||
| 10 | + | "github.com/docker/docker/api/types/container" | |||
| 8 | "github.com/docker/docker/client" | 11 | "github.com/docker/docker/client" | ||
| 12 | + | "github.com/docker/docker/pkg/archive" | |||
| 13 | + | "github.com/docker/docker/pkg/stdcopy" | |||
| 9 | ) | 14 | ) | ||
| 10 | 15 | ||||
| 11 | - | // basic list of containers and images | 16 | + | func DockertPullImageTest() { |
| 12 | - | func ListDocker() { | 17 | + | ctx := context.Background() |
| 13 | - | cli, err := client.NewClientWithOpts(client.FromEnv) | 18 | + | cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) |
| 14 | if err != nil { | 19 | if err != nil { | ||
| 15 | panic(err) | 20 | panic(err) | ||
| 16 | } | 21 | } | ||
| 22 | + | defer cli.Close() | |||
| 17 | 23 | ||||
| 18 | - | containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) | 24 | + | reader, err := cli.ImagePull(ctx, "docker.io/library/alpine", types.ImagePullOptions{}) |
| 19 | if err != nil { | 25 | if err != nil { | ||
| 20 | panic(err) | 26 | panic(err) | ||
| 21 | } | 27 | } | ||
| 28 | + | io.Copy(os.Stdout, reader) | |||
| 29 | + | ||||
| 30 | + | resp, err := cli.ContainerCreate(ctx, &container.Config{ | |||
| 31 | + | Image: "alpine", | |||
| 32 | + | Cmd: []string{"echo", "hello world"}, | |||
| 33 | + | }, nil, nil, nil, "") | |||
| 34 | + | if err != nil { | |||
| 35 | + | panic(err) | |||
| 36 | + | } | |||
| 37 | + | ||||
| 38 | + | if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { | |||
| 39 | + | panic(err) | |||
| 40 | + | } | |||
| 41 | + | ||||
| 42 | + | statusCh, errCh := cli.ContainerWait(ctx, resp.ID, container.WaitConditionNotRunning) | |||
| 43 | + | select { | |||
| 44 | + | case err := <-errCh: | |||
| 45 | + | if err != nil { | |||
| 46 | + | panic(err) | |||
| 47 | + | } | |||
| 48 | + | case <-statusCh: | |||
| 49 | + | } | |||
| 50 | + | ||||
| 51 | + | out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true}) | |||
| 52 | + | if err != nil { | |||
| 53 | + | panic(err) | |||
| 54 | + | } | |||
| 55 | + | ||||
| 56 | + | stdcopy.StdCopy(os.Stdout, os.Stderr, out) | |||
| 57 | + | } | |||
| 58 | + | ||||
| 59 | + | func DockerListContainersTest() { | |||
| 60 | + | fmt.Println("Executing DockerListContainersTest()") | |||
| 61 | + | ||||
| 62 | + | ctx := context.Background() | |||
| 63 | + | cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) | |||
| 64 | + | if err != nil { | |||
| 65 | + | panic(err) | |||
| 66 | + | } | |||
| 67 | + | defer cli.Close() | |||
| 68 | + | ||||
| 69 | + | fmt.Println("Initialized Docker client.") | |||
| 70 | + | ||||
| 71 | + | containers, err := cli.ContainerList(ctx, types.ContainerListOptions{All: true}) | |||
| 72 | + | if err != nil { | |||
| 73 | + | panic(err) | |||
| 74 | + | } | |||
| 75 | + | ||||
| 76 | + | fmt.Printf("Found %d containers.\n", len(containers)) | |||
| 22 | 77 | ||||
| 23 | for _, container := range containers { | 78 | for _, container := range containers { | ||
| 24 | - | fmt.Printf("%s %s\n", container.ID[:10], container.Image) | 79 | + | fmt.Printf("%s %s\n", container.ID[:10], container.Status) |
| 80 | + | } | |||
| 81 | + | } | |||
| 82 | + | ||||
| 83 | + | // I have a Dockerfile inside tmp/docker-test/Dockerfile and i want to create an image from it and place it at the same directory. | |||
| 84 | + | func CreateImageFromDockerfile() { | |||
| 85 | + | fmt.Println("Executing CreateImageFromDockerfile()") | |||
| 86 | + | fmt.Println("Initialized Docker client.") | |||
| 87 | + | ctx := context.Background() | |||
| 88 | + | cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) | |||
| 89 | + | if err != nil { | |||
| 90 | + | panic(err) | |||
| 91 | + | } | |||
| 92 | + | defer cli.Close() | |||
| 93 | + | ||||
| 94 | + | fmt.Println("Building image...") | |||
| 95 | + | buildCtx, err := archive.TarWithOptions("tmp/docker-test/", &archive.TarOptions{}) | |||
| 96 | + | if err != nil { | |||
| 97 | + | panic(err) | |||
| 98 | + | } | |||
| 99 | + | defer buildCtx.Close() | |||
| 100 | + | ||||
| 101 | + | fmt.Println("Building image...") | |||
| 102 | + | imageBuildResponse, err := cli.ImageBuild(ctx, buildCtx, types.ImageBuildOptions{ | |||
| 103 | + | Tags: []string{"gordon-echo:latest"}, | |||
| 104 | + | }) | |||
| 105 | + | if err != nil { | |||
| 106 | + | panic(err) | |||
| 107 | + | } | |||
| 108 | + | defer imageBuildResponse.Body.Close() | |||
| 109 | + | ||||
| 110 | + | fmt.Println("Saving image to file...") | |||
| 111 | + | ||||
| 112 | + | imageTar, err := cli.ImageSave(ctx, []string{"gordon-echo:latest"}) | |||
| 113 | + | if err != nil { | |||
| 114 | + | panic(err) | |||
| 115 | + | } | |||
| 116 | + | ||||
| 117 | + | outputFile, err := os.Create("tmp/docker-test/gordon-echo.tar") | |||
| 118 | + | if err != nil { | |||
| 119 | + | panic(err) | |||
| 120 | + | } | |||
| 121 | + | defer outputFile.Close() | |||
| 122 | + | ||||
| 123 | + | _, err = io.Copy(outputFile, imageTar) | |||
| 124 | + | if err != nil { | |||
| 125 | + | panic(err) | |||
| 25 | } | 126 | } | ||
| 26 | } | 127 | } | ||
M pkg/utils/parser.go +21 -0
| @@ -3,7 +3,9 @@ package utils | |||
| 3 | 3 | import ( | |
| 4 | 4 | "fmt" | |
| 5 | 5 | "io" | |
| 6 | + | "os" | |
| 6 | 7 | ||
| 8 | + | "github.com/tidwall/gjson" | |
| 7 | 9 | "gogs.bnema.dev/gordon-echo/internal/ui" | |
| 8 | 10 | "gopkg.in/yaml.v3" | |
| 9 | 11 | ) | |
| @@ -59,3 +61,22 @@ func PopulateDataFromYAML(currentLang string) (YamlData, error) { | |||
| 59 | 61 | } | |
| 60 | 62 | ||
| 61 | 63 | // Json Parser | |
| 64 | + | ||
| 65 | + | // ReadDataFromJSONFile loads the data from the given JSON file | |
| 66 | + | func ReadDataFromJSONFile(filePath string) (string, error) { | |
| 67 | + | bytes, err := os.ReadFile(filePath) | |
| 68 | + | if err != nil { | |
| 69 | + | return "", err | |
| 70 | + | } | |
| 71 | + | return string(bytes), nil | |
| 72 | + | } | |
| 73 | + | ||
| 74 | + | // QueryJSON queries the provided JSON content based on the given gjson query and returns the results as a slice of strings | |
| 75 | + | func QueryJSON(jsonContent, query string) []string { | |
| 76 | + | results := gjson.GetMany(jsonContent, query) | |
| 77 | + | var values []string | |
| 78 | + | for _, result := range results { | |
| 79 | + | values = append(values, result.String()) | |
| 80 | + | } | |
| 81 | + | return values | |
| 82 | + | } | |
| @@ -3,7 +3,9 @@ package utils | |||||
| 3 | import ( | 3 | import ( | ||
| 4 | "fmt" | 4 | "fmt" | ||
| 5 | "io" | 5 | "io" | ||
| 6 | + | "os" | |||
| 6 | 7 | ||||
| 8 | + | "github.com/tidwall/gjson" | |||
| 7 | "gogs.bnema.dev/gordon-echo/internal/ui" | 9 | "gogs.bnema.dev/gordon-echo/internal/ui" | ||
| 8 | "gopkg.in/yaml.v3" | 10 | "gopkg.in/yaml.v3" | ||
| 9 | ) | 11 | ) | ||
| @@ -59,3 +61,22 @@ func PopulateDataFromYAML(currentLang string) (YamlData, error) { | |||||
| 59 | } | 61 | } | ||
| 60 | 62 | ||||
| 61 | // Json Parser | 63 | // Json Parser | ||
| 64 | + | ||||
| 65 | + | // ReadDataFromJSONFile loads the data from the given JSON file | |||
| 66 | + | func ReadDataFromJSONFile(filePath string) (string, error) { | |||
| 67 | + | bytes, err := os.ReadFile(filePath) | |||
| 68 | + | if err != nil { | |||
| 69 | + | return "", err | |||
| 70 | + | } | |||
| 71 | + | return string(bytes), nil | |||
| 72 | + | } | |||
| 73 | + | ||||
| 74 | + | // QueryJSON queries the provided JSON content based on the given gjson query and returns the results as a slice of strings | |||
| 75 | + | func QueryJSON(jsonContent, query string) []string { | |||
| 76 | + | results := gjson.GetMany(jsonContent, query) | |||
| 77 | + | var values []string | |||
| 78 | + | for _, result := range results { | |||
| 79 | + | values = append(values, result.String()) | |||
| 80 | + | } | |||
| 81 | + | return values | |||
| 82 | + | } | |||