From e75fa67406052712476e3aa4d798cf88ec5893d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= Date: Fri, 18 Apr 2014 11:28:21 -0400 Subject: add graphical explanations of various decentralisation schemes for ikiwiki the wiki_edit_flow.svg file is slightly changed to make the box designate the server boundaries so it can be reused in a coherent manner in the other graphics. the distributed_wikis page still needs an overhaul to clarify it's about the third and fourth setups, but that will be easier to do in separate commits. --- ...pository_and_web_server_on_different_hosts.mdwn | 2 + .../separate-webserver.svg | 714 +++++++++ doc/tips/distributed_wikis.mdwn | 47 + doc/tips/distributed_wikis/decentralized_wikis.svg | 1511 ++++++++++++++++++++ doc/tips/distributed_wikis/ping-setup.svg | 1064 ++++++++++++++ 5 files changed, 3338 insertions(+) create mode 100644 doc/tips/Git_repository_and_web_server_on_different_hosts/separate-webserver.svg create mode 100644 doc/tips/distributed_wikis/decentralized_wikis.svg create mode 100644 doc/tips/distributed_wikis/ping-setup.svg (limited to 'doc/tips') diff --git a/doc/tips/Git_repository_and_web_server_on_different_hosts.mdwn b/doc/tips/Git_repository_and_web_server_on_different_hosts.mdwn index 58940b89f..c1529c7a0 100644 --- a/doc/tips/Git_repository_and_web_server_on_different_hosts.mdwn +++ b/doc/tips/Git_repository_and_web_server_on_different_hosts.mdwn @@ -3,6 +3,8 @@ server located at different hosts. Here's a description for such a setup, using password-less SSH as a way of communication between these two hosts. +[[!img separate-webserver.svg size=490x align=right]] + Git server ========== diff --git a/doc/tips/Git_repository_and_web_server_on_different_hosts/separate-webserver.svg b/doc/tips/Git_repository_and_web_server_on_different_hosts/separate-webserver.svg new file mode 100644 index 000000000..e9ce3bd2c --- /dev/null +++ b/doc/tips/Git_repository_and_web_server_on_different_hosts/separate-webserver.svg @@ -0,0 +1,714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + working clones + repository + srcdir + destdir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <html> + + + + + + + + + + + + + + + ikiwiki.cgi + + post-updatehook + ikiwiki.cgipush + .git + .git + .git + .git + .git + web-sideedit + automaticrebuild + gitpull + gitpush + + + diff --git a/doc/tips/distributed_wikis.mdwn b/doc/tips/distributed_wikis.mdwn index 29273ada1..4e084b256 100644 --- a/doc/tips/distributed_wikis.mdwn +++ b/doc/tips/distributed_wikis.mdwn @@ -5,6 +5,53 @@ git, let's explore some possibilities for distributed wikis. [[!toc levels=2]] +## Overview + +There are three possible level of decentralisation: + + 0. [[default setup|rcs/git]], no decentralisation + 1. [[a simple HTML mirror|tips/Git_repository_and_web_server_on_different_hosts/]] + 2. separate `srcdir`, still requires a central bare repo - uses [[plugin/pinger]] + 3. completely distinct ikiwiki installs, synchronised with + [[plugin/gitpush]] + +Here's a graphic overview of those: + +### Default setup - one central server + +[[!img rcs/git/wiki-edit-flow.svg size=490x align=center]] + +In the default setup, all the resources are stored on the central +servers. Users can still clone and edit the git repo by hand and +contribute by git, but otherwise all the changes happen on a single +web interface. + +### Separate webserver and git repository + +[[!img tips/Git_repository_and_web_server_on_different_hosts/separate-webserver.svg align=center]] + +In the configuration described in +[[tips/Git_repository_and_web_server_on_different_hosts]], the +webserver is separate from the git repository. The webserver part +hosts the HTML files, the ikiwiki [[cgi]] but everything else is on +the git server. + +### Decentralised pinger setup + +[[!img ping-setup.svg align=center]] + +In this configuration, the mirrors all have their own `srcdir`, but +still need to push and pull from the same central bare git repo. The +[[plugins/pinger]] plugin is used to ping the mirrors from the central +server on edits. + +### Fully decentralised setup + +[[!img .svg align=center]] + +In this configuration, each wiki is fully independent and pushes its +changes to other wikis using the [[plugins/gitpush]] plugin. + ## a wiki mirror The simplest possibility is setting up a mirror. If a wiki exposes its git diff --git a/doc/tips/distributed_wikis/decentralized_wikis.svg b/doc/tips/distributed_wikis/decentralized_wikis.svg new file mode 100644 index 000000000..f74e07023 --- /dev/null +++ b/doc/tips/distributed_wikis/decentralized_wikis.svg @@ -0,0 +1,1511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + working clones + repository + srcdir + destdir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <html> + + + + + + + + + + + + + + + ikiwiki.cgi + + post-updatehook + ikiwiki.cgipush + .git + .git + .git + .git + .git + web-sideedit + automaticrebuild + gitpull + gitpush + + + gitpushplugin + + + + + + + + working clones + repository + srcdir + destdir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <html> + + + + + + + + + + + + + + + ikiwiki.cgi + + post-updatehook + ikiwiki.cgipush + .git + .git + .git + .git + .git + web-sideedit + automaticrebuild + gitpull + gitpush + + diff --git a/doc/tips/distributed_wikis/ping-setup.svg b/doc/tips/distributed_wikis/ping-setup.svg new file mode 100644 index 000000000..2d971c412 --- /dev/null +++ b/doc/tips/distributed_wikis/ping-setup.svg @@ -0,0 +1,1064 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + working clones + repository + srcdir + destdir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <html> + + + + + + + + + + + + + + + ikiwiki.cgi + + post-updatehook + ikiwiki.cgipush + .git + .git + .git + .git + .git + web-sideedit + automaticrebuild + gitpull + gitpush + + + + srcdir + destdir + + + + + + + + + + + + + + + + + + + <html> + + + + + + + + + + + + + + + ikiwiki.cgi + + pingee + ikiwiki.cgipush + .git + web-sideedit + automaticrebuild + pinger + + -- cgit v1.2.3