Make sure the dimensions of your logo image or text fit into the layout ofthe theme(s) your wiki users are using. If you would like to customize some parts, you have to copy the built-insrc/moin/templates/snippets.html file and save it in the wiki_local directory so moincan use your copy instead of the built-in one. Customizing a wiki usually requires adding a few files that contain custom templates,logo image, CSS, etc. This file will be initially copied to yourwiki path when you create a new wiki and wikiconfig.py is missing. A real-life example of a wikiconfig.py can be found in thesrc/moin/config directory.
Within wikiconfig, ACLs are specifiedper namespace and storage backend (see storage backend docs for details). Hardening security implies that there will be a registration and login process that enablesindividual users to gain privileges. Moin’s default configuration makes use of hard security to prevent unwanted spam.Wiki administrators may soften security by reconfiguring the default ACLs. To help users choose reasonable passwords, Moin has a simple built-inpassword checker that is enabled by default and does some sanity checks,so users don’t choose easily crackable passwords. When using unencrypted connections, wiki users are advised to make sure theyuse unique credentials and not reuse passwords that are used for other purposes.
With LDAPAuth you can authenticate users against a LDAP directory or MS Active Directory service. To try it out, change configuration, restart moin and then use some non-ASCIIusername (like with german umlauts or accented characters). Both then gets transmitted to moin and itis compared against the password hash stored in the user’s profile. If changes toviews are required, copy additional template files.
Adding XStatic Packages
This type of ACL controls access to content stored in the wiki. Higher values provide bettersecurity but slower performance. New passwords are hashed using Argon2id (via argon2-cffi),a modern memory-hard algorithm recommended by security experts. We recommend you make sure the connections are encrypted, like with https or VPNor an ssh tunnel. If moin does notcrash (log a Unicode Error), you have likely found the correct coding. Browsers then usually show some login dialogue to the user,asking for username and password.
While wikis with a small user community may functionwith ACLs specifying only usernames, larger wikis will make use of ACLs that referencegroups or lists of usernames. These legacy hashes areautomatically upgraded to Argon2id when users log in successfully. Moin never stores wiki user passwords in clear text, but uses strongcryptographic hashes.
Folders and files
- Mywiki may be created as asubdirectory of myvenv or elsewhere.
- Secrets are long random strings and not a reuse of any of your passwords.Don’t use the strings shown below, they are NOT secret as they are part of themoin documentation.
- Moin’s default configuration makes use of hard security to prevent unwanted spam.Wiki administrators may soften security by reconfiguring the default ACLs.
- With LDAPAuth you can authenticate users against a LDAP directory or MS Active Directory service.
- If “Idiot” is currently logged in and moin wants to know whether he may write,it will find no match in the first entry, but the second entry will match.
Please note that you must give the correct character set so that moincan decode the username to unicode, if necessary. This is the default authentication moin uses if you don’t configure somethingelse. Note the directory structure under the other existingthemes. In many cases, those external static files are maintained by someone else (like jQueryJavaScript library or larger JS libraries) and we definitely do not want to mergethem into our project. The CMS theme replaces the wiki navigation links used by editors andadministrators with a few links to the most important items within your wiki.
- At the bottom of your wiki pages, usually some text and image links are shownpointing out that the wiki runs MoinMoin, uses Python, that MoinMoin is GPL licensed, etc.
- If you would like to customize some parts, you have to copy the built-insrc/moin/templates/snippets.html file and save it in the wiki_local directory so moincan use your copy instead of the built-in one.
- Dozens of organizations use MoinMoin to run public wikis, including free software projects Ubuntu, Apache, Debian, and FreeBSD.
- Logging is highly configurable using the logging module from Python’s standard library.
- If “SuperMan” is currently logged in and moin wants to know whether he maydestroy, it’ll find a match in the first entry, because the name matches and permissionin question matches.
This makes it easy to manipulate the content in a text editor on the server if necessary, including managing revisions if the wiki gets attacked by spammers. MoinMoin’s storage mechanism is based on flat files and folders, rather than a database. If you have trouble with any web server configuration, please try readingthe web server’s documentation. By default, logging is configured to emit output to stderr. Please also vegas casino apk download check the logging configuration example in contrib/logging/email.
stores backend
As you might know, many users are bad at choosing reasonable passwords and someare tempted to use easily crackable passwords. For public wikis with very low security / privacy needs, it might not be neededto encrypt the content transmissions, but there is still an issue for thecredential transmissions. AuthLog is not a real authenticator in the sense that it authenticates (logs in) ordeauthenticates (logs out) users.
Adding CSS
MoinMoin offers a basic functionality for setting CSP headers and logging CSP reportsfrom client browsers. The dict backend provides a means for translating phrases in documentation through theuse of the GetVal macro. To achievemaximum benefit, some advance planning is required to determine the kind and namesof groups suitable for your wiki. If you don’t configure these secrets, moin will detect this and reuse Flask’sSECRET_KEY for all secrets it needs. Secrets are long random strings and not a reuse of any of your passwords.Don’t use the strings shown below, they are NOT secret as they are part of themoin documentation. Because a match has been made,the third entry is not processed.
One advantage of using this directory and following the examples belowis that MoinMoin will serve the files. The preview and sql subdirectories are created when auser edits a wiki item. Mywiki may be created as asubdirectory of myvenv or elsewhere. MoinMoin is able to either use a built-in search engine (rather slow, but no dependencies) or a Xapian-based indexed search engine (faster, and can also search old revisions and attached files).
Credits and Credit Logos
%(backend)s placeholder will be replaced by the namespace forthe respective backend. Stores is the name of the backend, followed by a colon, followed by a storespecification. The uri depends on the kind of storage backend and stores you want to use,see below. With the option “content_security_policy_limit_per_day”, admins can limit the numberof reports in the log per day to avoid log overflow. The behavior can be configured with the options“content_security_policy” and “content_security_policy_report_only”.
If no configuration is provided, or if the provided configuration file cannot be loaded, Moin will fall back to a built-in default configuration, which logs to stderr at the INFO level. Make sure to use an absolute path that points to a valid logging configuration file. Sample logging configurations can also be found in the contrib/logging/ directory. At account creation time, Moin can require new users to verify their emailaddress by clicking a link that is sent to them. Edit the above renaming or deleting the lines with foo and bar and adding the desired custom namespaces.Be sure all the names in the namespaces dict are also added to the acls dict.
Saved searches
The user interface or html elements that often need customization aredefined as macros in the template file snippets.html. To accomplish this, a directory named “wiki_local”is provided. Multipleinstances of mywiki can be created with different names. After activating the above venv, moin create-instance -p creates the structure below. When editing Python files, be careful with indentation, only use multiples of4 spaces to indent, and no tabs! The preferable way would be to create a script to create a list of all the URLs to grab, excluding for example the non-sequential diffs.
If you find sites not included in the list below, please add them. This especially happens with academic wikis. Often there will be multiple MoinMoin wikis on one host, so try to enumerate the host to find more. The original MoinMoin “DesktopEdition” is significantly easier to use, because it uses a built-in Web server to display pages, requiring only Python to be installed on the host machine. The CamelCase is activated by default and MoinMoin does not allow disabling CamelCase links except on a one-off basis. It also uses the idea of separate parsers, e.g., for parsing the wiki syntax, and formatters, e.g., for outputting HTML code, with a SAX-like interface between the two.
The CSP configuration depends on the individual wiki landscape and the capabilitiesof web browsers vary. The wiki server must be restarted to reflect updates made to ConfigGroupsand CompositeGroups. There is a special ACL entry, “Default”, which expands itself in-place to thedefault ACL.
moinwiki/moin
If one of these options is set to “”, the corresponding header is not set.In the default configuration, no policy is set or enforced, but a header is addedto report CSP violations in the log. The ConfigDicts backend uses dicts defined in the configuration file. The ConfigGroups backend uses groups defined in the configuration file. Use of groups will reduce the administrative effort required to maintain ACL rules,especially in wikis with a large community of users.
This file will be loaded automatically during startup and takes precedence over all other methods. Logging is highly configurable using the logging module from Python’s standard library. This works well for the built-in server(logs will appear in the console) or for Apache2 and similar setups (logs go to error.log). All of the values in thenamespaces dict must be included as keys in the backends dict. See the create_mapping method in thenamespaces section below.
If “Idiot” is currently logged in and moin wants to know whether he may write,it will find no match in the first entry, but the second entry will match. If moin wants to know whether SuperMan may write, the first entry will not matchon both sides, so moin will proceed and look at the second entry. If “SuperMan” is currently logged in and moin wants to know whether he maydestroy, it’ll find a match in the first entry, because the name matches and permissionin question matches. If moin wants to know whether he may destroy,the answer will be “yes”, as destroy is one of the capabilities/rights listedon the right side of this entry. If “SuperMan” is currently logged in and moin processes this ACL, it will finda name match in the first entry. In addition to the groups provided by the group backend(s), there are somespecial group names available within ACLs.
Using the example above, if import19 is usedto convert a moin 1.9 wiki to moin 2.0, then an item foo would be renamed to foo/fooHome. If your wiki will be using custom namespaces then you cannot use thecreate_simple_mapping method. Fs is the type of the store, followed by a specificationthat makes sense for the fs (filesystem) store, i.e. a path with placeholders. MoinMoin supports storage backends as different ways of storing wiki items.
As wiki items are created and updated, the default configuration may be overriddenon specific items by setting an ACL on that item. ACLs enable wiki administrators and possibly users to choosebetween soft security and hard security. For users configuring GivenAuth on Apache, an example virtual host configurationis included at contrib/deployment/moin-http-basic-auth.conf Copy an info.json file to your theme directory and edit as needed.Create a file named theme.css in the src/moin/themes//static/css/ directory. To add a new theme, add a new directory under src/moin/themes/ where the directoryname is the name of your theme.
If moin wants to knowwhether he may write, the answer will be “yes”. The write capability includes the authority to delete an item since any user with write authoritymay edit and remove or replace all content. You have to be very careful with permissionchanges happening as a result of changes in the hierarchy, such as when you create,rename or delete items. The default ACLis only used if no ACL is specified in the metadata of the target item. As shown above, before, default and after ACLs are specified.
