Mercurial > wikked
diff docs/pages/03_configuration.md @ 382:3a61f45702cb
docs: Add documentation site.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 04 Oct 2015 08:02:43 -0700 |
parents | |
children | c19b8cc11938 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/pages/03_configuration.md Sun Oct 04 08:02:43 2015 -0700 @@ -0,0 +1,111 @@ +--- +title: Configuration +icon: cog +--- + +Wikked can be configured with a few files: + +* `.wikirc`: this file, located at the root of your wiki, can be submitted into + revision control, so that various clones of the wiki have the same options + where it makes sense. + +* `.wiki/wikirc`: some options, however, don't have to be the same depending on + where you run the wiki. This file is contained in the ignored-by-default + `.wiki` folder, and as such is meant to store options valid only for a local + installation. + +* `.wiki/app.cfg`: Wikked runs on top of [Flask][]. This file, if it exists, + will be passed on to Flask for more advanced configuration scenarios. See the + [Flask configuration documentation][1] for more information. + + [flask]: http://flask.pocoo.org/ + [1]: http://flask.pocoo.org/docs/0.10/config/ + + +The `wikirc` file is meant to be written with an INI-style format: + +``` +[section1] +foo=bar +something=some other value + +[section2] +blah=whatever +``` + + +## Main options + +The main Wikked options should be defined in a `[wiki]` section. Here are the +supported options: + +* `main_page` (defaults to `Main page`): the name of the page that should be + displayed when people visit the root URL of your wiki. Page names are case + sensitive so watch out for the capitalization. + +* `templates_dir` (defaults to `Templates`): by default, the `include` statement + (see the [syntax page][2]) will first look into a templates directory for + a template of the given name. This is the name of that folder. + +* `indexer` (defaults to `whoosh`): The full-text indexer to use. Only 2 indexers are currently + supported, `whoosh` (for [Whoosh][]) and `elastic` (for [Elastic Search][elastic]). + +* `database` (defaults to `sql`): The database system to use for the cache. + Wikked currently only supports SQL, but see the next option below. + +* `database_url` (defaults to `sqlite:///%(root)s/.wiki/wiki.db`): the URL to + pass to [SQLAlchemy][] for connecting to the database. As you can see, the + default value will read or create an [SQLite][] file in the `.wiki` folder. If + you want to use a proper SQL server you can specify its URL and login + information instead. See the [SQLAlchemy connection string format][3] for more + information. + + [2]: {{pcurl('syntax')}} + [3]: http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls + [SQLite]: http://sqlite.org + [SQLAlchemy]: http://sqlalchemy.org + [whoosh]: https://bitbucket.org/mchaput/whoosh/wiki/Home + [elastic]: http://www.elasticsearch.org/ + + +## Permissions + +The `wikirc` file can also be used to define user permissions. This is done with +the `[users]` section: + + [users] + dorothy=PASSWORD_HASH + +The `PASSWORD_HASH` is, well, a password hash. You can generate one by using the +`wk newuser` command: + + $ wkdev newuser dorothy + Password: ******** + dorothy = $2a$12$7FR949jt9zq5iNwY5WAZAOzD7pK3P0f/NnrKHAys17HT1Omuk2Asu + + (copy this into your .wikirc file) + +Once you have some users defined, you can give them some permissions, using the +`[permissions]` section. Supported settings are: + +* `readers`: users able to read the wiki. +* `writers`: users able to edit the wiki. + +Multiple usernames must be separated by a comma. You can also use `*` for "all +users", and `anonymous` for unauthenticated visitors. + +The following example shows a wiki only accessible to registered users, and that +can only be edited by `dorothy` and `toto`: + + [permissions] + readers = * + writers = dorothy,toto + +Those settings can also be overriden at the page level using the `readers` and +`writers` metadata. So you can still have a public landing page for the +previously mentioned private wiki by adding this to `Main page.md`: + + {%raw%} + {{readers: *,anonymous}} + {%endraw%} +