Running MediaWiki in Docker on Ubuntu Server 🌱

What is MediaWiki?

The MediaWiki software is used by tens of thousands of websites and thousands of companies and organizations. It powers Wikipedia and also this website. MediaWiki helps you collect and organize knowledge and make it available to people. It's powerful, multilingual, free and open, extensible, customizable, reliable, and free of charge. -https://www.mediawiki.org/wiki/MediaWiki

Installing Docker

  1. Log into the Linux host and run the following commands in a terminal window
    # update software respositories
    sudo apt update
    # install available software updates
    sudo apt upgrade -y
    # install prerequisites
    sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
    # add docker gpg key
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    # add docker apt repository
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    # install docker
    sudo apt install docker-ce docker-compose containerd.io -y
    # add the current user to the docker group
    sudo usermod -aG docker $USER
    # reauthenticate for the new group membership to take effect
    su - $USER

Running MediaWiki Container

  1. Continue with the following commands in a terminal window
    # create working directories
    mkdir /home/$USER/docker/mediawiki/images -p && mkdir /home/$USER/docker/mariadb -p
    # set owner of working directories
    sudo chown "$USER":"$USER" /home/"$USER"/docker -R
    # create containers network
    docker network create containers
    # run the mariadb docker container
    docker run --name mariadb -e MYSQL_ROOT_PASSWORD=r00tp@$$ -e MYSQL_USER=mediawiki_rw -e MYSQL_PASSWORD=WikiW1k1What! -e MYSQL_DATABASE=mediawiki -v /home/$USER/docker/mariadb:/var/lib/mysql --network containers --restart=unless-stopped -d mariadb:latest
    # run the mediawiki docker container
    docker run -d --name mediawiki -p 8080:80 -e MYSQL_USER=mediawiki_rw -e MYSQL_PASSWORD=WikiW1k1What! -e MYSQL_DATABASE=mediawiki -v /home/$USER/docker/mediawiki/images:/var/www/html/images --network containers mediawiki:latest
  2. Open a web browser and navigate to http://DNSorIP:8080
  3. Scroll to the bottom and click the set up the wiki link
  4. Set the Languages > Click Continue
  5. Click Continue at the Welcome screen
  6. Complete the Database settings as follows:

    Database type:
    Database host: mariadb
    Database name: mediawiki
    Database table prefix:
    Database username: mediawiki_rw
    Database password: WikiW1k1What!

  7. Click Continue
  8. Leave the Use the same account as for installation box checked > Click Continue
  9. Give the Wiki a name and create an administrator username and password
  10. Uncheck the Share data about this installation with MediaWiki developers box
  11. Check the I'm bored already, just install the wiki box > Click Continue
  12. Click Continue again to begin the installation
  13. After the installation completes click Continue
  14. At the Download LocalSettings.php page, download the file
  15. Open the downloaded LocalSettings.php and copy the contents to the clipboard
  16. Back on the Docker host, run the following command to create LocalSettings.php in the correct location
    # create and edit LocalSettings.php
    nano /home/$USER/docker/mediawiki/LocalSettings.php
  17. Paste the copied contents from the downloaded LocalSettings.php
  18. Press CTRL+O, Enter, CTRL+X to write the changes
  19. Continue with the following commands
    # remove mediawiki container
    docker rm mediawiki --force
    # re-initialize mediawiki container with local settings
    docker run -d --name mediawiki -p 8080:80 -e MYSQL_USER=mediawiki_rw -e MYSQL_PASSWORD=WikiW1k1What! -e MYSQL_DATABASE=mediawiki -v /home/$USER/docker/mediawiki/images:/var/www/html/images -v /home/$USER/docker/mediawiki/LocalSettings.php:/var/www/html/LocalSettings.php --network containers --restart=unless-stopped mediawiki:latest
    # allow the container to write to working directories
    sudo chmod a+rwx -R ~/docker
  20. Back in the browser click the enter your wiki link
  21. Click the Log In link at the top right
  22. Log in with the administrator account created during the setup
  23. Welcome to MediaWiki

Source: https://hub.docker.com/_/mediawiki