commit e9d2269cc77d2bd552915846398773b78f4bc53d Author: snayle Date: Mon Aug 18 18:24:32 2025 +0200 First test commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..11cda23 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,67 @@ +FROM docker.io/louislam/uptime-kuma:1.23.16-debian@sha256:431fee3be822b04861cf0e35daf4beef6b7cb37391c5f26c3ad6e12ce280fe18 AS app-donor + +FROM docker.io/library/node:20.19.1-bookworm-slim@sha256:9513b8d4c59c7c35e76934765add45efb89102d639f945341d7948b168237633 + +ARG UID=3310 +ARG GID=3310 + +# renovate: datasource=pypi depName=apprise versioning=pep440 +ARG APPRISE_VERSION=1.9.3 + +# renovate: datasource=github-releases depName=cloudflare/cloudflared +ARG CLOUDFLARED_VERSION=2025.4.0 + +COPY --from=app-donor /app /app + +RUN apt-get update -qqy \ + # Install Uptime-Kuma dependencies + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -qqy \ + python3 \ + python3-pip \ + python3-cryptography \ + python3-six \ + python3-yaml \ + python3-click \ + python3-markdown \ + python3-requests \ + python3-requests-oauthlib \ + sqlite3 \ + iputils-ping \ + util-linux \ + dumb-init \ + curl \ + ca-certificates \ + bash \ + && pip --no-cache-dir install --break-system-packages apprise==${APPRISE_VERSION} \ + && setcap -r /usr/bin/ping \ + && rm -rf /var/lib/apt/lists/* \ + \ + # Download and install cloudflared + && ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='amd64';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='arm';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + && curl -fsSLo /usr/local/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/download/${CLOUDFLARED_VERSION}/cloudflared-linux-${ARCH} \ + && chmod +x /usr/local/bin/cloudflared \ + \ + # Setup non-root system account + group + && addgroup --system --gid ${GID} uptime-kuma || true \ + && adduser --system --disabled-login --ingroup uptime-kuma --no-create-home --home /nonexistent --gecos "uptime-kuma" --shell /bin/false --uid ${UID} uptime-kuma || true \ + && mkdir -p /app/data \ + && chown -R uptime-kuma:0 /app \ + && chmod -R g=u /app \ + \ + # Smoke Tests + && set -ex || exit $?; \ + cloudflared version; \ + apprise --version; + +ENV HOME=/app +WORKDIR /app +USER uptime-kuma +EXPOSE 3001 +VOLUME ["/app/data"] +CMD ["/usr/bin/dumb-init", "--", "node", "server/server.js"]