DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:gitbacked

This is an old revision of the document!


gitbacked Plugin

Compatible with DokuWiki

  • 2024-02-06 "Kaos" unknown
  • 2023-04-04 "Jack Jackrum" yes
  • 2022-07-31 "Igor" yes
  • 2020-07-29 "Hogfather" yes

plugin Sync/store pages and media in a git repository. So you can show/edit your human-readable wiki dir (e.g. documentation) with DokuWiki and store it together with your source code in the same git repository.

Last updated on
2023-05-07
Provides
Action
Repository
Source
Conflicts with
git

Similar to git

Tagged with collaboration, git, storage

Installation

Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually. For all releases and release notes look at gitbacked releases.

Suggested Directories / Structure

To avoid conflicts with the git repository and the DokuWiki files/directories we suggest to use a different directory structure.

For example, add the following setting values to your local.php in the global conf directory of your DokuWiki Installation.

  • $conf['datadir'] = './data/gitrepo/wiki/pages';
  • $conf['mediadir'] = './data/gitrepo/wiki/media';

Attention: Do not forget to move the original pages and media folders (./data/pages and ./data/media) to the new location (./data/gitrepo/wiki/), otherwise DokuWiki will not find any pages and media files.

If you use this structure, you have to setup the corresponding paths for this plugin as well (in the Admin-Area of DokuWiki in the section gitbacked). Set:

  • repoPath to ./data/gitrepo (relative to the dokuwiki root folder or absolute path)

This means, that all wiki related files are located in the directory wiki in your git repository.
repoWorkDir had to be configured in the past. This is now empty by default (since 2023-03-07). repoWorkDir is passed to git as –work-tree option only if it is configured. You should configure this only if you are aware about the impact. repoPath and repoWorkDir can be configured as absolute path names also since release 2023-03-07.

The plugin creates a new repository in the specified repoPath, if needed. If you want to use an existing git repository, clone the repository to e.g. /tmp/yourrepo. Subsequently, copy all data (don't forget the .git folder) from /tmp/yourrepo to ./data/gitrepo.

Congrats! You are finished and every page edit is committed to the git repository.

If you want to push all changes to the remote origin, enable the pushAfterCommit setting in the next section.

Configuration and Settings

  • pushAfterCommit

If activated, every commit (page edit) is pushed to the remote repository. Activate this flag if you already cloned from a remote location and the git environment is configured correctly (attention: it has to be configured for the webserver/php user)

  • periodicPull

If activated, the system executes a pull request and updates the local git repository. Thus, external commits on page files are merged from the remote.

  • periodicMinutes

Defines the period (in minutes) for the periodic pull request executions.

  • commitMsg, commitMsgDel, commitMediaMsg, commitMediaMsgDel

The template strings which are used for the different commit messages (page edits, media edits, page deletion, media deletion). The variables %page%,%media%, %summary% and %user% can be used and are replaced with the corresponding values during the commit process.

  • repoPath

The path to your git repository (root) – set to the savedir by default (./data).
This must be configured either as a relative path (relative to the savedir) or as an absolute path.
Absolute path configuration is supported since release 2023-03-07.

  • repoWorkDir

This path is passed to the git command as the –work-tree commandline option if it is configured.
It can be configured as relative path (relative to the savedir) or as an absolute path.
Since release 2023-03-07 you should configure this only if you are aware about the impact.

  • ignorePaths

Paths or files (comma separated) that will be ignored and not added by git (currently simple wildcard string matching of paths is performed).

  • gitPath

Path to the git binary (if empty, the default “/usr/bin/git” will be used).

  • addParams

Specify additional parameters for the git binary. For example, if you cannot set default git configuration values for the webserver's system user you can add some basic information by specifying additional parameters. e.g. -c http.sslVerify=false -c user.email="<%mail%>" -c user.name="%user%" deactivates the SSL certificate check and specify the user's email and name which are used for the commits. The value in addParams is placed directly after the git binary when executing some git command. The variables %mail% and %user% can be used and are replaced with the corresponding values before being passed on to git.

Known Bugs and Issues

plugin/gitbacked.1683493842.txt.gz · Last modified: 2023-05-07 23:10 by mhoffrogge

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki