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:
|
customRequestHeaders:
|
||||||
X-Forwarded-Host: "geoserver.digitribe.fr"
|
X-Forwarded-Host: "geoserver.digitribe.fr"
|
||||||
X-Forwarded-Proto: "https"
|
X-Forwarded-Proto: "https"
|
||||||
|
Origin: "https://geoserver.digitribe.fr"
|
||||||
geoserver-redirect:
|
geoserver-redirect:
|
||||||
replacePath:
|
replacePath:
|
||||||
path: "/geoserver/"
|
path: "/geoserver/"
|
||||||
@@ -152,7 +153,7 @@ http:
|
|||||||
geoserver:
|
geoserver:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
- url: "http://172.29.0.13:8080"
|
- url: "http://172.29.0.8:8080"
|
||||||
onix:
|
onix:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
@@ -168,7 +169,7 @@ http:
|
|||||||
frost:
|
frost:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
- url: "http://frost_allinone-web-1:8080"
|
- url: "http://frost_http-web-1:8080"
|
||||||
pgadmin:
|
pgadmin:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
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