Compare commits
	
		
			2 Commits
		
	
	
		
			e8cd50c857
			...
			f0709ed83b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f0709ed83b | |||
| fb3b89079c | 
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
traefik/acme.json
 | 
					traefik/acme.json
 | 
				
			||||||
traefik/certs/
 | 
					traefik/certs/
 | 
				
			||||||
traefik/traefik.log
 | 
					traefik/traefik.log
 | 
				
			||||||
 | 
				
			|||||||
@ -1,42 +1,38 @@
 | 
				
			|||||||
host: 0.0.0.0
 | 
					# log:
 | 
				
			||||||
port: 9091
 | 
					#   level: debug
 | 
				
			||||||
logs_level: trace
 | 
					
 | 
				
			||||||
jwt_secret: {{ env.Getenv "PRIVATE_DOMAIN" }}-jwt-secret
 | 
					theme: auto
 | 
				
			||||||
authentication_backend:
 | 
					authentication_backend:
 | 
				
			||||||
  file:
 | 
					  file:
 | 
				
			||||||
    path: /opt/authelia/users_database.yml
 | 
					    path: /config/users_database.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
session:
 | 
					session:
 | 
				
			||||||
  name: authelia_session
 | 
					  # domain: SET BY ENV VARIABLE AUTHELIA_SESSION_DOMAIN
 | 
				
			||||||
  secret: {{ env.Getenv "PRIVATE_DOMAIN" }}-token-secret
 | 
					  # secret: SET BY ENV VARIABLE AUTHELIA_SESSION_SECRET
 | 
				
			||||||
  domain: {{ env.Getenv "PRIVATE_DOMAIN" }}
 | 
					 | 
				
			||||||
  expiration: 604800
 | 
					 | 
				
			||||||
  inactivity: 172800
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
storage:
 | 
					storage:
 | 
				
			||||||
  local:
 | 
					  local:
 | 
				
			||||||
    path: /opt/authelia/db.sqlite3
 | 
					    path: /config/db.sqlite3
 | 
				
			||||||
 | 
					 | 
				
			||||||
totp:
 | 
					 | 
				
			||||||
  issuer: {{ env.Getenv "PRIVATE_DOMAIN" }}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
access_control:
 | 
					access_control:
 | 
				
			||||||
  default_policy: one_factor
 | 
					  default_policy: two_factor
 | 
				
			||||||
 | 
					  networks:
 | 
				
			||||||
 | 
					    - name: internal
 | 
				
			||||||
 | 
					      networks:
 | 
				
			||||||
 | 
					        - 10.0.0.0/8
 | 
				
			||||||
 | 
					        - 172.16.0.0/12
 | 
				
			||||||
 | 
					        - 192.168.0.0/18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  rules:
 | 
					  rules:
 | 
				
			||||||
    # Allow free access from local network
 | 
					    # Allow free access from local network
 | 
				
			||||||
    - domain: "*"
 | 
					    - domain:
 | 
				
			||||||
 | 
					      - "*.se"
 | 
				
			||||||
 | 
					      - "*.com"
 | 
				
			||||||
      networks:
 | 
					      networks:
 | 
				
			||||||
        - 192.168.1.0/23
 | 
					        - internal
 | 
				
			||||||
      policy: bypass
 | 
					      policy: bypass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
regulation:
 | 
					 | 
				
			||||||
  max_retries: 5
 | 
					 | 
				
			||||||
  find_time: 120
 | 
					 | 
				
			||||||
  ban_time: 180
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
notifier:
 | 
					notifier:
 | 
				
			||||||
  filesystem:
 | 
					  filesystem:
 | 
				
			||||||
    filename: /opt/authelia/notification.txt
 | 
					    filename: /config/notification.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -25,8 +25,10 @@ services:
 | 
				
			|||||||
      - EMAIL
 | 
					      - EMAIL
 | 
				
			||||||
      - PRIVATE_DOMAIN
 | 
					      - PRIVATE_DOMAIN
 | 
				
			||||||
      - PUBLIC_DOMAIN
 | 
					      - PUBLIC_DOMAIN
 | 
				
			||||||
 | 
					      - TRAEFIK_CERTIFICATERESOLVERS_LE_ACME_EMAIL
 | 
				
			||||||
    networks:
 | 
					    networks:
 | 
				
			||||||
      web:
 | 
					      web:
 | 
				
			||||||
 | 
					        ipv4_address: 172.18.1.2
 | 
				
			||||||
    command:
 | 
					    command:
 | 
				
			||||||
      - "--configFile=/data/traefik.yaml"
 | 
					      - "--configFile=/data/traefik.yaml"
 | 
				
			||||||
    ports:
 | 
					    ports:
 | 
				
			||||||
