Dokuwiki: Difference between revisions
imported>Fadenb m →Templates: typo fix |
m explained the „no need for databases" |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[https://www.dokuwiki.org DokuWiki] is a web application and simple Wiki software for creating documentation and editable pages in markdown language. Compared to other Wikis, it is more minimal and only depends on PHP and file access without any need for databases. | [https://www.dokuwiki.org DokuWiki] is a web application and simple Wiki software for creating documentation and editable pages in markdown language. Compared to other Wikis, it is more minimal and only depends on PHP and file access without any need for databases. It stores all information in plain text files to be available even without the DokuWiki software (e.g. to read directly from backup). | ||
== Installation == | == Installation == | ||
Line 8: | Line 8: | ||
services.dokuwiki.sites."localhost" = { | services.dokuwiki.sites."localhost" = { | ||
enable = true; | enable = true; | ||
settings.title = "My Wiki"; | |||
}; | }; | ||
</nowiki>}} | </nowiki>}} | ||
Line 18: | Line 16: | ||
== Configuration == | == Configuration == | ||
Besides several options which are exposed by the DokuWiki module in NixOS, you can also use <code> | Besides several options which are exposed by the DokuWiki module in NixOS, you can also use <code>settings</code> option to add custom options to your DokuWiki configuration. See the [https://www.dokuwiki.org/config upstream documentation] for available options. | ||
=== Templates === | === Templates === | ||
Line 27: | Line 25: | ||
let | let | ||
dokuwiki-template-mindthedark = pkgs.stdenv.mkDerivation { | dokuwiki-template-mindthedark = pkgs.stdenv.mkDerivation rec { | ||
name = "mindthedark"; | name = "mindthedark"; | ||
src = pkgs. | version = "2021-12-24"; | ||
src = pkgs.fetchFromGitHub { | |||
sha256 = " | owner = "MrReSc"; | ||
repo = "MindTheDark"; | |||
rev = version; | |||
sha256 = "sha256-8wWwwAYYQcUYzHpnSKOubZh7UzwfxvWXXNU7CUAiS3o="; | |||
}; | }; | ||
installPhase = "mkdir -p $out; cp -R * $out/"; | installPhase = "mkdir -p $out; cp -R * $out/"; | ||
}; | }; | ||
Line 40: | Line 40: | ||
services.dokuwiki.sites."localhost" = { | services.dokuwiki.sites."localhost" = { | ||
templates = [ dokuwiki-template-mindthedark ]; | templates = [ dokuwiki-template-mindthedark ]; | ||
settings = { | |||
template = "mindthedark"; | |||
tpl.mindthedark.autoDark = true; | |||
}; | |||
}; | }; | ||
}; | }; | ||
Line 48: | Line 49: | ||
Please note that you'll have to manually update the tempalte source and checksum in case there's a new version. | Please note that you'll have to manually update the tempalte source and checksum in case there's a new version. | ||
=== Plugins === | |||
The following example packages the [https://www.dokuwiki.org/plugin:edittable edittable plugin] | |||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | |||
let | |||
dokuwiki-plugin-edittable = pkgs.stdenv.mkDerivation { | |||
name = "edittable"; | |||
src = pkgs.fetchzip { | |||
url = "https://github.com/cosmocode/edittable/archive/master.zip"; | |||
sha256 = "sha256-l+GZdFGp6wyNuCbAZB9IbwpY5c/S4vSW12VP0mJHKXs="; | |||
}; | |||
sourceRoot = "."; | |||
installPhase = "mkdir -p $out; cp -R edittable-master/* $out/"; | |||
}; | |||
in { | |||
services.dokuwiki.sites."localhost" = { | |||
plugins = [ dokuwiki-plugin-edittable ]; | |||
}; | |||
}; | |||
</nowiki>}} | |||
The plugin is enabled automatically. Note that in case of this plugin, we strip the root directory called ''edittable-master'' and only copy the plugin files to the ''out''-folder. Please note that you'll have to manually update the plugin source and checksum in case there's a new version. | |||
=== Clean URLs === | === Clean URLs === | ||
Line 54: | Line 81: | ||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
services.dokuwiki.sites."localhost". | services.dokuwiki.sites."localhost".settings = { | ||
userewrite = true; | |||
}; | }; | ||
</nowiki>}} | </nowiki>}} | ||
Line 67: | Line 93: | ||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
services.dokuwiki.sites."localhost". | services.dokuwiki.sites."localhost".settings = { | ||
acluse = false; | |||
}; | |||
</nowiki>}} | </nowiki>}} | ||
Line 77: | Line 105: | ||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
services.dokuwiki.sites."localhost". | services.dokuwiki.sites."localhost".settings = { | ||
baseurl = "https://example.org"; | |||
}; | }; | ||
</nowiki>}} | </nowiki>}} | ||
== See also == | |||
* [[Mediawiki]], PHP- and web-based wiki software. | |||
* [[Outline]], a modern web based wiki and knowledge base for teams. | |||
[[Category:Server]] | |||
[[Category:Web Applications]] | [[Category:Web Applications]] |