From c71a3fcd893c9d14ab1b3c82543643cb22f7c1d6 Mon Sep 17 00:00:00 2001 From: m0wer Date: Fri, 26 Nov 2021 21:00:37 +0300 Subject: [PATCH 01/17] feat(init-and-run-wiki): disable auth by default --- README.md | 6 ++---- init-and-run-wiki | 7 +++++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6ac3b9b..846ca3b 100644 --- a/README.md +++ b/README.md @@ -42,10 +42,8 @@ In this example, the folder `$(pwd)/.tiddlywiki` is used for the data. ## Authentication -Default credentials are `user`:`wiki`. - -Simply provide the `USERNAME` and `PASSWORD` environment variables to -customize. +Authentication is disabled by default. To enable it, simply provide the +`USERNAME` and `PASSWORD` environment variables. ## Other settings diff --git a/init-and-run-wiki b/init-and-run-wiki index dba6810..4231b02 100755 --- a/init-and-run-wiki +++ b/init-and-run-wiki @@ -18,5 +18,8 @@ fi # Start the tiddlywiki server - -exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen host=0.0.0.0 port=8080 username="${USERNAME:-user}" password="${PASSWORD-wiki}" debug-level=${DEBUG_LEVEL-none} +if [ -z "$USERNAME" ]; then + exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen host=0.0.0.0 port=8080 debug-level=${DEBUG_LEVEL-none}; +else + exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen host=0.0.0.0 port=8080 username="$USERNAME" password="${PASSWORD-wiki}" debug-level=${DEBUG_LEVEL-none}; +fi From f7bbe5cc1c6d407cb5a99734ad240db4fbe5f4e3 Mon Sep 17 00:00:00 2001 From: m0wer Date: Fri, 26 Nov 2021 21:07:53 +0300 Subject: [PATCH 02/17] ci(docker): build for arm --- .github/workflows/docker.yml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 04243ee..0ea70cf 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,8 +1,9 @@ +--- name: docker on: schedule: - - cron: '0 3 5 * *' # every friday at 3am + - cron: 0 3 5 * * # every friday at 3am push: branches: - '**' @@ -10,21 +11,18 @@ on: - '*.*.*' pull_request: branches: - - 'master' + - master jobs: docker: runs-on: ubuntu-latest steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v2 - - - name: Set up dynamic build ARGs + - name: Set up dynamic build ARGs id: getargs run: echo "::set-output name=version::$(cat ./stable/VERSION)" - - - name: Docker meta + - name: Docker meta id: meta uses: docker/metadata-action@v3 with: @@ -41,18 +39,16 @@ jobs: type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha - - - name: Login to DockerHub + - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1 + uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push + - name: Build and push uses: docker/build-push-action@v2 with: - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64,linux/arm/v7 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From daaa7c5f4e87b130a0fa1f745bc6c9523257fa65 Mon Sep 17 00:00:00 2001 From: m0wer Date: Fri, 26 Nov 2021 21:10:25 +0300 Subject: [PATCH 03/17] ci(docker): setup buildx for crossplatform --- .github/workflows/docker.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0ea70cf..7df507d 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -19,6 +19,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - name: Set up dynamic build ARGs id: getargs run: echo "::set-output name=version::$(cat ./stable/VERSION)" From 2c0ab91984e309ae397fa8dde6f6330e0f24a987 Mon Sep 17 00:00:00 2001 From: m0wer Date: Fri, 26 Nov 2021 21:13:44 +0300 Subject: [PATCH 04/17] ci(docker): setup qemu --- .github/workflows/docker.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 7df507d..76eecd4 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -19,11 +19,17 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 + - name: Set up dynamic build ARGs id: getargs run: echo "::set-output name=version::$(cat ./stable/VERSION)" + - name: Docker meta id: meta uses: docker/metadata-action@v3 @@ -41,12 +47,14 @@ jobs: type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha + - name: Login to DockerHub if: github.event_name != 'pull_request' uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push uses: docker/build-push-action@v2 with: From 5687667a918424d4897317e5854286c7c8eb3911 Mon Sep 17 00:00:00 2001 From: jyusang Date: Sat, 16 Jul 2022 14:32:51 +0800 Subject: [PATCH 05/17] refactor(init-and-run-wiki): Extract listen command configuration --- init-and-run-wiki | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/init-and-run-wiki b/init-and-run-wiki index 4231b02..7492a9b 100755 --- a/init-and-run-wiki +++ b/init-and-run-wiki @@ -16,10 +16,13 @@ if [ ! -d /var/lib/tiddlywiki/mywiki ]; then mkdir /var/lib/tiddlywiki/mywiki/tiddlers fi +# Configure listen command, see https://tiddlywiki.com/static/ListenCommand.html +listen_params="host=0.0.0.0 port=8080" +listen_params="$listen_params debug-level=${DEBUG_LEVEL-none}" +if [ -n "$USERNAME" ]; then + listen_params="$listen_params username=$USERNAME" + listen_params="$listen_params password=${PASSWORD-wiki}" +fi # Start the tiddlywiki server -if [ -z "$USERNAME" ]; then - exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen host=0.0.0.0 port=8080 debug-level=${DEBUG_LEVEL-none}; -else - exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen host=0.0.0.0 port=8080 username="$USERNAME" password="${PASSWORD-wiki}" debug-level=${DEBUG_LEVEL-none}; -fi +exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen $listen_params From fbfdfdbd3db2f067a07d142ce40ef7f787a8f609 Mon Sep 17 00:00:00 2001 From: jyusang Date: Sat, 16 Jul 2022 15:16:16 +0800 Subject: [PATCH 06/17] chore(Dockerfile): Remove unnecessary expose This `EXPOSE` is probably not needed and it's more flexible to use the `-p` flag in `docker run`. --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 50d9ad4..8a4c8f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,4 +11,3 @@ ADD init-and-run-wiki /usr/local/bin/init-and-run-wiki # Meta CMD ["/usr/local/bin/init-and-run-wiki"] -EXPOSE 8080 From 2a342a1cfbe9bc6d5d44fc4dc615c76ddb149902 Mon Sep 17 00:00:00 2001 From: jyusang Date: Sat, 16 Jul 2022 16:15:03 +0800 Subject: [PATCH 07/17] feat(init-and-run-wiki): Support `path-prefix` listen parameter --- README.md | 9 +++++++++ init-and-run-wiki | 3 +++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 846ca3b..6df44c8 100644 --- a/README.md +++ b/README.md @@ -56,3 +56,12 @@ If you are in a memory-constrained environment, you can provide the Set the `DEBUG_LEVEL` environment variable to `debug`. For example by passing `-e DEBUG_LEVEL=debug` option in `docker run`. + +### Path prefix + +Set the `PATH_PREFIX` environment variable to customize the path prefix for +serving TiddlyWiki. For example by passing `-e PATH_PREFIX=\wiki` option in +`docker run`. According to this [note][path-prefix-note], please remember to +configure the client as well. + +[path-prefix-note]: https://tiddlywiki.com/static/Using%2520a%2520custom%2520path%2520prefix%2520with%2520the%2520client-server%2520edition.html diff --git a/init-and-run-wiki b/init-and-run-wiki index 7492a9b..6c873fd 100755 --- a/init-and-run-wiki +++ b/init-and-run-wiki @@ -19,6 +19,9 @@ fi # Configure listen command, see https://tiddlywiki.com/static/ListenCommand.html listen_params="host=0.0.0.0 port=8080" listen_params="$listen_params debug-level=${DEBUG_LEVEL-none}" +if [ -n "$PATH_PREFIX" ]; then + listen_params="$listen_params path-prefix=$PATH_PREFIX" +fi if [ -n "$USERNAME" ]; then listen_params="$listen_params username=$USERNAME" listen_params="$listen_params password=${PASSWORD-wiki}" From 42324d0fe6244f13c9322eea6a2ba23566c936c0 Mon Sep 17 00:00:00 2001 From: Brett O'Donnell Date: Sat, 14 Jan 2023 14:50:55 +1030 Subject: [PATCH 08/17] allow plugins via environment variable This change will allow plugins to be defined via environment variable `PLUGINS`, for example: ``` PLUGINS=+plugins/tiddlywiki/filesystem +plugins/tiddlywiki/tiddlyweb ++./mygreatplugin ``` --- init-and-run-wiki | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/init-and-run-wiki b/init-and-run-wiki index 6c873fd..3794e2e 100755 --- a/init-and-run-wiki +++ b/init-and-run-wiki @@ -16,6 +16,11 @@ if [ ! -d /var/lib/tiddlywiki/mywiki ]; then mkdir /var/lib/tiddlywiki/mywiki/tiddlers fi +# Define plugins, see https://tiddlywiki.com/static/Using%2520TiddlyWiki%2520on%2520Node.js.html +if [ -n "$PLUGINS" ]; then + plugins_params="$PLUGINS" +fi + # Configure listen command, see https://tiddlywiki.com/static/ListenCommand.html listen_params="host=0.0.0.0 port=8080" listen_params="$listen_params debug-level=${DEBUG_LEVEL-none}" @@ -28,4 +33,4 @@ if [ -n "$USERNAME" ]; then fi # Start the tiddlywiki server -exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen $listen_params +exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script $plugins_params mywiki --listen $listen_params From 2652f4e6fa5603e68cb944e184130410a1c05bd7 Mon Sep 17 00:00:00 2001 From: Brett O'Donnell Date: Sat, 14 Jan 2023 15:02:40 +1030 Subject: [PATCH 09/17] added guide for docker compose This PR adds a guide to the readme to use this project with `docker compose`, which is a useful way to keep all the docker settings, environment variables and volume data in a folder. --- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.md b/README.md index 6df44c8..bb9ad38 100644 --- a/README.md +++ b/README.md @@ -65,3 +65,42 @@ serving TiddlyWiki. For example by passing `-e PATH_PREFIX=\wiki` option in configure the client as well. [path-prefix-note]: https://tiddlywiki.com/static/Using%2520a%2520custom%2520path%2520prefix%2520with%2520the%2520client-server%2520edition.html + +## Docker Compose + +To keep all the docker settings, environment variables and volume data in a folder you can use `docker compose`. + +Create a folder for the project: + +``` +mkdir my-tiddlywiki-docker +cd my-tiddlywiki-docker +``` + +Create a folder for the data: + +``` +mkdir tiddlywiki +``` + +Create `docker-compose.yml` with the following contents: + +``` +version: '3' +services: + tiddlywiki: + image: m0wer/tiddlywiki + volumes: + - ./tiddlywiki:/var/lib/tiddlywiki + restart: unless-stopped + ports: + - 8080:8080 + #environment: + # - DEBUG_LEVEL=debug + # - PATH_PREFIX=\wiki + # - NODE_MEM=128 + # - USERNAME=test + # - PASSWORD=test +``` + +Then run `docker compose up -d`. From 93b30fcea0333af4aab5b3c5ae429b8222602cad Mon Sep 17 00:00:00 2001 From: Brett O'Donnell Date: Sat, 14 Jan 2023 15:42:21 +1030 Subject: [PATCH 10/17] allow extra options via environment variables For example, when using https://github.com/OokTech/TW5-Bob you need the option `--wsserver`. This will allow you to do `EXTRAOPTIONS=--wsserver`. --- init-and-run-wiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init-and-run-wiki b/init-and-run-wiki index 6c873fd..b579479 100755 --- a/init-and-run-wiki +++ b/init-and-run-wiki @@ -28,4 +28,4 @@ if [ -n "$USERNAME" ]; then fi # Start the tiddlywiki server -exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen $listen_params +exec /usr/bin/env node $NODEJS_V8_ARGS $tiddlywiki_script mywiki --listen $listen_params $EXTRAOPTIONS From a8dcc9ea7961b7b9e0647648b15b06906b01af5f Mon Sep 17 00:00:00 2001 From: ArcticLampyrid Date: Tue, 21 Mar 2023 23:29:18 +0800 Subject: [PATCH 11/17] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8a4c8f3..50b1d80 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM node:alpine -RUN npm install -g tiddlywiki@5.2.0 +RUN npm install -g tiddlywiki@5.2.6 # Setup wiki volume VOLUME /var/lib/tiddlywiki From fa5c8bcb20aa6f25d3e9973ce7f2d77d2793ffb3 Mon Sep 17 00:00:00 2001 From: m0wer Date: Mon, 3 Apr 2023 21:18:10 +0200 Subject: [PATCH 12/17] update reame latest version to 5.2.6 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb9ad38..2569e96 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Hub](https://hub.docker.com/r/m0wer/tiddlywiki). Image Name | Tag | TiddyWiki Version -----------------|------------|------------------ -m0wer/tiddlywiki | latest | 5.2.0 +m0wer/tiddlywiki | latest | 5.2.6 m0wer/tiddlywiki | v[X] | [X] m0wer/tiddlywiki | test | ? From 24c06f6080f16707fed084b0e79c703352c4511f Mon Sep 17 00:00:00 2001 From: m0wer Date: Mon, 3 Apr 2023 21:21:24 +0200 Subject: [PATCH 13/17] update to 5.2.7 --- Dockerfile | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 50b1d80..3b1cc75 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM node:alpine -RUN npm install -g tiddlywiki@5.2.6 +RUN npm install -g tiddlywiki@5.2.7 # Setup wiki volume VOLUME /var/lib/tiddlywiki diff --git a/README.md b/README.md index 2569e96..e4fc6ad 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Hub](https://hub.docker.com/r/m0wer/tiddlywiki). Image Name | Tag | TiddyWiki Version -----------------|------------|------------------ -m0wer/tiddlywiki | latest | 5.2.6 +m0wer/tiddlywiki | latest | 5.2.7 m0wer/tiddlywiki | v[X] | [X] m0wer/tiddlywiki | test | ? From 00c8f052e5222418f63a671a0aa359d73558cc37 Mon Sep 17 00:00:00 2001 From: Florian Date: Tue, 4 Apr 2023 17:24:51 +0200 Subject: [PATCH 14/17] Set correct entrypoint --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 3b1cc75..d07e2de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,4 +10,5 @@ WORKDIR /var/lib/tiddlywiki ADD init-and-run-wiki /usr/local/bin/init-and-run-wiki # Meta +ENTRYPOINT ["/bin/sh"] CMD ["/usr/local/bin/init-and-run-wiki"] From 3c862c8e896920325ed7eba9813d4b2d81e744b5 Mon Sep 17 00:00:00 2001 From: Florian Vahl Date: Tue, 4 Apr 2023 18:10:28 +0200 Subject: [PATCH 15/17] Bump action versions --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 76eecd4..7a639ed 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -50,13 +50,13 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v4 with: platforms: linux/amd64,linux/arm64,linux/arm/v7 push: ${{ github.event_name != 'pull_request' }} From 7e13280efbfa7009d5a89a5f8a311320b8daaa4d Mon Sep 17 00:00:00 2001 From: Florian Vahl Date: Sun, 16 Apr 2023 20:46:41 +0200 Subject: [PATCH 16/17] Remove ARMv7 target until node freeze is fixed --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 7a639ed..c0f9211 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -58,7 +58,7 @@ jobs: - name: Build and push uses: docker/build-push-action@v4 with: - platforms: linux/amd64,linux/arm64,linux/arm/v7 + platforms: linux/amd64,linux/arm64 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From e1189048d9ed734857b5bf93a0958b014f7ffe09 Mon Sep 17 00:00:00 2001 From: Florian Vahl Date: Sun, 16 Apr 2023 20:50:40 +0200 Subject: [PATCH 17/17] Enabeling manual workflow dispatch --- .github/workflows/docker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c0f9211..0cea16b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -9,6 +9,7 @@ on: - '**' tags: - '*.*.*' + workflow_dispatch: pull_request: branches: - master