Ostatnio aktywny 2 days ago

atareao's Avatar atareao zrewidował ten Gist 2 days ago. Przejdź do rewizji

1 file changed, 1 insertion, 2 deletions

traefik.container

@@ -20,11 +20,10 @@ PublishPort=8443:8443/tcp
20 20 # SecurityLabelDisable=true
21 21
22 22 # Volúmenes montados
23 - Volume=%t/podman/podman.sock:%t/podman/podman.sock:ro
23 + Volume=/run/user/1002/podman/podman.sock:/run/user/1002/podman/podman.sock:ro
24 24 Volume=%h/traefik/data/traefik.yml:/etc/traefik/traefik.yml:ro
25 25 Volume=%h/traefik/data/config.yml:/etc/traefik/config.yml:ro
26 26 Volume=%h/traefik/data/acme.json:/etc/traefik/acme.json
27 - Volume=%h/traefik/logs:/logs
28 27
29 28 [Install]
30 29 WantedBy=default.target

atareao's Avatar atareao zrewidował ten Gist 3 days ago. Przejdź do rewizji

1 file changed

gistfile3.txt zmieniono nazwę na traefik.container

Zmieniono nazwę pliku bez modyfikacji zawartości

atareao's Avatar atareao zrewidował ten Gist 3 days ago. Przejdź do rewizji

Brak zmian

atareao's Avatar atareao zrewidował ten Gist 3 days ago. Przejdź do rewizji

9 files changed, 195 insertions

gistfile3.txt(stworzono plik)

@@ -0,0 +1,30 @@
1 + [Unit]
2 + Description=Servicio Proxy Inverso Traefik con Podman
3 + After=network-online.target
4 + Requires=proxy-network.service
5 +
6 + [Container]
7 + Image=docker.io/library/traefik:v3.7.15
8 + ContainerName=traefik
9 + Environment=TZ=Europe/Madrid
10 + Environment=CF_DNS_API_TOKEN=cfut_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
11 + Network=proxy.network
12 +
13 + LogDriver=journald
14 +
15 + # Mapeo de puertos
16 + PublishPort=8443:8443/tcp
17 + # PublishPort=8443:8443/udp
18 +
19 + # Deshabilitar SELinux/AppArmor labels para acceder al socket de podman
20 + # SecurityLabelDisable=true
21 +
22 + # Volúmenes montados
23 + Volume=%t/podman/podman.sock:%t/podman/podman.sock:ro
24 + Volume=%h/traefik/data/traefik.yml:/etc/traefik/traefik.yml:ro
25 + Volume=%h/traefik/data/config.yml:/etc/traefik/config.yml:ro
26 + Volume=%h/traefik/data/acme.json:/etc/traefik/acme.json
27 + Volume=%h/traefik/logs:/logs
28 +
29 + [Install]
30 + WantedBy=default.target

haproxy.cfg(stworzono plik)

@@ -0,0 +1,44 @@
1 + global
2 + log /dev/log local0 debug
3 + log /dev/log local1 notice
4 + chroot /var/lib/haproxy
5 + stats socket /run/haproxy/admin.sock mode 660 level admin
6 + stats timeout 30s
7 + user haproxy
8 + group haproxy
9 + daemon
10 +
11 + # Default SSL material locations
12 + ca-base /etc/ssl/certs
13 + crt-base /etc/ssl/private
14 +
15 + # See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
16 + ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
17 + ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
18 + ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
19 +
20 + defaults
21 + log global
22 + mode tcp
23 + option tcplog
24 + option dontlognull
25 + timeout connect 5s
26 + timeout client 50s
27 + timeout server 50s
28 +
29 + frontend http_in
30 + bind :80
31 + mode http
32 + # Redirige todo el tráfico entrante de HTTP a HTTPS conservando la URL original
33 + redirect scheme https code 301 if !{ ssl_fc }
34 +
35 + frontend https_in
36 + bind :443
37 + mode tcp
38 + default_backend traefik_backend
39 +
40 + backend traefik_backend
41 + mode tcp
42 + log global
43 + # Envía el tráfico a Traefik agregando el protocolo PROXY (v2)
44 + server traefik 127.0.0.1:8443 send-proxy-v2

proxy.network(stworzono plik)

@@ -0,0 +1,5 @@
1 + [Unit]
2 + Description=Red interna de comunicación entre Traefik y Servicios
3 +
4 + [Network]
5 + NetworkName=proxy

traefik.yml(stworzono plik)

@@ -0,0 +1,45 @@
1 + global:
2 + checkNewVersion: false
3 + sendAnonymousUsage: false
4 +
5 + log:
6 + level: INFO
7 +
8 + accessLog:
9 + filePath: "" # Vacio para volcar a stdout/journald
10 + format: json
11 + filters:
12 + statusCodes:
13 + - "400-499" # Captura errores de autenticación y accesos no autorizados
14 + api:
15 + dashboard: false
16 + insecure: false
17 +
18 + entryPoints:
19 + websecure:
20 + address: ":8443"
21 + proxyProtocol:
22 + trustedIPs:
23 + - "127.0.0.1/32"
24 + - "10.89.0.0/16"
25 +
26 + providers:
27 + docker:
28 + endpoint: "unix:///run/user/1002/podman/podman.sock"
29 + exposedByDefault: false
30 + file:
31 + filename: "/etc/traefik/config.yml"
32 + watch: true
33 +
34 + certificatesResolvers:
35 + cloudflare:
36 + acme:
37 + email: "tu-email@servidor.es"
38 + storage: "/etc/traefik/acme.json"
39 + dnsChallenge:
40 + provider: cloudflare
41 + propagation:
42 + delayBeforeChecks: 10s
43 + resolvers:
44 + - "1.1.1.1:53"
45 + - "8.8.8.8:53"

umami-db-data.volume(stworzono plik)

@@ -0,0 +1,5 @@
1 + [Unit]
2 + Description=Volumen de datos persistente para Umami PostgreSQL
3 +
4 + [Volume]
5 + VolumeName=umami-db-data

umami-db.container(stworzono plik)

@@ -0,0 +1,19 @@
1 + [Unit]
2 + Description=Base de Datos PostgreSQL para Umami
3 + After=proxy-network.service
4 +
5 + [Container]
6 + Image=docker.io/library/postgres:17-alpine
7 + ContainerName=umami-db
8 + Network=umami.network
9 +
10 + # Variables de entorno de PostgreSQL
11 + Environment=POSTGRES_DB=umami
12 + Environment=POSTGRES_USER=umami
13 + Environment=POSTGRES_PASSWORD=password
14 +
15 + # Montaje del volumen persistente de datos
16 + Volume=umami-db-data.volume:/var/lib/postgresql/data
17 +
18 + [Install]
19 + WantedBy=default.target

umami.container(stworzono plik)

@@ -0,0 +1,26 @@
1 + [Unit]
2 + Description=Servicio de Analítica Umami
3 + After=umami-db.service umami-network.service proxy-network.service
4 +
5 + [Container]
6 + Image=ghcr.io/umami-software/umami:postgresql-latest
7 + ContainerName=umami
8 + Network=umami.network
9 + Network=proxy
10 +
11 + Environment=DATABASE_URL=postgresql://umami:password@umami-db:5432/umami
12 + Environment=APP_SECRET=tu_hash_aleatorio_largo
13 +
14 + # Le indica a Umami qué cabecera HTTP contiene la IP real del cliente
15 + Environment=CLIENT_IP_HEADER=cf-connecting-ip
16 +
17 + # Etiquetas de Traefik
18 + Label=traefik.enable=true
19 + Label=traefik.http.routers.umami.rule=Host(`umami.servidor.es`)
20 + Label=traefik.http.routers.umami.entrypoints=websecure
21 + Label=traefik.http.routers.umami.tls=true
22 + Label=traefik.http.routers.umami.tls.certresolver=cloudflare
23 + Label=traefik.http.services.umami.loadbalancer.server.port=3000
24 +
25 + [Install]
26 + WantedBy=default.target

umami.network(stworzono plik)

@@ -0,0 +1,2 @@
1 + [Network]
2 + NetworkName=umami

whoami.container(stworzono plik)

@@ -0,0 +1,19 @@
1 + [Unit]
2 + Description=Contenedor Whoami de prueba para Traefik
3 + After=traefik.service
4 + Requires=traefik.service
5 +
6 + [Container]
7 + Image=docker.io/traefik/whoami
8 + ContainerName=whoami
9 + Network=proxy.network
10 +
11 + # Etiquetas de Traefik para autodescubrimiento
12 + Label=traefik.enable=true
13 + Label=traefik.http.routers.whoami.rule=Host(`whoami.servidor.es`)
14 + Label=traefik.http.routers.whoami.entrypoints=websecure
15 + Label=traefik.http.routers.whoami.tls.certresolver=cloudflare
16 + Label=traefik.docker.network=proxy
17 +
18 + [Install]
19 + WantedBy=default.target
Nowsze Starsze