hosts/ao: refactor backups
This commit is contained in:
		
							parent
							
								
									aaba064089
								
							
						
					
					
						commit
						8fe1fbb6e7
					
				|  | @ -9,6 +9,7 @@ with lib.my; | |||
|     ../home.nix | ||||
|     ./hardware-configuration.nix | ||||
| 
 | ||||
|     ./modules/backup.nix | ||||
|     ./modules/gitea.nix | ||||
|     ./modules/bitwarden.nix | ||||
|   ]; | ||||
|  |  | |||
							
								
								
									
										50
									
								
								hosts/ao/modules/backup.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								hosts/ao/modules/backup.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   services.bitwarden_rs.backupDir = "/backups/bitwarden_rs"; | ||||
|   services.gitea.dump.enable = true; | ||||
|   services.gitea.dump.backupDir = "/backups/gitea"; | ||||
|   system.activationScripts.createBackupDir = '' | ||||
|     mkdir -m 750 -p "${config.services.bitwarden_rs.backupDir}" || true | ||||
|     mkdir -m 750 -p "${config.services.gitea.dump.backupDir}" || true | ||||
|     chown bitwarden_rs:bitwarden_rs "${config.services.bitwarden_rs.backupDir}" | ||||
|     chown git:gitea "${config.services.gitea.dump.backupDir}" | ||||
|   ''; | ||||
| 
 | ||||
|   # systemd = { | ||||
|   #   services.backups = { | ||||
|   #     description = "Backup /backups to NAS"; | ||||
|   #     wants = [ "usr-drive.mount" ]; | ||||
|   #     path  = [ pkgs.rsync ]; | ||||
|   #     environment = { | ||||
|   #       SRC_DIR  = "/backups"; | ||||
|   #       DEST_DIR = "/usr/drive"; | ||||
|   #     }; | ||||
|   #     script = '' | ||||
|   #       if [[ -d "$1" && -d "$2" ]]; then | ||||
|   #         echo "---- BACKUPING UP $1 TO $2 ----" | ||||
|   #         rsync -rlptPJ --delete --delete-after \ | ||||
|   #             --chmod=go= \ | ||||
|   #             --chown=hlissner:users \ | ||||
|   #             --exclude=lost+found/ \ | ||||
|   #             --exclude=@eaDir/ \ | ||||
|   #             --include=.git/ \ | ||||
|   #             --filter=':- .gitignore' \ | ||||
|   #             --filter=':- $XDG_CONFIG_HOME/git/ignore' \ | ||||
|   #             "$SRC_DIR/" "$DEST_DIR" | ||||
|   #       fi | ||||
|   #     ''; | ||||
|   #     serviceConfig = { | ||||
|   #       Type = "oneshot"; | ||||
|   #       Nice = 19; | ||||
|   #       IOSchedulingClass = "idle"; | ||||
|   #     }; | ||||
|   #   }; | ||||
|   #   timers.backups = { | ||||
|   #     wantedBy = [ "timers.target" ]; | ||||
|   #     partOf = [ "backups.service" ]; | ||||
|   #     timerConfig.OnCalendar = "*-*-* 03:00:00"; | ||||
|   #     timerConfig.Persistent = true; | ||||
|   #   }; | ||||
|   # }; | ||||
| } | ||||
|  | @ -9,10 +9,7 @@ in { | |||
|   }; | ||||
| 
 | ||||
|   config = mkIf cfg.enable { | ||||
|     services.bitwarden_rs = { | ||||
|       enable = true; | ||||
|       backupDir = "/run/backups/bitwarden_rs"; | ||||
|     }; | ||||
|     services.bitwarden_rs.enable = true; | ||||
| 
 | ||||
|     user.extraGroups = [ "bitwarden_rs" ]; | ||||
| 
 | ||||
|  | @ -22,13 +19,5 @@ in { | |||
|       port = 80,443,8002 | ||||
|       maxretry = 5 | ||||
|     ''; | ||||
| 
 | ||||
|     # HACK services.bitwarden_rs errors about permissions trying to create | ||||
|     #      backupDir in /run/backups, so we do it for it. | ||||
|     system.activationScripts.bitwardenCreateDirs = '' | ||||
|       DIR="${config.services.bitwarden_rs.backupDir}" | ||||
|       mkdir -m 750 -p "$DIR" || true | ||||
|       chown bitwarden_rs:bitwarden_rs "$DIR" | ||||
|     ''; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -45,11 +45,7 @@ in { | |||
|         service.ENABLE_BASIC_AUTHENTICATION = false; | ||||
|       }; | ||||
| 
 | ||||
|       dump = { | ||||
|         enable = true; | ||||
|         interval = "daily"; | ||||
|         backupDir = "/run/backups/gitea"; | ||||
|       }; | ||||
|       dump.interval = "daily"; | ||||
|     }; | ||||
| 
 | ||||
|     services.fail2ban.jails.gitea = '' | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue