Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SeMaWi release 2020.1 #248

Open
wants to merge 71 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
98db379
ignore python virtual environments
JosefAssad Feb 10, 2020
8b5e872
move all dependency management from pear to composer
JosefAssad Feb 10, 2020
32bbd8b
revert broken extension loading
JosefAssad Feb 10, 2020
426513a
move site configuration into environment
JosefAssad Feb 10, 2020
f1f90be
override system php instead of overwriting it
JosefAssad Feb 10, 2020
5cbdda8
untrack the actual .env file
JosefAssad Feb 10, 2020
72af680
install unzip to preserve package permissions
JosefAssad Feb 10, 2020
5f3a7d3
put logo in the unified settings framework
JosefAssad Feb 10, 2020
ad06f7d
move images to a persistent volume
JosefAssad Feb 10, 2020
4bc488b
move GC2 configuration into general config framework
JosefAssad Feb 10, 2020
5489870
move semawi image components into its own directory
JosefAssad Feb 11, 2020
95eb791
remove redundant CMD directive in the semawi dockerfile
JosefAssad Feb 11, 2020
b6a25b2
install and cleran up in the same layer
JosefAssad Feb 11, 2020
abf08cf
add Makefile to alias sensible SeMaWi commands
JosefAssad Feb 11, 2020
a230f94
remove redundant layer and etc folder
JosefAssad Feb 11, 2020
80b0d70
remove the need for build deps for lxml
JosefAssad Feb 11, 2020
71a03e0
remove overridden LABEL dockerfile directive
JosefAssad Feb 11, 2020
6a5cd1f
set a BALK contact and password sender in Mediawiki
JosefAssad Feb 11, 2020
c3551b9
update base image Debian version
JosefAssad Feb 11, 2020
3e65eb6
place semawi php overrides in the correct location
JosefAssad Feb 11, 2020
2d8fc52
use prestissimo for parallel composer dependency installation
JosefAssad Feb 11, 2020
10585f0
upgrade SMW to 2.5
JosefAssad Feb 11, 2020
4edfd04
expose some mw maintenance commands in the Makefile
JosefAssad Feb 12, 2020
f815bc5
expose mediawiki version desired in the config
JosefAssad Feb 12, 2020
9489b3b
streamline SeMaWi data model loading
JosefAssad Feb 12, 2020
45d8d1a
prune orphan images when docker cleaning
JosefAssad Feb 12, 2020
0819c3c
upgrade SeMaWi to the latest MW LTS and all dependencies
JosefAssad Feb 12, 2020
dd4b94b
set a sane WORKDIR for mediawiki container
JosefAssad Feb 13, 2020
9293423
fix broken plantuml jar location
JosefAssad Feb 13, 2020
0cbf995
update the Chameleon skin
JosefAssad Feb 13, 2020
a9fe0d9
force a docker-compose rebuild on issuing up.
JosefAssad Feb 13, 2020
5aead20
clean up troubleshooting facilities in LocalSettings.php
JosefAssad Feb 13, 2020
3d53677
namespace semawi docker images
JosefAssad Feb 13, 2020
dfab209
split out Geocloud sync as a microservice
JosefAssad Feb 16, 2020
51f75f8
add some docker healthchecks to our containers
JosefAssad Feb 16, 2020
25422a8
add an in-docker cron service
JosefAssad Feb 17, 2020
f377f4f
place mediawiki under supervisord
JosefAssad Feb 17, 2020
beac6af
add embedded microservice to trigger hoh-HTTP mediawiki jobs
JosefAssad Feb 17, 2020
290ee0c
add a logs makefile target
JosefAssad Feb 17, 2020
635dfa5
clean up all docker images
JosefAssad Feb 17, 2020
ca2c2c4
add custom mysql configuration to work around a php incompatibility
JosefAssad Feb 17, 2020
9dcd710
remove superfluous dollar sign
JosefAssad Feb 17, 2020
8b72c1b
speed up loading of the semawi data model
JosefAssad Feb 17, 2020
c43af29
make mediawiki extension versions declarable in the main config
JosefAssad Feb 17, 2020
03dc66c
split out the rest of the main dependencies into our main config
JosefAssad Feb 17, 2020
6e0a309
make php memory limit configurable
JosefAssad Feb 19, 2020
00f9131
upgrade SeMaWi to latest stable versions
JosefAssad Feb 19, 2020
4a5411b
move as much of the static semawi code construction into the image
JosefAssad Feb 19, 2020
183e69f
update the documentation
JosefAssad Feb 19, 2020
66c3d67
add changelog
JosefAssad Feb 19, 2020
a7e9b0d
specify healthcheck user agent
JosefAssad Feb 24, 2020
d60e258
remove MySQL host port mapping
JosefAssad Feb 24, 2020
56647cf
nerf some file types in the images directory for security
JosefAssad Feb 24, 2020
f938766
lock down the images and vendor directories
JosefAssad Feb 24, 2020
fc29a66
set some security headers on apache
JosefAssad Feb 24, 2020
356df24
specify which port SeMaWi should listen on
JosefAssad Feb 28, 2020
69c8725
default to port 12345
JosefAssad Feb 28, 2020
e2989d7
turns out ini file format doesn't like inline comments
JosefAssad Feb 28, 2020
7e9de98
document upgrades to 2020.1
JosefAssad Feb 28, 2020
94cb025
update changelog for 2020.1
JosefAssad Feb 29, 2020
3b5f2d1
triage out GC2 and ODBC integration
JosefAssad Mar 17, 2020
a089a91
implement TLS
JosefAssad Mar 17, 2020
76ea142
move SSL/TLS certificate responsibiliy over to the docker host
JosefAssad Mar 18, 2020
3903e0f
use the correct certificate from letsencrypt
JosefAssad Mar 18, 2020
75022ab
prevent access by unregistered users
JosefAssad Mar 18, 2020
60931bd
put a htpasswd gate at the front of semawi
JosefAssad Mar 18, 2020
9f967a3
add a simple backup script
JosefAssad Nov 1, 2020
075b9b5
pin the composer version
JosefAssad Nov 7, 2020
5efff5e
make the walled garden capability opt-out
JosefAssad Nov 7, 2020
f216341
make usage of basic auth protection optional
JosefAssad Nov 7, 2020
15be110
add instructions for renewing TLS certificates
Nov 22, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
*.pem
.*.swp

