Compare commits

...

48 Commits
v3 ... master

Author SHA1 Message Date
7e688c9094 feat: support UDP proxy of port 2022 and 2023 for P2Panda apps (#70)
# 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: coop-cloud/traefik#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
Reviewed-on: coop-cloud/traefik#64
2025-11-20 18:24:11 +00:00
c42914f72a Add renovate.json 2025-11-20 17:50:32 +00:00
268316cc83 Merge pull request 'add MAINTAINERS.md' (#61) from maintainers into master
Reviewed-on: coop-cloud/traefik#61
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2025-11-20 17:07:42 +00:00
7dc902e82b chore: publish 3.7.0+v3.6.2 release 2025-11-20 18:01:44 +01:00
72bc0912f7 Merge pull request 'docs: Adds section on how to configure basic auth' (#62) from basic-auth-docs into master
Reviewed-on: coop-cloud/traefik#62
2025-11-20 16:55:53 +00:00
5b4bcbf1b8 Merge pull request 'chore: upgrade to v3.6.2, enables NODES=1 and PING=1 on socket-proxy' (#63) from upgrade-v3.6.2 into master
Reviewed-on: coop-cloud/traefik#63
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
2025-11-20 16:55:26 +00:00
5be795b033 Update README.md 2025-11-20 16:42:15 +00:00
7d7481f3ee chore: upgrade to v3.6.2, enables NODES=1 and PING=1 on socket-proxy 2025-11-19 20:44:19 +01:00
92554180a8 chore: publish 3.6.3+v3.4.5 release 2025-11-13 22:24:18 -08:00
1052601523 pump up TRAEFIK_YML_VERSION version 2025-11-14 05:46:15 +00:00
3ae4d8f889 Update MAINTENANCE.md 2025-11-06 09:54:08 +00:00
07d47e087b docs: Adds section on how to configure basic auth 2025-11-05 15:31:06 +01:00
a01ec10d15 update 2025-11-04 18:54:51 +01:00
4ea14d260a add MAINTAINERS.md 2025-10-31 17:13:56 +01:00
3wc
1a48b9bac8 docs: Fix CI/CD badge link
[ci skip]
2025-10-30 09:45:46 -04:00
7ede5f7cc6 chore: publish 3.6.2+v3.4.5 release 2025-10-27 13:32:31 -04:00
8b06144f54 fix: bump entrypoint version var 2025-10-27 13:25:34 -04:00
6c6b5c66ca chore: publish 3.6.1+v3.4.5 release 2025-10-22 23:02:24 -04:00
993ed9cf09 Garage support .env addition 2025-10-22 21:09:23 -04:00
1c2302b288 Merge branch 'master' into HEAD 2025-10-22 21:03:58 -04:00
27d5c092de add support for Garage RPC port 2025-10-22 21:01:02 -04:00
88e1a67146 chore: publish 3.6.0+v3.4.5 release 2025-08-28 18:01:23 -04:00
7e7422a593 Expose LOG_MAX_AGE
Reviewed-on: coop-cloud/traefik#55
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2025-08-28 18:05:27 +00:00
304915a396 Set default LOG_MAX_AGE 2025-08-27 11:50:13 -04:00
a3ab012d55 revert f2e746344e
revert chore: publish 3.5.1+v3.4.5 release
2025-08-13 19:17:11 +00:00
f2e746344e chore: publish 3.5.1+v3.4.5 release 2025-08-13 19:10:53 +00:00
1ec509eee8 Fixed azure secret variable 2025-08-13 19:05:05 +00:00
52c2cbf7ec chore: publish 3.5.0+v3.4.5 release 2025-08-13 05:27:39 -07:00
b8303290de Merge pull request 'feat: add azure DNS-01 challenge support' (#56) from ripclap/traefik:master into master
Reviewed-on: coop-cloud/traefik#56
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2025-08-12 19:16:42 +00:00
445feab87c Revert "Updated TRAEFIK_YML_VERSION"
This reverts commit 2db1a03d94.
2025-08-12 09:44:59 -07:00
b8aa102a01 azure: update code to align with established conventions 2025-08-12 01:21:56 -07:00
2db1a03d94 Updated TRAEFIK_YML_VERSION 2025-08-11 17:37:22 -07:00
c7e510fbad Added Azure DNS 01-Challenge support 2025-08-12 00:20:57 +00:00
f7087646b1 Added Azure DNS 01-Challenge support 2025-08-12 00:20:11 +00:00
8d7f9bd6a2 traefik_yml_version 2025-08-08 22:17:46 -04:00
01c5b2a3a4 Update to Traefik v3 2025-08-06 18:13:11 -04:00
810e1b0502 chore: publish 3.4.2+v3.4.5 release 2025-07-28 14:33:50 +02:00
270af60ba4 chore: publish 3.4.1+v3.4.5 release 2025-07-25 18:14:45 -04:00
27dfc1ae2c chore: publish 3.4.0+v3.4.4 release 2025-07-23 23:14:01 -04:00
2ff2c0d59e Merge pull request 'update to traefik v3' (#54) from sixsmith/traefik:v3-update-only into master
Reviewed-on: coop-cloud/traefik#54
2025-07-23 00:06:45 +00:00
60ec1191a8 v3: update Traefik 2025-07-15 15:57:41 -07:00
ff351d4c7f fix drone 2025-07-01 20:02:30 +02:00
4a5cfddb4c chore: publish 3.3.0+v2.11.26 release 2025-07-01 19:40:44 +02:00
3wc
ed8646001c chore: publish 3.2.0+v2.11.25 release 2025-06-20 10:38:14 +01:00
3wc
45b168789e Merge branch 'master' into feature/irc 2025-06-20 10:37:27 +01:00
3wc
7835b585fd chore: publish 3.1.1+v2.11.25 release 2025-06-11 18:23:53 +01:00
3wc
8fbcab6bea Initial support for IRC, port 6697 2025-02-06 13:54:28 -05:00
18 changed files with 149 additions and 14 deletions

View File

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

View File

@ -10,6 +10,7 @@ LETS_ENCRYPT_EMAIL=certs@example.com
# DASHBOARD_ENABLED=true
# WARN, INFO etc.
LOG_LEVEL=WARN
LOG_MAX_AGE=1
# This is here so later lines can extend it; you likely don't wanna edit
COMPOSE_FILE="compose.yml"
@ -58,6 +59,17 @@ COMPOSE_FILE="compose.yml"
#DIGITALOCEAN_ENABLED=1
#SECRET_DIGITALOCEAN_AUTH_TOKEN_VERSION=v1
## Azure, https://azure.com
## To insert your Azure client secret:
## abra app secret insert {myapp.example.coop} azure_secret v1 "<CLIENT_SECRET>"
#COMPOSE_FILE="$COMPOSE_FILE:compose.azure.yml"
#AZURE_ENABLED=1
#AZURE_TENANT_ID=
#AZURE_CLIENT_ID=
#AZURE_SUBSCRIPTION_ID=
#AZURE_RESOURCE_GROUP=
#SECRET_AZURE_SECRET_VERSION=v1
#####################################################################
# Manual wildcard certificate insertion #
#####################################################################
@ -119,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
@ -147,3 +163,11 @@ COMPOSE_FILE="compose.yml"
# NOTE(3wc): as of 2024-04-01 only the `icecast` recipe uses this
#COMPOSE_FILE="$COMPOSE_FILE:compose.web-alt.yml"
#WEB_ALT_ENABLED=1
## Matrix
#COMPOSE_FILE="$COMPOSE_FILE:compose.irc.yml"
#IRC_ENABLED=1
## Garage
#COMPOSE_FILE="$COMPOSE_FILE:compose.garage.yml"
#GARAGE_RPC_ENABLED=1

24
MAINTENANCE.md Normal file
View File

@ -0,0 +1,24 @@
# Traefik Recipe Maintenance
All contributions should be made via a pull request. This is to ensure a certain quality / 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
## Merge rules
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.
## Becoming a maintainer
Everyone can apply to be a recipe maintainer. Simply add your self to the list in the [README.md](./README.md) and open a new pull request with the change.

View File

@ -1,12 +1,14 @@
# Traefik
[![Build Status](https://drone.autonomic.zone/api/badges/coop-cloud/traefik/status.svg)](https://drone.autonomic.zone/coop-cloud/traefik)
[![Build Status](https://build.coopcloud.tech/api/badges/coop-cloud/traefik/status.svg)](https://build.coopcloud.tech/coop-cloud/traefik)
> https://docs.traefik.io
<!-- metadata -->
* **Maintainer**: [@p4u1](https://git.coopcloud.tech/p4u1)
* **Status**: `stable`
* **Category**: Utilities
* **Status**: ?
* **Features**: ?
* **Image**: [`traefik`](https://hub.docker.com/_/traefik), 4, upstream
* **Healthcheck**: Yes
* **Backups**: No
@ -23,6 +25,13 @@
your Docker swarm box
4. `abra app deploy YOURAPPDOMAIN`
## Configuring basic auth
1. Create the usersfile locally: `htpasswd -c usersfile <username>`
2. Uncomment the Basic Auth section in your .env file
3. Insert the secret: `abra app secret insert <domain> usersfile v1 -f usersfile
4. Redploy your app: `abra app deploy -f <domain>`
## Configuring wildcard SSL using DNS
Automatic certificate generation will Just Work™ for most recipes which use a fixed

View File

@ -1,3 +1,3 @@
export TRAEFIK_YML_VERSION=v21
export TRAEFIK_YML_VERSION=v26
export FILE_PROVIDER_YML_VERSION=v10
export ENTRYPOINT_VERSION=v4
export ENTRYPOINT_VERSION=v5

17
compose.azure.yml Normal file
View File

@ -0,0 +1,17 @@
version: "3.8"
services:
app:
environment:
- AZURE_TENANT_ID
- AZURE_CLIENT_ID
- AZURE_SUBSCRIPTION_ID
- AZURE_RESOURCE_GROUP
- AZURE_CLIENT_SECRET_FILE=/run/secrets/azure_secret
secrets:
- azure_secret
secrets:
azure_secret:
name: ${STACK_NAME}_azure_secret_${SECRET_AZURE_SECRET_VERSION}
external: true

7
compose.garage.yml Normal file
View File

@ -0,0 +1,7 @@
version: "3.8"
services:
app:
environment:
- GARAGE_RPC_ENABLED
ports:
- "3901:3901"

7
compose.irc.yml Normal file
View File

@ -0,0 +1,7 @@
version: "3.8"
services:
app:
environment:
- IRC_ENABLED
ports:
- "6697:6697"

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:v2.11.24"
image: "traefik:v3.6.2"
# 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
@ -27,6 +27,7 @@ services:
environment:
- DASHBOARD_ENABLED
- LOG_LEVEL
- ${LOG_MAX_AGE:-0}
healthcheck:
test: ["CMD", "traefik", "healthcheck"]
interval: 30s
@ -47,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.1.0+v2.11.24"
- "coop-cloud.${STACK_NAME}.version=3.7.0+v3.6.2"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
socket-proxy:
image: lscr.io/linuxserver/socket-proxy:1.26.2-r0-ls30
image: lscr.io/linuxserver/socket-proxy:3.2.8-r0-ls61
deploy:
endpoint_mode: dnsrr
environment:
@ -71,14 +72,14 @@ services:
- IMAGES=0
- INFO=0
- NETWORKS=1 # Needs access
- NODES=0
- PING=0
- NODES=1
- PING=1
- POST=0
- PLUGINS=0
- SECRETS=0
- SERVICES=1 # Needs access
- SESSION=0
- SWARM=0
- SWARM=1
- SYSTEM=0
- TASKS=1 # Needs access
- VERSION=1 # Needs access

View File

@ -11,4 +11,8 @@ export OVH_APPLICATION_SECRET=$(cat "$OVH_APPLICATION_SECRET_FILE")
export DO_AUTH_TOKEN=$(cat "$DO_AUTH_TOKEN_FILE")
{{ end }}
{{ if eq (env "AZURE_ENABLED") "1" }}
export AZURE_CLIENT_SECRET=$(cat "$AZURE_CLIENT_SECRET_FILE")
{{ end }}
/entrypoint.sh "$@"

1
release/3.3.0+v2.11.26 Normal file
View File

@ -0,0 +1 @@
Fix CVE: https://github.com/traefik/traefik/security/advisories/GHSA-vrch-868g-9jx5

1
release/3.4.0+v3.4.4 Normal file
View File

@ -0,0 +1 @@
Updates Traefik from v2 to v3. Migration notes here: https://doc.traefik.io/traefik/migration/v2-to-v3-details/#configuration-details-for-migrating-from-traefik-v2-to-v3 By default, syntax for Traefik rules in recipes still use v2 syntax. To upgrade a recipe to use v3 label syntax, set the ruleSyntax label in the recipe per: https://doc.traefik.io/traefik/reference/routing-configuration/http/router/rules-and-priority/#rulesyntax

1
release/3.4.2+v3.4.5 Normal file
View File

@ -0,0 +1 @@
Bumps the TRAEFIK_YML_VERSION

1
release/3.5.0+v3.4.5 Normal file
View File

@ -0,0 +1 @@
Add support to azure DNS-01 acme challenge

1
release/3.6.0+v3.4.5 Normal file
View File

@ -0,0 +1 @@
Expose log_max_age option. This option controls Traefik's maximum retention for log files in number of days. By default (when LOG_MAX_AGE=0), files are not removed based on age.

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,13 +1,16 @@
---
core:
defaultRuleSyntax: v2
log:
level: {{ env "LOG_LEVEL" }}
maxAge: {{ env "LOG_MAX_AGE" }}
providers:
docker:
swarm:
endpoint: "tcp://socket-proxy:2375"
exposedByDefault: false
network: proxy
swarmMode: true
{{ if eq (env "FILE_PROVIDER_DIRECTORY_ENABLED") "1" }}
file:
directory: /etc/traefik/file-providers
@ -34,6 +37,16 @@ entrypoints:
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"
{{ end }}
{{ if eq (env "FOODSOFT_SMTP_ENABLED") "1" }}
foodsoft-smtp:
address: ":2525"
@ -68,6 +81,10 @@ entrypoints:
compy:
address: ":9999"
{{ end }}
{{ if eq (env "IRC_ENABLED") "1" }}
irc:
address: ":6697"
{{ end }}
{{ if eq (env "METRICS_ENABLED") "1" }}
metrics:
address: ":8082"