~dricottone/docker-moinmoin19

c4ac795f601cce7547cffb3cd8a75cc5b70bd120 — Dominic Ricottone 2 years ago f059bb7
Final commit

Please don't spin up a moinmoin1.9 wiki anymore.
See `README.md`.
2 files changed, 27 insertions(+), 37 deletions(-)

M Makefile
M README.md
M Makefile => Makefile +5 -1
@@ 3,10 3,14 @@ UPSTREAM_URL_SIG="http://static.moinmo.in/files/moin-1.9.11.tar.gz.asc"
UPSTREAM_SHA256="02be31d55f39d4fe0c6253df8b49e01b76d095634cbd1b56d185f66e1e0c3cf5"
UPSTREAM_GPG="FAF7B393"

CONMAN=docker

clean:
	$(CONMAN) image rm --force my-moin || true
	rm -rf build/*

download:
	mkdir -p build
	curl ${UPSTREAM_URL_MOIN} --output build/moin.tar.gz
	curl ${UPSTREAM_URL_SIG} --output build/moin.tar.gz.asc
	echo "${UPSTREAM_SHA256} build/moin.tar.gz" | sha256sum --check


@@ 15,5 19,5 @@ download:
	tar xzf build/moin.tar.gz --directory build/

image: clean download
	docker build --tag my-moin .
	$(CONMAN) build --tag my-moin .


M README.md => README.md +22 -36
@@ 1,29 1,21 @@
# docker-moin

Deploy a moinmoin wiki using Docker.
Deploy a moinmoin1.9 wiki using Docker.

This iamge cannot be recommended in good conscience.
`python2.7` has been unsupported since January 2020.
Alpine 3.10 has been unsupported since May 2021.

## Structure

This container will expose uWSGI on port 9000. The `nginx` folder contains a
recommended web server configuration.

The wiki is served from `/var/www/moin`. uWSGI runs in this directory as
`www-data`.

The `MoinMoin` source code is located at `/var/moin/install`, while the wiki
data is located at `/var/moin/data`.

## Usage

## Setup
Note that the `www-data` uid/gid in the container is 82.
Some distributuions use 33 as the `www-data` uid/gid.
To be safe, `chown 82:82` all files that will be mounted into the container.

`docker-compose.yml` is an example of how to deploy this container image. If
you want to use it, be sure to configure the location of your local wiki data.
It is currently configured to look at `/var/moin`.

In `moinmoin/wikiconfig.py`, configure the wiki name
(`s/your_wiki_name_here/My Wiki/g`) as well as your own account name
(`s/your_name_here/MyName/g`).
In `moinmoin/wikiconfig.py`,
configure the wiki name (`s/your_wiki_name_here/My Wiki/g`)
as well as your own account name (`s/your_name_here/MyName/g`).

> If setting up a new wiki, a superuser must be created. The easiest method is
> to use the `moin` CLI tool inside the container.


@@ 35,28 27,22 @@ In `moinmoin/wikiconfig.py`, configure the wiki name
> As a reminder, to access a shell inside a container, try
> `docker exec -it <CONTAINER> /bin/sh`.

Start the container and connect it a web browser. The `nginx` folder contains a
recommended web server configuration, which would be accessible on port 8080.
Just be sure to edit `nginx/moinmoin.conf` and set the domain name
(`s/your_domain_here/example.com/g`).

Open the wiki in a browser, specifically to the LanguageSetup page. Follow the
on-screen instructions for installing system (i.e. underlay) pages.
Start the container and connect for the first time.
Open the LanguageSetup page.
Follow on-screen instructions for installing system (i.e. underlay) pages.


## Security

The stable release of moinmoin (v1.9) is written for python2. It is a complex
(i.e. multiple vendored libraries), web-facing (i.e. interprets and executes
user input) service. There have been high-risk CVE's as recently as November
2020 (see CVE-2020-15275).
## Structure

Python 2.7 is unsupported as of January 2020.
This container will expose uWSGI on port 9000.
The `nginx` folder contains a recommended web server configuration.
See also the `compose` folder for a suggested Docker compose file.

Alpine Linux v3.10 (the last to support critical python2 dependencies) receives
security fixes only and will reach end of life in November 2021.
The wiki is served from `/var/moin/webroot`.
uWSGI runs in this directory as `www-data`.

Good luck.
`MoinMoin` source code is located at `/var/moin/install` inside the container,
while the wiki data (i.e. pages) are located at `/var/moin/data`.


## License