TiddlyWiki5/docker/entrypoint.sh
himmel 25f0bf2cf0 Add Docker support with docker-compose and automated release workflow
- Add Dockerfile (Node Alpine, unprivileged user, configurable via env vars)
- Add docker-compose.yml with named volume and environment variable support
- Add docker/entrypoint.sh for wiki init and --listen argument assembly
- Add bin/docker-publish.sh for manual multi-platform image publishing
- Add .github/workflows/docker-publish.yml for automated Docker Hub release on GitHub Release publish
- Add editions/tw5.com howto tiddler documenting Docker usage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 09:49:44 +00:00

34 lines
915 B
Bash
Executable file

#!/bin/sh
set -e
WIKI_DIR="${TIDDLYWIKI_DATA_DIR:-/data}"
HOST="${TIDDLYWIKI_HOST:-0.0.0.0}"
PORT="${TIDDLYWIKI_PORT:-8080}"
# Initialize wiki on first run
if [ ! -f "${WIKI_DIR}/tiddlywiki.info" ]; then
echo "Initializing new wiki at ${WIKI_DIR} ..."
tiddlywiki "${WIKI_DIR}" --init server
fi
# Build --listen argument list
LISTEN_ARGS="host=${HOST} port=${PORT}"
if [ -n "${TIDDLYWIKI_USERNAME}" ]; then
LISTEN_ARGS="${LISTEN_ARGS} username=${TIDDLYWIKI_USERNAME}"
fi
if [ -n "${TIDDLYWIKI_PASSWORD}" ]; then
LISTEN_ARGS="${LISTEN_ARGS} password=${TIDDLYWIKI_PASSWORD}"
fi
if [ -n "${TIDDLYWIKI_READERS}" ]; then
LISTEN_ARGS="${LISTEN_ARGS} readers=${TIDDLYWIKI_READERS}"
fi
if [ -n "${TIDDLYWIKI_WRITERS}" ]; then
LISTEN_ARGS="${LISTEN_ARGS} writers=${TIDDLYWIKI_WRITERS}"
fi
echo "Starting TiddlyWiki on ${HOST}:${PORT} ..."
exec tiddlywiki "${WIKI_DIR}" --listen ${LISTEN_ARGS}