MWStake MediaWiki Manager: Difference between revisions

From MWStake
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
= ''Manage (settings), upgrades, extensions, snapshots and content through an independent UI/API'' =
''Manage (settings), upgrades, extensions, snapshots and content through an independent UI/API''


<gallery mode="slideshow">
<gallery mode="slideshow">
Line 7: Line 7:
File:Mediawiki-manager-ExtensionsStore.png|MWM Extensions Store
File:Mediawiki-manager-ExtensionsStore.png|MWM Extensions Store
</gallery>
</gallery>
== Development ==


There are videos about MWStake MWM at [https://www.youtube.com/channel/UCoP-EgZJPhB0UE4WaKCHR1w dataspects' YouTube channel].
There are videos about MWStake MWM at [https://www.youtube.com/channel/UCoP-EgZJPhB0UE4WaKCHR1w dataspects' YouTube channel].
Line 14: Line 12:
* [https://www.youtube.com/watch?v=MTYq2a2Xsls First glimpse at the idea of an MWStake MediaWiki Manager]
* [https://www.youtube.com/watch?v=MTYq2a2Xsls First glimpse at the idea of an MWStake MediaWiki Manager]


=== Fundamentals ===
== Target User Groups ==
 
==== Target User Groups ====


===== UGCL: Users willing/able to use the command line =====
=== UGCL: Users willing/able to use the command line ===


===== UGUI: Users NOT willing/able to use the command line =====
=== UGUI: Users NOT willing/able to use the command line ===


==== Use Cases ====
== Use Cases ==


===== Install MW System Instance =====
=== Install MW System Instance ===


===== Manage MW System Settings =====
=== Manage MW System Settings ===


# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/systemSettings.json systemSettings.json]
# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/systemSettings.json systemSettings.json]


===== Manage MW Extensions (install/enable/disable/upgrade) =====
=== Manage MW Extensions (install/enable/disable/upgrade) ===


# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/extensions.json extensions.json]
# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/extensions.json extensions.json]


====== MediaWiki Stakeholders Group Certified Extensions Service =======
==== MediaWiki Stakeholders Group Certified Extensions Service =====


* Some background:
* Some background:
Line 43: Line 39:
* Hosting?
* Hosting?


===== Upgrade MW =====
=== Upgrade MW ===


# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/versions.json upgrades.json]
# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/versions.json upgrades.json]


===== Snapshots (backup/restore/clone) =====
=== Snapshots (backup/restore/clone) ===


===== Safe Mode =====
=== Safe Mode ===


'''Idea''': if someone corrupts <code>extensions/</code> and/or <code>LocalSettings.php</code>, then <code>./start-SAFE-MODE.sh</code> restarts the wiki in safe mode, by falling back to container-internal versions of <code>extensions/</code> and <code>LocalSettings.php</code>.
'''Idea''': if someone corrupts <code>extensions/</code> and/or <code>LocalSettings.php</code>, then <code>./start-SAFE-MODE.sh</code> restarts the wiki in safe mode, by falling back to container-internal versions of <code>extensions/</code> and <code>LocalSettings.php</code>.
Line 147: Line 143:
|}
|}


===== Manage MW Content (inject/extract/facet/edit) =====
=== Manage MW Content (inject/extract/facet/edit) ===


# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/apps.json mediawiki-apps.json]
# [https://github.com/dataspects/mediawiki-manager/blob/main/catalogues/apps.json mediawiki-apps.json]


==== Abstraction Layers ====
== Abstraction Layers ==


===== AL0: shell scripts using MWAPI and CRUDing files =====
=== AL0: shell scripts using MWAPI and CRUDing files ===


https://github.com/dataspects/mediawiki-manager
https://github.com/dataspects/mediawiki-manager
Line 159: Line 155:
# [https://github.com/dataspects/mediawiki-manager/blob/main/docker-compose.yml docker-compose.yml] ([https://github.com/dataspects/dataspectsSystemBuilder/tree/master/docker-images/mediawiki MediaWiki Dockerfile])
# [https://github.com/dataspects/mediawiki-manager/blob/main/docker-compose.yml docker-compose.yml] ([https://github.com/dataspects/dataspectsSystemBuilder/tree/master/docker-images/mediawiki MediaWiki Dockerfile])


===== AL1: MWM API (Go) wrapping AL0 =====
=== AL1: MWM API (Go) wrapping AL0 ===


https://github.com/dataspects/mwmapi
https://github.com/dataspects/mwmapi


====== Unit Testing ======
==== Unit Testing ====


===== AL2: MWM UI (React/Material UI) using AL1 =====
=== AL2: MWM UI (React/Material UI) using AL1 ===


https://github.com/dataspects/mwmui
https://github.com/dataspects/mwmui


====== Integration Testing ======
==== Integration Testing ====

Revision as of 05:13, 12 March 2021

Manage (settings), upgrades, extensions, snapshots and content through an independent UI/API

There are videos about MWStake MWM at dataspects' YouTube channel.

Target User Groups

UGCL: Users willing/able to use the command line

UGUI: Users NOT willing/able to use the command line

Use Cases

Install MW System Instance

Manage MW System Settings

  1. systemSettings.json

Manage MW Extensions (install/enable/disable/upgrade)

  1. extensions.json

MediaWiki Stakeholders Group Certified Extensions Service =

Upgrade MW

  1. upgrades.json

Snapshots (backup/restore/clone)

Safe Mode

Idea: if someone corrupts extensions/ and/or LocalSettings.php, then ./start-SAFE-MODE.sh restarts the wiki in safe mode, by falling back to container-internal versions of extensions/ and LocalSettings.php.

MWMSafeModeAlert.png

MWM Normal Mode MWM Safe Mode

Mwm-normal-mode.png

https://github.com/dataspects/mediawiki-manager/blob/main/start.sh
version: "3.7"
services:
  mediawiki:
    env_file:
      - CanastaInstanceSettings.env
    container_name: mediawiki_canasta
    image: dataspects/mediawiki:1.35.0-2103040820
    ports:
      - 80:80
      - 443:443
    volumes:
      # MediaWiki >>>
      - ./mediawiki_root/w/LocalSettings.php:/var/www/html/w/LocalSettings.php
      - ./mediawiki_root/w/extensions:/var/www/html/w/extensions
      - ./mediawiki_root/w/skins:/var/www/html/w/skins
      - ./mediawiki_root/w/vendor:/var/www/html/w/vendor
      - ./mediawiki_root/w/images:/var/www/html/w/images
      # MediaWiki Manager >>>
      - ./mediawiki_root/api:/var/www/html/api
      - ./mediawiki_root/dsmwm.log:/var/www/html/dsmwm.log
      - ./mediawiki_root/restic_password:/var/www/html/restic_password
      - ./mediawiki_root/ui:/var/www/html/ui
      - ./mediawiki_root/cloneLocation:/var/www/html/cloneLocation
      - ./restic_data:/var/www/html/restic-repo
      - ./conf:/etc/apache2/sites-available
    # https://phabricator.wikimedia.org/source/mediawiki/browse/master/docker-compose.yml
    # https://phoenixnap.com/kb/how-to-share-data-between-docker-containers
    # + mysql
  # mwmapi:
  #   container_name: mwmapi
  #   image: dataspects/mwmapi:210303
  mysql:
    container_name: mysql_canasta
    image: mariadb:10.5.5
    volumes:
      - ./mysql_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}

Mwm-safe-mode.png

https://github.com/dataspects/mediawiki-manager/blob/main/start-SAFE-MODE.sh
version: "3.7"
services:
  mediawiki:
    env_file:
      - CanastaInstanceSettings.env
    container_name: mediawiki_canasta
    image: dataspects/mediawiki:1.35.0-2103040820
    ports:
      - 80:80
      - 443:443
    volumes:
      # MediaWiki >>>
      #- ./mediawiki_root/w/LocalSettings.php:/var/www/html/w/LocalSettings.php
      #- ./mediawiki_root/w/extensions:/var/www/html/w/extensions
      #- ./mediawiki_root/w/skins:/var/www/html/w/skins
      #- ./mediawiki_root/w/vendor:/var/www/html/w/vendor
      - ./mediawiki_root/w/images:/var/www/html/w/images
      # MediaWiki Manager >>>
      - ./mediawiki_root/api:/var/www/html/api
      - ./mediawiki_root/dsmwm.log:/var/www/html/dsmwm.log
      - ./mediawiki_root/restic_password:/var/www/html/restic_password
      - ./mediawiki_root/ui:/var/www/html/ui
      - ./mediawiki_root/cloneLocation:/var/www/html/cloneLocation
      - ./restic_data:/var/www/html/restic-repo
      - ./conf:/etc/apache2/sites-available
    # https://phabricator.wikimedia.org/source/mediawiki/browse/master/docker-compose.yml
    # https://phoenixnap.com/kb/how-to-share-data-between-docker-containers
    # + mysql
  # mwmapi:
  #   container_name: mwmapi
  #   image: dataspects/mwmapi:210303
  mysql:
    container_name: mysql_canasta
    image: mariadb:10.5.5
    volumes:
      - ./mysql_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}

Manage MW Content (inject/extract/facet/edit)

  1. mediawiki-apps.json

Abstraction Layers

AL0: shell scripts using MWAPI and CRUDing files

https://github.com/dataspects/mediawiki-manager

  1. docker-compose.yml (MediaWiki Dockerfile)

AL1: MWM API (Go) wrapping AL0

https://github.com/dataspects/mwmapi

Unit Testing

AL2: MWM UI (React/Material UI) using AL1

https://github.com/dataspects/mwmui

Integration Testing