diff --git a/traefik/traefik_dynamic.toml b/traefik/traefik_dynamic.toml new file mode 100644 index 0000000..54da037 --- /dev/null +++ b/traefik/traefik_dynamic.toml @@ -0,0 +1,162 @@ +[http.middlewares.simpleAuth.basicAuth] + #users = [ + # "raiffy:$2y$05$axN9TsdUbViUiYo/enLc7e.QwVvcByIOcj3CuPgU3EGVO85PnphFm" + #] + usersFile = "/home/raiffy/docker/traefik/config/.htpasswd" + +[http.middlewares] + [http.middlewares.redirect-www-to-main.redirectregex] + permanent = true + regex = "^https?://www\\.(.+)" + replacement = "https://${1}" + +[http.routers.api] + rule = "Host(`traefik.omegaflow.com.br`)" + entrypoints = ["websecure"] + middlewares = ["simpleAuth"] + service = "api@internal" + +[http.routers.api.tls] + certResolver = "lets-encrypt" + +# PORTAINER +[http.routers.portainer] + rule = "Host(`portainer.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "portainer" + [http.routers.portainer.tls] + certResolver = "lets-encrypt" + +[http.services.portainer.loadBalancer] + [[http.services.portainer.loadBalancer.servers]] + url = "http://portainer:9000" # Servindo através do Traefik, com a URL de encaminhamento correta + +# HEADSCALE +[http.routers.headscale] + rule = "Host(`hs.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "headscale" + [http.routers.headscale.tls] + certResolver = "lets-encrypt" + +[http.services.headscale.loadBalancer] + [[http.services.headscale.loadBalancer.servers]] + url = "http://headscale:8080" # Servindo através do Traefik, com a URL de encaminhamento correta + +# GITEA +[http.routers.gitea] + rule = "Host(`gitea.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "gitea" + [http.routers.gitea.tls] + certResolver = "lets-encrypt" + +[http.services.gitea.loadBalancer] + [[http.services.gitea.loadBalancer.servers]] + url = "http://gitea:3000" # Servindo através do Traefik, com a URL de encaminhamento correta + +# N8N EDITOR +[http.routers.n8n_editor] + rule = "Host(`n8n.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "n8n_editor" + [http.routers.n8n_editor.tls] + certResolver = "lets-encrypt" + +[http.services.n8n_editor.loadBalancer] + [[http.services.n8n_editor.loadBalancer.servers]] + url = "http://n8n_editor:5678" + +# N8N WEBHOOK +[http.routers.n8n_webhook] + rule = "Host(`n8n.omegaflow.com.br`) && PathPrefix(`/webhook`)" + entryPoints = ["websecure"] + service = "n8n_webhook" + [http.routers.n8n_webhook.tls] + certResolver = "lets-encrypt" + +[http.services.n8n_webhook.loadBalancer] + [[http.services.n8n_webhook.loadBalancer.servers]] + url = "http://n8n_webhook:5678" + +# CHATWOOT +[http.routers.chatwoot_app] + rule = "Host(`chat.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "chatwoot_app" + [http.routers.chatwoot_app.tls] + certResolver = "lets-encrypt" + +[http.services.chatwoot_app.loadBalancer] + [[http.services.chatwoot_app.loadBalancer.servers]] + url = "http://chatwoot_app:3000" + +[http.routers.chatwoot_super_admin] + rule = "Host(`chat.omegaflow.com.br`) && PathPrefix(`/super_admin`)" + entryPoints = ["websecure"] + service = "chatwoot_app" + middlewares = ["sslheader"] + +#[http.middlewares] +# [http.middlewares.sslheader.headers] +# customRequestHeaders = { X-Forwarded-Proto = "https" } + +# MINIO +[http.routers.minio_storage] + rule = "Host(`storage.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "minio_storage" + [http.routers.minio_storage.tls] + certResolver = "lets-encrypt" + +[http.routers.minio_console] + rule = "Host(`console.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "minio_console" + [http.routers.minio_console.tls] + certResolver = "lets-encrypt" + +[http.services.minio_storage.loadBalancer] + [[http.services.minio_storage.loadBalancer.servers]] + url = "http://minio:9000" + +[http.services.minio_console.loadBalancer] + [[http.services.minio_console.loadBalancer.servers]] + url = "http://minio:9001" + +# TYPEBOT +[http.routers.typebot_builder] + rule = "Host(`builder.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "typebot_builder" + [http.routers.typebot_builder.tls] + certResolver = "lets-encrypt" + +[http.services.typebot_builder.loadBalancer] + [[http.services.typebot_builder.loadBalancer.servers]] + url = "http://typebot_builder:3000" + +[http.routers.typebot_viewer] + rule = "Host(`bot.omegaflow.com.br`)" + entryPoints = ["websecure"] + service = "typebot_viewer" + [http.routers.typebot_viewer.tls] + certResolver = "lets-encrypt" + +[http.services.typebot_viewer.loadBalancer] + [[http.services.typebot_viewer.loadBalancer.servers]] + url = "http://typebot_viewer:3000" + +# DOMINIO CORINGA DA VPS DA HOSTINGER +# Roteador para o domínio htg.omegaflow.com.br +[http.routers.htg] + rule = "Host(`htg.omegaflow.com.br`)" # Domínio desejado + entryPoints = ["websecure"] # Usando HTTPS + service = "htg" # Nome do serviço correspondente + [http.routers.htg.tls] + certResolver = "lets-encrypt" # Usando o Let's Encrypt para gerar o certificado + +# Serviço que será acessado pelo Traefik (proxy para a própria VPS) +[http.services.htg.loadBalancer] + [[http.services.htg.loadBalancer.servers]] + url = "http://localhost:80" # O serviço será o próprio Traefik ou a aplicação rodando na VPS \ No newline at end of file