# Ikiwiki system configuration This website is powered by Ikiwiki. But instead of the normal Ikiwiki setup, each edit results in 2 parallel websites being built - one served purely static and one password-protected serving the static pages + CGI to edit them. Here's a graph of the interaction between the various parts of ikiwiki itself and different kinds of users: [[graph src=""" { // rankdir=LR // rotate=90 center=1 {rank=same; user author designer} // {rank=same; search_query txt_author txt_designer tmpl media} subgraph cluster_clitools { label="Commandline editing" style=dashed txt_designer tmpl media vcs_tmpl_local vcs_txt_local fs_local } subgraph cluster_webtools { label="Web editing" style=dashed txt_author search_query { rank=same browser_user browser_author browser_designer } } {rank=same; search_form txt_form} // {rank=same; txt_stored media_stored tmpl_stored} // {rank=same; search_db vcs_txt vcs_tmpl fs} subgraph cluster_storage { label="Server storage" style=dashed vcs_tmpl vcs_txt fs search_db txt_stored tmpl_stored media_stored } {rank=same; iki_engine search_engine} {rank=same; webpages webpages_admin webpages_searchresult} /* roles */ user [shape=house, label="Any user"] author [shape=house, label="Author"] designer [shape=house, label="Web designer"] /* input data types */ search_query [shape=plaintext, label="Search query"] txt_author [shape=plaintext, label="Markdown text"] txt_designer [shape=plaintext, label="Markdown text"] media [shape=plaintext, label="Graphics files"] tmpl [shape=plaintext, label="Html templates"] browser_user [label="Web browser"] browser_author [label="Web browser"] browser_designer [label="Web browser"] vcs_txt_local [shape=egg, label="Git repository"] vcs_tmpl_local [shape=egg, label="Git repository"] fs_local [shape=egg, label="Filesystem"] txt_form [shape=box, label="Web text editor (Ikiwiki)"] search_form [shape=box, label="Search form (Ikiwiki)"] search_db [shape=egg, label="Search index (Hyper Estraier)"] vcs_txt [shape=egg, label="VCS repository (Git)"] vcs_tmpl [shape=egg, label="VCS repository (Git)"] fs [shape=egg, label="Filesystem"] /* stored data types */ txt_stored [shape=plaintext, label="Version-controlled Markdown text"] media_stored [shape=plaintext, label="Graphics files"] tmpl_stored [shape=plaintext, label="Version.controlled html templates"] iki_engine [shape=box, label="Html renderer (Ikiwiki)"] search_engine [shape=box, label="Search engine (Hyper Estraier)"] webpages [label="Plain web pages"] webpages_admin [label="Wiki pages"] webpages_searchresult [label="Search results", style=dotted] user -> search_query -> browser_user -> search_form -> search_engine -> webpages_searchresult search_db -> search_engine search_db -> iki_engine [dir=back] author -> txt_author -> browser_author -> txt_form -> vcs_txt -> txt_stored -> iki_engine -> webpages iki_engine -> webpages_admin designer -> txt_designer -> browser_designer -> txt_form txt_designer -> vcs_txt_local vcs_txt_local -> vcs_txt [dir=both] designer -> tmpl -> vcs_tmpl_local vcs_tmpl_local -> vcs_tmpl [dir=both] vcs_tmpl -> tmpl_stored -> iki_engine designer -> media -> fs_local fs_local -> fs [dir=both] fs -> media_stored -> iki_engine } """]]