FIX: MapStore Traefik config + Pulsar Manager routing
This commit is contained in:
409
acme/acme.json
Normal file
409
acme/acme.json
Normal file
File diff suppressed because one or more lines are too long
1
auth/prometheus.htpasswd
Normal file
1
auth/prometheus.htpasswd
Normal file
@@ -0,0 +1 @@
|
||||
admin:$apr1$fST4MKyc$Jlwbr1IHSSFYNfm07j3Q0.
|
||||
14
dynamic/01-gitea.yml
Normal file
14
dynamic/01-gitea.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
gitea:
|
||||
rule: "Host(`gitea.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: gitea
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
gitea:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://gitea:3000"
|
||||
14
dynamic/02-honcho.yml
Normal file
14
dynamic/02-honcho.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
honcho:
|
||||
rule: "Host(`honcho.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: honcho
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
honcho:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://honcho-api-1:8000"
|
||||
14
dynamic/03-phpipam.yml
Normal file
14
dynamic/03-phpipam.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
phpipam:
|
||||
rule: "Host(`phpipam.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: phpipam
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
phpipam:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://phpipam-phpipam-web-1:80"
|
||||
2
dynamic/04-geoserver.yml
Normal file
2
dynamic/04-geoserver.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
# Removed - redundant with routes.yml which uses correct container name
|
||||
# geoserver router is defined in routes.yml
|
||||
14
dynamic/05-onix.yml
Normal file
14
dynamic/05-onix.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
onix:
|
||||
rule: "Host(`onix.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: onix
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
onix:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://onix-adapter:8081"
|
||||
14
dynamic/06-openclaw.yml
Normal file
14
dynamic/06-openclaw.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
openclaw:
|
||||
rule: "Host(`openclaw.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: openclaw
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
openclaw:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://openclaw-openclaw-gateway-1:18789"
|
||||
14
dynamic/07-localai.yml
Normal file
14
dynamic/07-localai.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
localai:
|
||||
rule: "Host(`localai.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: localai
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
localai:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://localai-api-1:8080"
|
||||
14
dynamic/09-pgadmin.yml
Normal file
14
dynamic/09-pgadmin.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
pgadmin:
|
||||
rule: "Host(`pgadmin.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: pgadmin
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
pgadmin:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://scripts-pgadmin-1:80"
|
||||
14
dynamic/10-fiware-orion.yml
Normal file
14
dynamic/10-fiware-orion.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
orion:
|
||||
rule: "Host(`fiware-orion.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: orion
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
orion:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://fiware-gis-quickstart-orion-1:1026"
|
||||
14
dynamic/11-fiware-ngsiproxy.yml
Normal file
14
dynamic/11-fiware-ngsiproxy.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
ngsiproxy:
|
||||
rule: "Host(`ngsiproxy.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: ngsiproxy
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
ngsiproxy:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://fiware-gis-quickstart-ngsiproxy-1:3000"
|
||||
14
dynamic/12-wg-easy.yml
Normal file
14
dynamic/12-wg-easy.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
wg:
|
||||
rule: "Host(`wg.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: wg
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
wg:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://wg-easy:51821"
|
||||
22
dynamic/13-geonetwork.yml
Normal file
22
dynamic/13-geonetwork.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
http:
|
||||
routers:
|
||||
geonetwork:
|
||||
rule: "Host(`geonetwork.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: geonetwork
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
middlewares:
|
||||
- geonetwork-root-redirect
|
||||
middlewares:
|
||||
geonetwork-root-redirect:
|
||||
redirectRegex:
|
||||
regex: "^/$"
|
||||
replacement: "/geonetwork"
|
||||
permanent: true
|
||||
services:
|
||||
geonetwork:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.15:8080"
|
||||
14
dynamic/14-ofn.yml
Normal file
14
dynamic/14-ofn.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
ofn:
|
||||
rule: "Host(`ofn.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: ofn
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
ofn:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://openfoodnetwork-db-1:3000"
|
||||
16
dynamic/15-traefik-dashboard.yml
Normal file
16
dynamic/15-traefik-dashboard.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
http:
|
||||
routers:
|
||||
traefik-dashboard:
|
||||
rule: "Host(`traefik.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: api@internal
|
||||
middlewares:
|
||||
- traefik-auth
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
middlewares:
|
||||
traefik-auth:
|
||||
basicAuth:
|
||||
users:
|
||||
- "admin:$apr1$uTpnzwni$.N5Lep8M9ZaZMhasg9xgF."
|
||||
204
dynamic/16-mapstore.yml.bak
Normal file
204
dynamic/16-mapstore.yml.bak
Normal file
@@ -0,0 +1,204 @@
|
||||
http:
|
||||
routers:
|
||||
mapstore-root:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && Path(`/`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore-root-redirect
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
middlewares:
|
||||
- mapstore-redirect
|
||||
|
||||
mapstore-app:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/mapstore`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-static:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/dist`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-static2:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/assets`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-static3:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/web`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-static4:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/printing`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-static5:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/themes`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-static6:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/translations`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-static7:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/configs`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-exact:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/proxy`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore-proxy
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
middlewares:
|
||||
- mapstore-proxy-prefix
|
||||
|
||||
mapstore-geoserver:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/geoserver`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mapstore-geoserver-backend
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-geonetwork:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/geonetwork`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: geonetwork
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-datahub:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/datahub`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: datahub
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
mapstore-import:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/import`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: import
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
middlewares:
|
||||
- import-strip
|
||||
|
||||
mapstore-datafeeder:
|
||||
rule: "Host(`mapstore.digitribe.fr`) && PathPrefix(`/datafeeder`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: datafeeder
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
middlewares:
|
||||
- datafeeder-auth
|
||||
- datafeeder-strip
|
||||
- datafeeder-add
|
||||
|
||||
middlewares:
|
||||
mapstore-redirect:
|
||||
redirectRegex:
|
||||
regex: "^/$"
|
||||
replacement: "/mapstore/"
|
||||
permanent: true
|
||||
|
||||
datafeeder-auth:
|
||||
headers:
|
||||
customRequestHeaders:
|
||||
sec-proxy: "true"
|
||||
sec-username: "idatafeeder"
|
||||
datafeeder-strip:
|
||||
stripPrefix:
|
||||
prefixes:
|
||||
- "/datafeeder"
|
||||
datafeeder-add:
|
||||
addPrefix:
|
||||
prefix: "/datafeeder"
|
||||
import-strip:
|
||||
stripPrefix:
|
||||
prefixes:
|
||||
- "/import"
|
||||
forceSlash: true
|
||||
mapstore-prefix:
|
||||
addPrefix:
|
||||
prefix: "/mapstore"
|
||||
mapstore-strip-prefix:
|
||||
stripPrefix:
|
||||
prefixes:
|
||||
- "/mapstore"
|
||||
mapstore-proxy-prefix:
|
||||
addPrefix:
|
||||
prefix: "/mapstore"
|
||||
|
||||
services:
|
||||
mapstore-root-redirect:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.18:80"
|
||||
mapstore:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.18:80"
|
||||
mapstore-proxy:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.18:80"
|
||||
mapstore-geoserver-backend:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.17:8080"
|
||||
geonetwork:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.15:8080"
|
||||
datahub:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.2:80"
|
||||
import:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.8:80"
|
||||
datafeeder:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.22:8080"
|
||||
datafeeder-gateway:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.20:8080"# test 1776975088
|
||||
14
dynamic/17-georchestra.yml
Normal file
14
dynamic/17-georchestra.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
georchestra:
|
||||
rule: "Host(`georchestra.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: georchestra
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
georchestra:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.20:8080"
|
||||
14
dynamic/18-console.yml
Normal file
14
dynamic/18-console.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
console:
|
||||
rule: "Host(`georchestra-console.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: console
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
console:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.9:8080/console"
|
||||
14
dynamic/19-analytics.yml
Normal file
14
dynamic/19-analytics.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
analytics:
|
||||
rule: "Host(`analytics.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: analytics
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
analytics:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.19:8080/analytics"
|
||||
14
dynamic/20-datafeeder.yml
Normal file
14
dynamic/20-datafeeder.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
datafeeder:
|
||||
rule: "Host(`datafeeder.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: datafeeder
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
datafeeder:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://datafeeder:8080/datafeeder"
|
||||
14
dynamic/20-grafana.yml
Normal file
14
dynamic/20-grafana.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
grafana:
|
||||
rule: "Host(`grafana.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: grafana
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
grafana:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://smart-city-grafana:3000"
|
||||
14
dynamic/21-nodered.yml
Normal file
14
dynamic/21-nodered.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
nodered:
|
||||
rule: "Host(`node-red.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: nodered
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
nodered:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.19.0.24:1880"
|
||||
14
dynamic/22-influxdb.yml
Normal file
14
dynamic/22-influxdb.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
influxdb:
|
||||
rule: "Host(`influxdb.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: influxdb
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
influxdb:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://smart-city-influxdb:8086"
|
||||
16
dynamic/22-mosquitto2-dashboard.yml
Normal file
16
dynamic/22-mosquitto2-dashboard.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
http:
|
||||
routers:
|
||||
mosquitto2-dashboard:
|
||||
rule: "Host(`mosquitto2.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- web
|
||||
- websecure
|
||||
service: mosquitto2-dashboard-service
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
services:
|
||||
mosquitto2-dashboard-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://bunkerm_bunkerm_1:2000"
|
||||
14
dynamic/22-mosquitto2.yml
Normal file
14
dynamic/22-mosquitto2.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
tcp:
|
||||
routers:
|
||||
mosquitto2:
|
||||
rule: "HostSNI(`mosquitto2.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- mqtt
|
||||
service: mosquitto2
|
||||
tls: {}
|
||||
|
||||
services:
|
||||
mosquitto2:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- address: "172.29.0.33:1900"
|
||||
13
dynamic/22-redpanda.yml
Normal file
13
dynamic/22-redpanda.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
http:
|
||||
routers:
|
||||
redpanda:
|
||||
rule: "Host(`redpanda.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls: true
|
||||
service: redpanda-console
|
||||
services:
|
||||
redpanda-console:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://smart-city-redpanda-console:8080"
|
||||
14
dynamic/23-emqx.yml
Normal file
14
dynamic/23-emqx.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
tcp:
|
||||
routers:
|
||||
emqx:
|
||||
rule: "HostSNI(`emqx.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- mqtt
|
||||
service: emqx
|
||||
tls: {}
|
||||
|
||||
services:
|
||||
emqx:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- address: "emqx_emqx_1:1883"
|
||||
28
dynamic/24-ogc-api-records.yml
Normal file
28
dynamic/24-ogc-api-records.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
http:
|
||||
services:
|
||||
ogc-api-records:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.5:8080"
|
||||
ogc-api-records-me:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.7:80"
|
||||
|
||||
routers:
|
||||
ogc-api-records-me:
|
||||
rule: "PathPrefix(`/ogc-api-records/me`)"
|
||||
service: ogc-api-records-me
|
||||
priority: 100
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
ogc-api-records:
|
||||
rule: "PathPrefix(`/ogc-api-records`)"
|
||||
service: ogc-api-records
|
||||
priority: 1
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
14
dynamic/25-mosquitto.yml
Normal file
14
dynamic/25-mosquitto.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
mosquitto-ws:
|
||||
rule: "Host(`mosquitto-ws.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mosquitto-ws
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
mosquitto-ws:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://bunkerm-bunkerm-1:2000"
|
||||
15
dynamic/26-mosquitto.yml
Normal file
15
dynamic/26-mosquitto.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
tcp:
|
||||
routers:
|
||||
mosquitto:
|
||||
rule: "HostSNI(`mosquitto.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- mqtt
|
||||
service: mosquitto
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
services:
|
||||
mosquitto:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- address: "scripts-mosquitto-1:1883"
|
||||
15
dynamic/28-emqx-web.yml
Normal file
15
dynamic/28-emqx-web.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
http:
|
||||
routers:
|
||||
emqx-dashboard:
|
||||
rule: "Host(`emqx.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: emqx-service
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
services:
|
||||
emqx-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://emqx_emqx_1:18083"
|
||||
14
dynamic/30-frost-mqtt-tcp.yml
Normal file
14
dynamic/30-frost-mqtt-tcp.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
tcp:
|
||||
routers:
|
||||
frost-mqtt-tcp:
|
||||
entryPoints:
|
||||
- mqtt
|
||||
rule: "HostSNI(`frost.digitribe.fr`)"
|
||||
service: frost-mqtt-tcp-service
|
||||
tls:
|
||||
passthrough: true
|
||||
services:
|
||||
frost-mqtt-tcp-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- address: "172.29.0.10:1883"
|
||||
14
dynamic/30-frost-mqtt-ws.yml
Normal file
14
dynamic/30-frost-mqtt-ws.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
http:
|
||||
routers:
|
||||
frost-mqtt-ws:
|
||||
rule: "Host(`frost.digitribe.fr`) && PathPrefix(`/mqtt`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: frost-mqtt-ws-service
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
services:
|
||||
frost-mqtt-ws-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://frost_allinone-web-1:8089"
|
||||
27
dynamic/30-microcks.yml
Normal file
27
dynamic/30-microcks.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
http:
|
||||
routers:
|
||||
microcks:
|
||||
rule: "Host(`microcks.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: microcks-service
|
||||
tls: {}
|
||||
|
||||
# NGSI-LD contexts pour Stellio (Stellio Java HTTP client ne peut pas résoudre uri.etsi.org)
|
||||
ngsi-contexts:
|
||||
rule: "Host(`contexts.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: microcks-specs-service
|
||||
tls: {}
|
||||
|
||||
services:
|
||||
microcks-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://microcks:8080"
|
||||
|
||||
microcks-specs-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://microcks-specs-server:8085"
|
||||
12
dynamic/30-mosquitto-traefik.yml
Normal file
12
dynamic/30-mosquitto-traefik.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
http:
|
||||
routers:
|
||||
mosquitto-ws:
|
||||
rule: "Host(`mosquitto.digitribe.fr`) && PathPrefix(`/mqtt`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: mosquitto-ws-service
|
||||
services:
|
||||
mosquitto-ws-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://host.docker.internal:38084"
|
||||
22
dynamic/30-prometheus.yml
Normal file
22
dynamic/30-prometheus.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
http:
|
||||
middlewares:
|
||||
prometheus-auth:
|
||||
basicAuth:
|
||||
usersFile: "/etc/traefik/dynamic/auth/prometheus.htpasswd"
|
||||
|
||||
routers:
|
||||
prometheus:
|
||||
rule: "Host(`prometheus.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
middlewares:
|
||||
- prometheus-auth
|
||||
service: prometheus
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
services:
|
||||
prometheus:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://prometheus-brokers:9090"
|
||||
14
dynamic/99-mosquitto2-tcp.yml
Normal file
14
dynamic/99-mosquitto2-tcp.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
tcp:
|
||||
routers:
|
||||
mosquitto2-tcp:
|
||||
entryPoints:
|
||||
- mqtt
|
||||
rule: HostSNI(`mosquitto2.digitribe.fr`)
|
||||
service: mosquitto2-service
|
||||
tls:
|
||||
passthrough: true
|
||||
services:
|
||||
mosquitto2-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- address: bunkerm_bunkerm_1:1900
|
||||
12
dynamic/99-test-mqtt.yml
Normal file
12
dynamic/99-test-mqtt.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
http:
|
||||
routers:
|
||||
test-mqtt:
|
||||
rule: "Host(`mosquitto.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: test-mqtt-service
|
||||
services:
|
||||
test-mqtt-service:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://host.docker.internal:38084"
|
||||
1
dynamic/auth/prometheus.htpasswd
Normal file
1
dynamic/auth/prometheus.htpasswd
Normal file
@@ -0,0 +1 @@
|
||||
admin:$apr1$fST4MKyc$Jlwbr1IHSSFYNfm07j3Q0.
|
||||
17
dynamic/loki.yml
Normal file
17
dynamic/loki.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
# Loki — File-based routing (avoids Docker API version issue)
|
||||
http:
|
||||
routers:
|
||||
loki:
|
||||
rule: "Host(`loki.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: loki
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
priority: 200
|
||||
|
||||
services:
|
||||
loki:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.27:3100"
|
||||
12
dynamic/mainflux.yml
Normal file
12
dynamic/mainflux.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
http:
|
||||
routers:
|
||||
mainflux:
|
||||
rule: "Host(`mainflux.digitribe.fr`)"
|
||||
entryPoints: [websecure]
|
||||
service: mainflux-nginx
|
||||
tls: {}
|
||||
services:
|
||||
mainflux-nginx:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://mainfluxlabs-nginx:80" # Port 80 (nginx), pas 3000
|
||||
75
dynamic/openremote.yml
Normal file
75
dynamic/openremote.yml
Normal file
@@ -0,0 +1,75 @@
|
||||
# OpenRemote via Traefik v3 - File-based routing (CORRIGÉ 2026-05)
|
||||
http:
|
||||
routers:
|
||||
openremote-manager:
|
||||
rule: "Host(`openremote.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: openremote-manager
|
||||
middlewares:
|
||||
- openremote-headers
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
openremote-manager-api:
|
||||
rule: "Host(`openremote.digitribe.fr`) && PathPrefix(`/api/`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: openremote-manager
|
||||
middlewares:
|
||||
- openremote-headers
|
||||
priority: 100
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
# Console app config (static file) - rewrite vers /manager/consoleappconfig/
|
||||
openremote-manager-consoleappconfig:
|
||||
rule: "Host(`openremote.digitribe.fr`) && PathPrefix(`/consoleappconfig`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: openremote-manager
|
||||
middlewares:
|
||||
- consoleappconfig-rewrite
|
||||
- openremote-headers
|
||||
priority: 95
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
# Keycloak sur le même domaine pour OIDC
|
||||
openremote-keycloak:
|
||||
rule: "Host(`openremote.digitribe.fr`) && PathPrefix(`/auth`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: openremote-keycloak
|
||||
middlewares:
|
||||
- openremote-headers
|
||||
priority: 90
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
|
||||
middlewares:
|
||||
# Rewrite /consoleappconfig/* vers /manager/consoleappconfig/*
|
||||
consoleappconfig-rewrite:
|
||||
replacePathRegex:
|
||||
regex: "^/consoleappconfig/(.*)"
|
||||
replacement: "/manager/consoleappconfig/$1"
|
||||
|
||||
# Headers requis pour OpenRemote (pas de Location: "https" !)
|
||||
openremote-headers:
|
||||
headers:
|
||||
sslRedirect: true
|
||||
customRequestHeaders:
|
||||
X-Forwarded-Proto: "https"
|
||||
X-Forwarded-Host: "openremote.digitribe.fr"
|
||||
X-Forwarded-For: "10.0.0.0/8"
|
||||
|
||||
services:
|
||||
openremote-manager:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://openremote_manager_1:8080" # CORRIGÉ: underscore au lieu de tiret
|
||||
|
||||
openremote-keycloak:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://openremote_keycloak_1:8080" # CORRIGÉ: underscore au lieu de tiret
|
||||
17
dynamic/promtail.yml
Normal file
17
dynamic/promtail.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
# Promtail — File-based routing
|
||||
http:
|
||||
routers:
|
||||
promtail:
|
||||
rule: "Host(`promtail.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: promtail
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
priority: 200
|
||||
|
||||
services:
|
||||
promtail:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://smart-city-promtail:9080"
|
||||
@@ -5,6 +5,7 @@ http:
|
||||
customRequestHeaders:
|
||||
X-Forwarded-Host: "geoserver.digitribe.fr"
|
||||
X-Forwarded-Proto: "https"
|
||||
Origin: "https://geoserver.digitribe.fr"
|
||||
geoserver-redirect:
|
||||
replacePath:
|
||||
path: "/geoserver/"
|
||||
@@ -152,7 +153,7 @@ http:
|
||||
geoserver:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.13:8080"
|
||||
- url: "http://172.29.0.8:8080"
|
||||
onix:
|
||||
loadBalancer:
|
||||
servers:
|
||||
@@ -168,7 +169,7 @@ http:
|
||||
frost:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://frost_allinone-web-1:8080"
|
||||
- url: "http://frost_http-web-1:8080"
|
||||
pgadmin:
|
||||
loadBalancer:
|
||||
servers:
|
||||
|
||||
30
dynamic/stellio.yml
Normal file
30
dynamic/stellio.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
http:
|
||||
routers:
|
||||
stellio:
|
||||
rule: "Host(`stellio.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: stellio-api
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
priority: 200
|
||||
|
||||
microcks-specs:
|
||||
rule: "Host(`microcks-specs.digitribe.fr`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
service: microcks-specs-svc
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
priority: 200
|
||||
|
||||
services:
|
||||
stellio-api:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://stellio-api-gateway:8080"
|
||||
|
||||
microcks-specs-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://microcks-specs-server:8085"
|
||||
13
dynamic/thingsboard.yml
Normal file
13
dynamic/thingsboard.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
http:
|
||||
routers:
|
||||
thingsboard:
|
||||
rule: "Host(`thingsboard.digitribe.fr`)"
|
||||
entryPoints: [websecure]
|
||||
service: thingsboard-haproxy
|
||||
tls: {}
|
||||
|
||||
services:
|
||||
thingsboard-haproxy:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://172.29.0.9:8080" # thingsboard-core-1 sur traefik-public
|
||||
37
traefik.yml
Normal file
37
traefik.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
api:
|
||||
dashboard: true
|
||||
insecure: false
|
||||
|
||||
entryPoints:
|
||||
web:
|
||||
address: :80
|
||||
http:
|
||||
redirections:
|
||||
entryPoint:
|
||||
to: websecure
|
||||
scheme: https
|
||||
websecure:
|
||||
address: :443
|
||||
mqtt:
|
||||
address: :1883
|
||||
mqtts:
|
||||
address: :8883
|
||||
mqtt-frost:
|
||||
address: :1884
|
||||
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
email: eric@digitribe.fr
|
||||
storage: /etc/traefik/acme/acme.json
|
||||
httpChallenge:
|
||||
entryPoint: web
|
||||
|
||||
providers:
|
||||
docker:
|
||||
endpoint: "unix:///var/run/docker.sock"
|
||||
exposedByDefault: false
|
||||
network: traefik-public
|
||||
file:
|
||||
directory: /etc/traefik/dynamic
|
||||
watch: true
|
||||
Reference in New Issue
Block a user