Compare commits

..

18 Commits

Author SHA1 Message Date
324933a9cc docs: next release notes 2026-01-15 10:34:40 +01:00
dc3e50838f Merge pull request 'feat: Add onion service support' (#81) from add-onion-support into master
Reviewed-on: coop-cloud/traefik#81
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-15 09:33:28 +00:00
d59f6e0302 Update .gitea/PULL_REQUEST_TEMPLATE.md 2026-01-14 20:25:43 +00:00
139202fa9c update README.md 2026-01-14 13:19:50 -05:00
de7989f3ca use 9052 for onion port 2026-01-13 12:13:12 -05:00
d3bf1bce24 fix whitespace removal 2026-01-13 02:32:23 -05:00
1ce9d9ca72 add onion support 2026-01-13 02:13:06 -05:00
a233438f80 Merge pull request 'Remove Default Timeout' (#79) from remove-default-timeout into master
Reviewed-on: coop-cloud/traefik#79
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-03 14:32:02 +00:00
ed257bd0b2 remove default TIMEOUT (abra #596) 2026-01-03 15:31:32 +01:00
7dd833dbec Merge pull request 'anubis support' (#72) from anubis into master
Reviewed-on: coop-cloud/traefik#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
f
92650aa12a feat: serve default robots txt 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 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 2025-12-24 18:26:33 -03:00
f
a135d170bb fix: anubis 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
8 changed files with 117 additions and 43 deletions

View File

@ -1,5 +1,5 @@
TYPE=traefik
TIMEOUT=300
#TIMEOUT=300
ENABLE_AUTO_UPDATE=true
ENABLE_BACKUPS=true
@ -174,4 +174,17 @@ COMPOSE_FILE="compose.yml"
## Nextcloud Talk HPB
#COMPOSE_FILE="$COMPOSE_FILE:compose.nextcloud-talk-hpb.yml"
#NEXTCLOUD_TALK_HPB_ENABLED=1
#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
## Enable onion service support
#ONION_ENABLED=1

View File

@ -1,5 +1,6 @@
---
name: "Traefik pull request template"
about: "Traefik pull request template"
---
<!--

View File

@ -55,4 +55,21 @@ 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.**
## Enabling onion service
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

View File

@ -1,3 +1,3 @@
export TRAEFIK_YML_VERSION=v28
export TRAEFIK_YML_VERSION=v29
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

@ -49,7 +49,7 @@ services:
- "traefik.http.routers.${STACK_NAME}.service=api@internal"
- "traefik.http.routers.${STACK_NAME}.middlewares=security@file"
- "coop-cloud.${STACK_NAME}.version=3.9.0+v3.6.5"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
socket-proxy:

10
release/next Normal file
View File

@ -0,0 +1,10 @@
Short summary of the latest changes:
* Traefik has been upgraded with a patch release, no issues expected.
* "CurveP256" has been included to the TLS options.
* The default TIMEOUT value has been removed from the label directly.
* Anubis support is here, try out `compose.anubis.yml` and see the README.md for more.
* Onion services with Tor are not supported! See the README.md for more.
* There are now officially 3 recipe maintainers for Traefik!
All changes: https://git.coopcloud.tech/coop-cloud/traefik/compare/3.9.0+v3.6.5...master

View File

@ -11,14 +11,14 @@ providers:
endpoint: "tcp://socket-proxy:2375"
exposedByDefault: false
network: proxy
{{ if eq (env "FILE_PROVIDER_DIRECTORY_ENABLED") "1" }}
{{- if eq (env "FILE_PROVIDER_DIRECTORY_ENABLED") "1" }}
file:
directory: /etc/traefik/file-providers
watch: true
{{ else }}
{{- else }}
file:
filename: /etc/traefik/file-provider.yml
{{ end }}
{{- end }}
api:
dashboard: {{ env "DASHBOARD_ENABLED" }}
@ -42,86 +42,90 @@ entrypoints:
allowEncodedPercent: true
allowEncodedQuestionMark: true
allowEncodedHash: true
{{ if eq (env "GITEA_SSH_ENABLED") "1" }}
{{- if eq (env "GITEA_SSH_ENABLED") "1" }}
gitea-ssh:
address: ":2222"
{{ end }}
{{ if eq (env "P2PANDA_ENABLED") "1" }}
{{- 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" }}
{{- end }}
{{- if eq (env "GARAGE_RPC_ENABLED") "1" }}
garage-rpc:
address: ":3901"
{{ end }}
{{ if eq (env "FOODSOFT_SMTP_ENABLED") "1" }}
{{- end }}
{{- if eq (env "FOODSOFT_SMTP_ENABLED") "1" }}
foodsoft-smtp:
address: ":2525"
{{ end }}
{{ if eq (env "SMTP_ENABLED") "1" }}
{{- end }}
{{- if eq (env "SMTP_ENABLED") "1" }}
smtp-submission:
address: ":587"
{{ end }}
{{ if eq (env "PEERTUBE_RTMP_ENABLED") "1" }}
{{- end }}
{{- if eq (env "PEERTUBE_RTMP_ENABLED") "1" }}
peertube-rtmp:
address: ":1935"
{{ end }}
{{ if eq (env "WEB_ALT_ENABLED") "1" }}
{{- end }}
{{- if eq (env "WEB_ALT_ENABLED") "1" }}
web-alt:
address: ":8000"
{{ end }}
{{ if eq (env "SSB_MUXRPC_ENABLED") "1" }}
{{- end }}
{{- if eq (env "SSB_MUXRPC_ENABLED") "1" }}
ssb-muxrpc:
address: ":8008"
{{ end }}
{{ if eq (env "MSSQL_ENABLED") "1" }}
{{- end }}
{{- if eq (env "MSSQL_ENABLED") "1" }}
mssql:
address: ":1433"
{{ end }}
{{ if eq (env "MUMBLE_ENABLED") "1" }}
{{- end }}
{{- if eq (env "MUMBLE_ENABLED") "1" }}
mumble:
address: ":64738"
mumble-udp:
address: ":64738/udp"
{{ end }}
{{ if eq (env "COMPY_ENABLED") "1" }}
{{- end }}
{{- if eq (env "COMPY_ENABLED") "1" }}
compy:
address: ":9999"
{{ end }}
{{ if eq (env "IRC_ENABLED") "1" }}
{{- end }}
{{- if eq (env "IRC_ENABLED") "1" }}
irc:
address: ":6697"
{{ end }}
{{ if eq (env "METRICS_ENABLED") "1" }}
{{- end }}
{{- if eq (env "METRICS_ENABLED") "1" }}
metrics:
address: ":8082"
http:
middlewares:
- basicauth@file
{{ end }}
{{ if eq (env "MATRIX_FEDERATION_ENABLED") "1" }}
{{- end }}
{{- if eq (env "MATRIX_FEDERATION_ENABLED") "1" }}
matrix-federation:
address: ":9001"
{{ end }}
{{ if eq (env "NEXTCLOUD_TALK_HPB_ENABLED") "1" }}
{{- end }}
{{- if eq (env "NEXTCLOUD_TALK_HPB_ENABLED") "1" }}
nextcloud-talk-hpb:
address: ":3478"
nextcloud-talk-hpb-udp:
address: ":3478/udp"
{{ end }}
{{- end }}
{{- if eq (env "ONION_ENABLED") "1" }}
onion:
address: ":9052"
{{- end }}
ping:
entryPoint: web
{{ if eq (env "METRICS_ENABLED") "1" }}
{{- if eq (env "METRICS_ENABLED") "1" }}
metrics:
prometheus:
entryPoint: metrics
addRoutersLabels: true
addServicesLabels: true
{{ end }}
{{- end }}
certificatesResolvers:
staging:
@ -131,23 +135,23 @@ certificatesResolvers:
caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
httpChallenge:
entryPoint: web
{{ if eq (env "LETS_ENCRYPT_DNS_CHALLENGE_ENABLED") "1" }}
{{- if eq (env "LETS_ENCRYPT_DNS_CHALLENGE_ENABLED") "1" }}
dnsChallenge:
provider: {{ (env "LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER") }}
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
{{ end }}
{{- end }}
production:
acme:
email: {{ env "LETS_ENCRYPT_EMAIL" }}
storage: /etc/letsencrypt/production-acme.json
httpChallenge:
entryPoint: web
{{ if eq (env "LETS_ENCRYPT_DNS_CHALLENGE_ENABLED") "1" }}
{{- if eq (env "LETS_ENCRYPT_DNS_CHALLENGE_ENABLED") "1" }}
dnsChallenge:
provider: {{ (env "LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER") }}
resolvers:
- "1.1.1.1:53"
- "9.9.9.9:53"
{{ end }}
{{- end }}