moinwiki moin: MoinMoin Wiki Development 2 0+, unstable, for production please use 1.9.x.

Moinmoin 2.0, based on Python 3.5, is not yet released (as of November 2023), and “development is very slow going,” according to their Python3 support page. The current release of Moinmoin, 1.9.11, is written in Python 2.7 and is not slated to be ported to Python 3. Dozens of organizations use MoinMoin to run public wikis, including free software projects Ubuntu, Apache, Debian, and FreeBSD. MoinMoin is a wiki engine implemented in Python, initially based on the PikiPiki wiki engine. Much of the informationyou find in the wiki refers to Moin 1.9 and does not apply to Moin2. MoinMoin is an easy-to-use, full-featured, and extensible wiki software packagewritten in Python.

Mail configuration

Within wikiconfig, ACLs are specifiedper namespace and storage backend (see storage vegas casino apk download 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.

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.

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.

moinwiki/moin

For many themes, modifying the files noted above will be sufficient. Optionally, moin can display avatar images for the users, using gravatar.comservice. This is recommended to allow your users to immediately recognize which wiki site they are currently on. Simple customizations using CSS can be made by providing a file named custom.cssin the wiki_local subdirectory.

  • If you don’t configure these secrets, moin will detect this and reuse Flask’sSECRET_KEY for all secrets it needs.
  • 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.
  • Within wikiconfig, ACLs are specifiedper namespace and storage backend (see storage backend docs for details).
  • 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.

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.

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.

Credits and Credit Logos

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.

Folders and files

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.

  • 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.
  • You can either add some normal css stylesheet or add a choice of alternatestylesheets.
  • If your wiki will be using custom namespaces then you cannot use thecreate_simple_mapping method.

Contents

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.

ACLs for contents

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.

You can either add some normal css stylesheet or add a choice of alternatestylesheets. 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. At first, you might wonder why we use Python code for configuration. If you’re not used to the config file format, backup your last working configso you can revert to it in case you make some hard to find typo or other error. Start from one of the sample configs provided with moinand only perform small changes, then try it before testing the next change.

Password security

%(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 configured like that, moin will request authentication by emitting ahttp header. Each authenticator is an instance of some specific class, configuration ofthe authenticators usually works by giving them keyword arguments. If there is a requirement to changethe MoinMoin base code, please consider submitting a patch. The following example shows how you can enable the additional packageXStatic-MathJax which isused for mathml or latex formulas in an item’s content. A good way to test a stylesheet is to first use it as user CSS beforeconfiguring it for the public.

Kinds of configuration files

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 “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.

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 check the logging configuration example in contrib/logging/email.

Legal Officer, IP Law, Corporate Law | Website |  + posts

As an intellectual property lawyer with additional expertise in property, corporate, and employment law. I have a strong interest in ensuring full legal compliance and am committed to building a career focused on providing legal counsel, guiding corporate secretarial functions, and addressing regulatory issues. My skills extend beyond technical proficiency in drafting and negotiating agreements, reviewing contracts, and managing compliance processes. I also bring a practical understanding of the legal needs of both individuals and businesses. With this blend of technical and strategic insight, I am dedicated to advancing business legal interests and driving positive change within any organization I serve.

As an intellectual property lawyer with additional expertise in property, corporate, and employment law. I have a strong interest in ensuring full legal compliance and am committed to building a career focused on providing legal counsel, guiding corporate secretarial functions, and addressing regulatory issues. My skills extend beyond technical proficiency in drafting and negotiating agreements, reviewing contracts, and managing compliance processes. I also bring a practical understanding of the legal needs of both individuals and businesses. With this blend of technical and strategic insight, I am dedicated to advancing business legal interests and driving positive change within any organization I serve.