Compare commits
61 Commits
Author | SHA1 | Date | |
---|---|---|---|
dd42a259e5 | |||
b9f0362b30 | |||
9a8e3e6005 | |||
e2db62e0c0 | |||
e90192b93f | |||
2504384fc4 | |||
8fd9adf232 | |||
8b8f129f07 | |||
fdb5ebb73d | |||
219e5b2601 | |||
333989c606 | |||
5b74152137 | |||
d4aa21b680 | |||
4c286521eb | |||
429f5d20c7 | |||
1aa19414ef | |||
9e349de285 | |||
6512a9d91a | |||
e946812697 | |||
a5080d3534 | |||
3270aac81d | |||
9bbac5f07e | |||
6d356d4af6 | |||
6d88837af8 | |||
2fb80756bb | |||
d4d79e3379 | |||
8bbf4369cd | |||
7dddc84ff0 | |||
70b28d08b0 | |||
487cfde0e3 | |||
a427cb02a5 | |||
2583e49cc5 | |||
cbc0d0a5d7 | |||
20329546d2 | |||
d7892255ee | |||
f2053f9314 | |||
00be948c9b | |||
0f45783feb | |||
8645ae54f8 | |||
6eea65be60 | |||
6eb8631f9e | |||
502d6ccec7 | |||
cb3aa63370 | |||
e59495665c | |||
fb79fe0dc8 | |||
bd2619a14b | |||
54f1c382f5 | |||
218128db23 | |||
6f9ed1279c | |||
2ff3dcad1e | |||
eab72db590 | |||
04c3ba7fe1 | |||
8d7d0e5119 | |||
1cf4d8e6ae | |||
2705d760bf | |||
ad1c5af0d8 | |||
b2b868f0be | |||
aa23f2f9b3 | |||
517e7b3e6a | |||
d5b43b160a | |||
f94133b505 |
14
.drone.yml
Normal file
14
.drone.yml
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
kind: pipeline
|
||||
name: publish docker image
|
||||
steps:
|
||||
- name: build and publish
|
||||
image: plugins/docker
|
||||
settings:
|
||||
username: 3wordchant
|
||||
password:
|
||||
from_secret: git_coopcloud_tech_token_3wc
|
||||
repo: git.coopcloud.tech/wiki-cafe/wiki-farm
|
||||
auto_tag: true
|
||||
tags: latest
|
||||
registry: git.coopcloud.tech
|
32
Dockerfile
32
Dockerfile
@ -4,14 +4,32 @@ RUN apk add --update --no-cache \
|
||||
dumb-init \
|
||||
git \
|
||||
jq
|
||||
|
||||
WORKDIR "/home/node"
|
||||
ARG WIKI_PACKAGE=wiki@0.21.0
|
||||
RUN su node -c "npm install -g --prefix . $WIKI_PACKAGE" \
|
||||
&& su node -c "cd /home/node/lib/node_modules/wiki && npm install --save wiki-server@0.17.3 wiki-client@0.20.0"
|
||||
RUN su node -c "mkdir -p .wiki"
|
||||
VOLUME "/home/node/.wiki"
|
||||
EXPOSE 3000
|
||||
|
||||
ARG WIKI_PACKAGE=wiki@0.37.0
|
||||
|
||||
USER node
|
||||
|
||||
RUN npm install -g --prefix . $WIKI_PACKAGE
|
||||
RUN cd lib/node_modules/wiki/node_modules && \
|
||||
rm -r wiki-security-passportjs && \
|
||||
git clone https://git.coopcloud.tech/wiki-cafe/wiki-security-passportjs.git
|
||||
|
||||
RUN cd lib/node_modules/wiki/node_modules/wiki-security-passportjs && \
|
||||
npm install && \
|
||||
node_modules/grunt/bin/grunt
|
||||
|
||||
RUN mkdir -p .wiki
|
||||
|
||||
VOLUME "/home/node/.wiki"
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
ENV PATH="${PATH}:/home/node/bin"
|
||||
|
||||
ENV NPM_CONFIG_PREFIX="${HOME}"
|
||||
|
||||
ENTRYPOINT ["dumb-init"]
|
||||
CMD ["wiki", "--farm", "--security_type=friends"]
|
||||
|
||||
CMD ["wiki", "--farm"]
|
||||
|
80
README.md
80
README.md
@ -7,7 +7,7 @@ Start Playing Federated Wiki: http://start.fed.wiki
|
||||
docker run -p 3000:3000 -it --rm \
|
||||
dobbs/farm
|
||||
|
||||
Visit http://localhost:3000 and http://anything.localtest.me:3000
|
||||
Visit http://localhost:3000 and http://anything.localhost:3000
|
||||
|
||||
### Run a local wiki that will survive a reboot
|
||||
|
||||
@ -17,44 +17,64 @@ Visit http://localhost:3000 and http://anything.localtest.me:3000
|
||||
|
||||
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. Our version indicates the scale of changes in this tiny
|
||||
devops pipeline. For example, when we changed the `USER` directive and
|
||||
removed the wiki config generation scripts, we bumped the major
|
||||
version from 0.50.x to 1.0.x.
|
||||
devops pipeline.
|
||||
|
||||
Notes to self:
|
||||
Testing new images locally:
|
||||
|
||||
``` bash
|
||||
docker build --tag dobbs/farm:1.0.2 .
|
||||
git tag -am "" '1.0.2'
|
||||
git push origin '1.0.2'
|
||||
TAG=1.0.14-prefer-title
|
||||
IMAGE=dobbs/farm:$TAG
|
||||
docker build --tag $IMAGE .
|
||||
```
|
||||
|
||||
The repos in Dockerhub and GitHub are configured to automatically build new tags.
|
||||
You might also want to remember the most recent tag:
|
||||
|
||||
# Publish experimental plugins
|
||||
|
||||
Invoke Dockerhub and GitHub integration.
|
||||
``` bash
|
||||
git tag -am "" '1.0.2-pre-0217'
|
||||
git push --atomic origin master '1.0.2-pre-0217'
|
||||
git tag --list | tail -1
|
||||
```
|
||||
|
||||
Update WIKI_VERSIONS.txt
|
||||
|
||||
``` bash
|
||||
docker run --rm $IMAGE wiki --version > WIKI_VERSIONS.txt
|
||||
```
|
||||
|
||||
# Publish container images
|
||||
|
||||
End-to-end recipe to publish a new version. May require judgment in
|
||||
the steps before git push and docker push.
|
||||
``` bash
|
||||
# Emit current version to standard error and next version to standard out.
|
||||
# use that to assign the next TAG
|
||||
TAG="$(git tag --list | tail -1 | perl -lne 'print STDERR $_;s/(\d+)$/$1+1/e;print $_;')"
|
||||
IMAGE=dobbs/farm:$TAG
|
||||
docker build --no-cache --tag $IMAGE .
|
||||
docker build --tag dobbs/farm:latest .
|
||||
docker run --rm $IMAGE wiki --version > WIKI_VERSIONS.txt
|
||||
git add .
|
||||
git commit -m "update WIKI_VERSIONS.txt for $TAG"
|
||||
git tag -am "" "$TAG"
|
||||
git push --atomic origin main "$TAG"
|
||||
docker push $IMAGE
|
||||
docker push dobbs/farm:latest
|
||||
```
|
||||
|
||||
Sometimes we publish a docker image with no changes to the wiki source
|
||||
code. This allows us to pick up non-breaking changes to some of the
|
||||
plugins. Using `--no-cache` ensures docker re-runs this line from the
|
||||
`Dockerfile` in particular: `npm install -g --prefix . $WIKI_PACKAGE`.
|
||||
|
||||
# Experiment with K8S
|
||||
|
||||
With the local kubernetes example (see [examples/k8s/README.md](./examples/k8s/README.md)):
|
||||
|
||||
``` bash
|
||||
k3d image import $IMAGE --cluster wiki
|
||||
kubectl patch deployment.apps/wiki-deployment \
|
||||
--type='json' \
|
||||
-p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"'$IMAGE'"}]'
|
||||
```
|
||||
|
15
RELEASE-NOTES-1.0.0.md
Normal file
15
RELEASE-NOTES-1.0.0.md
Normal file
@ -0,0 +1,15 @@
|
||||
# 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
|
46
WIKI_VERSIONS.txt
Normal file
46
WIKI_VERSIONS.txt
Normal file
@ -0,0 +1,46 @@
|
||||
wiki: 0.37.0
|
||||
wiki-server: 0.25.2
|
||||
wiki-client: 0.30.1
|
||||
wiki-security-friends: 0.2.5
|
||||
wiki-security-passportjs: 0.10.0
|
||||
wiki-plugin-activity: 0.6.1
|
||||
wiki-plugin-assets: 0.5.1
|
||||
wiki-plugin-audio: 0.2.0
|
||||
wiki-plugin-bars: 0.5.0
|
||||
wiki-plugin-calculator: 0.5.0
|
||||
wiki-plugin-calendar: 0.3.0
|
||||
wiki-plugin-changes: 0.4.0
|
||||
wiki-plugin-chart: 0.4.0
|
||||
wiki-plugin-code: 0.4.0
|
||||
wiki-plugin-data: 0.3.0
|
||||
wiki-plugin-factory: 0.3.0
|
||||
wiki-plugin-favicon: 0.3.0
|
||||
wiki-plugin-flagmatic: 0.2.0
|
||||
wiki-plugin-force: 0.5.0
|
||||
wiki-plugin-frame: 0.10.3
|
||||
wiki-plugin-future: 0.4.0
|
||||
wiki-plugin-graphviz: 0.11.3
|
||||
wiki-plugin-grep: 1.1.0
|
||||
wiki-plugin-html: 0.5.1
|
||||
wiki-plugin-image: 0.5.0
|
||||
wiki-plugin-line: 0.5.0
|
||||
wiki-plugin-map: 0.8.0
|
||||
wiki-plugin-markdown: 0.4.2
|
||||
wiki-plugin-math: 0.1.0
|
||||
wiki-plugin-metabolism: 0.3.0
|
||||
wiki-plugin-method: 0.3.0
|
||||
wiki-plugin-pagefold: 0.3.0
|
||||
wiki-plugin-paragraph: 0.3.0
|
||||
wiki-plugin-plugmatic: 1.3.1
|
||||
wiki-plugin-pushpin: 0.5.0
|
||||
wiki-plugin-radar: 0.5.0
|
||||
wiki-plugin-recycler: 0.3.0
|
||||
wiki-plugin-reduce: 0.3.0
|
||||
wiki-plugin-reference: 0.3.0
|
||||
wiki-plugin-report: 0.3.0
|
||||
wiki-plugin-rollup: 0.3.0
|
||||
wiki-plugin-roster: 0.3.0
|
||||
wiki-plugin-scatter: 0.5.0
|
||||
wiki-plugin-search: 0.2.0
|
||||
wiki-plugin-transport: 0.2.0
|
||||
wiki-plugin-video: 0.3.1
|
@ -5,7 +5,7 @@ using wiki to drive some learning about kubernetes.
|
||||
|
||||
# We're using MacOS, Docker Desktop, and k3d
|
||||
|
||||
brew cask install docker
|
||||
brew install --cask docker
|
||||
brew install k3d
|
||||
|
||||
mkdir -p ~/.wiki-k8s ~/workspace/fedwiki
|
||||
@ -26,13 +26,16 @@ using wiki to drive some learning about kubernetes.
|
||||
"secure_cookie": false,
|
||||
"security_type": "friends",
|
||||
"wikiDomains": {
|
||||
"simple.localtest.me": {
|
||||
"id": "/home/node/.wiki/config.owner.json"
|
||||
"localhost": {
|
||||
"id": "/home/node/.wiki/localhost.owner.json"
|
||||
},
|
||||
"example.com": {
|
||||
"id": "/home/node/.wiki/example.com.owner.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# example ~/.wiki-k8s/config.owner.json
|
||||
# example ~/.wiki-k8s/localhost.owner.json
|
||||
|
||||
`.friend.secret` must match the `.admin` field from `config.json`
|
||||
|
||||
@ -46,8 +49,8 @@ using wiki to drive some learning about kubernetes.
|
||||
|
||||
# Deploy Wiki
|
||||
|
||||
kubectl apply -f wiki.yaml
|
||||
kubectl apply -f http://deploy.wiki.do/assets/wiki/wiki.yaml
|
||||
|
||||
# Play with the wiki
|
||||
|
||||
open http://simple.localtest.me
|
||||
open http://wiki.localhost
|
||||
|
@ -1,71 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: wiki-deployment
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: wiki
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: wiki
|
||||
spec:
|
||||
securityContext:
|
||||
runAsUser: 1000
|
||||
runAsGroup: 1000
|
||||
fsGroup: 1000
|
||||
containers:
|
||||
- name: farm
|
||||
image: dobbs/farm:1.0.1
|
||||
command: ["wiki"]
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
volumeMounts:
|
||||
- name: dot-wiki
|
||||
mountPath: /home/node/.wiki
|
||||
- name: fedwiki
|
||||
mountPath: /home/node/fedwiki
|
||||
volumes:
|
||||
- name: dot-wiki
|
||||
hostPath:
|
||||
path: /macos/.wiki-k8s
|
||||
- name: fedwiki
|
||||
hostPath:
|
||||
path: /macos/fedwiki
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: wiki-service
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
targetPort: 3000
|
||||
port: 80
|
||||
selector:
|
||||
app: wiki
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: simple-wiki
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik
|
||||
spec:
|
||||
rules:
|
||||
- host: simple.localtest.me
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: wiki-service
|
||||
servicePort: http
|
||||
- host: "*.simple.localtest.me"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: wiki-service
|
||||
servicePort: http
|
Reference in New Issue
Block a user