2022-03-12 08:16:51 +00:00
|
|
|
# home-impermanence
|
|
|
|
|
2022-03-12 08:27:13 +00:00
|
|
|
OpenBSD compatible implementation of the [impermanence project from
|
|
|
|
the NixOS community](https://nixos.wiki/wiki/Impermanence)
|
|
|
|
|
|
|
|
Such a tool permits to have your $HOME mounted with a memory
|
|
|
|
filesystem and populate it from an explicit list of files and
|
|
|
|
directories hooked from a persistent storage directory, the point
|
|
|
|
is to have a clean and reproducible environment every time you log
|
|
|
|
in with only the content you selected. No more extra files when
|
|
|
|
you start a program only once.
|
|
|
|
|
|
|
|
# Configuration
|
|
|
|
|
|
|
|
The configuration is done in two part, system wide to configure the
|
|
|
|
**impermanence** service that will mount the memory filesystem and
|
|
|
|
populate it.
|
|
|
|
|
|
|
|
## System wide
|
|
|
|
|
|
|
|
Using rcctl: `rcctl set impermanence flags -d /home/persist/ -u
|
|
|
|
my-user` and `rcctl enable impermanence`.
|
|
|
|
|
|
|
|
## User configuration
|
|
|
|
|
|
|
|
The user configuration will be done in
|
|
|
|
`/home/persist/my-user/impermanence.yml` if you chose `-d /home/persist`
|
|
|
|
for the service and `-u my-user`.
|
|
|
|
|
|
|
|
The configuration file describes the size of the memory filesystem,
|
|
|
|
the list of files and the list of directories that should be added
|
|
|
|
to the filesystem as symbolic links from the persistent directory.
|
|
|
|
|
|
|
|
# home-impermanence rc service
|
|
|
|
|
|
|
|
## Restart
|
|
|
|
|
|
|
|
The restart parameter to the service will unmount the device and
|
|
|
|
recreate it, allowing a fresh restart.
|
|
|
|
|
|
|
|
## Reload
|
|
|
|
|
|
|
|
The reload parameter to the service will check the configuration
|
|
|
|
file and will create missing links or overwrite files from the
|
|
|
|
temporary filesystem with a symlink to the persistent storage if
|
|
|
|
any.
|
|
|
|
|
|
|
|
This should be used when you add a file or directory to your
|
|
|
|
configuration and you want to update your current living system.
|
|
|
|
|
|
|
|
## Start
|
|
|
|
|
|
|
|
Creates and populates the home filesystem.
|
|
|
|
|
|
|
|
## Stop
|
|
|
|
|
|
|
|
Umount the home filesystem.
|