Skip to content

Commit b388670

Browse files
authored
Add logging_enabled config (#7) (#7)
1 parent 23dee51 commit b388670

File tree

5 files changed

+41
-7
lines changed

5 files changed

+41
-7
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ vim config.toml
3535
go run cmd/sea/main.go > sea.conf
3636
```
3737

38+
Set `logging_enabled = false` in `config.toml` if you want to disable NGINX
39+
access and error logs for the server blocks.
40+
3841
### TLS / Let's Encrypt
3942

4043
If you want to run SEA behind HTTPS using Certbot, set `listen_ssl`,

cmd/sea/main.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type Config struct {
2121
SSLCertificateKey string `toml:"ssl_certificate_key"`
2222
LetsEncrypt bool `toml:"letsencrypt"`
2323
RedirectHTTP bool `toml:"redirect_http"`
24+
LoggingEnabled bool `toml:"logging_enabled"`
2425
CustomKeywords []KeywordRule `toml:"custom_keywords"`
2526
}
2627

@@ -61,9 +62,10 @@ func main() {
6162

6263
func loadConfig(path string) (Config, error) {
6364
cfg := Config{
64-
Listen: 80,
65-
ListenSSL: 0,
66-
ServerName: "search.localhost",
65+
Listen: 80,
66+
ListenSSL: 0,
67+
ServerName: "search.localhost",
68+
LoggingEnabled: true,
6769
}
6870
data, err := os.ReadFile(path)
6971
if err != nil {

cmd/sea/main_test.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ server_name = "example.com"
2323
2424
redirect_http = true
2525
26+
logging_enabled = false
27+
2628
ssl_certificate = "/tmp/full.pem"
2729
ssl_certificate_key = "/tmp/key.pem"
2830
letsencrypt = true
@@ -52,6 +54,9 @@ dest = "google"`)
5254
if !cfg.LetsEncrypt {
5355
t.Error("expected letsencrypt true")
5456
}
57+
if cfg.LoggingEnabled {
58+
t.Error("expected logging_enabled false")
59+
}
5560
if cfg.ServerName != "example.com" {
5661
t.Errorf("expected server name example.com, got %s", cfg.ServerName)
5762
}
@@ -65,10 +70,11 @@ dest = "google"`)
6570

6671
func TestGenerateNginx(t *testing.T) {
6772
cfg := Config{
68-
Listen: 8080,
69-
ListenSSL: 8443,
70-
ServerName: "example.com",
71-
RedirectHTTP: true,
73+
Listen: 8080,
74+
ListenSSL: 8443,
75+
ServerName: "example.com",
76+
LoggingEnabled: false,
77+
RedirectHTTP: true,
7278
CustomKeywords: []KeywordRule{{
7379
Phrase: "foo",
7480
Dest: "google",
@@ -87,4 +93,10 @@ func TestGenerateNginx(t *testing.T) {
8793
if !strings.Contains(out, "~*(?i)^foo$") {
8894
t.Errorf("generated config missing custom rule: %s", out)
8995
}
96+
if !strings.Contains(out, "access_log off;") {
97+
t.Errorf("generated config missing access log disable: %s", out)
98+
}
99+
if !strings.Contains(out, "error_log /dev/null crit;") {
100+
t.Errorf("generated config missing error log disable: %s", out)
101+
}
90102
}

cmd/sea/nginx.conf.tmpl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ server {
4848
listen {{ .ListenSSL }} ssl http2;
4949
listen [::]:{{ .ListenSSL }} ssl http2;
5050
server_name {{ .ServerName }};
51+
{{- if not .LoggingEnabled }}
52+
access_log off;
53+
error_log /dev/null crit;
54+
{{- end }}
5155
keepalive_timeout 5;
5256
{{- if .SSLCertificate }}
5357
ssl_certificate {{ .SSLCertificate }};
@@ -71,6 +75,10 @@ server {
7175
listen {{ .Listen }};
7276
listen [::]:{{ .Listen }};
7377
server_name {{ .ServerName }};
78+
{{- if not .LoggingEnabled }}
79+
access_log off;
80+
error_log /dev/null crit;
81+
{{- end }}
7482

7583
return 404;
7684
}
@@ -79,6 +87,10 @@ server {
7987
listen {{ .Listen }};
8088
listen [::]:{{ .Listen }};
8189
server_name {{ .ServerName }};
90+
{{- if not .LoggingEnabled }}
91+
access_log off;
92+
error_log /dev/null crit;
93+
{{- end }}
8294

8395
location / {
8496
return 302 $sea_target;
@@ -90,6 +102,10 @@ server {
90102
listen {{ .Listen }};
91103
listen [::]:{{ .Listen }};
92104
server_name {{ .ServerName }};
105+
{{- if not .LoggingEnabled }}
106+
access_log off;
107+
error_log /dev/null crit;
108+
{{- end }}
93109

94110
location / {
95111
return 302 $sea_target;

config-example.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
listen = 80
22
listen_ssl = 443
33
server_name = "your.site"
4+
# logging_enabled = true
45
# ssl_certificate = "/etc/letsencrypt/live/your.site/fullchain.pem"
56
# ssl_certificate_key = "/etc/letsencrypt/live/your.site/privkey.pem"
67
# letsencrypt = true

0 commit comments

Comments
 (0)