Compare commits

...

12 Commits

10 changed files with 124 additions and 29 deletions

View File

@ -25,7 +25,7 @@ kind: pipeline
name: recipe release
steps:
- name: release a new version
image: decentral1se/drone-abra:latest
image: thecoopcloud/drone-abra:latest
settings:
command: recipe traefik release
deploy_key:

View File

@ -8,46 +8,79 @@ LETS_ENCRYPT_EMAIL=certs@example.com
# WARN, INFO etc.
LOG_LEVEL=WARN
# This is here so later lines can extend the definition; you likely don't wanna
# edit
COMPOSE_FILE="compose.yml"
#####################################################################
# General settings #
#####################################################################
## Host-mode networking
#COMPOSE_FILE="$COMPOSE_FILE:compose.host.yml"
## "Headless mode" (no domain configured)
#COMPOSE_FILE="$COMPOSE_FILE:compose.headless.yml"
#####################################################################
# Automatic DNS set-up for Letsencrypt #
#####################################################################
## Enable dns challenge (for wildcard domains)
## https://doc.traefik.io/traefik/https/acme/#dnschallenge
#LETS_ENCRYPT_DNS_CHALLENGE_ENABLED=1
#LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER=ovh
## OVH configuration
# COMPOSE_FILE="compose.yml:compose.ovh.yml"
## OVH, https://ovh.com
#COMPOSE_FILE="$COMPOSE_FILE:compose.ovh.yml"
#OVH_ENABLED=1
#OVH_APPLICATION_KEY=
#OVH_ENDPOINT=
#SECRET_OVH_APP_SECRET_VERSION=v1
#SECRET_OVH_CONSUMER_KEY=v1
## Gandi, https://gandi.net
## note(3wc): only "V5" (new) API is supported, so far
#COMPOSE_FILE="$COMPOSE_FILE:compose.gandi.yml"
#GANDI_ENABLED=1
#SECRET_GANDIV5_API_KEY_VERSION=v1
#####################################################################
# Keycloak log-in #
#####################################################################
## Enable Keycloak
#COMPOSE_FILE="compose.yml:compose.keycloak.yml"
#COMPOSE_FILE="$COMPOSE_FILE:compose.keycloak.yml"
#KEYCLOAK_MIDDLEWARE_ENABLED=1
#####################################################################
# Additional services #
#####################################################################
## SMTP port 587
#COMPOSE_FILE="compose.yml:compose.smtp.yml"
#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
#SMTP_ENABLED=1
## Gitea SSH
# COMPOSE_FILE="compose.yml:compose.gitea.yml"
# COMPOSE_FILE="$COMPOSE_FILE:compose.gitea.yml"
# GITEA_SSH_ENABLED=1
## Foodsoft SMTP
# COMPOSE_FILE="compose.yml:compose.foodsoft.yml"
# COMPOSE_FILE="$COMPOSE_FILE:compose.foodsoft.yml"
# FOODSOFT_SMTP_ENABLED=1
## Peertube RTMP
# COMPOSE_FILE="compose.yml:compose.peertube.yml"
#COMPOSE_FILE="$COMPOSE_FILE:compose.peertube.yml"
#PEERTUBE_RTMP_ENABLED=1
## Secure Scuttlebutt MUXRPC
# COMPOSE_FILE="compose.yml:compose.ssb.yml"
#COMPOSE_FILE="$COMPOSE_FILE:compose.ssb.yml"
#SSB_MUXRPC_ENABLED=1
## MSSQL
# COMPOSE_FILE="compose.yml:compose.mssql.yml"
#COMPOSE_FILE="$COMPOSE_FILE:compose.mssql.yml"
#MSSQL_ENABLED=1
## Host-mode networking
#COMPOSE_FILE="compose.yml:compose.host.yml"
## Mumble
#COMPOSE_FILE="$COMPOSE_FILE:compose.mumble.yml"
#MUMBLE_ENABLED=1

View File

@ -1,3 +1,3 @@
export TRAEFIK_YML_VERSION=v9
export TRAEFIK_YML_VERSION=v11
export FILE_PROVIDER_YML_VERSION=v2
export ENTRYPOINT_VERSION=v1
export ENTRYPOINT_VERSION=v2

15
compose.gandi.yml Normal file
View File

@ -0,0 +1,15 @@
version: "3.8"
services:
app:
environment:
- GANDIV5_API_KEY_FILE=/run/secrets/gandiv5_api_key
- LETS_ENCRYPT_DNS_CHALLENGE_ENABLED
- LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER
secrets:
- gandiv5_api_key
secrets:
gandiv5_api_key:
name: ${STACK_NAME}_gandiv5_api_key_${SECRET_GANDIV5_API_KEY_VERSION}
external: true

15
compose.headless.yml Normal file
View File

@ -0,0 +1,15 @@
---
version: "3.8"
services:
app:
deploy:
update_config:
failure_action: rollback
order: start-first
labels:
- "traefik.enable=true"
- "traefik.http.services.traefik.loadbalancer.server.port=web"
- "traefik.http.routers.traefik.entrypoints=web-secure"
- "traefik.http.routers.traefik.service=api@internal"
- "coop-cloud.${STACK_NAME}.app.version=v2.4.9-be23e1f6"

View File

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

9
compose.mumble.yml Normal file
View File

@ -0,0 +1,9 @@
version: "3.8"
services:
app:
environment:
- MUMBLE_ENABLED
ports:
- "64738:64738/udp"
# note (3wc): see https://github.com/docker/compose/issues/7627
- "64737-64739:64737-64739/tcp"

View File

@ -1,7 +1,7 @@
version: "3.8"
services:
app:
image: "traefik:v2.4.8"
image: "traefik:v2.4.11"
# 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
@ -45,7 +45,7 @@ services:
- "traefik.http.routers.traefik.tls.options=default@file"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=security@file"
- coop-cloud.${STACK_NAME}.app.version=v2.4.8-d7d63b0d
- "coop-cloud.${STACK_NAME}.app.version=v2.4.9-be23e1f6"
networks:
proxy:
external: true

View File

@ -7,4 +7,8 @@ export OVH_CONSUMER_KEY=$(cat "$OVH_CONSUMER_KEY_FILE")
export OVH_APPLICATION_SECRET=$(cat "$OVH_APPLICATION_SECRET_FILE")
{{ end }}
{{ if eq (env "GANDI_ENABLED") "1" }}
export GANDIV5_API_KEY=$(cat "$GANDIV5_API_KEY_FILE")
{{ end }}
/entrypoint.sh "$@"

View File

@ -48,6 +48,12 @@ entrypoints:
mssql:
address: ":1433"
{{ end }}
{{ if eq (env "MUMBLE_ENABLED") "1" }}
mumble:
address: ":64738"
mumble-udp:
address: ":64738/udp"
{{ end }}
ping:
entryPoint: web
@ -60,6 +66,13 @@ certificatesResolvers:
caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
httpChallenge:
entryPoint: web
{{ 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 }}
production:
acme:
email: {{ env "LETS_ENCRYPT_EMAIL" }}
@ -69,4 +82,7 @@ certificatesResolvers:
{{ 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 }}