Compare commits

..

35 Commits

Author SHA1 Message Date
08669fcd60 chore: publish 4.0.0+v3.6.10 release
Some checks failed
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is failing
2026-03-13 11:39:26 +01:00
bac3f30609 chore(deps): update ghcr.io/techarohq/anubis docker tag to v1.25.0 (#92)
Some checks failed
continuous-integration/drone/push Build is failing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/techarohq/anubis](https://images.chainguard.dev/directory/image/static/overview) ([source](https://github.com/chainguard-images/images/tree/HEAD/images/static)) | minor | `v1.24.0` -> `v1.25.0` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #92
Co-authored-by: Renovate Bot <renovate@coopcloud.tech>
Co-committed-by: Renovate Bot <renovate@coopcloud.tech>
2026-03-13 10:35:25 +00:00
1fb6925846 chore(deps): update traefik docker tag to v3.6.10 (#93)
Some checks failed
continuous-integration/drone/push Build is failing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [traefik](https://github.com/containous/traefik) | patch | `v3.6.8` -> `v3.6.10` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #93
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
Co-authored-by: Renovate Bot <renovate@coopcloud.tech>
Co-committed-by: Renovate Bot <renovate@coopcloud.tech>
2026-03-13 10:35:08 +00:00
d164d2870e Add support for porkbun (#91)
Some checks failed
continuous-integration/drone/push Build is failing
* [x] I have deployed and tested my changes
LetsEncrypt challenges pass successfully, wildcard cert retrieved
* [x] I have [updated relevant versions in `abra.sh`](https://docs.coopcloud.tech/maintainers/upgrade/#updating-versions-in-the-abrash)
No relevant versions to update
* [x] I have made my environment variable changes [backwards compatible](https://docs.coopcloud.tech/maintainers/upgrade/#backwards-compatible-environment-variable-changes)
Only added new env vars
* [ ] I have added a [release note entry](https://docs.coopcloud.tech/maintainers/upgrade/#creating-new-release-notes)
The guide does not say how to do this

This is my first coopcloud PR, lmk if there is something glaring :)

Co-authored-by: Patrick Melanson <patrick.j.melanson@gmail.com>
Reviewed-on: #91
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Co-authored-by: moosemower <moose@resisttechmonopolies.online>
Co-committed-by: moosemower <moose@resisttechmonopolies.online>
2026-02-17 08:56:08 +00:00
795592ea3c chore(deps): update traefik docker tag to v3.6.8 (#89)
Some checks failed
continuous-integration/drone/push Build is failing
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [traefik](https://github.com/containous/traefik) | patch | `v3.6.7` -> `v3.6.8` |

>  **Important**
>
> Release Notes retrieval for this PR were skipped because no github.com credentials were available.
> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #89
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
Co-authored-by: Renovate Bot <renovate@coopcloud.tech>
Co-committed-by: Renovate Bot <renovate@coopcloud.tech>
2026-02-15 18:21:05 +00:00
b67ed0ca88 compose: Switch to host-mode port publishing by default (#88)
Some checks failed
continuous-integration/drone/push Build is failing
By default, swarm services use ingress mode port publishing, which is
not ideal for traefik (it breaks IPv6 ingress and there is no need to
load-balance traffic between multiple traefik instances or to route it
from multiple swarm nodes)

This PR switches traefik's port publishing mode to `host` for all of
its exposed ports as well as:

 * change traefik's update order to stop-first (there cannot be multiple
   containers exposing the same port when using host-mode publishing)
 * use `endpoint_mode: dnsrr` instead of the default `vip`
 * remove all overrides from `compose.host.yml`, leaving the file empty
   for backwards compatibility

/!\ This is a breaking change

Closes: #52

* [x] I have deployed and tested my changes
* [x] I have added a [release note entry](https://docs.coopcloud.tech/maintainers/upgrade/#creating-new-release-notes)

Reviewed-on: #88
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
Co-authored-by: mirsal <mirsal@mirsal.fr>
Co-committed-by: mirsal <mirsal@mirsal.fr>
2026-02-15 18:19:19 +00:00
5f977f1cca chore: publish 3.10.0+v3.6.7 release
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2026-01-20 09:51:07 +01:00
ee344cce5d Merge pull request 'docs: next release notes' (#80) from feat-release-notes-next into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #80
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
2026-01-15 09:37:12 +00:00
27cc7efb72 Merge pull request 'chore(deps): update traefik docker tag to v3.6.7' (#83) from renovate/traefik-3.x into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #83
Reviewed-by: p4u1 <p4u1@noreply.git.coopcloud.tech>
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-15 09:35:16 +00:00
324933a9cc docs: next release notes
Some checks failed
continuous-integration/drone/pr Build is failing
2026-01-15 10:34:40 +01:00
dc3e50838f Merge pull request 'feat: Add onion service support' (#81) from add-onion-support into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #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
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-14 20:25:43 +00:00
c2cdfd80b6 chore(deps): update traefik docker tag to v3.6.7
Some checks failed
continuous-integration/drone/pr Build is failing
2026-01-14 19:25:37 +00:00
139202fa9c update README.md
Some checks failed
continuous-integration/drone/pr Build is failing
2026-01-14 13:19:50 -05:00
de7989f3ca use 9052 for onion port
Some checks failed
continuous-integration/drone/pr Build is failing
2026-01-13 12:13:12 -05:00
d3bf1bce24 fix whitespace removal
Some checks failed
continuous-integration/drone/pr Build is failing
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
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #79
Reviewed-by: decentral1se <decentral1se@noreply.git.coopcloud.tech>
2026-01-03 14:32:02 +00:00
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
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
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
25 changed files with 262 additions and 86 deletions

View File

@ -1,5 +1,5 @@
TYPE=traefik
TIMEOUT=300
#TIMEOUT=300
ENABLE_AUTO_UPDATE=true
ENABLE_BACKUPS=true
@ -19,8 +19,14 @@ COMPOSE_FILE="compose.yml"
# General settings #
#####################################################################
## Host-mode networking
#COMPOSE_FILE="$COMPOSE_FILE:compose.host.yml"
## Ingress-mode port publishing for ports 80 and 443
##
## /!\ Using this prevents the use of any compose override adding
## published ports to the traefik_app service (almost all of them)
## and it prevents the use of IPv6 for ingress traffic.
## Do not uncomment unless you know exactly what you are doing
##
#COMPOSE_FILE="$COMPOSE_FILE:compose.no-host.yml"
## "Headless mode" (no domain configured)
#COMPOSE_FILE="$COMPOSE_FILE:compose.headless.yml"
@ -30,8 +36,10 @@ COMPOSE_FILE="compose.yml"
#####################################################################
## Enable dns challenge (for wildcard domains)
## https://doc.traefik.io/traefik/https/acme/#dnschallenge
## https://go-acme.github.io/lego/dns/#dns-providers
#LETS_ENCRYPT_DNS_CHALLENGE_ENABLED=1
## *Currently* one of ovh, gandi, gandiv5, digitalocean, azure, porkbun.
## Uncomment the corresponding provider below to insert your secret token/key.
#LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER=ovh
## OVH, https://ovh.com
@ -70,6 +78,14 @@ COMPOSE_FILE="compose.yml"
#AZURE_RESOURCE_GROUP=
#SECRET_AZURE_SECRET_VERSION=v1
## Porkbun, https://porkbun.com
## To insert your secrets:
## abra app secret insert 1312.net pb_api_key v1 pk1_413
## abra app secret insert 1312.net pb_s_api_key v1 sk1_612
#COMPOSE_FILE="$COMPOSE_FILE:compose.porkbun.yml"
#SECRET_PORKBUN_API_KEY_VERSION=v1
#SECRET_PORKBUN_SECRET_API_KEY_VERSION=v1
#####################################################################
# Manual wildcard certificate insertion #
#####################################################################
@ -174,4 +190,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

@ -21,9 +21,12 @@ In order to fullfill these responsibilities a recipe maintainer:
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.
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. Simply add your self to the list
in the [README.md](./README.md) and open a new pull request with the change.
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,7 +5,7 @@
> https://docs.traefik.io
<!-- metadata -->
* **Maintainer**: [@p4u1](https://git.coopcloud.tech/p4u1), [@decentral1se](https://git.coopcloud.tech/decentral1se)
* **Maintainer**: [@p4u1](https://git.coopcloud.tech/p4u1), [@decentral1se](https://git.coopcloud.tech/decentral1se), [@javielico](https://git.coopcloud.tech/javielico)
* **Status**: `stable`
* **Category**: Utilities
* **Features**: ?
@ -42,17 +42,37 @@ subdomains, like
need to give Traefik access to your DNS provider so that it can carry out
Letsencrypt DNS challenges.
1. Use Gandi or OVH for DNS 🤡 (support for other providers can be easily added,
see [the `lego` docs](https://go-acme.github.io/lego/dns/#dns-providers).
1. Use Gandi, OVH, DO, Azure, or PorkBun for DNS 🤡 (support for other providers
can be easily added, see
[the `lego` docs](https://go-acme.github.io/lego/dns/#dns-providers).
2. Run `abra app config YOURAPPDOMAIN`
3. Uncomment e.g. `ENABLE_GANDI` and the related `SECRET_.._VERSION` line, e.g.
`SECRET_GANDIV5_API_KEY_VERSION`
4. Generate an API key for your provider
4. Set `LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER` to your provider, e.g. `gandi`
4. Generate an API key for your provider, probably using their web interface.
5. Run `abra app secret insert YOURAPPDOMAIN SECRETNAME v1 SECRETVALUE`, where
`SECRETNAME` is from the compose file (e.g. `compose.gandi-api-key.yml`) e.g.
`gandiv5_api_key` and `SECRETVALUE` is the API key.
- For Gandi, you can use either the deprecated API Key or a GandiV5 Personal
Access Token, in which case use compose.gandi-personal-access-token.yml.
- See comments for each provider in your env file for specific instructions
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.25.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

@ -4,4 +4,7 @@ services:
environment:
- COMPY_ENABLED
ports:
- "9999:9999"
- target: 9999
published: 9999
protocol: tcp
mode: host

View File

@ -4,4 +4,7 @@ services:
environment:
- FOODSOFT_SMTP_ENABLED
ports:
- "2525:2525"
- target: 2525
published: 2525
protocol: tcp
mode: host

View File

@ -4,4 +4,7 @@ services:
environment:
- GITEA_SSH_ENABLED
ports:
- "2222:2222"
- target: 2222
published: 2222
protocol: tcp
mode: host

View File

@ -1,15 +1,2 @@
---
version: "3.8"
services:
app:
deploy:
update_config:
order: stop-first
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host

View File

@ -4,4 +4,7 @@ services:
environment:
- IRC_ENABLED
ports:
- "6697:6697"
- target: 6697
published: 6697
protocol: tcp
mode: host

View File

@ -4,4 +4,7 @@ services:
environment:
- MATRIX_FEDERATION_ENABLED
ports:
- "8448:8448"
- target: 8448
published: 8448
protocol: tcp
mode: host

View File

@ -6,4 +6,7 @@ services:
environment:
- MINIO_CONSOLE_ENABLED
ports:
- "9001:9001"
- target: 9001
published: 9001
protocol: tcp
mode: host

View File

@ -4,6 +4,11 @@ services:
environment:
- MUMBLE_ENABLED
ports:
- "64738:64738/udp"
# note (3wc): see https://github.com/docker/compose/issues/7627
- "64737-64739:64737-64739/tcp"
- target: 64738
published: 64738
protocol: udp
mode: host
- target: 64738
published: 64738
protocol: tcp
mode: host

View File

@ -4,5 +4,11 @@ services:
environment:
- NEXTCLOUD_TALK_HPB_ENABLED
ports:
- "3478:3478/udp"
- "3478:3478/tcp"
- target: 3478
published: 3478
protocol: udp
mode: host
- target: 3478
published: 3478
protocol: tcp
mode: host

16
compose.no-host.yml Normal file
View File

@ -0,0 +1,16 @@
---
version: "3.8"
services:
app:
ports:
- target: 80
published: 80
protocol: tcp
mode: ingress
- target: 443
published: 443
protocol: tcp
mode: ingress
deploy:
endpoint_mode: vip

View File

@ -4,4 +4,7 @@ services:
environment:
- PEERTUBE_RTMP_ENABLED
ports:
- "1935:1935"
- target: 1935
published: 1935
protocol: tcp
mode: host

18
compose.porkbun.yml Normal file
View File

@ -0,0 +1,18 @@
version: "3.8"
services:
app:
environment:
- PORKBUN_API_KEY_FILE=/run/secrets/pb_api_key
- PORKBUN_SECRET_API_KEY_FILE=/run/secrets/pb_s_api_key
secrets:
- pb_api_key
- pb_s_api_key
secrets:
pb_api_key:
name: ${STACK_NAME}_pb_api_key_${SECRET_PORKBUN_API_KEY_VERSION}
external: true
pb_s_api_key:
name: ${STACK_NAME}_pb_s_api_key_${SECRET_PORKBUN_SECRET_API_KEY_VERSION}
external: true

View File

@ -6,4 +6,7 @@ services:
environment:
- SMTP_ENABLED
ports:
- "587:587"
- target: 587
published: 587
protocol: tcp
mode: host

View File

@ -4,4 +4,7 @@ services:
environment:
- SSB_MUXRPC_ENABLED
ports:
- "8008:8008"
- target: 8008
published: 8008
protocol: tcp
mode: host

View File

@ -4,4 +4,7 @@ services:
environment:
- WEB_ALT_ENABLED
ports:
- "8000:8000"
- target: 8000
published: 8000
protocol: tcp
mode: host

View File

@ -3,13 +3,19 @@ version: "3.8"
services:
app:
image: "traefik:v3.6.5"
image: "traefik:v3.6.10"
# 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
ports:
- "80:80"
- "443:443"
- target: 80
published: 80
protocol: tcp
mode: host
- target: 443
published: 443
protocol: tcp
mode: host
volumes:
- "letsencrypt:/etc/letsencrypt"
- "file-providers:/etc/traefik/file-providers"
@ -37,9 +43,10 @@ services:
command: traefik
entrypoint: /custom-entrypoint.sh
deploy:
endpoint_mode: dnsrr
update_config:
failure_action: rollback
order: start-first
order: stop-first
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=web"
@ -48,8 +55,8 @@ 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.9.0+v3.6.5"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "coop-cloud.${STACK_NAME}.version=4.0.0+v3.6.10"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
socket-proxy:

10
release/3.10.0+v3.6.7 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

11
release/4.0.0+v3.6.10 Normal file
View File

@ -0,0 +1,11 @@
Short summary of the latest changes:
* Exposed ports have been switched to host-mode port publishing by default
This adds support for IPv6 ingress, which means that after deploying this
change, DNS AAAA records can be made to point to the relevant IPv6
address and Traefik will handle public IPv6 ingress traffic (including ACME
HTTP-01 challenges)
/!\ This is a breaking change. It is still possible to revert ports 80 and
443 to ingress-mode (the previous default) but keep in mind that there
is no longer an easy way to publish additional ports in ingress mode.

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 }}