Compare commits

...

36 Commits

Author SHA1 Message Date
ed257bd0b2 remove default TIMEOUT (abra #596)
Some checks failed
continuous-integration/drone/pr Build is failing
2026-01-03 15:31:32 +01:00
7dd833dbec Merge pull request 'anubis support' (#72) from anubis into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #72
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-03 14:23:39 +00:00
d5f19d3b11 Merge pull request 'feat: pull request template' (#75) from feat-pull-request-template into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #75
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
2026-01-01 19:34:22 +00:00
f16f434877 feat: pull request template
Some checks failed
continuous-integration/drone/pr Build is failing
2026-01-01 20:33:36 +01:00
5d656ccb72 Merge pull request 'chore(deps): update traefik docker tag to v3.6.6' (#76) from renovate/traefik-3.x into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #76
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-01 17:39:01 +00:00
fa55efb0c3 Merge pull request 'docs: Improve the maintainers docs' (#78) from improve-docs into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #78
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-01 16:05:42 +00:00
98fe0de193 Merge pull request 'chore: add @javielico as maintainer' (#77) from javielico/traefik:master into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #77
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-01 16:05:08 +00:00
862bc9a3a5 docs: Improve the maintainers docs
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-30 11:23:22 +01:00
0238b73f77 chore: add @javielico as maintainer
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-30 10:18:46 +00:00
5df55f7833 chore(deps): update traefik docker tag to v3.6.6
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-29 22:20:37 +00:00
5a8c72eb00 refactor: wording, formatting
Some checks failed
continuous-integration/drone/push Build is failing
2025-12-29 21:54:47 +01:00
8eaee04b5d Merge pull request 'Add CurveP256 to the list of cipherSuites' (#73) from ciphersuites into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #73
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2025-12-29 19:58:50 +00:00
fde0e9fa62 Merge branch 'master' into ciphersuites
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-29 18:24:32 +00:00
c5eac61766 pump up FILE_PROVIDER_YML_VERSION
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-29 10:11:53 -08:00
34d22375d3 Merge pull request 'chore: d1 as maintainer' (#74) from chore-d1-maintainer into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #74
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
2025-12-28 16:44:43 +00:00
bd24d893c2 chore: d1 as maintainer
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-28 10:29:43 +01:00
e647fd9c45 add CurveP256 to the list of cipherSuites
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-27 22:03:45 -08:00
f
92650aa12a feat: serve default robots txt
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-26 13:40:51 -03:00
f
0e38a772e9 feat: anubis open graph cache 2025-12-26 13:29:05 -03:00
f
f469a1a90e doc: readme
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-26 13:23:06 -03:00
f
0d85f97200 fix: traefik complains the network is not set 2025-12-24 19:00:41 -03:00
f
ac33efe73a fix: labels
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-24 18:26:33 -03:00
f
a135d170bb fix: anubis
Some checks failed
continuous-integration/drone/pr Build is failing
2025-12-24 16:58:51 -03:00
f
fa7cf3e17b fix: labels 2025-12-24 16:49:37 -03:00
f
d05c81b4d7 feat: anubis 2025-12-24 16:27:05 -03:00
3830eedfa0 chore: publish 3.9.0+v3.6.5 release
Some checks failed
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is failing
2025-12-23 14:26:54 +01:00
1acff756cc feat: support nextcloud talk high performance backend (#66)
Some checks failed
continuous-integration/drone/push Build is failing
This implements the high performance backend for Nextcloud Talk, which is nessecary if it needs to handle more people (video) calling.
More Details about it: https://nextcloud-talk.readthedocs.io/en/latest/quick-install/

The current implementation is sadly limited to be used once per host, so this might need some additional love in the future, if someone needs it more flexible.

The related Nextcloud PR: coop-cloud/nextcloud#56

Co-authored-by: Apfelwurm <Alexander@volzit.de>
Reviewed-on: #66
Co-authored-by: p4u1 <p4u1_f4u1@riseup.net>
Co-committed-by: p4u1 <p4u1_f4u1@riseup.net>
2025-12-23 13:25:15 +00:00
57f7cbd08b chore: publish 3.8.0+v3.6.5 release
Some checks failed
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is failing
2025-12-23 14:16:13 +01:00
c9e326b13c chore(deps): update traefik docker tag to v3.6.5 (#68)
Some checks failed
continuous-integration/drone/push Build is failing
This handles the [breaking change](https://doc.traefik.io/traefik/v3.6/migrate/v3/#v364) by allowing all encoded characters in the request path

Co-authored-by: Renovate Bot <renovate@coopcloud.tech>
Reviewed-on: #68
Co-authored-by: p4u1 <p4u1_f4u1@riseup.net>
Co-committed-by: p4u1 <p4u1_f4u1@riseup.net>
2025-12-23 13:12:44 +00:00
7e688c9094 feat: support UDP proxy of port 2022 and 2023 for P2Panda apps (#70)
Some checks failed
continuous-integration/drone/push Build is failing
# Support P2P communication between P2Panda Apps

Apps built with the set of [P2Panda](https://p2panda.org/) libraries perform P2P communication over two UDP ports. The default ports for these are 2022 and 2023.

There aren't really a lot (any?) P2Panda web apps out there, most are desktop or mobile apps.

So, this change is being specifically request by the [LoRes Tech](https://lores.tech/) project in order to support our [LoRes Node](https://github.com/local-resilience-tech/lores-node/) app. We have a recipe drafted for this [here](https://codeberg.org/lores/lores-node-coop-cloud-recipe) and we will push that to the catalogue once this change is in.

It seems better to make this kiwix change as general as possible, which is why we called the flag `P2PANDA_ENABLED` rather than `LORES_NODE_ENABLED`. In practice if there was a larger ecosystem of such apps, we'd probably need to make the actual port numbers configurable.

Reviewed-on: #70
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Co-authored-by: Jade Ambrose <jade@noreply.git.coopcloud.tech>
Co-committed-by: Jade Ambrose <jade@noreply.git.coopcloud.tech>
2025-12-22 12:37:50 +00:00
88502ecda4 Merge pull request 'chore: Configure Renovate' (#64) from renovate/configure into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #64
2025-11-20 18:24:11 +00:00
c42914f72a Add renovate.json
Some checks failed
continuous-integration/drone/pr Build is failing
2025-11-20 17:50:32 +00:00
268316cc83 Merge pull request 'add MAINTAINERS.md' (#61) from maintainers into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #61
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2025-11-20 17:07:42 +00:00
3ae4d8f889 Update MAINTENANCE.md
Some checks failed
continuous-integration/drone/pr Build is failing
2025-11-06 09:54:08 +00:00
a01ec10d15 update
Some checks failed
continuous-integration/drone/pr Build is failing
2025-11-04 18:54:51 +01:00
4ea14d260a add MAINTAINERS.md
Some checks failed
continuous-integration/drone/pr Build is failing
2025-10-31 17:13:56 +01:00
13 changed files with 170 additions and 11 deletions

View File

@ -16,7 +16,7 @@ steps:
STACK_NAME: traefik
LETS_ENCRYPT_ENV: production
LETS_ENCRYPT_EMAIL: helo@autonomic.zone
TRAEFIK_YML_VERSION: v22
TRAEFIK_YML_VERSION: v26
FILE_PROVIDER_YML_VERSION: v10
ENTRYPOINT_VERSION: v4
trigger:

View File

@ -1,5 +1,5 @@
TYPE=traefik
TIMEOUT=300
#TIMEOUT=300
ENABLE_AUTO_UPDATE=true
ENABLE_BACKUPS=true
@ -131,6 +131,10 @@ COMPOSE_FILE="compose.yml"
# COMPOSE_FILE="$COMPOSE_FILE:compose.gitea.yml"
# GITEA_SSH_ENABLED=1
## P2Panda UDP
# COMPOSE_FILE="$COMPOSE_FILE:compose.p2panda.yml"
# P2PANDA_ENABLED=1
## Foodsoft SMTP
# COMPOSE_FILE="$COMPOSE_FILE:compose.foodsoft.yml"
# FOODSOFT_SMTP_ENABLED=1
@ -166,4 +170,18 @@ COMPOSE_FILE="compose.yml"
## Garage
#COMPOSE_FILE="$COMPOSE_FILE:compose.garage.yml"
#GARAGE_RPC_ENABLED=1
#GARAGE_RPC_ENABLED=1
## Nextcloud Talk HPB
#COMPOSE_FILE="$COMPOSE_FILE:compose.nextcloud-talk-hpb.yml"
#NEXTCLOUD_TALK_HPB_ENABLED=1
## Anubis
#COMPOSE_FILE="$COMPOSE_FILE:compose.anubis.yml"
#ANUBIS_COOKIE_DOMAIN=example.com
#ANUBIS_DOMAIN=anubis.example.com
#ANUBIS_REDIRECT_DOMAINS=
#ANUBIS_OG_PASSTHROUGH=true
#ANUBIS_OG_EXPIRY_TIME=1h
#ANUBIS_OG_CACHE_CONSIDER_HOST=true
#ANUBIS_SERVE_ROBOTS_TXT=true

View File

@ -0,0 +1,15 @@
---
name: "Traefik pull request template"
---
<!--
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.
-->
* [ ] 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)
* [ ] 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)

32
MAINTENANCE.md Normal file
View File

@ -0,0 +1,32 @@
# Traefik Recipe Maintenance
All contributions should be made via a pull request. This is to ensure a
certain quality and consistency, that others can rely on.
## Maintainer Responsibilities
A recipe maintainer has the following responsibilities:
- Respond to pull requests / issues within a week
- Make image security updates within a day
- Make image patch / minor updates within a week
- Make image major updates within a month
In order to fullfill these responsibilities a recipe maintainer:
- Has to watch the repository (to get notifications)
- Needs to make sure renovate is configured properly
## Pull Requests
A pull request can be merged if it is approved by at least one maintainer. For
pull requests opened by a maintainer they need to be approved by another
maintainer. Even though it is okay to merge a pull request with one approval, it
is always better if all maintainers looked at the pull request and approved it.
## Become a maintainer
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).

View File

@ -5,8 +5,10 @@
> https://docs.traefik.io
<!-- metadata -->
* **Maintainer**: [@p4u1](https://git.coopcloud.tech/p4u1), [@decentral1se](https://git.coopcloud.tech/decentral1se), [@javielico](https://git.coopcloud.tech/javielico)
* **Status**: `stable`
* **Category**: Utilities
* **Status**: ?
* **Features**: ?
* **Image**: [`traefik`](https://hub.docker.com/_/traefik), 4, upstream
* **Healthcheck**: Yes
* **Backups**: No
@ -53,4 +55,17 @@ Letsencrypt DNS challenges.
Access Token, in which case use compose.gandi-personal-access-token.yml.
6. Redeploy Traefik, using e.g. `abra app deploy YOURAPPDOMAIN -f`
## Blocking scrapers with [Anubis](https://anubis.techaro.lol/)
Uncomment the lines on the Anubis section of the configuration. Set
a domain name for the cookies and a domain that will serve Anubis
redirection service. Optionally and for [added
security](https://anubis.techaro.lol/docs/admin/configuration/redirect-domains),
set a list of the domain names for the apps that are going to be
protected.
After deploying these changes, go to each recipe that supports Anubis
and follow the process there. **Enabling Anubis here is not enough for
protection your apps.**
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra

View File

@ -1,3 +1,3 @@
export TRAEFIK_YML_VERSION=v25
export FILE_PROVIDER_YML_VERSION=v10
export TRAEFIK_YML_VERSION=v28
export FILE_PROVIDER_YML_VERSION=v11
export ENTRYPOINT_VERSION=v5

29
compose.anubis.yml Normal file
View File

@ -0,0 +1,29 @@
---
version: "3.8"
services:
app:
deploy:
labels:
- "traefik.http.middlewares.anubis.forwardauth.address=http://anubis:8080/.within.website/x/cmd/anubis/api/check"
anubis:
image: "ghcr.io/techarohq/anubis:v1.24.0"
environment:
BIND: ":8080"
TARGET: " "
REDIRECT_DOMAINS: "${ANUBIS_REDIRECT_DOMAINS}"
COOKIE_DOMAIN: "${ANUBIS_COOKIE_DOMAIN}"
PUBLIC_URL: "https://${ANUBIS_DOMAIN}"
OG_PASSTHROUGH: "${ANUBIS_OG_PASSTHROUGH}"
OG_EXPIRY_TIME: "${ANUBIS_OG_EXPIRY_TIME}"
OG_CACHE_CONSIDER_HOST: "${ANUBIS_OG_CACHE_CONSIDER_HOST}"
SERVE_ROBOTS_TXT: "${ANUBIS_SERVE_ROBOTS_TXT}"
networks:
- proxy
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.anubis.rule=Host(`${ANUBIS_DOMAIN}`)"
- "traefik.http.routers.anubis.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.anubis.entrypoints=web-secure"
- "traefik.http.services.anubis.loadbalancer.server.port=8080"
- "traefik.http.routers.anubis.service=anubis"

View File

@ -0,0 +1,8 @@
version: "3.8"
services:
app:
environment:
- NEXTCLOUD_TALK_HPB_ENABLED
ports:
- "3478:3478/udp"
- "3478:3478/tcp"

14
compose.p2panda.yml Normal file
View File

@ -0,0 +1,14 @@
version: "3.8"
services:
app:
environment:
- P2PANDA_ENABLED
ports:
- target: 2022
published: 2022
protocol: udp
mode: host
- target: 2023
published: 2023
protocol: udp
mode: host

View File

@ -3,7 +3,7 @@ version: "3.8"
services:
app:
image: "traefik:v3.6.2"
image: "traefik:v3.6.6"
# Note(decentral1se): *please do not* add any additional ports here.
# Doing so could break new installs with port conflicts. Please use
# the usual `compose.$app.yml` approach for any additional ports
@ -48,12 +48,12 @@ 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=3.7.0+v3.6.2"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "coop-cloud.${STACK_NAME}.version=3.9.0+v3.6.5"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
socket-proxy:
image: lscr.io/linuxserver/socket-proxy:3.2.8-r0-ls61
image: lscr.io/linuxserver/socket-proxy:3.2.10-r0-ls65
deploy:
endpoint_mode: dnsrr
environment:

View File

@ -43,6 +43,7 @@ tls:
curvePreferences:
- CurveP521
- CurveP384
- CurveP256
sniStrict: true
{{ if eq (env "WILDCARDS_ENABLED") "1" }}
certificates:

6
renovate.json Normal file
View File

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}

View File

@ -1,7 +1,7 @@
---
core:
defaultRuleSyntax: v2
log:
level: {{ env "LOG_LEVEL" }}
maxAge: {{ env "LOG_MAX_AGE" }}
@ -33,10 +33,25 @@ entrypoints:
to: web-secure
web-secure:
address: ":443"
http:
encodedCharacters:
allowEncodedSlash: true
allowEncodedBackSlash: true
allowEncodedNullCharacter: true
allowEncodedSemicolon: true
allowEncodedPercent: true
allowEncodedQuestionMark: true
allowEncodedHash: true
{{ if eq (env "GITEA_SSH_ENABLED") "1" }}
gitea-ssh:
address: ":2222"
{{ end }}
{{ if eq (env "P2PANDA_ENABLED") "1" }}
p2panda-udp-v4:
address: ":2022/udp"
p2panda-udp-v6:
address: ":2023/udp"
{{ end }}
{{ if eq (env "GARAGE_RPC_ENABLED") "1" }}
garage-rpc:
address: ":3901"
@ -90,6 +105,12 @@ entrypoints:
matrix-federation:
address: ":9001"
{{ end }}
{{ if eq (env "NEXTCLOUD_TALK_HPB_ENABLED") "1" }}
nextcloud-talk-hpb:
address: ":3478"
nextcloud-talk-hpb-udp:
address: ":3478/udp"
{{ end }}
ping:
entryPoint: web