@ -48,29 +50,20 @@ services:
 | 
				
			|||||||
      traefik.http.routers.traefik.tls.certResolver: le
 | 
					      traefik.http.routers.traefik.tls.certResolver: le
 | 
				
			||||||
      autoheal: "true"
 | 
					      autoheal: "true"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  authelia-config:
 | 
					 | 
				
			||||||
    # Preprocess authelia configuration through gomplate
 | 
					 | 
				
			||||||
    image: hairyhenderson/gomplate
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      - PRIVATE_DOMAIN
 | 
					 | 
				
			||||||
      - PUBLIC_DOMAIN
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - ./authelia/configuration.yml:/data/input:ro
 | 
					 | 
				
			||||||
      - authelia-config:/data/output
 | 
					 | 
				
			||||||
    command: '--file=/data/input --out=/data/output/configuration.yml'
 | 
					 | 
				
			||||||
  authelia:
 | 
					  authelia:
 | 
				
			||||||
    container_name: authelia
 | 
					    container_name: authelia
 | 
				
			||||||
    image: authelia/authelia
 | 
					    image: authelia/authelia
 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
    depends_on:
 | 
					 | 
				
			||||||
      # config preprocessor should run first
 | 
					 | 
				
			||||||
      - authelia-config
 | 
					 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - ./authelia:/opt/authelia
 | 
					      - ./authelia:/config
 | 
				
			||||||
      - authelia-config:/etc/authelia/
 | 
					 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      - ENVIRONMENT=dev
 | 
					      # - ENVIRONMENT=dev
 | 
				
			||||||
      - NODE_TLS_REJECT_UNAUTHORIZED=1
 | 
					      - NODE_TLS_REJECT_UNAUTHORIZED=1
 | 
				
			||||||
 | 
					      - AUTHELIA_JWT_SECRET
 | 
				
			||||||
 | 
					      - AUTHELIA_SESSION_SECRET
 | 
				
			||||||
 | 
					      - AUTHELIA_SESSION_DOMAIN
 | 
				
			||||||
 | 
					      - AUTHELIA_TOTP_ISSUER
 | 
				
			||||||
 | 
					      - TZ=Europe/Stockholm
 | 
				
			||||||
    networks:
 | 
					    networks:
 | 
				
			||||||
      web:
 | 
					      web:
 | 
				
			||||||
    healthcheck:
 | 
					    healthcheck:
 | 
				
			||||||
@ -95,26 +88,41 @@ services:
 | 
				
			|||||||
      web:
 | 
					      web:
 | 
				
			||||||
    labels:
 | 
					    labels:
 | 
				
			||||||
      traefik.enable: true
 | 
					      traefik.enable: true
 | 
				
			||||||
      traefik.http.routers.homer.rule: Host(`${PRIVATE_DOMAIN}`)
 | 
					      traefik.http.routers.homer.rule: Host(`${PRIVATE_DOMAIN}`) || Host(`www.${PRIVATE_DOMAIN}`)
 | 
				
			||||||
      traefik.http.routers.homer.tls.certResolver: le
 | 
					      traefik.http.routers.homer.tls.certResolver: le
 | 
				
			||||||
      traefik.http.routers.homer.entrypoints: websecure
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# whoami-https:
 | 
					  dozzle:
 | 
				
			||||||
#   image: containous/whoami
 | 
					    image: amir20/dozzle
 | 
				
			||||||
#   networks:
 | 
					    restart: always
 | 
				
			||||||
#     web:
 | 
					    volumes:
 | 
				
			||||||
#   labels:
 | 
					      - /var/run/docker.sock:/var/run/docker.sock
 | 
				
			||||||
#     traefik.enable: true
 | 
					    networks:
 | 
				
			||||||
#     traefik.http.routers.wait-https.rule: Host(`wai-https.${PRIVATE_DOMAIN}`)
 | 
					      web:
 | 
				
			||||||
#     traefik.http.routers.wait-https.tls.certResolver: le
 | 
					    labels:
 | 
				
			||||||
 | 
					      traefik.enable: true
 | 
				
			||||||
 | 
					      traefik.http.routers.dozzle.rule: Host(`logs.${PRIVATE_DOMAIN}`)
 | 
				
			||||||
 | 
					      traefik.http.routers.dozzle.tls.certResolver: le
 | 
				
			||||||
 | 
					      traefik.http.routers.dozzle.middlewares: auth@file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# whoami-auth:
 | 
					 | 
				
			||||||
#   image: containous/whoami
 | 
					 | 
				
			||||||
#   networks:
 | 
					 | 
				
			||||||
#     web:
 | 
					 | 
				
			||||||
#     macvlan:
 | 
					 | 
				
			||||||
# labels:
 | 
					# labels:
 | 
				
			||||||
 | 
					#   The following three labels are always needed. Make sure to replace <SERVICE> with a unique name
 | 
				
			||||||
#   traefik.enable: true
 | 
					#   traefik.enable: true
 | 
				
			||||||
