diff --git a/.woodpecker/.matter-server.yml b/.woodpecker/.matter-server.yml new file mode 100644 index 0000000..607ffb0 --- /dev/null +++ b/.woodpecker/.matter-server.yml @@ -0,0 +1,33 @@ +--- +branches: main + +pipeline: + snapcast: + image: woodpeckerci/plugin-docker-buildx + privileged: true + secrets: [repository_username, repository_password] + settings: + dockerfile: matter-server/Containerfile + platforms: linux/amd64,linux/arm64/v8 + registry: git.shrug.pw + repo: git.shrug.pw/neil/containers/snapcast + tag: latest + pull_image: true + auto_tag: true + auto_labels: true + mtu: 1400 + build_args: + - BUILD_FROM: ghcr.io/home-assistant-libs/python-matter-server:6.0.0 + - BASHIO_VERSION: '0.14.3' + - TEMPIO_VERSION: '2021.09.0' + - S6_OVERLAY_VERSION: '3.1.5.0' + username: + from_secret: registry_username + password: + from_secret: registry_password + logins: + - registry: git.shrug.pw + username: + from_secret: registry_username + password: + from_secret: registry_password diff --git a/.woodpecker/.snapcast.yml b/.woodpecker/.snapcast.yml index fd9b5b5..a59d477 100644 --- a/.woodpecker/.snapcast.yml +++ b/.woodpecker/.snapcast.yml @@ -2,7 +2,7 @@ branches: main pipeline: - invoiceninja: + snapcast: image: woodpeckerci/plugin-docker-buildx privileged: true secrets: [repository_username, repository_password] diff --git a/matter-server/Containerfile b/matter-server/Containerfile new file mode 100644 index 0000000..135f97e --- /dev/null +++ b/matter-server/Containerfile @@ -0,0 +1,76 @@ +ARG BUILD_FROM +FROM ${BUILD_FROM} + +# Default ENV +ENV \ + LANG="C.UTF-8" \ + DEBIAN_FRONTEND="noninteractive" \ + CURL_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt" \ + S6_BEHAVIOUR_IF_STAGE2_FAILS=2 \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ + S6_CMD_WAIT_FOR_SERVICES=1 \ + S6_SERVICES_READYTIME=50 + +# Set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Build Args +ARG \ + BASHIO_VERSION \ + TEMPIO_VERSION \ + S6_OVERLAY_VERSION + +# Base system +WORKDIR /usr/src +ARG BUILD_ARCH + +RUN \ + set -x \ + && apt-get update && apt-get install -y --no-install-recommends \ + bash \ + jq \ + tzdata \ + curl \ + ca-certificates \ + xz-utils \ + && mkdir -p /usr/share/man/man1 \ + \ + && if [ "${BUILD_ARCH}" = "armv7" ]; then \ + export S6_ARCH="arm"; \ + elif [ "${BUILD_ARCH}" = "i386" ]; then \ + export S6_ARCH="i686"; \ + elif [ "${BUILD_ARCH}" = "amd64" ]; then \ + export S6_ARCH="x86_64"; \ + else \ + export S6_ARCH="${BUILD_ARCH}"; \ + fi \ + \ + && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \ + | tar Jxvf - -C / \ + && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \ + | tar Jxvf - -C / \ + && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" \ + | tar Jxvf - -C / \ + && curl -L -f -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz" \ + | tar Jxvf - -C / \ + && mkdir -p /etc/fix-attrs.d \ + && mkdir -p /etc/services.d \ + \ + && curl -L -f -s -o /usr/bin/tempio \ + "https://github.com/home-assistant/tempio/releases/download/${TEMPIO_VERSION}/tempio_${BUILD_ARCH}" \ + && chmod a+x /usr/bin/tempio \ + \ + && mkdir -p /usr/src/bashio \ + && curl -L -f -s "https://github.com/hassio-addons/bashio/archive/v${BASHIO_VERSION}.tar.gz" \ + | tar -xzf - --strip 1 -C /usr/src/bashio \ + && mv /usr/src/bashio/lib /usr/lib/bashio \ + && ln -s /usr/lib/bashio/bashio /usr/bin/bashio \ + \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /usr/src/* + +# S6-Overlay +WORKDIR /root +ENTRYPOINT ["/init"] + +COPY rootfs / diff --git a/snapcast/Containerfile b/snapcast/Containerfile index 5f4084a..6ebd02a 100644 --- a/snapcast/Containerfile +++ b/snapcast/Containerfile @@ -1,12 +1,29 @@ -FROM debian:11 +FROM debian:11 as snapserver RUN dpkg --add-architecture armhf RUN apt update + +# Install deps for sever/web RUN apt -y install curl + RUN curl -Lso /tmp/snapserver.deb https://github.com/badaix/snapcast/releases/download/v0.27.0/snapserver_0.27.0-1_armhf.deb RUN apt -y install /tmp/snapserver.deb RUN rm -fr /tmp/snapserver.deb +# # get snapweb +# RUN curl -Lso /tmp/snapweb.tar.gz https://github.com/badaix/snapweb/archive/refs/heads/react.tar.gz +# WORKDIR /tmp/ +# RUN tar -xf snapweb.tar.gz +# +# # build snapweb +# WORKDIR /tmp/snapweb-react +# RUN npm ci +# RUN npm run build +COPY snapweb-react-build.tar.gz /tmp +RUN mkdir /usr/share/snapserver/snapweb-react +RUN tar -xf /tmp/snapweb-react-build.tar.gz -C /usr/share/snapserver/snapweb-react +RUN sed -i 's,/usr/share/snapserver/snapweb,/usr/share/snapserver/snapweb-react,' /etc/snapserver.conf + RUN mkdir /work WORKDIR /work