forked from coop-cloud/traefik
Compare commits
1 Commits
v2.4.8_1
...
self-signe
Author | SHA1 | Date | |
---|---|---|---|
752d84e337 |
15
.drone.yml
15
.drone.yml
@ -14,19 +14,8 @@ steps:
|
|||||||
STACK_NAME: traefik
|
STACK_NAME: traefik
|
||||||
LETS_ENCRYPT_ENV: production
|
LETS_ENCRYPT_ENV: production
|
||||||
LETS_ENCRYPT_EMAIL: helo@autonomic.zone
|
LETS_ENCRYPT_EMAIL: helo@autonomic.zone
|
||||||
TRAEFIK_YML_VERSION: v4
|
TRAEFIK_YML_VERSION: v3
|
||||||
FILE_PROVIDER_YML_VERSION: v3
|
FILE_PROVIDER_YML_VERSION: v2
|
||||||
ENTRYPOINT_VERSION: v1
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: recipe release
|
|
||||||
steps:
|
|
||||||
- name: release a new version
|
|
||||||
image: decentral1se/drone-abra:latest
|
|
||||||
settings:
|
|
||||||
command: recipe traefik release
|
|
||||||
deploy_key:
|
|
||||||
from_secret: abra_bot_deploy_key
|
|
||||||
|
28
.env.sample
28
.env.sample
@ -3,24 +3,12 @@ TYPE=traefik
|
|||||||
DOMAIN=traefik.example.com
|
DOMAIN=traefik.example.com
|
||||||
LETS_ENCRYPT_ENV=production
|
LETS_ENCRYPT_ENV=production
|
||||||
|
|
||||||
|
LETS_ENCRYPT_DISABLED=0
|
||||||
LETS_ENCRYPT_EMAIL=certs@example.com
|
LETS_ENCRYPT_EMAIL=certs@example.com
|
||||||
# DASHBOARD_ENABLED=true
|
# DASHBOARD_ENABLED=true
|
||||||
# WARN, INFO etc.
|
# WARN, INFO etc.
|
||||||
LOG_LEVEL=WARN
|
LOG_LEVEL=WARN
|
||||||
|
|
||||||
## 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_ENABLED=1
|
|
||||||
# OVH_APPLICATION_KEY=
|
|
||||||
# OVH_ENDPOINT=
|
|
||||||
# SECRET_OVH_APP_SECRET_VERSION=v1
|
|
||||||
# SECRET_OVH_CONSUMER_KEY=v1
|
|
||||||
|
|
||||||
## Enable Keycloak
|
## Enable Keycloak
|
||||||
#COMPOSE_FILE="compose.yml:compose.keycloak.yml"
|
#COMPOSE_FILE="compose.yml:compose.keycloak.yml"
|
||||||
#KEYCLOAK_MIDDLEWARE_ENABLED=1
|
#KEYCLOAK_MIDDLEWARE_ENABLED=1
|
||||||
@ -30,24 +18,10 @@ LOG_LEVEL=WARN
|
|||||||
#SMTP_ENABLED=1
|
#SMTP_ENABLED=1
|
||||||
|
|
||||||
## Gitea SSH
|
## Gitea SSH
|
||||||
# COMPOSE_FILE="compose.yml:compose.gitea.yml"
|
|
||||||
# GITEA_SSH_ENABLED=1
|
# GITEA_SSH_ENABLED=1
|
||||||
|
|
||||||
## Foodsoft SMTP
|
## Foodsoft SMTP
|
||||||
# COMPOSE_FILE="compose.yml:compose.foodsoft.yml"
|
|
||||||
# FOODSOFT_SMTP_ENABLED=1
|
# FOODSOFT_SMTP_ENABLED=1
|
||||||
|
|
||||||
## Peertube RTMP
|
|
||||||
# COMPOSE_FILE="compose.yml:compose.peertube.yml"
|
|
||||||
# PEERTUBE_RTMP_ENABLED=1
|
|
||||||
|
|
||||||
## Secure Scuttlebutt MUXRPC
|
|
||||||
# COMPOSE_FILE="compose.yml:compose.ssb.yml"
|
|
||||||
# SSB_MUXRPC_ENABLED=1
|
|
||||||
|
|
||||||
## MSSQL
|
|
||||||
# COMPOSE_FILE="compose.yml:compose.mssql.yml"
|
|
||||||
# MSSQL_ENABLED=1
|
|
||||||
|
|
||||||
## Host-mode networking
|
## Host-mode networking
|
||||||
#COMPOSE_FILE="compose.yml:compose.host.yml"
|
#COMPOSE_FILE="compose.yml:compose.host.yml"
|
||||||
|
5
abra.sh
5
abra.sh
@ -1,3 +1,2 @@
|
|||||||
export TRAEFIK_YML_VERSION=v9
|
export TRAEFIK_YML_VERSION=v7
|
||||||
export FILE_PROVIDER_YML_VERSION=v2
|
export FILE_PROVIDER_YML_VERSION=v1
|
||||||
export ENTRYPOINT_VERSION=v1
|
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
environment:
|
|
||||||
- FOODSOFT_SMTP_ENABLED
|
|
||||||
ports:
|
|
||||||
- "2525:2525"
|
|
@ -1,7 +0,0 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
environment:
|
|
||||||
- GITEA_SSH_ENABLED
|
|
||||||
ports:
|
|
||||||
- "2222:2222"
|
|
@ -1,7 +0,0 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
environment:
|
|
||||||
- MSSQL_ENABLED
|
|
||||||
ports:
|
|
||||||
- "1433:1433"
|
|
@ -1,21 +0,0 @@
|
|||||||
version: "3.8"
|
|
||||||
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
environment:
|
|
||||||
- OVH_APPLICATION_KEY
|
|
||||||
- OVH_APPLICATION_SECRET_FILE=/run/secrets/ovh_app_secret
|
|
||||||
- OVH_CONSUMER_KEY_FILE=/run/secrets/ovh_consumer_key
|
|
||||||
- OVH_ENABLED
|
|
||||||
- OVH_ENDPOINT
|
|
||||||
secrets:
|
|
||||||
- ovh_app_secret
|
|
||||||
- ovh_consumer_key
|
|
||||||
|
|
||||||
secrets:
|
|
||||||
ovh_app_secret:
|
|
||||||
name: ${STACK_NAME}_ovh_app_secret_${SECRET_OVH_APP_SECRET_VERSION}
|
|
||||||
external: true
|
|
||||||
ovh_consumer_key:
|
|
||||||
name: ${STACK_NAME}_ovh_consumer_key_${SECRET_OVH_CONSUMER_KEY}
|
|
||||||
external: true
|
|
@ -1,7 +0,0 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
environment:
|
|
||||||
- PEERTUBE_RTMP_ENABLED
|
|
||||||
ports:
|
|
||||||
- "1935:1935"
|
|
@ -3,7 +3,5 @@ version: "3.8"
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
environment:
|
|
||||||
- SMTP_ENABLED
|
|
||||||
ports:
|
ports:
|
||||||
- "587:587"
|
- "587:587"
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
environment:
|
|
||||||
- SSB_MUXRPC_ENABLED
|
|
||||||
ports:
|
|
||||||
- "8008:8008"
|
|
26
compose.yml
26
compose.yml
@ -2,12 +2,11 @@ version: "3.8"
|
|||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
image: "traefik:v2.4.8"
|
image: "traefik:v2.4.8"
|
||||||
# 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:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
|
- "2222:2222"
|
||||||
|
- "2525:2525"
|
||||||
volumes:
|
volumes:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
- "letsencrypt:/etc/letsencrypt"
|
- "letsencrypt:/etc/letsencrypt"
|
||||||
@ -16,22 +15,22 @@ services:
|
|||||||
target: /etc/traefik/traefik.yml
|
target: /etc/traefik/traefik.yml
|
||||||
- source: file_provider_yml
|
- source: file_provider_yml
|
||||||
target: /etc/traefik/file-provider.yml
|
target: /etc/traefik/file-provider.yml
|
||||||
- source: entrypoint
|
|
||||||
target: /custom-entrypoint.sh
|
|
||||||
mode: 0555
|
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
environment:
|
environment:
|
||||||
- DASHBOARD_ENABLED
|
- DASHBOARD_ENABLED
|
||||||
|
- LETS_ENCRYPT_DISABLED
|
||||||
|
- LETS_ENCRYPT_EMAIL
|
||||||
|
- FOODSOFT_SMTP_ENABLED
|
||||||
|
- GITEA_SSH_ENABLED
|
||||||
- LOG_LEVEL
|
- LOG_LEVEL
|
||||||
|
- SMTP_ENABLED
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "traefik", "healthcheck"]
|
test: ["CMD", "traefik", "healthcheck"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 10
|
retries: 10
|
||||||
start_period: 1m
|
start_period: 1m
|
||||||
command: traefik
|
|
||||||
entrypoint: /custom-entrypoint.sh
|
|
||||||
deploy:
|
deploy:
|
||||||
update_config:
|
update_config:
|
||||||
failure_action: rollback
|
failure_action: rollback
|
||||||
@ -41,7 +40,7 @@ services:
|
|||||||
- "traefik.http.services.traefik.loadbalancer.server.port=web"
|
- "traefik.http.services.traefik.loadbalancer.server.port=web"
|
||||||
- "traefik.http.routers.traefik.rule=Host(`${DOMAIN}`)"
|
- "traefik.http.routers.traefik.rule=Host(`${DOMAIN}`)"
|
||||||
- "traefik.http.routers.traefik.entrypoints=web-secure"
|
- "traefik.http.routers.traefik.entrypoints=web-secure"
|
||||||
- "traefik.http.routers.traefik.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
#- "traefik.http.routers.traefik.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
||||||
- "traefik.http.routers.traefik.tls.options=default@file"
|
- "traefik.http.routers.traefik.tls.options=default@file"
|
||||||
- "traefik.http.routers.traefik.service=api@internal"
|
- "traefik.http.routers.traefik.service=api@internal"
|
||||||
- "traefik.http.routers.traefik.middlewares=security@file"
|
- "traefik.http.routers.traefik.middlewares=security@file"
|
||||||
@ -52,15 +51,10 @@ networks:
|
|||||||
configs:
|
configs:
|
||||||
traefik_yml:
|
traefik_yml:
|
||||||
name: ${STACK_NAME}_traefik_yml_${TRAEFIK_YML_VERSION}
|
name: ${STACK_NAME}_traefik_yml_${TRAEFIK_YML_VERSION}
|
||||||
file: traefik.yml.tmpl
|
file: traefik.yml
|
||||||
template_driver: golang
|
template_driver: golang
|
||||||
file_provider_yml:
|
file_provider_yml:
|
||||||
name: ${STACK_NAME}_file_provider_yml_${FILE_PROVIDER_YML_VERSION}
|
name: ${STACK_NAME}_file_provider_yml_${FILE_PROVIDER_YML_VERSION}
|
||||||
file: file-provider.yml.tmpl
|
file: file-provider.yml
|
||||||
template_driver: golang
|
|
||||||
entrypoint:
|
|
||||||
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
|
|
||||||
file: entrypoint.sh.tmpl
|
|
||||||
template_driver: golang
|
|
||||||
volumes:
|
volumes:
|
||||||
letsencrypt:
|
letsencrypt:
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
{{ if eq (env "OVH_ENABLED") "1" }}
|
|
||||||
export OVH_CONSUMER_KEY=$(cat "$OVH_CONSUMER_KEY_FILE")
|
|
||||||
export OVH_APPLICATION_SECRET=$(cat "$OVH_APPLICATION_SECRET_FILE")
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
/entrypoint.sh "$@"
|
|
@ -36,22 +36,11 @@ entrypoints:
|
|||||||
smtp-submission:
|
smtp-submission:
|
||||||
address: ":587"
|
address: ":587"
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if eq (env "PEERTUBE_RTMP_ENABLED") "1" }}
|
|
||||||
peertube-rtmp:
|
|
||||||
address: ":1935"
|
|
||||||
{{ end }}
|
|
||||||
{{ if eq (env "SSB_MUXRPC_ENABLED") "1" }}
|
|
||||||
ssb-muxrpc:
|
|
||||||
address: ":8008"
|
|
||||||
{{ end }}
|
|
||||||
{{ if eq (env "MSSQL_ENABLED") "1" }}
|
|
||||||
mssql:
|
|
||||||
address: ":1433"
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
ping:
|
ping:
|
||||||
entryPoint: web
|
entryPoint: web
|
||||||
|
|
||||||
|
{{ if not (eq (env "LETS_ENCRYPT_DISABLED") "1") }}
|
||||||
certificatesResolvers:
|
certificatesResolvers:
|
||||||
staging:
|
staging:
|
||||||
acme:
|
acme:
|
||||||
@ -66,7 +55,4 @@ certificatesResolvers:
|
|||||||
storage: /etc/letsencrypt/production-acme.json
|
storage: /etc/letsencrypt/production-acme.json
|
||||||
httpChallenge:
|
httpChallenge:
|
||||||
entryPoint: web
|
entryPoint: web
|
||||||
{{ if eq (env "LETS_ENCRYPT_DNS_CHALLENGE_ENABLED") "1" }}
|
|
||||||
dnsChallenge:
|
|
||||||
provider: {{ (env "LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER") }}
|
|
||||||
{{ end }}
|
{{ end }}
|
Reference in New Issue
Block a user