aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 30b4dd74be8649dddd881414aa6ac9a4fadcdd6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Crypted backups

## About
This collection of services, timers and scripts enables a precise - gpg encrypted - backup of certain configuration data.  
System-wide and user-specific backups are possible.  
Crypted-backups by default uses volatile file-systems (*tmpfs*) as a working space.  
**Note:** *Depending on the size of your (singular) backups and available RAM you might want to consider moving this working space somewhere else.*

## Features
Backups of the following program settings/profiles/folders are possible:  

### System
* aura
* bitlbee
* git
* mail & mailman
* mariadb
* /var/log
* /var/log/journal
* websites

### User
* firefox
* thunderbird

### Compression
At the moment crypted-backups only supports [xz](http://tukaani.org/xz/) compression.  

## Requirements
* xz
* gnupg

## Configuration
Two forms of configuration files are used: One for system-wide services and one for user services.  
Both are documented and show examples on how to setup the variables.

### System
The configuration file for system services can be found in **/etc/crypted-backups**.

### User
The configuration file for user services is read first from **$HOME/.crypted-backups** followed by **$HOME/.config/crypted-backups**. Environment variables set in the first file will be replaced by the ones set in the latter, if present.
Make sure to copy and modify a plain one from your system skeleton folder (**/etc/skel/.crypted-backups**).

## Usage
Crypted-backups is made available through systemd services and timers.
### Example 1: Activating a system backup with the help of a timer
In this example the system backup for the bitlbee configuration will be started by a timer.
This timer unit has the same name as its service.  

    /usr/lib/systemd/system/backup-bitlbee.service
    /usr/lib/systemd/system/backup-bitlbee.timer
Using *systemctl* one can easily start and stop timer units belonging to a service. As root:  

    systemctl start backup-bitlbee.timer
    systemctl stop backup-bitlbee.timer
To make the system boot with this timer started, enable it. Again, as root:  

    systemctl enable backup-bitlbee.timer
    systemctl disable backup-bitlbee.timer
When the timer's conditions are met, the service *backup-bitlbee.service* is started automatically. Much like cron.  
Unlike cron, you can also start and stop the service separately:  

    systemctl start backup-bitlbee.service
    systemctl stop backup-bitlbee.service
**Note:** *Due to systemd's architecture you can copy/paste and modify the given timer from **/usr/lib/systemd/system/** and put it to **/etc/systemd/system**. The latter will always have precedence over the former. Same counts for services!*

### Example 2: Activating a user backup with the help of a timer
In this example the user backup for a user's firefox profile will be started by a timer (like in the example above).
The user service and timer units reside in a different location:  

    /usr/lib/systemd/user/backup-firefox.service
    /usr/lib/systemd/user/backup-firefox.timer
Using *systemctl* one can easily start and stop timer units belonging to a service. This time, as your user:  

    systemctl --user start backup-firefox.timer
    systemctl --user stop backup-firefox.timer
To make your user environment start with this timer started, enable it. Again, as your user:  

    systemctl --user enable backup-firefox.timer
    systemctl --user disable backup-firefox.timer
When the timer's conditions are met, the service *backup-firefox.service* is started (as your user) automatically.  
This service can of course also just be started and stopped separately from the timer:  

    systemctl --user start backup-firefox.service
    systemctl --user stop backup-firefox.service
**Note:** *Due to systemd's architecture you can copy/paste and modify the given timer from **/usr/lib/systemd/user/** and put it to **/etc/systemd/user**. The latter will always have precedence over the former. Same counts for services!*  
**Note:** *To minimize the size of your backups, you might want to consider using tools like [profile-cleaner](https://github.com/graysky2/profile-cleaner) to shrink the size of your program profiles.*

## TODO
* Using [pixz](https://github.com/vasi/pixz)
* Using [rsync](https://rsync.samba.org/) for backup mirroring

## License
Crypted-backups is licensed under the GPLv3.