wip: add authelia config
This commit is contained in:
		
							parent
							
								
									806b00f634
								
							
						
					
					
						commit
						495d54def8
					
				
					 1 changed files with 106 additions and 0 deletions
				
			
		
							
								
								
									
										106
									
								
								sys/srv/authelia.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								sys/srv/authelia.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,106 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| with lib; { | ||||
|   systemd.services.authelia.serviceConfig.LoadCredential = ["storageEncryptionKeyFile.txt:/var/trust/authelia/storageEncryptionKeyFile.csv" "jwtSecretFile.txt:/var/trust/authelia/jwtSecretFile.csv"]; | ||||
| 
 | ||||
|   services = { | ||||
|     nginx = { | ||||
|       virtualHosts."auth.posixlycorrect.com" = { | ||||
|         enableACME = true; | ||||
|         forceSSL = true; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     authelia.instances.main = { | ||||
|       enable = true; | ||||
|       # config based on https://github.com/authelia/authelia/blob/master/config.template.yml | ||||
|       settings = { | ||||
|         secrets = { | ||||
|           jwtSecretFile = "TODO:"; | ||||
|           storageEncryptionKeyFile = "TODO:"; | ||||
|         }; | ||||
| 
 | ||||
|         theme = "dark"; | ||||
|         default_2fa_method = "totp"; | ||||
|         server = { | ||||
|           disable_healthcheck = true; | ||||
|           port = 9091; | ||||
|           host = "localhost"; | ||||
|           address = "tcp://:9091/"; | ||||
|         }; | ||||
|         # tls settings not modified https://github.com/authelia/authelia/blob/master/config.template.yml#L53 | ||||
|         log = { | ||||
|           level = "info"; | ||||
|           format = "text"; | ||||
|         }; | ||||
|         telemetry.enabled = false; | ||||
|         totp = { | ||||
|           disable = false; | ||||
|           issuer = "https://getaegis.app/ or whatever you prefer"; | ||||
|           # default values assumed https://github.com/authelia/authelia/blob/master/config.template.yml#L181 | ||||
|         }; | ||||
|         webauthn = { | ||||
|           disable = false; | ||||
|           # default values assumed: https://github.com/authelia/authelia/blob/master/config.template.yml#L231 | ||||
|         }; | ||||
|         duo_api.disable = true; | ||||
|         # identity_validation default values assumed: https://github.com/authelia/authelia/blob/master/config.template.yml#L266 | ||||
|         authentication_backend.file = { | ||||
|           path = "/var/trust/authelia/users_database.yml"; #TODO: | ||||
|           password.algorithm = "argon2"; | ||||
|           password_policy.zxcvbn = { | ||||
|             enable = true; | ||||
|             min_score = 3; | ||||
|           }; | ||||
|         }; | ||||
|         access_control = { | ||||
|           default_policy = "deny"; | ||||
|           rules = [ | ||||
|             { | ||||
|               domain = "meet.posixlycorrect.com"; | ||||
|               policy = "bypass"; | ||||
|             } | ||||
|           ]; | ||||
|         }; | ||||
|         session = { | ||||
|           cookies = { | ||||
|             name = "posixlycorrect_session"; | ||||
|             domain = "auth.posixlycorrect.com"; | ||||
|             authelia_url = "https://auth.posixlycorrect.com"; | ||||
|             same_site = "lax"; | ||||
| 
 | ||||
|             # see https://github.com/authelia/authelia/blob/master/config.template.yml#L756 | ||||
|             inactivity = "5 minutes"; | ||||
|             expiration = "1 hour"; | ||||
|             remember_me = "1 month"; | ||||
|           }; | ||||
| 
 | ||||
|           # see https://github.com/authelia/authelia/blob/master/config.template.yml#L774 | ||||
|           name = "authelia_session"; | ||||
|           same_site = "lax"; | ||||
|           inactivity = "5m"; | ||||
|           expiration = "1h"; | ||||
|           remember_me = "1M"; | ||||
|         }; | ||||
| 
 | ||||
|         regulation = { | ||||
|           max_retries = 3; | ||||
|           find_time = "2 minutes"; | ||||
|           ban_time = "5 minutes"; | ||||
|         }; | ||||
| 
 | ||||
|         storage.local.path = "/var/trust/authelia/db.sqlite3"; #TODO: | ||||
| 
 | ||||
|         # TODO: | ||||
|         #notifier.smtp = { | ||||
|         #   | ||||
|         #}; | ||||
| 
 | ||||
|         # TODO: voy por acá: https://github.com/authelia/authelia/blob/master/config.template.yml#L714 | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Reference in a new issue