Skip to main content

dotbackup

PyPI - Python Version PyPI - Version PyPI - Downloads AUR version

Code style: black Lint: flake8 Imports: isort Test: pytest Codecov

Usually people maintain backup and setup scripts along with their dotfiles. But these scripts always contain a lot of repeat codes, and writing them is not fun! dotbackup and dotsetup are here to help.

With these two tools, you only need to write a simple configuration and they will know how to back up and set up your dotfiles. You can read dotbackup(1) and dotsetup(1) for details.

Highlights

  • Simple configuration.
  • Custom hooks.
  • Detailed logs.

Installation

You can install it from one of these package managers:

If you are using a Debian-based system, you can install the pre-built deb package from the latest release.

Installing from a package manager gives you the two commands - dotbackup and dotsetup, and the manpages. But you can also download this single script: dotbackup.py. In fact, dotbackup and dotsetup are just shortcut commands of dotbackup.py, which means that dotbackup is equivalent to dotbackup.py backup and dotsetup is equivalent to dotbackup.py setup.

Quick Start

Write a simple configuration and place it to ~/.config/dotbackup/dotbackup.yml:

backup_dir: ~/backup
apps:
  vim:
    files: [~/.vimrc]
  nvim:
    files:
      - ~/.config/nvim/init.lua
      - ~/.config/nvim/lua

Do backup:

$ dotbackup
INFO: doing vim backup...
INFO: copying ~/.vimrc to /home/user/backup/.vimrc...
INFO: doing nvim backup...
INFO: copying ~/.config/nvim/init.lua to /home/user/backup/.config/nvim/init.lua...
INFO: copying ~/.config/nvim/lua to /home/user/backup/.config/nvim/lua...

Do setup:

$ dotsetup
INFO: doing vim setup...
INFO: copying /home/user/backup/.vimrc to /home/user/.vimrc...
INFO: doing nvim setup...
INFO: copying /home/user/backup/.config/nvim/init.lua to /home/user/.config/nvim/init.lua...
INFO: copying /home/user/backup/.config/nvim/lua to /home/user/.config/nvim/lua...

Documentation

For more information, please read dotbackup(1) and dotsetup(1).

Show Your Support

If you're using dotbackup, consider adding the badge to your project's README.md:

[![dotbackup-managed](https://img.shields.io/badge/dotbackup-managed-blue)](https://github.com/jaxvanyang/dotbackup)

dotbackup-managed

Metadata

Release files for dotbackup 1.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dotbackup 1.2.3
File Size Uploaded
dotbackup-1.2.3.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dotbackup 1.2.3
File Interpreter ABI Platform
dotbackup-1.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 26.5 kB

Release files / dotbackup-1.2.3.tar.gz

Download URL dotbackup-1.2.3.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
de5fe878680b6784a73078e9a81c610ea419ab121e17d87707fe27d91d8a7469
BLAKE2b-256 checksum
How to use checksums
5e868db99aa9df15c2a1933060ab188e7b54a1e0a1ad86e5f4cb04ee01616d94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 23, 2025.

Transparency log

Release files / dotbackup-1.2.3-py3-none-any.whl

Download URL dotbackup-1.2.3-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f93971c1ebe8b5bcd2be179c25ee12acbf8b96648c5863e15e67ce6a0ffcffc7
BLAKE2b-256 checksum
How to use checksums
c6c557f6ae01cbf00741762015d668b5b20badef2df3c30e3bbe1330a1c69393
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 23, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.3 This release

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page