{{tag>Linux wiki dokuwiki server plugin markdown}} ======dokuwiki setup notes====== Also see notes on setting up [[docker_notes:docker-dokuwiki#dokuwiki|Docker Dokuwiki container]] * [[https://www.dokuwiki.org/dokuwiki|Dokuwiki home page]] * [[https://www.dokuwiki.org/install|Dokuwiki Installation instructions]] * [[https://www.dokuwiki.org/install:upgrade|Upgrading Dokuwiki]] * [[https://www.dokuwiki.org/manual|DokuWiki Manual]] * [[https://www.dokuwiki.org/tips:maintenance|Docuwiki maintenance]] * [[https://www.dokuwiki.org/faq:backup|How to backup DokuWiki?]] * [[https://www.dokuwiki.org/faq:servermove|How to move DokuWiki from one Server to another?]] =====dokuwiki backup===== Back-ups placed here: ''%%'/media/disk1/KarlData/Karl Data 2/dokuwiki_backups/'%%'' and named ''KPtreeWiki-backup_yyyy-mm-dd''. e.g. ''%%sudo tar zcpfv '/media/disk1/KarlData/Karl Data 2/dokuwiki_backups/KptreeWiki-backup_20220710.tar.gz' /home/shared/www/dokuwiki%%'' this backs up the entire directory. =====dockuwiki cleanup===== [[https://www.dokuwiki.org/tips:maintenance|Maintenance and Automatic cleanup script]] has bash script to remove old files on the wikiserver. To run the script ''%%sudo Myscripts/dokuwikicleanup.sh /home/shared/www/dokuwiki/data 300%%'' =====dokuwiki VM setup===== ====master dns setup==== The master public dns needs to be setup to point to the appropriate ip addresses for wiki.kptree.net. The ipv4 points to a common public ipv4 address and uses proxies to redirect to correct VMs, so all subdomains have same public address. Each sub-domain can have an individual public ipv6 address if required and proxies are not required for ipv6. I have been using Godaddy for my domain name provider. I have not been that happy with Godaddy for a number of reasons, however these reasons have not been sufficient to get me to move to another provider. ====local dns setup==== The local dns points to the local lan address that assists with hairpin nat on ipv4. Not necessary on ipv6 as assigned a global ipv6 address and nat not used. This means adjusting bind9 settings. ====router setup==== See the router specific set-up information [[linux_router:nftables#sample_nftables_configuration]]. Basically: *The ipv4 address for specific ports need to have nat(network address translation) setup and forwarding setup. *The ipv6 address as it is public only needs forwarding setup. ====dokuwiki vm SSL certificate setup==== I like the setup in [[https://workaround.org/ispmail|workaround.org]], specifically [[https://workaround.org/ispmail/bullseye/tls-encryption-key-and-certificate/|Creating a TLS encryption key and certificate]]. The nuance here is the need to first setup the VM and apache2, then bring it online. Once online the certificate can then be requested. After this the setup of the wiki (or other) VM apache server can be completed. When migrating the old server needs to be shutdown and is effectively disabled. ====dokuwiki VM apache2 setup==== The ''/etc/apache2/ports.conf'' is the standard configuration allowing all ip address access to port 80 and if ssl_module port 443. No change required As can be seen from the apache2 site setup files all the wiki html setup files are at the document root ''/mnt/shared/www/dokuwiki''. ++++tl;dr; Setup of apache2/sites| ''sudo vim /etc/apache2/sites-available/wiki.kptree.net-ssl.conf'' ServerName wiki.kptree.net ServerAdmin webmaster@localhost DocumentRoot /mnt/shared/www/dokuwiki #Some optimisation and security directives Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains;" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on Include /etc/letsencrypt/options-ssl-apache.conf SSLOptions +StdEnvVars SSLOptions +StdEnvVars SSLCertificateFile /etc/letsencrypt/live/wiki.kptree.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/wiki.kptree.net/privkey.pem ''sudo vim /etc/apache2/sites-available/wiki.kptree.net.conf'' ServerName wiki.kptree.net ServerAdmin webmaster@localhost Redirect permanent / https://wiki.kptree.net/ #DocumentRoot /var/www/html #ErrorLog ${APACHE_LOG_DIR}/error.log #CustomLog ${APACHE_LOG_DIR}/access.log combined ErrorLog /mnt/shared/www/html/logs/error.log CustomLog /mnt/shared/www/html/logs/access.log combined ++++ ====dokuwiki ipv4 apache2 main VM server redirection==== This only is required for the ipv4 shared public address as the ip6 public address is unique for the wiki sub-domain. ++++This is the part of the main domain apache2 configuration files, tl;dr;:| In ''/etc/apache2/sites-available/kptree.net-SSL.conf'':: ServerName wiki.kptree.net #ServerAdmin webmaster@localhost #DocumentRoot /mnt/shared/www/html ProxyPreserveHost on ProxyPass https://192.168.1.9/ ProxyPassReverse https://192.168.1.9/ #Some optimisation and security directives Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains;" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" ErrorLog /mnt/shared/www/html/logs/error.log CustomLog /mnt/shared/www/html/logs/access.log combined SSLEngine on SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off #SSLCertificateChainFile SSLOptions +StdEnvVars SSLOptions +StdEnvVars Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/kptree.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/kptree.net/privkey.pem In ''/etc/apache2/sites-available/kptree.net.conf'': ServerName wiki.kptree.net #DocumentRoot /mnt/shared/www/html Redirect permanent / https://wiki.kptree.net/ RewriteEngine on RewriteCond %{SERVER_NAME} =wiki.kptree.net RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] ++++ ====dokuwiki file ownership and permissions===== Basically the required file permissions are as noted in [[https://www.dokuwiki.org/install|Dokuwiki Installation instructions]], [[https://www.dokuwiki.org/install:upgrade|Upgrading Dokuwiki]], and [[https://www.dokuwiki.org/install:permissions|Setting up file permissions]]. ''sudo chown www-data:www-data -R /home/shared/www/dokuwiki'' will make all the docuwiki files user and group owned by www-data that seems to simply function. =====dokuWiki Plugin Modules===== ====Installed plugin list from dokuWiki==== ++++ syntax plugins|~~INFO:syntaxplugins~~ ++++ ++++ admin plugins|~~INFO:adminplugins~~ ++++ ++++ action plugins|~~INFO:actionplugins~~ ++++ ++++ render plugins|~~INFO:renderplugins~~ ++++ ++++ helper plugins|~~INFO:helperplugins~~ ++++ ====plug-in module settings and control==== Many of the plug-ins include a named section in the the dokuWiki admin page / Configuration Settings. The plug-in specific usage, configuration and settings documentation can be usually be found on the plug-in documentation page. ====dokuWiki System Installed==== * [[http://dokuwiki.org/plugin:acl|ACL Manager]] - Manage Page Access Control Lists - by Andreas Gohr * [[http://www.dokuwiki.org/plugin:authplain|Plain Auth Plugin]] - Provides user authentication against DokuWiki's local password storage - by Andreas Gohr * [[http://dokuwiki.org/plugin:config|Configuration Manager]] - Manage Dokuwiki's Configuration Settings - by Christopher Smith * [[https://www.dokuwiki.org/plugin:extension|Extension Manager]] - Allows managing and installing plugins and templates - by Michael Hamann * [[http://dokuwiki.org/plugin:usermanager|User Manager]] - Manage DokuWiki user accounts - by Chris Smith These are not not plugins per-say, as they can be neither disabled nor uninstalled. ====By Andreas Gohr==== |<55em>| ^ Document Link Name ^ Short Description ^ Status ^ | [[http://www.dokuwiki.org/plugin:authad|Active Directory Auth Plugin]] | Provides user authentication against a Microsoft Active Directory | Disabled | | [[http://www.dokuwiki.org/plugin:authldap|LDAP Auth Plugin]] | Provides user authentication against an LDAP server | Disabled | | [[https://www.dokuwiki.org/plugin:authmysql|MySQL Authentication Plugin]] | This backend uses a MySQL Database to store user data and passwords. | Disabled | | [[https://www.dokuwiki.org/plugin:authpdo|authpdo plugin]] | Authenticate against a database via PDO | Disabled | | [[https://www.dokuwiki.org/plugin:authpgsql|PostgreSQL Authentication Plugin]] | This backend uses a PostgreSQL Database to store user data and passwords. | Disabled | | [[http://www.dokuwiki.org/plugin:captcha|CAPTCHA Plugin]] | Use a CAPTCHA challenge to protect DokuWiki against automated spam | Enabled* | | [[http://www.dokuwiki.org/plugin:cleanup|cleanup Plugin]] | Perform file cleanup in the wiki | Enabled* | | [[https://www.dokuwiki.org/plugin:edittable|EditTable plugin]] | Provide a custom editor for tables | Enabled* | | [[http://dokuwiki.org/plugin:info|Info Plugin]] | Displays information about various DokuWiki internals | Enabled | | [[http://www.dokuwiki.org/plugin:loglog|Login/Logout logging plugin]] | Log logins, logouts and admin activity to a file | Enabled* | | [[https://www.dokuwiki.org/plugin:logviewer|logviewer plugin]] | View DokuWiki logs | Enabled* | | [[http://www.dokuwiki.org/plugin:navi|Navigation Plugin]] | Build a navigation menu from a list | Enabled* | | [[http://www.dokuwiki.org/plugin:popularity|Popularity Feedback Plugin]] | Send anonymous data about your wiki to the DokuWiki developers | Enabled* | | [[http://dokuwiki.org/plugin:revert|Revert Manager]] | Allows you to mass revert recent edits to remove Spam or vandalism | Enabled* | | [[http://www.dokuwiki.org/plugin:safefnrecode|safefnrecode plugin]] | Changes existing page and foldernames for the change in the safe filename encoding | Enabled* | | [[https://www.dokuwiki.org/plugin:searchindex|Searchindex Manager]] | Use to rebuild the index used by the fulltext search. Required if index messed up. | Enabled* | | [[http://www.dokuwiki.org/plugin:sqlite|sqlite plugin ]] | A helper plugin to easily access a SQLite database | Disabled* | | [[https://www.dokuwiki.org/plugin:struct|struct plugin]] | Add and query additional structured page data | Disabled* | | [[https://www.dokuwiki.org/plugin:styling|styling plugin]] | Allows to edit style.ini replacements | Enabled | | [[http://www.dokuwiki.org/plugin:upgrade|DokuWiki Upgrade Plugin]] | Automatically upgrade your DokuWiki install to the most recent stable release | Enabled* | | | | | | | | | * Not system installed ====By Others==== |<61em 15em 33em 13em>| ^ Document Link Name ^ Short Description ^ Author ^ Status ^ | [[https://www.dokuwiki.org/plugin:acmenu|AcMenu Plugin]] | An accordion menu for namespaces and relative pages | by Torpedo | Enabled | | [[http://www.dokuwiki.org/plugin:bootswrapper|Bootstrap Wrapper Plugin]] | Bootstrap Wrapper for DokuWiki | by Giuseppe Di Terlizzi | Enabled | | [[http://www.dokuwiki.org/plugin:cloud|Cloud Plugin]] | Displays the most used words in a word cloud | by Michael Hamann, Michael Klier, Gina Haeussge | Enabled | | [[https://www.dokuwiki.org/plugin:color|color syntax plugin]] | Write colored text in DokuWiki | by Harald Hanche-Olsen | Enabled | | [[https://www.dokuwiki.org/plugin:docnavigation|DocNavigation plugin]] | Add navigation for documentation | by Gerrit Uitslag | Enabled | | [[https://www.dokuwiki.org/plugin:datatables|DataTables Plugin]] | Add DataTables support to DokuWiki | by Giuseppe Di Terlizzi | Enabled | | [[http://dokuwiki.org/plugin:folded|folded plugin]] | Foldable page sections | by Michael Hamann, Fabian van-de-l_Isle, Christopher Smith, Esther Brunner | Enabled | | [[http://dokuwiki.org/plugin:include|include plugin]] | Functions to include another page in a wiki page | by Michael Hamann, Gina Häussge, Christopher Smith, Michael Klier, Esther Brunner | Enabled | | [[https://www.dokuwiki.org/plugin:mdpage|Markdown Page plugin]] | Show Markdown block as Dokuwiki content | by mizunashi_mana | Enabled | | [[https://www.dokuwiki.org/plugin:markdowku|markdowku plugin]] | Integrates Markdown into DokuWiki syntax | by Julian Fagir, Raphael Wimmer (maintainer) | Disabled1 | | [[http://www.dokuwiki.org/plugin:move|Move plugin]] | Functions to include another page in a wiki page | by Michael Hamann, Gary Owen, Arno Puschmann, Christoph Jähnigen | Enabled | | [[http://www.dokuwiki.org/plugin:nspages|nspages plugin]] | Presents a toc of the selected namespace using nspages | by Guillaume Turri | Enabled | | [[http://www.dokuwiki.org/plugin:pagelist|Pagelist Plugin]] | Lists pages in a nice formatted way | by Matthias Schulte, Michael Hamann, Michael Klier, Gina Haeussge | Enabled | | [[http://dokuwiki.org/plugin:tab|tab plugin]] | Special syntax for tabs | by Juergen Schuemmer | Enabled | | [[http://www.dokuwiki.org/plugin:tablewidth|Table Width plugin]] | Allows to specify width of table columns | by Mykola Ostrovskyy | Enabled | | [[https://www.dokuwiki.org/plugin:tag|Tag Plugin]] | tag wiki pages | by Michael Hamann, Gina Häussge, Christopher Smith, Michael Klier, Esther Brunner | Enabled | | [[https://www.dokuwiki.org/plugin:typography|Typography]] | Enable typesetting capabilities with CSS font properties such as font face, size, weight, and color of text | plugin by Satoshi Sahara | Enabled | | [[https://www.dokuwiki.org/plugin:wrap|Wrap Plugin]] | Universal plugin which combines functionalities of many other plugins. Wrap wiki text inside containers (divs or spans) and give them a class (choose from a variety of preset classes), a width and/or a language with its associated text direction | by Anika Henke | Enabled | Notes: - The markdowku Plugin does automatic inline markdown intepretation and display. Seems a bit buggy and affects regular dokuwiki syntax. I prefer to use the declared markdown option given by the Markdown Page Plugin.