#dotfiles #team #machines #management #file-management #multiple

app dotium

Dot-file management for multiple machines or small teams

10 releases

0.1.10 Jan 22, 2023
0.1.9 Jan 2, 2023
0.1.8 Oct 15, 2022
0.1.6 May 14, 2022

#63 in Configuration

Download history 4/week @ 2024-02-24 3/week @ 2024-03-09 1/week @ 2024-03-16 57/week @ 2024-03-30 11/week @ 2024-04-06

68 downloads per month

MIT license

65KB
2K SLoC

dotium

Crates.io Build

Dot-file management for multiple machines or small teams.

Prerequisites

  • Some shared (private) repository folder like:
    • Private github/gitlab/bitbucket repository (preferred to have better change control)
    • Any sort of file sync: dropbox, owncloud, google-drive, one-drive, ...
  • Rust (optional, but recommended)

Installation

With rust available:

cargo install dotium

Alternatively there is a statically compiled binary on the Releases page. Ensure that the provided checksum checks out before using it:

gunzip dotium.gz
sha256sum -c dotium.sha256sum
chmod 755 dotium

Initialization

To create a basic configuration in ~/.config/dotium with an age-compatible private key to protect sensitive information.

dotium init

Shell completions

Fish:

dotium completions fish >.config/fish/completions/dotium.fish

Basic concepts

  • Any number of dot-files can be created/updated from a dotium-repository
  • A dotium-repository is just a folder containing that is supposed to be shared between machines and/or team mates
  • The contents in the dotium-repository can be either plain text or age-compatible encrypted
    • Therefore a dotium-repository has the concept of a "recipient" (aka user/machine with the necessary keys to decrypt the content)
    • Initially the only recipient is the person creating the repository.
    • A new user/machine has to create a recipient-request which then has to be approved by anyone who is already a recipient (i.e. has fully access to the repository)

Usage

Initialize a brand new repository

cd <repository folder>
dotium init

or

dotium --repository <repository folder> init-repo

... tbd ...

Dependencies

~23–34MB
~484K SLoC