From c56b982df5b1c24e4f982a17cdd9d46677a8414c Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 14:11:33 -0500 Subject: [PATCH 1/9] Update GitHub Actions to use full-length SHA hashes with version comments --- .github/workflows/build.yml | 34 +++++++++++------------ .github/workflows/manual-docker-build.yml | 10 +++---- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 18c3502..aa39eb1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,15 +12,15 @@ jobs: contents: write steps: - name: Clone Repo - uses: actions/checkout@v1 + uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 - name: Install NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 with: node-version: 18 - name: Install Python - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.11" @@ -35,7 +35,7 @@ jobs: - name: Create Release id: create_release - uses: ncipollo/release-action@v1 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 with: draft: true allowUpdates: true @@ -50,15 +50,15 @@ jobs: contents: write steps: - name: Clone Repo - uses: actions/checkout@v1 + uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 - name: Install NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 with: node-version: 18 - name: Install Python - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.11" @@ -73,7 +73,7 @@ jobs: - name: Create Release id: create_release - uses: ncipollo/release-action@v1 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 with: draft: true allowUpdates: true @@ -88,15 +88,15 @@ jobs: contents: write steps: - name: Clone Repo - uses: actions/checkout@v1 + uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 - name: Install NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 with: node-version: 18 - name: Install Python - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.11" @@ -111,7 +111,7 @@ jobs: - name: Create Release id: create_release - uses: ncipollo/release-action@v1 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 with: draft: true allowUpdates: true @@ -127,23 +127,23 @@ jobs: contents: read steps: - name: Clone Repo - uses: actions/checkout@v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 - name: Log in to the GitHub Container registry - uses: docker/login-action@v3 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push Docker images - uses: docker/build-push-action@v5 + uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5 with: context: . platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/manual-docker-build.yml b/.github/workflows/manual-docker-build.yml index 9d6556c..fe2aa0e 100644 --- a/.github/workflows/manual-docker-build.yml +++ b/.github/workflows/manual-docker-build.yml @@ -11,23 +11,23 @@ jobs: contents: read steps: - name: Clone Repo - uses: actions/checkout@v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 - name: Log in to the GitHub Container registry - uses: docker/login-action@v3 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push Docker images - uses: docker/build-push-action@v5 + uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5 with: context: . platforms: linux/amd64,linux/arm64 -- 2.49.1 From 00e0461a164186acb8be3614949570008ba4d04f Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 14:16:24 -0500 Subject: [PATCH 2/9] Update --- .github/workflows/build.yml | 34 +++++++++++------------ .github/workflows/manual-docker-build.yml | 10 +++---- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aa39eb1..e898fa5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,15 +12,15 @@ jobs: contents: write steps: - name: Clone Repo - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 + uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 - name: Install NodeJS - uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 + uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 with: node-version: 18 - name: Install Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.11" @@ -35,7 +35,7 @@ jobs: - name: Create Release id: create_release - uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 with: draft: true allowUpdates: true @@ -50,15 +50,15 @@ jobs: contents: write steps: - name: Clone Repo - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 + uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 - name: Install NodeJS - uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 + uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 with: node-version: 18 - name: Install Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.11" @@ -73,7 +73,7 @@ jobs: - name: Create Release id: create_release - uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 with: draft: true allowUpdates: true @@ -88,15 +88,15 @@ jobs: contents: write steps: - name: Clone Repo - uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 + uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e # v1 - name: Install NodeJS - uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 + uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e # v1 with: node-version: 18 - name: Install Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.11" @@ -111,7 +111,7 @@ jobs: - name: Create Release id: create_release - uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1 with: draft: true allowUpdates: true @@ -127,23 +127,23 @@ jobs: contents: read steps: - name: Clone Repo - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 - name: Set up QEMU - uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 - name: Log in to the GitHub Container registry - uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push Docker images - uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5 + uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5 with: context: . platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/manual-docker-build.yml b/.github/workflows/manual-docker-build.yml index fe2aa0e..83d5185 100644 --- a/.github/workflows/manual-docker-build.yml +++ b/.github/workflows/manual-docker-build.yml @@ -11,23 +11,23 @@ jobs: contents: read steps: - name: Clone Repo - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 - name: Set up QEMU - uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 - name: Log in to the GitHub Container registry - uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push Docker images - uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5 + uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5 with: context: . platforms: linux/amd64,linux/arm64 -- 2.49.1 From e9d45f257eb76e378b367ca025149c764d7d635f Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 14:28:52 -0500 Subject: [PATCH 3/9] Update GitHub Actions workflows to use dynamic repository references for Docker image tags and URLs --- .github/workflows/build.yml | 6 +++--- .github/workflows/manual-docker-build.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e898fa5..fb1d676 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -149,9 +149,9 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: | - ghcr.io/liamcottle/reticulum-meshchat:latest - ghcr.io/liamcottle/reticulum-meshchat:${{ github.ref_name }} + ghcr.io/${{ github.repository }}:latest + ghcr.io/${{ github.repository }}:${{ github.ref_name }} labels: | org.opencontainers.image.title=Reticulum MeshChat org.opencontainers.image.description=Docker image for Reticulum MeshChat - org.opencontainers.image.url=https://github.com/liamcottle/reticulum-meshchat/pkgs/container/reticulum-meshchat/ + org.opencontainers.image.url=https://github.com/${{ github.repository }}/pkgs/container/reticulum-meshchat/ diff --git a/.github/workflows/manual-docker-build.yml b/.github/workflows/manual-docker-build.yml index 83d5185..e0460e0 100644 --- a/.github/workflows/manual-docker-build.yml +++ b/.github/workflows/manual-docker-build.yml @@ -33,10 +33,10 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: | - ghcr.io/liamcottle/reticulum-meshchat:latest - ghcr.io/liamcottle/reticulum-meshchat:${{ github.ref_name }} + ghcr.io/${{ github.repository }}:latest + ghcr.io/${{ github.repository }}:${{ github.ref_name }} labels: | org.opencontainers.image.title=Reticulum MeshChat org.opencontainers.image.description=Docker image for Reticulum MeshChat - org.opencontainers.image.url=https://github.com/liamcottle/reticulum-meshchat/pkgs/container/reticulum-meshchat/ + org.opencontainers.image.url=https://github.com/${{ github.repository }}/pkgs/container/reticulum-meshchat/ -- 2.49.1 From f0edb4bc8df8c61b49e0b391d2f3c96f1895a76e Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 14:36:24 -0500 Subject: [PATCH 4/9] Add .dockerignore file and update Dockerfile to use Alpine images for Node.js and Python with SHA256 --- .dockerignore | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 14 ++++++++++--- 2 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..4dba253 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,55 @@ +# Documentation +README.md +LICENSE +donate.md +screenshots/ + +# Development files +.github/ +electron/ + +# Build artifacts and cache +public/ +node_modules/ +__pycache__/ +*.pyc +*.pyo +*.pyd +.Python +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE and editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Git +.git/ +.gitignore + +# Docker files +Dockerfile* +docker-compose*.yml +.dockerignore + +# Logs +*.log + +# Temporary files +*.tmp +*.temp \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b5fd3c8..9fe7932 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,11 @@ +# Build arguments +ARG NODE_VERSION=20 +ARG NODE_ALPINE_SHA256=sha256:6a91081a440be0b57336fbc4ee87f3dab1a2fd6f80cdb355dcf960e13bda3b59 +ARG PYTHON_VERSION=3.11 +ARG PYTHON_ALPINE_SHA256=sha256:822ceb965f026bc47ee667e50a44309d2d81087780bbbf64f2005521781a3621 + # Build the frontend -FROM node:20-bookworm-slim AS build-frontend +FROM node:${NODE_VERSION}-alpine@${NODE_ALPINE_SHA256} AS build-frontend WORKDIR /src @@ -13,13 +19,15 @@ RUN npm install --omit=dev && \ npm run build-frontend # Main app build -FROM python:3.11-bookworm +FROM python:${PYTHON_VERSION}-alpine@${PYTHON_ALPINE_SHA256} WORKDIR /app # Install Python deps COPY ./requirements.txt . -RUN pip install -r requirements.txt +RUN apk add --no-cache --virtual .build-deps gcc musl-dev && \ + pip install -r requirements.txt && \ + apk del .build-deps # Copy prebuilt frontend COPY --from=build-frontend /src/public public -- 2.49.1 From 61ada872c03942af496d02a01aaef06860fda567 Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 16:07:47 -0500 Subject: [PATCH 5/9] Add debian packaging support. --- .github/workflows/build.yml | 2 +- package.json | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 18c3502..b7cfedf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -118,7 +118,7 @@ jobs: replacesArtifacts: true omitDraftDuringUpdate: true omitNameDuringUpdate: true - artifacts: "dist/*-linux.AppImage" + artifacts: "dist/*-linux.AppImage,dist/*-linux.deb" build_docker: runs-on: ubuntu-latest diff --git a/package.json b/package.json index 546432c..4d0663b 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,11 @@ }, "linux": { "artifactName": "ReticulumMeshChat-v${version}-${os}.${ext}", - "target": "AppImage", + "target": [ + "AppImage", + "deb" + ], + "maintainer": "Liam Cottle ", "extraFiles": [ { "from": "build/exe", -- 2.49.1 From e0e2bbf091413e109032732ffe5c19d444cf1de3 Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 19:33:20 -0500 Subject: [PATCH 6/9] Make owner lowercase --- .github/workflows/build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fb1d676..53f6f1a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -148,10 +148,10 @@ jobs: context: . platforms: linux/amd64,linux/arm64 push: true - tags: | - ghcr.io/${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:${{ github.ref_name }} - labels: | - org.opencontainers.image.title=Reticulum MeshChat - org.opencontainers.image.description=Docker image for Reticulum MeshChat + tags: >- + ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:latest, + ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:${{ github.ref_name }} + labels: >- + org.opencontainers.image.title=Reticulum MeshChat, + org.opencontainers.image.description=Docker image for Reticulum MeshChat, org.opencontainers.image.url=https://github.com/${{ github.repository }}/pkgs/container/reticulum-meshchat/ -- 2.49.1 From aa774f351153bfca37f990a30f74de1d865d8925 Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 19:46:27 -0500 Subject: [PATCH 7/9] Update manual docker build to use dynamic repo owner --- .github/workflows/manual-docker-build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/manual-docker-build.yml b/.github/workflows/manual-docker-build.yml index e0460e0..4e29982 100644 --- a/.github/workflows/manual-docker-build.yml +++ b/.github/workflows/manual-docker-build.yml @@ -32,11 +32,11 @@ jobs: context: . platforms: linux/amd64,linux/arm64 push: true - tags: | - ghcr.io/${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:${{ github.ref_name }} - labels: | - org.opencontainers.image.title=Reticulum MeshChat - org.opencontainers.image.description=Docker image for Reticulum MeshChat + tags: >- + ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:latest, + ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:${{ github.ref_name }} + labels: >- + org.opencontainers.image.title=Reticulum MeshChat, + org.opencontainers.image.description=Docker image for Reticulum MeshChat, org.opencontainers.image.url=https://github.com/${{ github.repository }}/pkgs/container/reticulum-meshchat/ -- 2.49.1 From 69d8bab9e40c0c8c454a2973092509441edeeff9 Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 20:00:08 -0500 Subject: [PATCH 8/9] Fix to use step to update repo owner to lower case --- .github/workflows/build.yml | 7 +++++-- .github/workflows/manual-docker-build.yml | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 53f6f1a..1961832 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -129,6 +129,9 @@ jobs: - name: Clone Repo uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + - name: Set lowercase repository owner + run: echo "REPO_OWNER_LC=${GITHUB_REPOSITORY_OWNER,,}" >> $GITHUB_ENV + - name: Set up QEMU uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 @@ -149,8 +152,8 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: >- - ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:latest, - ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:${{ github.ref_name }} + ghcr.io/${{ env.REPO_OWNER_LC }}/reticulum-meshchat:latest, + ghcr.io/${{ env.REPO_OWNER_LC }}/reticulum-meshchat:${{ github.ref_name }} labels: >- org.opencontainers.image.title=Reticulum MeshChat, org.opencontainers.image.description=Docker image for Reticulum MeshChat, diff --git a/.github/workflows/manual-docker-build.yml b/.github/workflows/manual-docker-build.yml index 4e29982..9d0def5 100644 --- a/.github/workflows/manual-docker-build.yml +++ b/.github/workflows/manual-docker-build.yml @@ -13,6 +13,9 @@ jobs: - name: Clone Repo uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + - name: Set lowercase repository owner + run: echo "REPO_OWNER_LC=${GITHUB_REPOSITORY_OWNER,,}" >> $GITHUB_ENV + - name: Set up QEMU uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 @@ -33,8 +36,8 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: >- - ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:latest, - ghcr.io/${{ github.repository_owner }}/reticulum-meshchat:${{ github.ref_name }} + ghcr.io/${{ env.REPO_OWNER_LC }}/reticulum-meshchat:latest, + ghcr.io/${{ env.REPO_OWNER_LC }}/reticulum-meshchat:${{ github.ref_name }} labels: >- org.opencontainers.image.title=Reticulum MeshChat, org.opencontainers.image.description=Docker image for Reticulum MeshChat, -- 2.49.1 From 51eaa833018580df78a053690740bf2276c9860f Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 1 Oct 2025 21:02:54 -0500 Subject: [PATCH 9/9] Fix: Prevent writing None to I2PInterface config --- meshchat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshchat.py b/meshchat.py index a7a7b32..7aabb8a 100644 --- a/meshchat.py +++ b/meshchat.py @@ -508,7 +508,7 @@ class ReticulumMeshChat: # handle I2P interface if interface_type == "I2PInterface": interface_details['connectable'] = "True" - interface_details["peers"] = data.get('peers') + InterfaceEditor.update_value(interface_details, data, "peers") # handle tcp server interface if interface_type == "TCPServerInterface": -- 2.49.1