Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Наступна ревізія | Попередня ревізія | ||
| devops:docker:traefik [09/11/2025 01:42] – створено osvex | devops:docker:traefik [09/11/2025 01:47] (поточний) – osvex | ||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| - | ====== Traefik | + | ====== Traefik |
| + | |||
| + | ==== Traefik стек (docker-compose.yml) ==== | ||
| + | |||
| + | <code yaml> | ||
| + | version: " | ||
| + | services: | ||
| + | traefik: | ||
| + | image: traefik: | ||
| + | container_name: | ||
| + | command: | ||
| + | # --- Dashboard --- | ||
| + | - " | ||
| + | - " | ||
| + | # Для тесту можна включити insecure: | ||
| + | # - " | ||
| + | |||
| + | # --- Docker provider --- | ||
| + | - " | ||
| + | - " | ||
| + | |||
| + | # --- EntryPoints --- | ||
| + | - " | ||
| + | - " | ||
| + | |||
| + | # HTTP -> HTTPS redirect | ||
| + | - " | ||
| + | - " | ||
| + | |||
| + | # --- ACME / Let's Encrypt --- | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | |||
| + | ports: | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | volumes: | ||
| + | - / | ||
| + | - ./ | ||
| + | restart: unless-stopped | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | |||
| + | networks: | ||
| + | shared_traefik: | ||
| + | external: true | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | 💡 Пояснення: | ||
| + | |||
| + | * **HTTP-only**: | ||
| + | * **HTTPS / Let’s Encrypt**: включається через websecure entrypoint і certresolver=lets-encrypt. | ||
| + | * Dashboard можна захистити Basic Auth | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Monitoring стек (docker-compose.yml) ==== | ||
| + | |||
| + | <code yaml> | ||
| + | version: " | ||
| + | services: | ||
| + | |||
| + | prometheus: | ||
| + | image: prom/ | ||
| + | container_name: | ||
| + | volumes: | ||
| + | - ./ | ||
| + | - prom_data:/ | ||
| + | - ./ | ||
| + | command: | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | restart: unless-stopped | ||
| + | ports: | ||
| + | - " | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | - monitoring | ||
| + | |||
| + | alertmanager: | ||
| + | image: prom/ | ||
| + | container_name: | ||
| + | volumes: | ||
| + | - ./ | ||
| + | - alertmanager_data:/ | ||
| + | command: | ||
| + | - " | ||
| + | - " | ||
| + | restart: unless-stopped | ||
| + | labels: | ||
| + | - " | ||
| + | - " | ||
| + | # --- HTTP-only --- | ||
| + | - " | ||
| + | # --- HTTPS --- | ||
| + | # - " | ||
| + | # - " | ||
| + | - " | ||
| + | - " | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | - monitoring | ||
| + | |||
| + | grafana: | ||
| + | image: grafana/ | ||
| + | container_name: | ||
| + | environment: | ||
| + | - GF_SECURITY_ADMIN_USER=admin | ||
| + | - GF_SECURITY_ADMIN_PASSWORD=admin | ||
| + | volumes: | ||
| + | - grafana_data:/ | ||
| + | labels: | ||
| + | - " | ||
| + | - " | ||
| + | # --- HTTP-only --- | ||
| + | - " | ||
| + | # --- HTTPS --- | ||
| + | # - " | ||
| + | # - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | - monitoring | ||
| + | |||
| + | karma: | ||
| + | image: ghcr.io/ | ||
| + | container_name: | ||
| + | command: [" | ||
| + | volumes: | ||
| + | - ./ | ||
| + | - karma_data:/ | ||
| + | labels: | ||
| + | - " | ||
| + | - " | ||
| + | # --- HTTP-only --- | ||
| + | - " | ||
| + | # --- HTTPS --- | ||
| + | # - " | ||
| + | # - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | - monitoring | ||
| + | |||
| + | loki: | ||
| + | image: grafana/ | ||
| + | container_name: | ||
| + | command: [" | ||
| + | volumes: | ||
| + | - ./ | ||
| + | - loki_data:/ | ||
| + | restart: unless-stopped | ||
| + | ports: | ||
| + | - " | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | - monitoring | ||
| + | |||
| + | promtail: | ||
| + | image: grafana/ | ||
| + | container_name: | ||
| + | command: [" | ||
| + | volumes: | ||
| + | - ./ | ||
| + | - / | ||
| + | - /tmp:/tmp | ||
| + | restart: unless-stopped | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | - monitoring | ||
| + | |||
| + | blackbox_exporter: | ||
| + | image: prom/ | ||
| + | container_name: | ||
| + | volumes: | ||
| + | - ./ | ||
| + | command: [" | ||
| + | restart: unless-stopped | ||
| + | networks: | ||
| + | - shared_traefik | ||
| + | - monitoring | ||
| + | |||
| + | volumes: | ||
| + | prom_data: | ||
| + | grafana_data: | ||
| + | loki_data: | ||
| + | karma_data: | ||
| + | alertmanager_data: | ||
| + | |||
| + | networks: | ||
| + | shared_traefik: | ||
| + | external: true | ||
| + | monitoring: | ||
| + | driver: bridge | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== 🔹 Пояснення ==== | ||
| + | |||
| + | - **HTTP-only**: | ||
| + | - **HTTPS / Let’s Encrypt**: розкоментувати websecure + tls.certresolver=lets-encrypt і переконатися, | ||
| + | - **Basic Auth**: можна підключити окремо для Dashboard або для сервісів (як у Karma). | ||
| + | - **traefik.docker.network=shared_traefik** | ||