Eric Dobbs fb2aa0f67c Add example kubernetes deployment
This configuration partially works with kubernetes 1.15 running
locally using Docker Desktop for Mac and kind (k8s in docker).

For completeness, we installed kind & created a cluster like this:

    cd /tmp/ && GO111MODULE="on" go get sigs.k8s.io/kind
    kind create cluster --name workshop
    export KUBECONFIG="$(kind get kubeconfig-path --name="workshop")"

We describe finicky details discovered while creating wiki.yaml.

The persistent volume when mounted in wiki-config begins its life with
all files owned by root. This prevented our node user inside the
container from creating the config files inside .wiki. It took a while
to discover the correct securityContext for the wiki-config container.

We tested this configuration as follows:

    alias k=kubectl
    k apply -f wiki.yaml
    export POD=$(k get pod -lapp=wiki -o jsonpath='{.items[*].metadata.name}')
    export PASSWORD=$(k exec svc/wiki-service -- jq -r .admin .wiki/config.json)
    k port-forward svc/wiki-service 3000:80 > /dev/null &
    pbcopy <<<"$PASSWORD"
    open http://localhost:3000
    # click lock icon in the browser to login to wiki page
    # paste the password from the clipboard
    # click wiki to toggle editing on
    # make a few edits to the wiki page

Something about authentication is NOT working for anything except
localhost. When we try the same tests using http://localtest.me or
configuring foo.local in the MacOS /etc/hosts file, for some reason
the cookies don't seem to be passed through to the server. All edits
on other pages end up in browser localStorage.

Nevertheless, I'll commit what I have for now.
2019-11-22 12:24:34 -07:00
2017-07-15 22:36:22 -06:00

Federated Wiki Farm

Start Playing Federated Wiki: http://start.fed.wiki

Run a local wiki farm

docker run -p 3000:3000 -it --rm \
  dobbs/farm

Visit http://localhost:3000 and http://anything.localtest.me:3000

Run a local wiki that will survive a reboot

docker run -p 3000:3000 -it --rm \
  -v ~/.wiki:/home/node/.wiki \
  dobbs/farm

Your wiki pages and configuration will be saved in the ~/.wiki folder.

Release Notes for 1.0.0

This is a significant breaking change from pre-1.0 releases. Especially:

  • changed the user from app (uid=1001(app) gid=1001(app) groups=1001(app)) to node (uid=1000(node) gid=1000(node) groups=1000(node),1000(node))

  • no longer installing bash, configure-wiki, nor set-owner-name

  • no longer creating /home/app/.wiki/wiki.json

Those changes in particular will impose some work on authors upgrading from previous versions.

The last non-breaking revision is 0.52.0 https://github.com/dobbs/farm/tree/0.52.0#readme

Development

This image's tag does not match the version of the included wiki software.

Notes to self:

docker build --tag dobbs/farm:0.51.0 .
git tag -am "" '0.51.0'
git push --tags

The repos in Dockerhub and GitHub are configured to automatically build new tags.

Publish experimental plugins

docker build \
  --tag dobbs/farm:0.14.0-frame \
  --build-arg WIKI_PACKAGE='dobbs/wiki#frame' \
  .
docker push dobbs/farm:0.14.0-frame
Description
Docker image for a Federated Wiki farm, with working OAuth2 login Based on https://github.com/dobbs/farm/
Readme 112 KiB
Languages
Dockerfile 100%