Skip to content

Commit

Permalink
review storage hook git part
Browse files Browse the repository at this point in the history
  • Loading branch information
pbiering committed Nov 23, 2024
1 parent 6f2c103 commit 4781b48
Showing 1 changed file with 26 additions and 10 deletions.
36 changes: 26 additions & 10 deletions DOCUMENTATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -578,14 +578,30 @@ authentication over HTTP.
This tutorial describes how to keep track of all changes to calendars and
address books with **git** (or any other version control system).

The repository must be initialized by running `git init` in the file
system folder. Internal files of Radicale can be excluded by creating the
file `.gitignore` with the following content:
The repository must be initialized in the collection base directory
of the user running `radicale` daemon.

```gitignore
```bash
## assuming "radicale" user is starting "radicale" service
# change to user "radicale"
su -l -s /bin/bash radicale

# change to collection base directory, assumed /var/lib/radicale/collections
cd /var/lib/radicale/collections

# initialize git repository
git init

# set user and e-mail, here minimum example
git config user.name "$USER"
git config user.email "$USER@$HOSTNAME"

# define ignore of cache/lock/tmp files
cat <<'END' >.gitignore
.Radicale.cache
.Radicale.lock
.Radicale.tmp-*
END
```

The configuration option `hook` in the `storage` section must be set to
Expand All @@ -598,16 +614,16 @@ git add -A && (git diff --cached --quiet || git commit -m "Changes by \"%(user)s
The command gets executed after every change to the storage and commits
the changes into the **git** repository.

For the hook to not cause errors either **git** user details need to be set and match the owner of the collections directory or the repository needs to be marked as safe.

When using the systemd unit file from the [Running as a service](#running-as-a-service) section this **cannot** be done via a `.gitconfig` file in the users home directory, as Radicale won't have read permissions!
Log of `git` can be investigated using

In `/var/lib/radicale/collections/.git` run:
```bash
git config user.name "radicale"
git config user.email "[email protected]"
su -l -s /bin/bash radicale
cd /var/lib/radicale/collections
git log
```

In case of error messages in log, check SELinux status and related audit log and file/directory permissions.

## Documentation

### Configuration
Expand Down

0 comments on commit 4781b48

Please sign in to comment.