.venv
.env
67 changes: 67 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Changelog
All notable changes to this project will be documented in this file.

## Unreleased
[2020.2] - 2020-??-??

### Added

### Changed

### Removed

### Fixed

## [2020.1RC2] - 2020-03-20

### Added

### Changed

### Removed
* GeoCloud 2 synchronisation microservice has been removed as agreed with BALK
to facilitate the migration to a Linode.
* ODBC integration has been deprecated and removed as SeMaWi will focus in the
coming period on cross-municipal models rather than deeper portfolio
integration.

### Fixed

## [2020.1RC1] - 2020-02-29

This is an update, refresh, and refactoring release.

### Added
* Transition to an initial draft microservices architecture.

### Changed
* Mediawiki distribution construction is moved into the Docker image
* The php memory limit is made configurable
* Dependency versions are also specifiable in the config now
* GNU Make is now used to ease some of the backend administration tasks
* A new microservice is added which allows us to trigger non-networked Mediawiki
tasks such as `update.php` with http calls
* A cron container has been introduced to trigger Geocloud 2 syncs and
`runJobs.php` calls, obviating the need for host-based cronjobs.
* Docker containers now have (rudimentary) health checks
* We can toggle the Mediawiki error facilities from the configuration now.
* SeMaWi has had almost all of its dependencies updated to latest stable. A
notable exception is MySQL, since the latest versions appear to be a lot less
tested and perform extremely slowly with Mediawiki.
* GeoCloud synchronisation is now split out in its own microservice.
* SeMaWi now uses its own MySQL container instead of one provided by the docker
host.
* Debian docker base images are also updated to the latest stable, 10.2.
* php dependency management has been moved over entirely to composer; no more
pear errors.

### Fixed
* SeMaWi, in general, has been fixed...

### Notes
* We remain on MySQL 5.7. This is far behind what is current, but the current
version in my testing performed abysmally and seemed to cause data issues.
Worth investigating.
* We hope to upgrade to 1.34 but have tested and encountered some problems
porting data. so for now, MediaWiki 1.31 will do fine as it is the current
LTS release.
54 changes: 0 additions & 54 deletions Dockerfile

This file was deleted.

48 changes: 48 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!make
include .env

build:
docker-compose build

up: build
docker-compose up -d

down:
docker-compose down

clean:
docker-compose down -v
yes | docker image prune

distclean: clean
docker rmi semawi/mediawiki:${SEMAWI_VERSION}
docker rmi semawi/cron:${SEMAWI_VERSION}
docker rmi semawi/mysql:${SEMAWI_VERSION}

ps:
docker-compose ps

mw_runjobs:
docker exec semawi-mediawiki /usr/bin/php /var/www/wiki/maintenance/runJobs.php

mw_update:
docker exec semawi-mediawiki /usr/bin/php /var/www/wiki/maintenance/update.php --quick

mw_enter:
docker exec -ti semawi-mediawiki /bin/bash

loaddata:
docker exec semawi-mediawiki /bin/bash /usr/local/bin/loaddata.sh

logs:
docker-compose logs -f

reload:
docker-compose up -d --force-recreate semawi

certs:
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout privkey.pem \
-out cert.pem \
-subj /CN=${SEMAWI_WGSERVER} \
-addext subjectAltName=DNS:${SEMAWI_WGSERVER}
Loading