mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
Huge role refactoring/cleanup. Other commits will propably follow. Because some bugs will exist. Still important for longrun and also for auto docs/help/slideshow generation
This commit is contained in:
145
roles/web-app-mediawiki/Installation.md
Normal file
145
roles/web-app-mediawiki/Installation.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# Installation
|
||||
|
||||
## Generate LocalSettings.php
|
||||
Login to the container:
|
||||
|
||||
```bash
|
||||
docker-compose exec -it application /bin/sh
|
||||
```
|
||||
|
||||
Seed the LocalSettings.php:
|
||||
|
||||
```bash
|
||||
cat > LocalSettings.php << EOF
|
||||
<?php
|
||||
# This file was automatically generated by the MediaWiki 1.35.0
|
||||
# installer. If you make manual changes, please keep track in case you
|
||||
# need to recreate them later.
|
||||
#
|
||||
# See includes/DefaultSettings.php for all configurable settings
|
||||
# and their default values, but don't forget to make changes in _this_
|
||||
# file, not there.
|
||||
#
|
||||
# Further documentation for configuration settings may be found at:
|
||||
# https://www.mediawiki.org/wiki/Manual:Configuration_settings
|
||||
|
||||
# Protect against web entry
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
## Uncomment this to disable output compression
|
||||
# \$wgDisableOutputCompression = true;
|
||||
|
||||
\$wgSitename = "test";
|
||||
\$wgMetaNamespace = "Test";
|
||||
|
||||
## The URL base path to the directory containing the wiki;
|
||||
## defaults for all runtime URL paths are based off of this.
|
||||
## For more information on customizing the URLs
|
||||
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
|
||||
## https://www.mediawiki.org/wiki/Manual:Short_URL
|
||||
\$wgScriptPath = "";
|
||||
|
||||
## The protocol and server name to use in fully-qualified URLs
|
||||
\$wgServer = "http://wiki.veen.world";
|
||||
|
||||
## The URL path to static resources (images, scripts, etc.)
|
||||
\$wgResourceBasePath = \$wgScriptPath;
|
||||
|
||||
## The URL paths to the logo. Make sure you change this from the default,
|
||||
## or else you'll overwrite your logo when you upgrade!
|
||||
\$wgLogos = [ '1x' => "\$wgResourceBasePath/resources/assets/wiki.png" ];
|
||||
|
||||
## UPO means: this is also a user preference option
|
||||
|
||||
\$wgEnableEmail = true;
|
||||
\$wgEnableUserEmail = true; # UPO
|
||||
|
||||
\$wgEmergencyContact = "apache@🌻.invalid";
|
||||
\$wgPasswordSender = "apache@🌻.invalid";
|
||||
|
||||
\$wgEnotifUserTalk = false; # UPO
|
||||
\$wgEnotifWatchlist = false; # UPO
|
||||
\$wgEmailAuthentication = true;
|
||||
|
||||
## Database settings
|
||||
\$wgDBtype = "mysql";
|
||||
\$wgDBserver = "database:3306";
|
||||
\$wgDBname = "mediawiki";
|
||||
\$wgDBuser = "mediawiki";
|
||||
\$wgDBpassword = "test";
|
||||
|
||||
# MySQL specific settings
|
||||
\$wgDBprefix = "";
|
||||
|
||||
# MySQL table options to use during installation or update
|
||||
\$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
|
||||
|
||||
## Shared memory settings
|
||||
\$wgMainCacheType = CACHE_NONE;
|
||||
\$wgMemCachedServers = [];
|
||||
|
||||
## To enable image uploads, make sure the 'images' directory
|
||||
## is writable, then set this to true:
|
||||
\$wgEnableUploads = false;
|
||||
\$wgUseImageMagick = true;
|
||||
\$wgImageMagickConvertCommand = "/usr/bin/convert";
|
||||
|
||||
# InstantCommons allows wiki to use images from https://commons.wikimedia.org
|
||||
\$wgUseInstantCommons = false;
|
||||
|
||||
# Periodically send a pingback to https://www.mediawiki.org/ with basic data
|
||||
# about this MediaWiki instance. The Wikimedia Foundation shares this data
|
||||
# with MediaWiki developers to help guide future development efforts.
|
||||
\$wgPingback = true;
|
||||
|
||||
## If you use ImageMagick (or any other shell command) on a
|
||||
## Linux server, this will need to be set to the name of an
|
||||
## available UTF-8 locale
|
||||
\$wgShellLocale = "C.UTF-8";
|
||||
|
||||
## Set \$wgCacheDirectory to a writable directory on the web server
|
||||
## to make your wiki go slightly faster. The directory should not
|
||||
## be publicly accessible from the web.
|
||||
#\$wgCacheDirectory = "\$IP/cache";
|
||||
|
||||
# Site language code, should be one of the list in ./languages/data/Names.php
|
||||
\$wgLanguageCode = "en";
|
||||
|
||||
\$wgSecretKey = "603fe88c985b05706f19aaf77d2a61459555ff21a4a4d4ef0aa15c8f8ec50f00";
|
||||
|
||||
# Changing this will log out all existing sessions.
|
||||
\$wgAuthenticationTokenVersion = "1";
|
||||
|
||||
# Site upgrade key. Must be set to a string (default provided) to turn on the
|
||||
# web installer while LocalSettings.php is in place
|
||||
\$wgUpgradeKey = "f99263b0f3a7c59a";
|
||||
|
||||
## For attaching licensing metadata to pages, and displaying an
|
||||
## appropriate copyright notice / icon. GNU Free Documentation
|
||||
## License and Creative Commons licenses are supported so far.
|
||||
\$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
|
||||
\$wgRightsUrl = "";
|
||||
\$wgRightsText = "";
|
||||
\$wgRightsIcon = "";
|
||||
|
||||
# Path to the GNU diff3 utility. Used for conflict resolution.
|
||||
\$wgDiff3 = "/usr/bin/diff3";
|
||||
|
||||
## Default skin: you can change the default skin. Use the internal symbolic
|
||||
## names, ie 'vector', 'monobook':
|
||||
\$wgDefaultSkin = "vector";
|
||||
|
||||
# Enabled skins.
|
||||
# The following skins were automatically enabled:
|
||||
wfLoadSkin( 'MonoBook' );
|
||||
wfLoadSkin( 'Timeless' );
|
||||
wfLoadSkin( 'Vector' );
|
||||
|
||||
|
||||
# End of automatically generated settings.
|
||||
# Add more configuration options below.
|
||||
EOF
|
||||
```
|
30
roles/web-app-mediawiki/README.md
Normal file
30
roles/web-app-mediawiki/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# MediaWiki
|
||||
|
||||
## Description
|
||||
|
||||
Empower your knowledge base with MediaWiki, a versatile and collaborative platform designed to build comprehensive, user-driven documentation. MediaWiki offers a rich extension ecosystem, robust content management capabilities, and customizable configurations to transform your information into a vibrant, living resource.
|
||||
|
||||
## Overview
|
||||
|
||||
This role deploys MediaWiki using Docker, automating the setup of your wiki instance along with its underlying MariaDB database. It handles generating the essential configuration file (LocalSettings.php) from a seeded template and integrates with an Nginx reverse proxy for secure, efficient web access. For detailed configuration and operational instructions, please refer to the [Installation.md](./Installation.md) file.
|
||||
|
||||
## Features
|
||||
|
||||
- **Collaborative Editing:** Enable multiple users to create and update content simultaneously through an intuitive interface.
|
||||
- **Extensible Architecture:** Leverage a wide range of extensions and customization options to tailor the wiki experience to your needs.
|
||||
- **Robust Content Management:** Organize, categorize, and retrieve information efficiently with powerful content management tools.
|
||||
- **Scalable Deployment:** Utilize Docker for a portable and scalable setup that adapts as your community grows.
|
||||
- **Secure and Reliable:** Benefit from secure access via an Nginx reverse proxy combined with a MariaDB backend for reliable data storage.
|
||||
|
||||
## Further Resources
|
||||
|
||||
- [MediaWiki Official Website](https://www.mediawiki.org/)
|
||||
- [MediaWiki Documentation](https://www.mediawiki.org/wiki/Manual:Configuration_settings)
|
||||
|
||||
## Credits
|
||||
|
||||
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||
Learn more at [veen.world](https://www.veen.world).
|
||||
|
||||
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
|
||||
Licensed under [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl).
|
2
roles/web-app-mediawiki/TODO.md
Normal file
2
roles/web-app-mediawiki/TODO.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Todo
|
||||
- This role needs to be updated to the new role structure
|
25
roles/web-app-mediawiki/meta/main.yml
Normal file
25
roles/web-app-mediawiki/meta/main.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Empower your knowledge base with MediaWiki, a versatile and collaborative platform designed for comprehensive, user-driven documentation. Benefit from an extensive extension ecosystem, robust content management, and customizable configurations tailored to your needs."
|
||||
license: "CyMaIS NonCommercial License (CNCL)"
|
||||
license_url: "https://s.veen.world/cncl"
|
||||
company: |
|
||||
Kevin Veen-Birkenbach
|
||||
Consulting & Coaching Solutions
|
||||
https://www.veen.world
|
||||
galaxy_tags:
|
||||
- mediawiki
|
||||
- docker
|
||||
- cms
|
||||
- wiki
|
||||
- documentation
|
||||
repository: "https://s.veen.world/cymais"
|
||||
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
||||
documentation: "https://s.veen.world/cymais"
|
||||
logo:
|
||||
class: "fa-solid fa-book"
|
||||
run_after:
|
||||
- web-app-matomo
|
||||
- web-app-keycloak
|
||||
- web-app-mailu
|
15
roles/web-app-mediawiki/tasks/main.yml
Normal file
15
roles/web-app-mediawiki/tasks/main.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: "include service-rdbms-central"
|
||||
include_role:
|
||||
name: service-rdbms-central
|
||||
|
||||
- name: "include role webserver-proxy-domain for {{application_id}}"
|
||||
include_role:
|
||||
name: webserver-proxy-domain
|
||||
vars:
|
||||
domain: "{{ domains | get_domain(application_id) }}"
|
||||
http_port: "{{ ports.localhost.http[application_id] }}"
|
||||
|
||||
- name: add docker-compose.yml
|
||||
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||
notify: docker compose up
|
18
roles/web-app-mediawiki/templates/docker-compose.yml.j2
Normal file
18
roles/web-app-mediawiki/templates/docker-compose.yml.j2
Normal file
@@ -0,0 +1,18 @@
|
||||
{% include 'roles/docker-compose/templates/base.yml.j2' %}
|
||||
application:
|
||||
# Seems like image tag got lost. @todo Check and implement if necessary
|
||||
log_driver: journald
|
||||
restart: "{{docker_restart_policy}}"
|
||||
depends_on:
|
||||
- database
|
||||
volumes:
|
||||
- "mediawiki-data:/var/www/html/"
|
||||
ports:
|
||||
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
|
||||
{% include 'roles/docker-container/templates/networks.yml.j2' %}
|
||||
{% include 'roles/docker-container/templates/depends_on/dmbs_excl.yml.j2' %}
|
||||
|
||||
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
|
||||
data:
|
||||
|
||||
{% include 'roles/docker-compose/templates/networks.yml.j2' %}
|
3
roles/web-app-mediawiki/vars/configuration.yml
Normal file
3
roles/web-app-mediawiki/vars/configuration.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
domains:
|
||||
canonical:
|
||||
- "wiki.{{ primary_domain }}"
|
3
roles/web-app-mediawiki/vars/main.yml
Normal file
3
roles/web-app-mediawiki/vars/main.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
application_id: "mediawiki"
|
||||
database_password: "{{mediawiki_database_password}}"
|
||||
database_type: "mariadb"
|
Reference in New Issue
Block a user