build package action
Build and publish Docker image / build-and-push (push) Canceled after 0s

This commit is contained in:
nick committed 2026-09-21 19:21:23 -07:00
1 parent edf6756d2d
commit fe60a0365d
4 files changed
+85 -2

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
.git
.gitea
deploy
*.md
*.service
example.env
.env
test_live.py
test_smoke.py
install.sh
+51
View File
@@ -0,0 +1,51 @@
name: Build and publish Docker image
on:
push:
branches: [main]
tags: ['v*']
workflow_dispatch:
jobs:
build-and-push:
runs-on: docker
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Resolve registry and image metadata
id: meta
run: |
host="${GITEA_SERVER_URL#*://}"
image="$host/${GITEA_REPOSITORY,,}"
echo "host=$host" >> "$GITHUB_OUTPUT"
echo "image=$image" >> "$GITHUB_OUTPUT"
if [ "$GITEA_REF_TYPE" = "tag" ]; then
echo "tag=$GITEA_REF_NAME" >> "$GITHUB_OUTPUT"
else
echo "tag=latest" >> "$GITHUB_OUTPUT"
fi
env:
GITEA_SERVER_URL: ${{ gitea.server_url }}
GITEA_REPOSITORY: ${{ gitea.repository }}
GITEA_REF_TYPE: ${{ gitea.ref_type }}
GITEA_REF_NAME: ${{ gitea.ref_name }}
- name: Log in to the Gitea container registry
uses: docker/login-action@v3
with:
registry: ${{ steps.meta.outputs.host }}
username: ${{ gitea.actor }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
${{ steps.meta.outputs.image }}:${{ steps.meta.outputs.tag }}
${{ steps.meta.outputs.image }}:${{ gitea.sha }}
+22
View File
@@ -0,0 +1,22 @@
FROM python:3.12-slim
WORKDIR /app
COPY pyproject.toml ./
COPY bookstack_mcp ./bookstack_mcp
RUN pip install --no-cache-dir . \
&& useradd --system --create-home --home-dir /home/bookstack-mcp --shell /usr/sbin/nologin bookstack-mcp
# fastmcp writes OAuth client registrations/caches under $HOME; point it at the
# service user's own home instead of the default root-owned locations.
ENV HOME=/home/bookstack-mcp \
XDG_DATA_HOME=/home/bookstack-mcp/.local \
XDG_CONFIG_HOME=/home/bookstack-mcp/.config \
XDG_CACHE_HOME=/home/bookstack-mcp/.cache \
PYTHONUNBUFFERED=1
USER bookstack-mcp
EXPOSE 8080
CMD ["python", "-m", "bookstack_mcp"]
+2 -2
View File
@@ -123,7 +123,7 @@ Discovery URLs by provider:
| Zitadel | `https://auth.example.com/.well-known/openid-configuration` | | Zitadel | `https://auth.example.com/.well-known/openid-configuration` |
**Authelia users:** a ready-made config snippet is in **Authelia users:** a ready-made config snippet is in
[`deploy/authelia/configuration.snippet.yml`](deploy/authelia/configuration.snippet.yml). [`examples/authelia/configuration.snippet.yml`](examples/authelia/configuration.snippet.yml).
Three things are easy to miss and each one produces a confusing failure: Three things are easy to miss and each one produces a confusing failure:
1. **Bypass forward-auth for `mcp.example.com`.** If the host sits behind 1. **Bypass forward-auth for `mcp.example.com`.** If the host sits behind
@@ -211,7 +211,7 @@ Then inside the container:
```bash ```bash
apt update && apt install -y git apt update && apt install -y git
git clone <your-repo> /tmp/bookstack-mcp && cd /tmp/bookstack-mcp git clone <your-repo> /tmp/bookstack-mcp && cd /tmp/bookstack-mcp
bash deploy/lxc/install.sh bash scripts/install-lxc.sh
``` ```
The installer creates a `bookstack-mcp` system user, builds a venv at The installer creates a `bookstack-mcp` system user, builds a venv at