detached 267770c

Merge branch 'main' into docker-client

commit
267770cc110d8a41bcb8d1843ee424c4a3a6040b
author
bnema · · 2023-09-04 19:40 UTC
merge of
c3f1509 + 67e0e6e · diff against the first parent
signature
unsigned
4 files · +70 -73
M go.mod +4 -0
@@ -21,6 +21,9 @@ require (
2121 github.com/klauspost/compress v1.16.7 // indirect
2222 github.com/moby/patternmatcher v0.6.0 // indirect
2323 github.com/moby/sys/sequential v0.5.0 // indirect
24+ github.com/gorilla/context v1.1.1 // indirect
25+ github.com/gorilla/securecookie v1.1.1 // indirect
26+ github.com/gorilla/sessions v1.2.1 // indirect
2427 github.com/opencontainers/go-digest v1.0.0 // indirect
2528 github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
2629 github.com/opencontainers/runc v1.1.9 // indirect
@@ -35,6 +38,7 @@ require (
3538 )
3639
3740 require (
41+ github.com/labstack/echo-contrib v0.15.0
3842 github.com/labstack/gommon v0.4.0 // indirect
3943 github.com/mattn/go-colorable v0.1.13 // indirect
4044 github.com/mattn/go-isatty v0.0.19 // indirect
@@ -21,6 +21,9 @@ require (
21 github.com/klauspost/compress v1.16.7 // indirect21 github.com/klauspost/compress v1.16.7 // indirect
22 github.com/moby/patternmatcher v0.6.0 // indirect22 github.com/moby/patternmatcher v0.6.0 // indirect
23 github.com/moby/sys/sequential v0.5.0 // indirect23 github.com/moby/sys/sequential v0.5.0 // indirect
24+ github.com/gorilla/context v1.1.1 // indirect
25+ github.com/gorilla/securecookie v1.1.1 // indirect
26+ github.com/gorilla/sessions v1.2.1 // indirect
24 github.com/opencontainers/go-digest v1.0.0 // indirect27 github.com/opencontainers/go-digest v1.0.0 // indirect
25 github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect28 github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
26 github.com/opencontainers/runc v1.1.9 // indirect29 github.com/opencontainers/runc v1.1.9 // indirect
@@ -35,6 +38,7 @@ require (
35 )38 )
36 39
37 require (40 require (
41+ github.com/labstack/echo-contrib v0.15.0
38 github.com/labstack/gommon v0.4.0 // indirect42 github.com/labstack/gommon v0.4.0 // indirect
39 github.com/mattn/go-colorable v0.1.13 // indirect43 github.com/mattn/go-colorable v0.1.13 // indirect
40 github.com/mattn/go-isatty v0.0.19 // indirect44 github.com/mattn/go-isatty v0.0.19 // indirect
M go.sum +8 -0 generated file: collapsed
M internal/http/middlewares/detect-lang.go +8 -0
@@ -3,6 +3,7 @@ package middlewares
33 import (
44 "strings"
55
6+ "github.com/labstack/echo-contrib/session"
67 "github.com/labstack/echo/v4"
78 )
89
@@ -19,6 +20,13 @@ func LanguageDetectionMiddleware(next echo.HandlerFunc) echo.HandlerFunc {
1920 }
2021
2122 func detectCurrentLanguage(c echo.Context) string {
23+ // Check if the lang key is set in the session storage
24+ sess, _ := session.Get("session", c) // Assuming you have a session named "session"
25+ if langValue, ok := sess.Values["lang"]; ok {
26+ return langValue.(string) // Return the lang value from the session storage
27+ }
28+
29+ // If lang key is not set, proceed with "Accept-Language" header detection
2230 header := c.Request().Header.Get("Accept-Language")
2331 if strings.Contains(header, "fr") {
2432 return "fr"
@@ -3,6 +3,7 @@ package middlewares
3 import (3 import (
4 "strings"4 "strings"
5 5
6+ "github.com/labstack/echo-contrib/session"
6 "github.com/labstack/echo/v4"7 "github.com/labstack/echo/v4"
7 )8 )
8 9
@@ -19,6 +20,13 @@ func LanguageDetectionMiddleware(next echo.HandlerFunc) echo.HandlerFunc {
19 }20 }
20 21
21 func detectCurrentLanguage(c echo.Context) string {22 func detectCurrentLanguage(c echo.Context) string {
23+ // Check if the lang key is set in the session storage
24+ sess, _ := session.Get("session", c) // Assuming you have a session named "session"
25+ if langValue, ok := sess.Values["lang"]; ok {
26+ return langValue.(string) // Return the lang value from the session storage
27+ }
28+
29+ // If lang key is not set, proceed with "Accept-Language" header detection
22 header := c.Request().Header.Get("Accept-Language")30 header := c.Request().Header.Get("Accept-Language")
23 if strings.Contains(header, "fr") {31 if strings.Contains(header, "fr") {
24 return "fr"32 return "fr"
M logs/app.log +50 -73
@@ -1,73 +1,50 @@
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"}
70-{"level":"info","time":"2023-09-04T21:21:23+02:00","message":"Server is listening on port 1323"}
71-{"level":"info","time":"2023-09-04T21:23:19+02:00","message":"Server is listening on port 1323"}
72-{"level":"info","time":"2023-09-04T21:23:38+02:00","message":"Server is listening on port 1323"}
73-{"level":"info","time":"2023-09-04T21:30:52+02:00","message":"Server is listening on port 1323"}
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,73 +1,50 @@
1-{"level":"info","time":"2023-09-04T17:22:20+02:00","message":"Server is listening on port 1323"}1+{"level":"info","time":"2023-09-04T11:58:38+02:00","message":"Logger initialized directly after setup in app.go"}
2-{"level":"warn","time":"2023-09-04T17:27:06+02:00","message":"Graceful shutdown initiated"}2+{"level":"info","time":"2023-09-04T11:58:38+02:00","message":"Middlewares have been registered!"}
3-{"level":"warn","time":"2023-09-04T17:27:06+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"}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-04T17:27:06+02:00","message":"Shutdown cancelled by user"}4+{"level":"info","time":"2023-09-04T12:03:03+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"}5+{"level":"info","time":"2023-09-04T12:06:57+02:00","message":"Middlewares have been registered!"}
6-{"level":"warn","time":"2023-09-04T17:30:20+02:00","message":"Graceful shutdown initiated"}6+{"level":"info","time":"2023-09-04T12:06:57+02:00","message":"Server is listening on port 1323"}
7-{"level":"warn","time":"2023-09-04T17:30:20+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"}7+{"level":"info","time":"2023-09-04T12:12:05+02:00","message":"Middlewares have been registered!"}
8-{"level":"info","time":"2023-09-04T17:30:21+02:00","message":"Shutdown cancelled by user"}8+{"level":"info","time":"2023-09-04T12:12:05+02:00","message":"Server is listening on port 1323"}
9-{"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting to list Docker containers..."}9+{"level":"info","time":"2023-09-04T12:16:03+02:00","message":"Middlewares have been registered!"}
10-{"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Starting Docker client..."}10+{"level":"info","time":"2023-09-04T12:16:03+02:00","message":"Server is listening on port 1323"}
11-{"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"}
12-,"time":"2023-09-04T17:30:26+02:00","message":"Listing Docker containers..."}12+{"level":"info","time":"2023-09-04T12:16:46+02:00","message":"Server shutdown"}
13-{"level":"info","time":"2023-09-04T17:30:26+02:00","message":"Finished listing Docker containers."}13+{"level":"info","time":"2023-09-04T12:19:53+02:00","message":"Server is listening on port 1323"}
14-{"level":"info","time":"2023-09-04T17:30:26+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-04T17:32:37+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":"warn","time":"2023-09-04T17:32:37+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"}16+{"level":"info","time":"2023-09-04T12:19:59+02:00","message":"Server shutdown"}
17-{"level":"info","time":"2023-09-04T17:32:42+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-04T17:33:12+02:00","message":"Starting to list Docker containers..."}18+{"level":"info","time":"2023-09-04T12:21:31+02:00","message":"Graceful shutdown initiated"}
19-{"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Starting Docker client..."}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-04T17:33:12+02:00","message":"Starting Docker client..."}20+{"level":"info","time":"2023-09-04T12:21:36+02:00","message":"Server shutdown"}
21-,"time":"2023-09-04T17:33:12+02:00","message":"Listing Docker containers..."}21+{"level":"info","time":"2023-09-04T12:23:49+02:00","message":"Server is listening on port 1323"}
22-{"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Finished listing Docker containers."}22+{"level":"info","time":"2023-09-04T12:23:51+02:00","message":"Graceful shutdown initiated"}
23-{"level":"info","time":"2023-09-04T17:33:12+02:00","message":"Server is listening on port 1323"}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":"warn","time":"2023-09-04T17:37:16+02:00","message":"Graceful shutdown initiated"}24+{"level":"info","time":"2023-09-04T12:23:54+02:00","message":"Shutdown cancelled by user"}
25-{"level":"warn","time":"2023-09-04T17:37:16+02:00","message":"Server will shutdown in 5 seconds press ENTER to cancel"}25+{"level":"info","time":"2023-09-04T12:24:40+02:00","message":"Server is listening on port 1323"}
26-{"level":"info","time":"2023-09-04T17:37:21+02:00","message":"Server shutdown"}26+{"level":"info","time":"2023-09-04T12:39:06+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"}27+{"level":"info","time":"2023-09-04T12:40:11+02:00","message":"Server is listening on port 1323"}
28-{"level":"warn","time":"2023-09-04T17:41:08+02:00","message":"Graceful shutdown initiated"}28+{"level":"warn","time":"2023-09-04T12:40:12+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"}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-04T17:41:08+02:00","message":"Shutdown cancelled by user"}30+{"level":"info","time":"2023-09-04T12:40:17+02:00","message":"Server shutdown"}
31-{"level":"info","time":"2023-09-04T17:41:18+02:00","message":"Server is listening on port 1323"}31+{"level":"info","time":"2023-09-04T14:05:05+02:00","message":"Server is listening on port 1323"}
32-{"level":"warn","time":"2023-09-04T17:41:48+02:00","message":"Graceful shutdown initiated"}32+{"level":"info","time":"2023-09-04T14:05:15+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"}33+{"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"}34+{"level":"info","time":"2023-09-04T14:39:43+02:00","message":"Server is listening on port 1323"}
35-{"level":"info","time":"2023-09-04T17:41:57+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-04T17:43:29+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"}
37-{"level":"info","time":"2023-09-04T17:44:23+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":"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"}
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"}39+{"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"}40+{"level":"info","time":"2023-09-04T14:45:00+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"}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":"fatal","error":"listen tcp :1323: bind: address already in use","time":"2023-09-04T17:45:14+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-04T17:46:57+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":"info","time":"2023-09-04T17:49:28+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-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"}
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"}46+{"level":"info","time":"2023-09-04T14:51:08+02:00","message":"Server is listening on port 1323"}
47-{"level":"info","time":"2023-09-04T17:53:19+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":"info","time":"2023-09-04T17:53:34+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"}
49-{"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"}
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"}50+{"level":"info","time":"2023-09-04T17:18:16+02:00","message":"Server is listening on port 1323"}
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"}
70-{"level":"info","time":"2023-09-04T21:21:23+02:00","message":"Server is listening on port 1323"}
71-{"level":"info","time":"2023-09-04T21:23:19+02:00","message":"Server is listening on port 1323"}
72-{"level":"info","time":"2023-09-04T21:23:38+02:00","message":"Server is listening on port 1323"}
73-{"level":"info","time":"2023-09-04T21:30:52+02:00","message":"Server is listening on port 1323"}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close