Compare commits

..
Author SHA1 Message Date
fauno 55f37ba386 doc: log rotation
continuous-integration/drone/pr Build is failing
2026-08-02 15:22:31 -03:00
fauno 68f07eff9b doc: log rotation
continuous-integration/drone/pr Build is failing
2026-07-31 18:02:36 -03:00
fauno a7f66744a4 fix: don't filter
continuous-integration/drone/pr Build is failing
2026-07-28 16:07:47 -03:00
fauno ca914a5d9f fix: missing compose version
continuous-integration/drone/pr Build is failing
2026-07-28 14:51:59 -03:00
fauno b4a38da20d feat: access logs
continuous-integration/drone/pr Build is failing
2026-07-28 14:19:49 -03:00
5 changed files with 44 additions and 7 deletions
+2 -2
View File
@@ -226,5 +226,5 @@ WRITE_TIMEOUT=0s
## Enable onion service support
#ONION_ENABLED=1
# YAML array of trusted subnets
TRUSTED_IPS=
## Access logs
#COMPOSE_FILE="$COMPOSE_FILE:compose.access-log.yml"
+16
View File
@@ -77,3 +77,19 @@ protection your apps.**
Uncomment the line in the config setting `ONION_ENABLED=1`. This will create a new entrypoint on port 9052 which can be used to bypass forced SSL. For more details, see the [onion recipe](https://recipes.coopcloud.tech/onion).
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra
## Access logs
To keep access logs on a volume, uncomment the "Access logs" section.
You'll need to setup rotation yourself and send the USR1 signal to
Traefik for reloading. For instance, with `logrotate:
```
# /etc/logrotate.d/traefik.conf
/var/lib/docker/volumes/traefik_SERVICE_NAME_access-logs/_data/access_log.jsonl {
postrotate
pkill -USR1 traefik
endscript
}
```
+1 -1
View File
@@ -1,3 +1,3 @@
export TRAEFIK_YML_VERSION=v32a
export TRAEFIK_YML_VERSION=v33
export FILE_PROVIDER_YML_VERSION=v12
export ENTRYPOINT_VERSION=v5
+10
View File
@@ -0,0 +1,10 @@
---
version: "3.8"
services:
app:
environment:
ACCESS_LOG_ENABLED: "true"
volumes:
- "access-logs:/var/log/"
volumes:
access-logs:
+15 -4
View File
@@ -6,6 +6,21 @@ log:
level: {{ env "LOG_LEVEL" }}
maxAge: {{ env "LOG_MAX_AGE" }}
{{ if eq (env "ACCESS_LOG_ENABLED") "true" }}
accessLog:
format: "json"
filePath: "/var/log/access_log.jsonl"
fields:
defaultMode: "keep"
headers:
defaultMode: "keep"
names:
Authorization: "drop"
Cookie: "drop"
queryParameters:
defaultMode: "keep"
{{ end }}
providers:
swarm:
endpoint: "tcp://socket-proxy:2375"
@@ -33,10 +48,6 @@ entrypoints:
to: web-secure
web-secure:
address: ":443"
{{ if ne (env "TRUSTED_IPS") "" }}
forwardedHeaders:
trustedIPs: {{ env "TRUSTED_IPS" }}
{{ end }}
transport:
respondingTimeouts:
readTimeout: {{ env "READ_TIMEOUT" }}