Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0c0bf35d7
|
||
|
|
c4f9421f72 | ||
|
|
76ab12c797 | ||
|
|
14f0d953a4 | ||
|
|
7c8a44bd26 | ||
|
|
063e6b4a5a | ||
|
|
796434a9fe
|
||
|
|
5fc35796ea | ||
|
|
d48982ae9c | ||
|
|
1a18a99b8f |
+10
@@ -159,6 +159,10 @@ WRITE_TIMEOUT=0s
|
|||||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
|
#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
|
||||||
#SMTP_ENABLED=1
|
#SMTP_ENABLED=1
|
||||||
|
|
||||||
|
## PGSQL recipe open port 5432
|
||||||
|
#COMPOSE_FILE="$COMPOSE_FILE:compose.pgsql.yml"
|
||||||
|
#PGSQL_ENABLED=1
|
||||||
|
|
||||||
## Compy
|
## Compy
|
||||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.compy.yml"
|
#COMPOSE_FILE="$COMPOSE_FILE:compose.compy.yml"
|
||||||
#COMPY_ENABLED=1
|
#COMPY_ENABLED=1
|
||||||
@@ -223,5 +227,11 @@ WRITE_TIMEOUT=0s
|
|||||||
#ANUBIS_SERVE_ROBOTS_TXT=true
|
#ANUBIS_SERVE_ROBOTS_TXT=true
|
||||||
#ANUBIS_SLOG_LEVEL=INFO
|
#ANUBIS_SLOG_LEVEL=INFO
|
||||||
|
|
||||||
|
## Anubis metrics
|
||||||
|
#COMPOSE_FILE="$COMPOSE_FILE:compose.anubis-metrics.yml"
|
||||||
|
|
||||||
## Enable onion service support
|
## Enable onion service support
|
||||||
#ONION_ENABLED=1
|
#ONION_ENABLED=1
|
||||||
|
|
||||||
|
## Access logs
|
||||||
|
#COMPOSE_FILE="$COMPOSE_FILE:compose.access-log.yml"
|
||||||
|
|||||||
+71
-5
@@ -3,6 +3,19 @@
|
|||||||
All contributions should be made via a pull request. This is to ensure a
|
All contributions should be made via a pull request. This is to ensure a
|
||||||
certain quality and consistency, that others can rely on.
|
certain quality and consistency, that others can rely on.
|
||||||
|
|
||||||
|
## Roles
|
||||||
|
|
||||||
|
We differentiate between two roles:
|
||||||
|
|
||||||
|
- **Maintainers** take responsibility for the recipe. They are listed in the
|
||||||
|
[README.md](./README.md), are members of the
|
||||||
|
[traefik maintainers team](https://git.coopcloud.tech/org/coop-cloud/teams/traefik-maintainers)
|
||||||
|
and fulfil the responsibilities described below.
|
||||||
|
- **Contributors with merge access** Trusted people can open pull requests and merge them
|
||||||
|
themselves in the cases described in [Pull Requests](#pull-requests).
|
||||||
|
|
||||||
|
Being allowed to merge a pull request does not make somebody a maintainer.
|
||||||
|
|
||||||
## Maintainer Responsibilities
|
## Maintainer Responsibilities
|
||||||
|
|
||||||
A recipe maintainer has the following responsibilities:
|
A recipe maintainer has the following responsibilities:
|
||||||
@@ -11,21 +24,74 @@ A recipe maintainer has the following responsibilities:
|
|||||||
- Make image security updates within a week
|
- Make image security updates within a week
|
||||||
- Make image major updates every three months
|
- Make image major updates every three months
|
||||||
|
|
||||||
In order to fullfill these responsibilities a recipe maintainer:
|
In order to fulfill these responsibilities a recipe maintainer:
|
||||||
|
|
||||||
- Has to watch the repository (to get notifications)
|
- Has to watch the repository (to get notifications)
|
||||||
- Needs to make sure renovate is configured properly
|
- Needs to make sure renovate is configured properly
|
||||||
|
|
||||||
## Pull Requests
|
## Pull Requests
|
||||||
|
|
||||||
A pull request can be merged if it is approved by at least one maintainer. For
|
As a rule, a pull request can be merged once it has been approved by at least
|
||||||
pull requests opened by a maintainer they need to be approved by another
|
one maintainer other than its author. The exceptions below exist so that
|
||||||
maintainer. Even though it is okay to merge a pull request with one approval, it
|
security fixes and routine updates don't get stuck waiting for a review.
|
||||||
is always better if all maintainers looked at the pull request and approved it.
|
|
||||||
|
| Type of change | Approval needed |
|
||||||
|
| --- | --- |
|
||||||
|
| Security fix | No, can be merged immediately |
|
||||||
|
| Regular update | No, after a review window of about one week |
|
||||||
|
| Feature, extension or change of the default configuration | Yes, always |
|
||||||
|
| Small change that can't break the recipe | No |
|
||||||
|
|
||||||
|
### Security fixes
|
||||||
|
|
||||||
|
If a pull request contains a relevant security fix, the person who opened it is
|
||||||
|
allowed to merge it directly, without approval and without waiting.
|
||||||
|
|
||||||
|
The same applies to a pull request that fixes an update which contains a
|
||||||
|
security fix: if a version bump can't be merged as it is, because the new
|
||||||
|
version needs changes to the configuration, then the pull request that
|
||||||
|
makes that update work can be merged directly as well. Otherwise a broken
|
||||||
|
update would block a security fix.
|
||||||
|
|
||||||
|
Keep these pull requests as small as possible, so they contain nothing but what
|
||||||
|
is needed to get the fix out.
|
||||||
|
|
||||||
|
### Regular updates
|
||||||
|
|
||||||
|
If a pull request rolls out a regular update, there is a time window of about
|
||||||
|
one week for other maintainers to review it and to request changes. If no other
|
||||||
|
maintainer is available within this time window, the person who opened it is
|
||||||
|
allowed to merge it without approval.
|
||||||
|
|
||||||
|
### Features, extensions and default configuration
|
||||||
|
|
||||||
|
Any pull request that adds a feature or an extension, or changes the default
|
||||||
|
configuration, needs an approval, no matter who opened it. These are the
|
||||||
|
changes most likely to break existing deployments.
|
||||||
|
|
||||||
|
### Small changes
|
||||||
|
|
||||||
|
Small changes that definitely won't break the recipe can be merged without
|
||||||
|
approval, for example:
|
||||||
|
|
||||||
|
- a new environment variable that is commented out by default
|
||||||
|
- a new `abra.sh` function
|
||||||
|
- changes to the [README.md](./README.md)
|
||||||
|
- writing new tests
|
||||||
|
- configuring renovate
|
||||||
|
|
||||||
|
If a pull request falls into more than one of these categories, the stricter
|
||||||
|
rule applies. If you are unsure which category a pull request belongs to, ask
|
||||||
|
for an approval.
|
||||||
|
|
||||||
|
Even though it is okay to merge a pull request with a single approval, it is
|
||||||
|
always better if all maintainers looked at the pull request and approved it.
|
||||||
|
|
||||||
## Become a maintainer
|
## Become a maintainer
|
||||||
|
|
||||||
Everyone can apply to be a recipe maintainer:
|
Everyone can apply to be a recipe maintainer:
|
||||||
|
|
||||||
1. Watch the repository to always get updates
|
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.
|
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).
|
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](https://matrix.to/#/%23cc-%7C-traefik-maintenance:matrix.org) and chat to other maintainers.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
> https://docs.traefik.io
|
> https://docs.traefik.io
|
||||||
|
|
||||||
<!-- metadata -->
|
<!-- metadata -->
|
||||||
* **Maintainer**: [@p4u1](https://git.coopcloud.tech/p4u1), [@decentral1se](https://git.coopcloud.tech/decentral1se), [@javielico](https://git.coopcloud.tech/javielico), Local-IT: [@moritz](https://git.coopcloud.tech/moritz), [@msimon](https://git.coopcloud.tech/simon), [@carla](https://git.coopcloud.tech/carla)
|
* **Maintainer**: [@p4u1](https://git.coopcloud.tech/p4u1), [@javielico](https://git.coopcloud.tech/javielico), Local-IT: [@moritz](https://git.coopcloud.tech/moritz), [@msimon](https://git.coopcloud.tech/simon), [@carla](https://git.coopcloud.tech/carla)
|
||||||
* **Status**: `stable`
|
* **Status**: `stable`
|
||||||
* **Category**: Utilities
|
* **Category**: Utilities
|
||||||
* **Features**: ?
|
* **Features**: ?
|
||||||
@@ -72,8 +72,27 @@ After deploying these changes, go to each recipe that supports Anubis
|
|||||||
and follow the process there. **Enabling Anubis here is not enough for
|
and follow the process there. **Enabling Anubis here is not enough for
|
||||||
protection your apps.**
|
protection your apps.**
|
||||||
|
|
||||||
|
If you want to collect Prometheus metrics for Anubis, for instance with
|
||||||
|
[monitoring-ng](/monitoring-ng), uncomment the "Anubis metrics" section.
|
||||||
|
|
||||||
## Enabling onion service
|
## 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).
|
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
|
[`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
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
export TRAEFIK_YML_VERSION=v32
|
export TRAEFIK_YML_VERSION=v33
|
||||||
export FILE_PROVIDER_YML_VERSION=v12
|
export FILE_PROVIDER_YML_VERSION=v12
|
||||||
export ENTRYPOINT_VERSION=v5
|
export ENTRYPOINT_VERSION=v5
|
||||||
|
export ANUBIS_YML_VERSION=v1
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
bots:
|
||||||
|
- import: (data)/meta/default-config.yaml
|
||||||
|
{{ if eq (env "ANUBIS_METRICS_ENABLED") "true" }}
|
||||||
|
metrics:
|
||||||
|
bind: ":9090"
|
||||||
|
network: "tcp"
|
||||||
|
{{ end }}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
environment:
|
||||||
|
ACCESS_LOG_ENABLED: "true"
|
||||||
|
volumes:
|
||||||
|
- "access-logs:/var/log/"
|
||||||
|
volumes:
|
||||||
|
access-logs:
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
anubis:
|
||||||
|
environment:
|
||||||
|
ANUBIS_METRICS_ENABLED: "true"
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
- "prometheus.io/scrape=true"
|
||||||
|
- "prometheus.io/port=9090"
|
||||||
|
- "prometheus.io/path=/metrics"
|
||||||
+10
-1
@@ -7,7 +7,7 @@ services:
|
|||||||
- "traefik.http.middlewares.anubis.forwardauth.address=http://anubis:8080/.within.website/x/cmd/anubis/api/check"
|
- "traefik.http.middlewares.anubis.forwardauth.address=http://anubis:8080/.within.website/x/cmd/anubis/api/check"
|
||||||
- "traefik.http.middlewares.anubis.forwardauth.trustForwardHeader=true"
|
- "traefik.http.middlewares.anubis.forwardauth.trustForwardHeader=true"
|
||||||
anubis:
|
anubis:
|
||||||
image: "ghcr.io/techarohq/anubis:v1.26.2"
|
image: "ghcr.io/techarohq/anubis:v1.27.0"
|
||||||
environment:
|
environment:
|
||||||
BIND: ":8080"
|
BIND: ":8080"
|
||||||
TARGET: " "
|
TARGET: " "
|
||||||
@@ -19,6 +19,10 @@ services:
|
|||||||
OG_CACHE_CONSIDER_HOST: "${ANUBIS_OG_CACHE_CONSIDER_HOST}"
|
OG_CACHE_CONSIDER_HOST: "${ANUBIS_OG_CACHE_CONSIDER_HOST}"
|
||||||
SERVE_ROBOTS_TXT: "${ANUBIS_SERVE_ROBOTS_TXT}"
|
SERVE_ROBOTS_TXT: "${ANUBIS_SERVE_ROBOTS_TXT}"
|
||||||
SLOG_LEVEL: "${ANUBIS_SLOG_LEVEL:-INFO}"
|
SLOG_LEVEL: "${ANUBIS_SLOG_LEVEL:-INFO}"
|
||||||
|
POLICY_FNAME: "/data/cfg/botPolicy.yaml"
|
||||||
|
configs:
|
||||||
|
- source: anubis_yml
|
||||||
|
target: /data/cfg/botPolicy.yaml
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
deploy:
|
deploy:
|
||||||
@@ -29,3 +33,8 @@ services:
|
|||||||
- "traefik.http.routers.anubis.entrypoints=web-secure"
|
- "traefik.http.routers.anubis.entrypoints=web-secure"
|
||||||
- "traefik.http.services.anubis.loadbalancer.server.port=8080"
|
- "traefik.http.services.anubis.loadbalancer.server.port=8080"
|
||||||
- "traefik.http.routers.anubis.service=anubis"
|
- "traefik.http.routers.anubis.service=anubis"
|
||||||
|
configs:
|
||||||
|
anubis_yml:
|
||||||
|
name: ${STACK_NAME}_anubis_yml_${ANUBIS_YML_VERSION}
|
||||||
|
file: anubis.yml.tmpl
|
||||||
|
template_driver: golang
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
environment:
|
||||||
|
- PGSQL_ENABLED
|
||||||
|
ports:
|
||||||
|
- target: 5432
|
||||||
|
published: 5432
|
||||||
|
protocol: tcp
|
||||||
|
mode: host
|
||||||
+3
-3
@@ -3,7 +3,7 @@ version: "3.8"
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
image: "traefik:v3.7.9"
|
image: "traefik:v3.7.10"
|
||||||
# Note(decentral1se): *please do not* add any additional ports here.
|
# Note(decentral1se): *please do not* add any additional ports here.
|
||||||
# Doing so could break new installs with port conflicts. Please use
|
# Doing so could break new installs with port conflicts. Please use
|
||||||
# the usual `compose.$app.yml` approach for any additional ports
|
# the usual `compose.$app.yml` approach for any additional ports
|
||||||
@@ -57,12 +57,12 @@ services:
|
|||||||
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
||||||
- "traefik.http.routers.${STACK_NAME}.service=api@internal"
|
- "traefik.http.routers.${STACK_NAME}.service=api@internal"
|
||||||
- "traefik.http.routers.${STACK_NAME}.middlewares=security@file"
|
- "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}"
|
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
|
||||||
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
|
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
|
||||||
|
|
||||||
socket-proxy:
|
socket-proxy:
|
||||||
image: lscr.io/linuxserver/socket-proxy:3.4.2
|
image: lscr.io/linuxserver/socket-proxy:3.4.3
|
||||||
deploy:
|
deploy:
|
||||||
endpoint_mode: dnsrr
|
endpoint_mode: dnsrr
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -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.
|
||||||
@@ -6,6 +6,21 @@ log:
|
|||||||
level: {{ env "LOG_LEVEL" }}
|
level: {{ env "LOG_LEVEL" }}
|
||||||
maxAge: {{ env "LOG_MAX_AGE" }}
|
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:
|
providers:
|
||||||
swarm:
|
swarm:
|
||||||
endpoint: "tcp://socket-proxy:2375"
|
endpoint: "tcp://socket-proxy:2375"
|
||||||
|
|||||||
Reference in New Issue
Block a user