Cold storage made easy.
Note
Ice House requires ZFS support to function properly.
Ice House allows you to easily and quickly initialize drives for use as backup and to create incremental
snapshots that are stored on them. For usage information, see icehouse --help
.
Typically, you will want to run icehouse init --drive /dev/sdx --pool backup
to initialize a new ZFS
pool on a drive. This process includes LUKS encryption, requiring a password during configuration. Once
initialized, you can begin backing up any system that uses ZFS by running
icehouse backup --drive /dev/sdx --pool backup
.
You can try Ice House without committing to installing it on your system by running the following command.
nix run github:snowfallorg/icehouse#icehouse
You can install this package imperatively with the following command.
nix profile install github:snowfallorg/icehouse
You can install this package by adding it as an input to your Nix flake.
{
description = "My system flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05";
# Snowfall Lib is not required, but will make configuration easier for you.
snowfall-lib = {
url = "github:snowfallorg/lib";
inputs.nixpkgs.follows = "nixpkgs";
};
icehouse = {
url = "github:snowfallorg/icehouse";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs:
inputs.snowfall-lib.mkFlake {
inherit inputs;
src = ./.;
overlays = with inputs; [
# Use the overlay provided by this flake.
icehouse.overlay
# There is also a named overlay, though the output is the same.
icehouse.overlays."package/icehouse"
];
};
}
If you've added the overlay from this flake, then in your system configuration you can add the snowfallorg.icehouse
package.
{ pkgs }:
{
environment.systemPackages = with pkgs; [
snowfallorg.icehouse
];
}