traefik + whoami added
This commit is contained in:
		
							
								
								
									
										24
									
								
								traefik/compose.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								traefik/compose.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					volumes:
 | 
				
			||||||
 | 
					  acme:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  traefik:
 | 
				
			||||||
 | 
					    image: traefik:3.0
 | 
				
			||||||
 | 
					    container_name: traefik
 | 
				
			||||||
 | 
					    restart: always
 | 
				
			||||||
 | 
					    command: --providers.docker
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - /var/run/docker.sock:/var/run/docker.sock
 | 
				
			||||||
 | 
					      - ./volume.git/traefik.yml:/traefik.yml:ro
 | 
				
			||||||
 | 
					      - ./volume.git/dynamic_config.yml:/dynamic_config.yml:ro
 | 
				
			||||||
 | 
					      - acme:/acme/
 | 
				
			||||||
 | 
					      #- ./volume/usersFile:/usersFile # Basic Auth
 | 
				
			||||||
 | 
					    network_mode: host
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - traefik.enable=true
 | 
				
			||||||
 | 
					      # Wildcard http -> https redirection for all routers
 | 
				
			||||||
 | 
					      - traefik.http.routers.http-catchall.rule=HostRegexp(`.`)
 | 
				
			||||||
 | 
					      - traefik.http.routers.http-catchall.entrypoints=http
 | 
				
			||||||
 | 
					      - traefik.http.routers.http-catchall.middlewares=redirect-to-https@docker
 | 
				
			||||||
 | 
					      - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
 | 
				
			||||||
 | 
					      - traefik.http.services.http-catchall.loadbalancer.server.port=80
 | 
				
			||||||
							
								
								
									
										32
									
								
								traefik/volume.git/dynamic_config.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								traefik/volume.git/dynamic_config.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					http:
 | 
				
			||||||
 | 
					  middlewares:
 | 
				
			||||||
 | 
					    https-redirect:
 | 
				
			||||||
 | 
					      redirectScheme:
 | 
				
			||||||
 | 
					        scheme: https
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    default-allowlist:
 | 
				
			||||||
 | 
					      IPAllowList:
 | 
				
			||||||
 | 
					        sourceRange:
 | 
				
			||||||
 | 
					          - '10.0.0.0/8'
 | 
				
			||||||
 | 
					          - '172.16.0.0/12'
 | 
				
			||||||
 | 
					          - '192.168.0.0/16'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    secured:
 | 
				
			||||||
 | 
					      chain:
 | 
				
			||||||
 | 
					        middlewares:
 | 
				
			||||||
 | 
					          - default-allowlist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    basic-auth:
 | 
				
			||||||
 | 
					      basicAuth:
 | 
				
			||||||
 | 
					        usersFile: '/usersFile'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# https://docs.traefik.io/https/tls/#minimum-tls-version
 | 
				
			||||||
 | 
					tls:
 | 
				
			||||||
 | 
					  options:
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					      minVersion: VersionTLS12
 | 
				
			||||||
 | 
					      sniStrict: true
 | 
				
			||||||
 | 
					      cipherSuites:
 | 
				
			||||||
 | 
					        - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
 | 
				
			||||||
 | 
					        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
 | 
				
			||||||
 | 
					        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
 | 
				
			||||||
							
								
								
									
										23
									
								
								traefik/volume.git/traefik.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								traefik/volume.git/traefik.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					entryPoints:
 | 
				
			||||||
 | 
					  http:
 | 
				
			||||||
 | 
					    address: ':80'
 | 
				
			||||||
 | 
					  https:
 | 
				
			||||||
 | 
					    address: ':443'
 | 
				
			||||||
 | 
					    asDefault: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					providers:
 | 
				
			||||||
 | 
					  docker:
 | 
				
			||||||
 | 
					    endpoint: 'unix:///var/run/docker.sock'
 | 
				
			||||||
 | 
					    exposedByDefault: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  file:
 | 
				
			||||||
 | 
					    filename: /dynamic_config.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					certificatesResolvers:
 | 
				
			||||||
 | 
					  letsencrypt:
 | 
				
			||||||
 | 
					    acme:
 | 
				
			||||||
 | 
					      # LetsEncrypt Staging see: https://docs.traefik.io/https/acme/#caserver
 | 
				
			||||||
 | 
					      caServer: https://acme-staging-v02.api.letsencrypt.org/directory
 | 
				
			||||||
 | 
					      storage: /acme/acme.json
 | 
				
			||||||
 | 
					      httpChallenge:
 | 
				
			||||||
 | 
					        entryPoint: http
 | 
				
			||||||
							
								
								
									
										5
									
								
								traefik/volume.git/usersFile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								traefik/volume.git/usersFile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# Users and Passwords for basic auth. Passwords need to be hashed.
 | 
				
			||||||
 | 
					# Use the following command with your preferred username and password to generate a user with a hashed password
 | 
				
			||||||
 | 
					# htpasswd is can be installed with "apt install apache2-utils"
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# htpasswd -nb <User> "<Password>"
 | 
				
			||||||
							
								
								
									
										15
									
								
								whoami/compose.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								whoami/compose.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					services:
 | 
				
			||||||
 | 
					  whoami:
 | 
				
			||||||
 | 
					    # A container that exposes an API to show its IP address
 | 
				
			||||||
 | 
					    image: containous/whoami
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - traefik.enable=true
 | 
				
			||||||
 | 
					      # Enable HTTPS
 | 
				
			||||||
 | 
					      - traefik.http.routers.whoami.rule=Host(${TRAEFIK_HOST})
 | 
				
			||||||
 | 
					      - traefik.http.routers.whoami.tls=true
 | 
				
			||||||
 | 
					      - traefik.http.routers.whoami.tls.certresolver=letsencrypt
 | 
				
			||||||
 | 
					      - traefik.http.routers.whoami.middlewares=secured@file # ip allowlist
 | 
				
			||||||
 | 
					      # # Basic Auth - Users and Passwords must be added to volume/traefik/usersFile
 | 
				
			||||||
 | 
					      # - traefik.http.routers.whoami.middlewares=basic-auth@file
 | 
				
			||||||
 | 
					      # # Specify web port from container (if container is not listen on default port 80)
 | 
				
			||||||
 | 
					      # - traefik.http.services.whoami.loadbalancer.server.port=8080
 | 
				
			||||||
		Reference in New Issue
	
	Block a user