Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
6eea65be60 | |||
6eb8631f9e | |||
502d6ccec7 | |||
cb3aa63370 | |||
e59495665c | |||
fb79fe0dc8 | |||
bd2619a14b | |||
54f1c382f5 | |||
218128db23 | |||
6f9ed1279c | |||
2ff3dcad1e | |||
eab72db590 | |||
04c3ba7fe1 | |||
8d7d0e5119 | |||
1cf4d8e6ae | |||
2705d760bf | |||
ad1c5af0d8 | |||
b2b868f0be |
@ -5,15 +5,13 @@ RUN apk add --update --no-cache \
|
|||||||
git \
|
git \
|
||||||
jq
|
jq
|
||||||
WORKDIR "/home/node"
|
WORKDIR "/home/node"
|
||||||
ARG WIKI_PACKAGE=wiki@0.21.2
|
ARG WIKI_PACKAGE=wiki@0.28.0
|
||||||
RUN su node -c "npm install -g --prefix . $WIKI_PACKAGE"
|
RUN su node -c "npm install -g --prefix . $WIKI_PACKAGE"
|
||||||
RUN su node -c "mkdir -p .wiki"
|
RUN su node -c "mkdir -p .wiki"
|
||||||
VOLUME "/home/node/.wiki"
|
VOLUME "/home/node/.wiki"
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
USER node
|
USER node
|
||||||
ENV PATH="${PATH}:/home/node/bin"
|
ENV PATH="${PATH}:/home/node/bin"
|
||||||
# Adding this line to make local plugin development easier
|
|
||||||
# see https://local-farm.wiki.dbbs.co/make-a-new-plugin.html
|
|
||||||
ENV NPM_CONFIG_PREFIX="${HOME}"
|
ENV NPM_CONFIG_PREFIX="${HOME}"
|
||||||
ENTRYPOINT ["dumb-init"]
|
ENTRYPOINT ["dumb-init"]
|
||||||
CMD ["wiki", "--farm", "--security_type=friends"]
|
CMD ["wiki", "--farm", "--security_type=friends"]
|
||||||
|
59
README.md
59
README.md
@ -7,7 +7,7 @@ Start Playing Federated Wiki: http://start.fed.wiki
|
|||||||
docker run -p 3000:3000 -it --rm \
|
docker run -p 3000:3000 -it --rm \
|
||||||
dobbs/farm
|
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
|
### Run a local wiki that will survive a reboot
|
||||||
|
|
||||||
@ -17,44 +17,45 @@ Visit http://localhost:3000 and http://anything.localtest.me:3000
|
|||||||
|
|
||||||
Your wiki pages and configuration will be saved in the ~/.wiki folder.
|
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
|
# Development
|
||||||
|
|
||||||
This image's tag does not match the version of the included wiki
|
This image's tag does not match the version of the included wiki
|
||||||
software. Our version indicates the scale of changes in this tiny
|
software. Our version indicates the scale of changes in this tiny
|
||||||
devops pipeline. For example, when we changed the `USER` directive and
|
devops pipeline.
|
||||||
removed the wiki config generation scripts, we bumped the major
|
|
||||||
version from 0.50.x to 1.0.x.
|
|
||||||
|
|
||||||
Notes to self:
|
Testing new images locally:
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
docker build --tag dobbs/farm:1.0.2 .
|
TAG=1.0.14-prefer-title
|
||||||
git tag -am "" '1.0.2'
|
IMAGE=dobbs/farm:$TAG
|
||||||
git push origin '1.0.2'
|
docker build --tag $IMAGE .
|
||||||
```
|
```
|
||||||
|
|
||||||
The repos in Dockerhub and GitHub are configured to automatically build new tags.
|
# Publish containers
|
||||||
|
|
||||||
# Publish experimental plugins
|
GitHub
|
||||||
|
|
||||||
Invoke Dockerhub and GitHub integration.
|
|
||||||
``` bash
|
``` bash
|
||||||
git tag -am "" '1.0.2-pre-0217'
|
git tag -am "" "$TAG"
|
||||||
git push --atomic origin master '1.0.2-pre-0217'
|
git push --atomic origin main "$TAG"
|
||||||
|
```
|
||||||
|
|
||||||
|
Docker Hub
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
docker build --tag $IMAGE . # if you haven't already
|
||||||
|
docker build --tag dobbs/farm:latest . # if you haven't already
|
||||||
|
docker push $IMAGE
|
||||||
|
docker push dobbs/farm:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
# 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
|
@ -5,7 +5,7 @@ using wiki to drive some learning about kubernetes.
|
|||||||
|
|
||||||
# We're using MacOS, Docker Desktop, and k3d
|
# We're using MacOS, Docker Desktop, and k3d
|
||||||
|
|
||||||
brew cask install docker
|
brew install --cask docker
|
||||||
brew install k3d
|
brew install k3d
|
||||||
|
|
||||||
mkdir -p ~/.wiki-k8s ~/workspace/fedwiki
|
mkdir -p ~/.wiki-k8s ~/workspace/fedwiki
|
||||||
@ -26,13 +26,16 @@ using wiki to drive some learning about kubernetes.
|
|||||||
"secure_cookie": false,
|
"secure_cookie": false,
|
||||||
"security_type": "friends",
|
"security_type": "friends",
|
||||||
"wikiDomains": {
|
"wikiDomains": {
|
||||||
"simple.localtest.me": {
|
"localhost": {
|
||||||
"id": "/home/node/.wiki/config.owner.json"
|
"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`
|
`.friend.secret` must match the `.admin` field from `config.json`
|
||||||
|
|
||||||
@ -46,8 +49,8 @@ using wiki to drive some learning about kubernetes.
|
|||||||
|
|
||||||
# Deploy Wiki
|
# Deploy Wiki
|
||||||
|
|
||||||
kubectl apply -f wiki.yaml
|
kubectl apply -f http://deploy.wiki.do/assets/wiki/wiki.yaml
|
||||||
|
|
||||||
# Play with the wiki
|
# 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.6
|
|
||||||
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