From e1c4d33eecab3df325d28c4d1be0f0b3d6d045cb Mon Sep 17 00:00:00 2001 From: asepharyana Date: Sat, 18 Jul 2026 15:22:42 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20add=20LSAR=20routes,=20fix=20default=20T?= =?UTF-8?q?LS=20cert=20(asephstech.pem=20=E2=86=92=20asepharyana.my.id.pem?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infra/traefik/dynamic/apps.yaml | 113 ++++++++++++++++++-------------- infra/traefik/dynamic/ssl.yaml | 7 +- 2 files changed, 64 insertions(+), 56 deletions(-) diff --git a/infra/traefik/dynamic/apps.yaml b/infra/traefik/dynamic/apps.yaml index 007a818..2915dee 100644 --- a/infra/traefik/dynamic/apps.yaml +++ b/infra/traefik/dynamic/apps.yaml @@ -1,71 +1,82 @@ http: routers: - # ── React SPA (domain root) ── - react: - rule: 'Host(`asepharyana.my.id`) || Host(`asepharyana.web.id`)' - entryPoints: - - websecure - tls: {} - service: react-service - - # ── Scraper API ── - scraper: - rule: 'Host(`scraper.asepharyana.my.id`) || Host(`api.asepharyana.my.id`) || Host(`scraper.asepharyana.web.id`) || Host(`api.asepharyana.web.id`)' - entryPoints: - - websecure - tls: {} - middlewares: - - common-chain@file - service: scraper-service - - # ── Elysia API ── elysia: - rule: 'Host(`elysia.asepharyana.my.id`) || Host(`elysia.asepharyana.web.id`)' entryPoints: - - websecure - tls: {} + - websecure middlewares: - - common-chain@file + - common-chain@file + rule: Host(`elysia.asepharyana.my.id`) || Host(`elysia.asepharyana.web.id`) service: elysia-service - - # ── Rust Auth API ── - rust-auth: - rule: 'Host(`auth.asepharyana.my.id`) || Host(`auth.asepharyana.web.id`)' - entryPoints: - - websecure tls: {} - middlewares: - - common-chain@file - service: rust-auth-service - - # ── PR-Agent Webhook ── + lidm-backend: + entryPoints: + - websecure + rule: Host(`lidm-api.asepharyana.my.id`) && PathPrefix(`/api`) + service: lidm-backend-service + tls: {} + lidm-frontend: + entryPoints: + - websecure + rule: Host(`lidm.asepharyana.my.id`) + service: lidm-frontend-service + tls: {} pr-agent: - rule: 'Host(`pr-agent.asepharyana.my.id`) || Host(`pr-agent.asepharyana.web.id`)' entryPoints: - - websecure - tls: {} + - websecure middlewares: - - common-chain@file + - common-chain@file + rule: Host(`pr-agent.asepharyana.my.id`) || Host(`pr-agent.asepharyana.web.id`) service: pr-agent-service - + tls: {} + react: + entryPoints: + - websecure + rule: Host(`asepharyana.my.id`) || Host(`asepharyana.web.id`) + service: react-service + tls: {} + rust-auth: + entryPoints: + - websecure + middlewares: + - common-chain@file + rule: Host(`auth.asepharyana.my.id`) || Host(`auth.asepharyana.web.id`) + service: rust-auth-service + tls: {} + scraper: + entryPoints: + - websecure + middlewares: + - common-chain@file + rule: Host(`scraper.asepharyana.my.id`) || Host(`api.asepharyana.my.id`) || + Host(`scraper.asepharyana.web.id`) || Host(`api.asepharyana.web.id`) + service: scraper-service + tls: {} services: - react-service: - loadBalancer: - servers: - - url: 'http://react-web:80' - scraper-service: - loadBalancer: - servers: - - url: 'http://scraper-api:4091' elysia-service: loadBalancer: servers: - - url: 'http://elysia-api:4092' - rust-auth-service: + - url: http://elysia-api:4092 + lidm-backend-service: loadBalancer: servers: - - url: 'http://rust-auth:3000' + - url: http://lidm-backend:3001 + lidm-frontend-service: + loadBalancer: + servers: + - url: http://lidm-frontend:3000 pr-agent-service: loadBalancer: servers: - - url: 'http://pr-agent-server:3000' + - url: http://pr-agent-server:3000 + react-service: + loadBalancer: + servers: + - url: http://react-web:80 + rust-auth-service: + loadBalancer: + servers: + - url: http://rust-auth:3000 + scraper-service: + loadBalancer: + servers: + - url: http://scraper-api:4091 diff --git a/infra/traefik/dynamic/ssl.yaml b/infra/traefik/dynamic/ssl.yaml index f861fef..c91e9e1 100644 --- a/infra/traefik/dynamic/ssl.yaml +++ b/infra/traefik/dynamic/ssl.yaml @@ -1,8 +1,5 @@ tls: certificates: - # Legacy production layout: asephstech.pem is paired with asephscloud.key. - - certFile: /etc/traefik/certs/asephstech.pem - keyFile: /etc/traefik/certs/asephscloud.key - certFile: /etc/traefik/certs/asepharyana.my.id.pem keyFile: /etc/traefik/certs/asepharyana.my.id.key - certFile: /etc/traefik/certs/asepharyana.web.id.pem @@ -10,5 +7,5 @@ tls: stores: default: defaultCertificate: - certFile: /etc/traefik/certs/asephstech.pem - keyFile: /etc/traefik/certs/asephscloud.key + certFile: /etc/traefik/certs/asepharyana.my.id.pem + keyFile: /etc/traefik/certs/asepharyana.my.id.key