#     traefik.http.routers.wai-auth.rule: Host(`wai-auth.${PRIVATE_DOMAIN}`)
 | 
					#   traefik.http.routers.<SERVICE>.tls.certResolver: le
 | 
				
			||||||
#     traefik.http.routers.wai-auth.tls.certResolver: le
 | 
					#   traefik.http.routers.<SERVICE>.rule: Host(`<SERVICE>.${PRIVATE_DOMAIN}`)
 | 
				
			||||||
#     traefik.http.routers.wai-auth.middlewares: auth@file
 | 
					
 | 
				
			||||||
 | 
					#   Alternatives:
 | 
				
			||||||
 | 
					#   traefik.http.routers.<SERVICE>.rule: Host(`<SERVICE>.${PUBLIC_DOMAIN}`)
 | 
				
			||||||
 | 
					#   traefik.http.routers.<SERVICE>.rule: Host(`<SERVICE>.${PRIVATE_DOMAIN}`) || HOST(`<SERVICE>.${PUBLIC_DOMAIN}`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   Require authentication:
 | 
				
			||||||
 | 
					#   traefik.http.routers.<SERVICE>.middlewares: auth@file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   If more than one port is exposed by the container:
 | 
				
			||||||
 | 
					#   traefik.http.services.<SERVICE>.loadbalancer.server.port: <PORT>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   If container uses more than one network:
 | 
				
			||||||
 | 
					#   traefik.docker.network: web
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   Restart automatically if healthchech fails:
 | 
				
			||||||
 | 
					#   autoheal: "true"
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,12 @@ http:
 | 
				
			|||||||
    proxmox:
 | 
					    proxmox:
 | 
				
			||||||
      loadBalancer:
 | 
					      loadBalancer:
 | 
				
			||||||
        servers:
 | 
					        servers:
 | 
				
			||||||
          - url: http://192.168.0.10:8006
 | 
					          - url: https://192.168.0.10:8006
 | 
				
			||||||
 | 
					    prusa:
 | 
				
			||||||
 | 
					      loadBalancer:
 | 
				
			||||||
 | 
					        servers:
 | 
				
			||||||
 | 
					          - url: http://192.168.0.14
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  routers:
 | 
					  routers:
 | 
				
			||||||
    pfsense:
 | 
					    pfsense:
 | 
				
			||||||
@ -26,4 +31,11 @@ http:
 | 
				
			|||||||
        - auth
 | 
					        - auth
 | 
				
			||||||
      tls:
 | 
					      tls:
 | 
				
			||||||
        certResolver: le
 | 
					        certResolver: le
 | 
				
			||||||
 | 
					    prusa:
 | 
				
			||||||
 | 
					      service: prusa
 | 
				
			||||||
 | 
					      rule: Host(`prusa.{{env "PRIVATE_DOMAIN"}}`)
 | 
				
			||||||
 | 
					      middlewares:
 | 
				
			||||||
 | 
					        - auth
 | 
				
			||||||
 | 
					      tls:
 | 
				
			||||||
 | 
					        certResolver: le
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,8 @@ http:
 | 
				
			|||||||
      # Catch all requests to the http entrypoint and redirect them to https
 | 
					      # Catch all requests to the http entrypoint and redirect them to https
 | 
				
			||||||
      service: http-catchall
 | 
					      service: http-catchall
 | 
				
			||||||
      rule: hostregexp(`{host:.+}`)
 | 
					      rule: hostregexp(`{host:.+}`)
 | 
				
			||||||
      entrypoint: web
 | 
					      entryPoints:
 | 
				
			||||||
 | 
					        - web
 | 
				
			||||||
      middlewares:
 | 
					      middlewares:
 | 
				
			||||||
        - redir
 | 
					        - redir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ providers:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
log:
 | 
					log:
 | 
				
			||||||
  filePath: /data/traefik.log
 | 
					  filePath: /data/traefik.log
 | 
				
			||||||
  level: DEBUG
 | 
					  level: INFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
entryPoints:
 | 
					entryPoints:
 | 
				
			||||||
  web:
 | 
					  web:
 | 
				
			||||||
@ -23,7 +23,8 @@ entryPoints:
 | 
				
			|||||||
certificatesResolvers:
 | 
					certificatesResolvers:
 | 
				
			||||||
  le:
 | 
					  le:
 | 
				
			||||||
    acme:
 | 
					    acme:
 | 
				
			||||||
      email: '{{ env "EMAIL" }}'
 | 
					      # caServer: https://acme-staging-v02.api.letsencrypt.org/directory
 | 
				
			||||||
 | 
					      # email: SET BY ENV VARIABLE TRAEFIK_CERTIFICATERESOLVERS_LE_ACME_EMAIL
 | 
				
			||||||
      storage: /data/acme.json
 | 
					      storage: /data/acme.json
 | 
				
			||||||
      httpChallenge:
 | 
					      httpChallenge:
 | 
				
			||||||
        entrypoint: web
 | 
					        entrypoint: web
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user