Compare commits

...

70 Commits

Author SHA1 Message Date
Christian Galo 1837f4e8d1 readme typo 2023-10-16 23:21:44 +00:00
Christian Galo 7bed258294 add secrets info 2023-08-14 07:26:35 +00:00
Christian Galo 5aea354ac4 fix README typo 2023-08-14 05:27:45 +00:00
Christian Galo b83ace2588 name attribute in secrets unnecessary. 2023-08-14 05:14:18 +00:00
Christian Galo 01ed48f92d rename branch, quick edit readme 2023-08-14 03:18:59 +00:00
Christian Galo 48fbea8806 Update README 2023-08-13 01:54:58 +00:00
Christian Galo 8de070c41f default@file tls option label for router removed. 2023-08-07 06:51:41 +00:00
Christian Galo 610fb21334 rename "default" option 2023-08-06 20:28:03 +00:00
Christian Galo 402dbb2ec9 googledomains config in own compose. Bump traefik. 2023-08-06 19:59:22 +00:00
Christian Galo 22650d7d67 yml to yaml. Removed DNS challenge enable env var. 2023-08-05 01:26:05 +00:00
Christian Galo 4bfce6517b Remove unused segments config 2023-07-28 03:55:18 +00:00
Christian Galo e0799b7de7 remove keycloack middleware configs. Remove SMTP from compose 2023-07-27 23:58:23 +00:00
Christian Galo 2886b38a12 gitignore env file 2023-07-27 23:22:48 +00:00
Christian Galo f2964816e5 Remove config names. Unnecessary interpolation. 2023-07-16 22:28:37 +00:00
Christian Galo 3108529953 Removing abra bloatware 😜 2023-07-14 21:26:07 +00:00
Christian Galo 8d926529c5 remove extras and make compose.yml compliant. 2023-05-24 21:08:18 +00:00
trav fcff3a2d6a syntax
continuous-integration/drone/push Build is failing
minor
2022-10-13 16:51:46 +00:00
decentral1se 981d2a3808 chore: publish 1.1.1+v2.8.1 release
continuous-integration/drone/push Build is failing
2022-07-14 10:47:58 +02:00
philippr 29eb1058cd chore: publish 1.1.0+v2.8.0 release
continuous-integration/drone/push Build is failing
2022-07-01 11:35:28 +02:00
decentral1se df49a1f3b2 use domain env var
continuous-integration/drone/push Build is failing
2022-03-27 21:12:16 +02:00
3wordchant 099dcfaed0 Add compy support
continuous-integration/drone/push Build is failing
2022-03-26 23:49:10 +02:00
decentral1se 1d7542cd5f fix: drop minio config changes for now
New version is hard to config, unsure if this is needed.
2022-01-06 11:12:47 +01:00
decentral1se 5e1604322e fix: bump vendored config 2022-01-06 10:06:04 +01:00
decentral1se 36707989d2 fix: add missing entrypoints (matrix, minio) 2022-01-06 10:01:52 +01:00
decentral1se 29f90fe409 feat: minio port 2022-01-06 09:50:35 +01:00
decentral1se 8a48c5e507 chore: publish 1.0.1+v2.5.6 release 2021-12-28 03:38:36 +01:00
decentral1se 612d0cc6cc feat: matrix federation 2021-12-13 13:56:36 +01:00
3wordchant 36c7b740ab Merge pull request 'Add a slot for a second traefik-forward-auth' (#31) from forward-auth-2 into master
Reviewed-on: #31
2021-11-24 15:10:53 +00:00
3wordchant 59b0f8d645 Make sure variable names align, fix template 2021-11-23 12:40:17 +02:00
3wordchant 556c448c05 Align traefik-forward-auth 2nd var name with existing 2021-11-23 12:40:17 +02:00
3wordchant 26fcaaea69 Add a slot for a second traefik-forward-auth instance 2021-11-23 12:40:17 +02:00
3wordchant 02ebb1412f Goodbye, emojis! 😢
[ci skip]
2021-11-23 12:23:23 +02:00
3wordchant 8e91a5a3ee Minuscule .env tweak
continuous-integration/drone/push Build is failing
2021-10-14 00:44:40 +02:00
d1admin 3048d09cd8 fix: support configurable tfa service
continuous-integration/drone/push Build is failing
2021-10-14 00:43:56 +02:00
d1admin 2c9e980809 chore: remove old file
continuous-integration/drone/push Build is failing
2021-10-12 11:41:56 +02:00
d1admin ec47f5c9dd chore: first release 2021-10-12 11:41:53 +02:00
d1admin cf81dc543a chore: upgrade to 2.5.2 and add spaces
continuous-integration/drone/push Build is failing
2021-09-15 13:35:57 +02:00
d1admin 48f03d8fcf Remove 2222 port from host networking
continuous-integration/drone/push Build is failing
This was an old config for when we did host mode networking for gitea
ssh but now we use the SNI thing that seems to work.
2021-09-02 09:15:58 +02:00
decentral1se 8c6fe61e60 Merge pull request 'Allow prometheus metrics collection' (#28) from mirsal/traefik:prometheus-metrics into master
continuous-integration/drone/push Build is failing
Reviewed-on: #28
2021-08-10 06:19:46 +00:00
mirsal fc5aa70d27 Allow prometheus metrics collection
continuous-integration/drone/pr Build is failing
This patch adds a METRICS_ENABLED configuration variables which,
when switched on, defines a metrics entrypoint and enables the
built-in prometheus metrics exporter. This allows the monitoring
stack to collect and show traefik metrics
2021-08-09 23:28:15 +00:00
3wordchant 9e123afb07 Merge pull request 'COMPOSE_FILE=$COMPOSE_FILE:`, to combine 'em easier' (#27) from rejig-compose-vars into master
continuous-integration/drone/push Build is failing
Reviewed-on: #27
2021-08-07 17:55:05 +00:00
3wordchant baba7ff87d Add default COMPOSE_FILE
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2021-08-07 19:49:29 +02:00
3wordchant e856591c97 COMPOSE_FILE=$COMPOSE_FILE:, to combine 'em easier
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
Thanks, @mirsal
2021-08-07 17:03:52 +02:00
3wordchant 8bcd8f054e Add missing Mumble vars to .env.sample 2021-08-07 17:03:20 +02:00
3wordchant a9a513e8da Add Mumble TCP/UDP ports
continuous-integration/drone/push Build is failing
2021-08-07 14:24:39 +02:00
3wordchant 46010aeb95 Enable Gandi DNS challenge for Letsencrypt
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is failing
2021-07-18 16:30:22 +02:00
renovate-bot 0421dd4747 Update traefik Docker tag to v2.4.11
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2021-07-16 07:03:32 +00:00
d1admin eb69ba9309 Expose host mode networking for mssql
continuous-integration/drone/push Build is failing
See https://github.com/WASHNote/washnote-apps/issues/17.
2021-07-07 15:58:08 +02:00
d1admin 21cd25f3d6 Quote and version headless
continuous-integration/drone/push Build is failing
2021-06-27 20:19:04 +02:00
d1admin f9b3475086 Version v2.4.9; sync labels
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is failing
2021-06-27 20:18:21 +02:00
d1admin ef443bae50 Add "headless mode" config
continuous-integration/drone/push Build is failing
Closes https://git.autonomic.zone/coop-cloud/traefik/issues/24.
2021-06-27 20:17:41 +02:00
renovate-bot aacf00309e Update traefik Docker tag to v2.4.9
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
2021-06-23 07:03:18 +00:00
d1admin f73e38d143 Use new image namespace
continuous-integration/drone/push Build is failing
2021-06-21 12:32:15 +02:00
decentral1se 661bec4727 Bump versions for CI
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build encountered an error
2021-06-10 12:38:42 +02:00
decentral1se 7258b129c4 Support OVH configuration
continuous-integration/drone/push Build is failing
See https://github.com/Autonomic-Cooperative/traefik/pull/1.
2021-06-10 12:36:54 +02:00
decentral1se bbbdfc272d Merge pull request #1 from ahdinosaur/lets-encrypt-dns-challenge-ovh
add support for Let's Encrypt DNS-01 challenge (for wildcard domains)
2021-06-10 12:01:37 +02:00
ahdinosaur 2c81622d9a add support for Let's Encrypt DNS-01 challenge (for wildcard domains)
start with support for OVH provider, but in a way for others to be added in the future:

https://doc.traefik.io/traefik/https/acme/#dnschallenge
2021-06-10 14:53:17 +12:00
decentral1se 8ff2f3a294 Add missing env var
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build encountered an error
2021-06-07 09:51:24 +02:00
decentral1se 2c745416fc Support mssql host mode connections
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is failing
2021-06-07 09:42:50 +02:00
decentral1se d968028216 Push env vars to overriding configs
continuous-integration/drone/push Build is failing
2021-06-05 23:02:36 +02:00
3wc 8d309bc7bf Entrypoint for SSB MUXRPC
continuous-integration/drone/push Build is failing
2021-06-05 14:23:58 +02:00
decentral1se 18d8805c99 Remove trigger, we make the tags [ci skip] 2021-06-04 00:15:40 +02:00
decentral1se bdff19882b Fix bad name in batch update script [ci skip] 2021-06-03 23:07:24 +02:00
decentral1se fd9faeb021 Add release logic to CI [ci skip] 2021-06-03 23:01:32 +02:00
decentral1se f26557bd40 Expose config var for RTMP port
continuous-integration/drone/push Build is failing
2021-05-10 14:02:53 +02:00
decentral1se 2de31afe26 Use actual template language
continuous-integration/drone/push Build is failing
2021-05-10 13:53:27 +02:00
decentral1se 028ad6ce62 Upgrade vendored config
continuous-integration/drone/push Build is failing
2021-05-10 13:13:44 +02:00
decentral1se ede226cea7 Add conditionl for peertube RMTP port
continuous-integration/drone/push Build is failing
2021-05-10 13:04:53 +02:00
decentral1se 9a1dd29d01 Add RTMP optional port setup
continuous-integration/drone/push Build is passing
2021-05-10 12:58:10 +02:00
decentral1se 2428f5fabd Make foodsoft/gitea ports optional
continuous-integration/drone/push Build is passing
Closes https://git.autonomic.zone/coop-cloud/traefik/issues/23.
2021-04-07 14:22:22 +02:00
13 changed files with 57 additions and 151 deletions
-21
View File
@@ -1,21 +0,0 @@
---
kind: pipeline
name: deploy to swarm-test.autonomic.zone
steps:
- name: deployment
image: decentral1se/stack-ssh-deploy:latest
settings:
host: swarm-test.autonomic.zone
stack: traefik
deploy_key:
from_secret: drone_ssh_swarm_test
environment:
DOMAIN: traefik.swarm-test.autonomic.zone
STACK_NAME: traefik
LETS_ENCRYPT_ENV: production
LETS_ENCRYPT_EMAIL: helo@autonomic.zone
TRAEFIK_YML_VERSION: v3
FILE_PROVIDER_YML_VERSION: v2
trigger:
branch:
- master
-26
View File
@@ -1,26 +0,0 @@
TYPE=traefik
DOMAIN=traefik.example.com
LETS_ENCRYPT_ENV=production
LETS_ENCRYPT_EMAIL=certs@example.com
# DASHBOARD_ENABLED=true
# WARN, INFO etc.
LOG_LEVEL=WARN
## Enable Keycloak
#COMPOSE_FILE="compose.yml:compose.keycloak.yml"
#KEYCLOAK_MIDDLEWARE_ENABLED=1
## SMTP port 587
#COMPOSE_FILE="compose.yml:compose.smtp.yml"
#SMTP_ENABLED=1
## Gitea SSH
# GITEA_SSH_ENABLED=1
## Foodsoft SMTP
# FOODSOFT_SMTP_ENABLED=1
## Host-mode networking
#COMPOSE_FILE="compose.yml:compose.host.yml"
+1 -1
View File
@@ -1 +1 @@
.envrc
.env
+17 -19
View File
@@ -1,26 +1,24 @@
# Traefik
[![Build Status](https://drone.autonomic.zone/api/badges/coop-cloud/traefik/status.svg)](https://drone.autonomic.zone/coop-cloud/traefik)
Wiki Cafe's configuration for a traefik deployment. Originally slimmed down from an `abra` [recipe](https://git.coopcloud.tech/coop-cloud/traefik) by [Co-op Cloud](https://coopcloud.tech/).
> https://docs.traefik.io
<!-- metadata -->
* **Category**: Utilities
* **Status**: ?
* **Image**: [`traefik`](https://hub.docker.com/_/traefik), ❶💚, upstream
* **Healthcheck**: Yes
* **Backups**: No
* **Email**: N/A
* **Tests**: ❷💛
* **SSO**: ? (Keycloak)
<!-- endmetadata -->
## Deploying the app with Docker Swarm
## Basic usage
Set the environment variables from the .env file during the shell session.
1. Set up Docker Swarm and [`abra`]
2. `abra app new traefik`
3. `abra app YOURAPPDOMAIN config` - be sure to change `DOMAIN` to something that resolves to
your Docker swarm box
4. `abra app YOURAPPDOMAIN deploy`
```
set -a && source .env && set +a
```
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra
Set the secrets.
```
printf "SECRET_HERE" | docker secret create SECRET_NAME -
```
Deploy using the `-c` flag to specify multiple compose files.
```
docker stack deploy traefik -c compose.yaml -c compose.googledomains.yaml
```
-2
View File
@@ -1,2 +0,0 @@
export TRAEFIK_YML_VERSION=v5
export FILE_PROVIDER_YML_VERSION=v1
+10
View File
@@ -0,0 +1,10 @@
services:
app:
environment:
- GOOGLE_DOMAINS_ACCESS_TOKEN_FILE=/run/secrets/google_domains_access_token
secrets:
- google_domains_access_token
secrets:
google_domains_access_token:
external: true
-18
View File
@@ -1,18 +0,0 @@
---
version: "3.8"
services:
app:
deploy:
update_config:
order: stop-first
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
- target: 2222
published: 2222
mode: host
-10
View File
@@ -1,10 +0,0 @@
---
version: "3.8"
services:
app:
deploy:
labels:
- "traefik.http.routers.traefik.middlewares=keycloak@file"
environment:
- KEYCLOAK_MIDDLEWARE_ENABLED
-7
View File
@@ -1,7 +0,0 @@
---
version: "3.8"
services:
app:
ports:
- "587:587"
+18 -20
View File
@@ -1,34 +1,32 @@
version: "3.8"
services:
app:
image: "traefik:v2.4.8"
image: "traefik:v2.10.4"
ports:
# HTTP
- "80:80"
# HTTPS
- "443:443"
- "2222:2222"
- "2525:2525"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "letsencrypt:/etc/letsencrypt"
configs:
- source: traefik_yml
target: /etc/traefik/traefik.yml
- source: file_provider_yml
target: /etc/traefik/file-provider.yml
- source: traefik_yaml
target: /etc/traefik/traefik.yaml
- source: file_provider_yaml
target: /etc/traefik/file-provider.yaml
networks:
- proxy
environment:
- DASHBOARD_ENABLED
- FOODSOFT_SMTP_ENABLED
- GITEA_SSH_ENABLED
- LOG_LEVEL
- SMTP_ENABLED
- LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER
healthcheck:
test: ["CMD", "traefik", "healthcheck"]
interval: 30s
timeout: 10s
retries: 10
start_period: 1m
command: traefik
deploy:
update_config:
failure_action: rollback
@@ -39,20 +37,20 @@ services:
- "traefik.http.routers.traefik.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.traefik.entrypoints=web-secure"
- "traefik.http.routers.traefik.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "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
networks:
proxy:
external: true
configs:
traefik_yml:
name: ${STACK_NAME}_traefik_yml_${TRAEFIK_YML_VERSION}
file: traefik.yml
traefik_yaml:
file: traefik.yaml.tmpl
template_driver: golang
file_provider_yml:
name: ${STACK_NAME}_file_provider_yml_${FILE_PROVIDER_YML_VERSION}
file: file-provider.yml
file_provider_yaml:
file: file-provider.yaml.tmpl
template_driver: golang
volumes:
letsencrypt:
letsencrypt:
@@ -1,14 +1,6 @@
---
http:
middlewares:
{{ if eq (env "KEYCLOAK_MIDDLEWARE_ENABLED") "1" }}
keycloak:
forwardAuth:
address: "http://traefik-forward-auth:4181"
trustForwardHeader: true
authResponseHeaders:
- X-Forwarded-User
{{ end }}
security:
headers:
frameDeny: true
-6
View File
@@ -1,6 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
]
}
+11 -13
View File
@@ -9,7 +9,7 @@ providers:
network: proxy
swarmMode: true
file:
filename: /etc/traefik/file-provider.yml
filename: /etc/traefik/file-provider.yaml
api:
dashboard: {{ env "DASHBOARD_ENABLED" }}
@@ -24,18 +24,6 @@ entrypoints:
to: web-secure
web-secure:
address: ":443"
{{ if eq (env "GITEA_SSH_ENABLED") "1" }}
gitea-ssh:
address: ":2222"
{{ end }}
{{ if eq (env "FOODSOFT_SMTP_ENABLED") "1" }}
foodsoft-smtp:
address: ":2525"
{{ end }}
{{ if eq (env "SMTP_ENABLED") "1" }}
smtp-submission:
address: ":587"
{{ end }}
ping:
entryPoint: web
@@ -48,9 +36,19 @@ certificatesResolvers:
caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
httpChallenge:
entryPoint: web
dnsChallenge:
provider: {{ (env "LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER") }}
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
production:
acme:
email: {{ env "LETS_ENCRYPT_EMAIL" }}
storage: /etc/letsencrypt/production-acme.json
httpChallenge:
entryPoint: web
dnsChallenge:
provider: {{ (env "LETS_ENCRYPT_DNS_CHALLENGE_PROVIDER") }}
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"