Compare commits

...
Author SHA1 Message Date
dannygroenewegen ad565ee9c9 feat: Add labels for label-based metric scraping
continuous-integration/drone/pr Build is failing
Add prometheus.io labels to compose.metrics.yml so monitoring-ng can
auto-discover and scrape Traefik's metrics on the internal network when
enabled.
2026-08-26 19:04:12 +02:00
fauno c4f9421f72 feat: access logs (#126)
continuous-integration/drone/push Build is failing
<!--
Thank you for doing recipe maintenance work!
Please mark all checklist items which are relevant for your changes.
Please remove the checklist items which are not relevant for your changes.
Feel free to remove this comment.
-->

* [x] I have deployed and tested my changes
* [ ] I have [updated relevant versions in `abra.sh`](https://docs.coopcloud.tech/maintainers/upgrade/#updating-versions-in-the-abrash)
* [x] I have made my environment variable changes [backwards compatible](https://docs.coopcloud.tech/maintainers/upgrade/#backwards-compatible-environment-variable-changes)
* [ ] I have added a [release note entry](https://docs.coopcloud.tech/maintainers/upgrade/#creating-new-release-notes)

Reviewed-on: #126
Reviewed-by: p4u1 <133+p4u1@noreply.git.coopcloud.tech>
Co-authored-by: f <f@sutty.nl>
2026-08-25 17:19:08 +00:00
javielico 76ab12c797 Added mention to matrix room (#134)
continuous-integration/drone/push Build is failing
Modifying the maintainers.md to mention new #cc-|-traefik-maintenance:matrix.org chat room.

Reviewed-on: #134
Reviewed-by: p4u1 <133+p4u1@noreply.git.coopcloud.tech>
Co-authored-by: Javielico <103+javielico@noreply.git.coopcloud.tech>
2026-08-25 17:17:02 +00:00
javielico 14f0d953a4 chore: publish 6.1.0+v3.7.10 release
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-08-13 16:21:30 +01:00
javielico 7c8a44bd26 Open ports 5432 for PGSQL new recipe (#133)
continuous-integration/drone/push Build is failing
Reviewed-on: #133
Reviewed-by: p4u1 <133+p4u1@noreply.git.coopcloud.tech>
Co-authored-by: Javielico <103+javielico@noreply.git.coopcloud.tech>
2026-08-13 14:10:09 +00:00
12 changed files with 91 additions and 5 deletions
+13 -2
View File
@@ -139,10 +139,14 @@ WRITE_TIMEOUT=0s
#####################################################################
## Enable prometheus metrics collection
## used used by the coop-cloud monitoring stack
## BASIC_AUTH should also be enabled
## Metrics are served unauthenticated on :8082, reachable only from
## other services on the proxy network (e.g. monitoring-ng's Alloy,
## which auto-discovers it via the prometheus.io/scrape label)
#COMPOSE_FILE="$COMPOSE_FILE:compose.metrics.yml"
#METRICS_ENABLED=1
## Setting METRICS_FQDN also adds a public metrics endpoint (behind
## basic auth). BASIC_AUTH should be enabled for this.
#METRICS_FQDN=metrics.traefik.example.com
#####################################################################
@@ -159,6 +163,10 @@ WRITE_TIMEOUT=0s
#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
#SMTP_ENABLED=1
## PGSQL recipe open port 5432
#COMPOSE_FILE="$COMPOSE_FILE:compose.pgsql.yml"
#PGSQL_ENABLED=1
## Compy
#COMPOSE_FILE="$COMPOSE_FILE:compose.compy.yml"
#COMPY_ENABLED=1
@@ -228,3 +236,6 @@ WRITE_TIMEOUT=0s
## Enable onion service support
#ONION_ENABLED=1
## Access logs
#COMPOSE_FILE="$COMPOSE_FILE:compose.access-log.yml"
+1
View File
@@ -29,3 +29,4 @@ Everyone can apply to be a recipe maintainer:
1. Watch the repository to always get updates
2. Simply add your self to the list in the [README.md](./README.md) and open a new pull request with the change.
3. Once the pull request gets merged you will be added to the [traefik maintainers team](https://git.coopcloud.tech/org/coop-cloud/teams/traefik-maintainers).
4. Join the room [#cc-|-traefik-maintenance:matrix.org](#cc-|-traefik-maintenance:matrix.org) and chat to other maintainers.
+16
View File
@@ -80,3 +80,19 @@ If you want to collect Prometheus metrics for Anubis, for instance with
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
}
```
+2 -2
View File
@@ -1,4 +1,4 @@
export TRAEFIK_YML_VERSION=v32
export FILE_PROVIDER_YML_VERSION=v12
export TRAEFIK_YML_VERSION=v35
export FILE_PROVIDER_YML_VERSION=v13
export ENTRYPOINT_VERSION=v5
export ANUBIS_YML_VERSION=v1
+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:
+6
View File
@@ -3,3 +3,9 @@ services:
app:
environment:
- METRICS_ENABLED
deploy:
labels:
# lets monitoring-ng's Alloy auto-discover and scrape metrics-internal
# via the proxy network.
- "prometheus.io/scrape=true"
- "prometheus.io/port=8082"
+12
View File
@@ -0,0 +1,12 @@
---
version: "3.8"
services:
app:
environment:
- PGSQL_ENABLED
ports:
- target: 5432
published: 5432
protocol: tcp
mode: host
+1 -1
View File
@@ -57,7 +57,7 @@ services:
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.service=api@internal"
- "traefik.http.routers.${STACK_NAME}.middlewares=security@file"
- "coop-cloud.${STACK_NAME}.version=6.0.0+v3.7.7"
- "coop-cloud.${STACK_NAME}.version=6.1.0+v3.7.10"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
+9
View File
@@ -32,6 +32,7 @@ http:
stsSeconds: "31536000"
{{ if eq (env "METRICS_ENABLED") "1" }}
routers:
{{ if ne (env "METRICS_FQDN") "" }}
traefik-metrics:
rule: "Host(`{{ env "METRICS_FQDN" }}`)"
entrypoints:
@@ -41,6 +42,14 @@ http:
middlewares:
- basicauth@file
service: prometheus@internal
{{ end }}
# reachable from other services on the proxy network only (this port
# isn't published to the host), without auth
traefik-metrics-internal:
rule: "PathPrefix(`/`)"
entrypoints:
- metrics-internal
service: prometheus@internal
{{ end }}
tls:
+1
View File
@@ -0,0 +1 @@
Adds option ability to open ports for PGSQL recipe, new version of anubis, and ability to add anubis metrics on this release.
+1
View File
@@ -0,0 +1 @@
1. compose.metrics.yml now adds prometheus.io/scrape labels so services like monitoring-ng can automatically discover and scrape Traefik's metrics.
+19
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"
@@ -112,6 +127,10 @@ entrypoints:
onion:
address: ":9052"
{{- end }}
{{- if eq (env "METRICS_ENABLED") "1" }}
metrics-internal:
address: ":8082"
{{- end }}
ping:
entryPoint: web