]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/tips/distributed_wikis.mdwn
fix link to default wiki flow
[ikiwiki.git] / doc / tips / distributed_wikis.mdwn
index 75a2368b11bc88101e062793c08472040a4a2c28..81869a94fe5311d20f1a8db61895e27a27405e08 100644 (file)
@@ -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
@@ -101,9 +148,9 @@ Note that this will also configure CGI so that people can edit the wiki. Note th
 #### Apache configuration
 
     <VirtualHost *:80>
-        ServerName reseaulibre.example.com:80
-        DocumentRoot /var/www/reseaulibre.example.com
-        <Directory /var/www/reseaulibre.example.com>
+        ServerName mirror.example.com:80
+        DocumentRoot /var/www/mirror.example.com
+        <Directory /var/www/mirror.example.com>
             Options Indexes MultiViews ExecCGI
             AllowOverride None
             Order allow,deny
@@ -116,9 +163,9 @@ Note that this will also configure CGI so that people can edit the wiki. Note th
 #### Nginx configuration
 
     server {
-        root /var/www/reseaulibre.example.com/;
+        root /var/www/mirror.example.com/;
         index index.html index.htm;
-        server_name reseaulibre.example.com;
+        server_name mirror.example.com;
 
         location / {
             try_files $uri $uri/ /index.html;
@@ -127,7 +174,7 @@ Note that this will also configure CGI so that people can edit the wiki. Note th
             fastcgi_pass  unix:/tmp/fcgi.socket;
             fastcgi_index ikiwiki.cgi;
             fastcgi_param SCRIPT_FILENAME   /var/www/ikiwiki.cgi;
-            fastcgi_param  DOCUMENT_ROOT      /var/www/reseaulibre.example.com;
+            fastcgi_param  DOCUMENT_ROOT      /var/www/mirror.example.com;
             include /etc/nginx/fastcgi_params;
         }
     }