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 height=8 width=8 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
}
"""]]
See also the simpler graphs focusing on [[roles|ikiroles]] and on the [[design|ikidesign]].