From 7c0fe0618fc23f26f6d0a2b3ef2d8120385c3533 Mon Sep 17 00:00:00 2001 From: Neil G7UFO Date: Tue, 17 Dec 2024 13:14:47 +0000 Subject: [PATCH] Update for PR submission --- .github/workflows/build.yml | 196 ++++++++++++++++++------------------ README.md | 38 +++++-- 2 files changed, 126 insertions(+), 108 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4d8e9d0..18c3502 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,123 +2,123 @@ name: Build and Release on: push: - # tags: - # - '*' + tags: + - "*" jobs: - # build_windows: - # runs-on: windows-latest - # permissions: - # contents: write - # steps: - # - name: Clone Repo - # uses: actions/checkout@v1 + build_windows: + runs-on: windows-latest + permissions: + contents: write + steps: + - name: Clone Repo + uses: actions/checkout@v1 - # - name: Install NodeJS - # uses: actions/setup-node@v1 - # with: - # node-version: 18 + - name: Install NodeJS + uses: actions/setup-node@v1 + with: + node-version: 18 - # - name: Install Python - # uses: actions/setup-python@v5 - # with: - # python-version: '3.11' + - name: Install Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" - # - name: Install Python Deps - # run: pip install -r requirements.txt + - name: Install Python Deps + run: pip install -r requirements.txt - # - name: Install NodeJS Deps - # run: npm install + - name: Install NodeJS Deps + run: npm install - # - name: Build Electron App - # run: npm run dist + - name: Build Electron App + run: npm run dist - # - name: Create Release - # id: create_release - # uses: ncipollo/release-action@v1 - # with: - # draft: true - # allowUpdates: true - # replacesArtifacts: true - # omitDraftDuringUpdate: true - # omitNameDuringUpdate: true - # artifacts: "dist/*-win-installer.exe,dist/*-win-portable.exe" + - name: Create Release + id: create_release + uses: ncipollo/release-action@v1 + with: + draft: true + allowUpdates: true + replacesArtifacts: true + omitDraftDuringUpdate: true + omitNameDuringUpdate: true + artifacts: "dist/*-win-installer.exe,dist/*-win-portable.exe" - # build_mac: - # runs-on: macos-13 - # permissions: - # contents: write - # steps: - # - name: Clone Repo - # uses: actions/checkout@v1 + build_mac: + runs-on: macos-13 + permissions: + contents: write + steps: + - name: Clone Repo + uses: actions/checkout@v1 - # - name: Install NodeJS - # uses: actions/setup-node@v1 - # with: - # node-version: 18 + - name: Install NodeJS + uses: actions/setup-node@v1 + with: + node-version: 18 - # - name: Install Python - # uses: actions/setup-python@v5 - # with: - # python-version: '3.11' + - name: Install Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" - # - name: Install Python Deps - # run: pip install -r requirements.txt + - name: Install Python Deps + run: pip install -r requirements.txt - # - name: Install NodeJS Deps - # run: npm install + - name: Install NodeJS Deps + run: npm install - # - name: Build Electron App - # run: npm run dist + - name: Build Electron App + run: npm run dist - # - name: Create Release - # id: create_release - # uses: ncipollo/release-action@v1 - # with: - # draft: true - # allowUpdates: true - # replacesArtifacts: true - # omitDraftDuringUpdate: true - # omitNameDuringUpdate: true - # artifacts: "dist/*-mac.dmg" + - name: Create Release + id: create_release + uses: ncipollo/release-action@v1 + with: + draft: true + allowUpdates: true + replacesArtifacts: true + omitDraftDuringUpdate: true + omitNameDuringUpdate: true + artifacts: "dist/*-mac.dmg" - # build_linux: - # runs-on: ubuntu-latest - # permissions: - # contents: write - # steps: - # - name: Clone Repo - # uses: actions/checkout@v1 + build_linux: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Clone Repo + uses: actions/checkout@v1 - # - name: Install NodeJS - # uses: actions/setup-node@v1 - # with: - # node-version: 18 + - name: Install NodeJS + uses: actions/setup-node@v1 + with: + node-version: 18 - # - name: Install Python - # uses: actions/setup-python@v5 - # with: - # python-version: '3.11' + - name: Install Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" - # - name: Install Python Deps - # run: pip install -r requirements.txt + - name: Install Python Deps + run: pip install -r requirements.txt - # - name: Install NodeJS Deps - # run: npm install + - name: Install NodeJS Deps + run: npm install - # - name: Build Electron App - # run: npm run dist + - name: Build Electron App + run: npm run dist - # - name: Create Release - # id: create_release - # uses: ncipollo/release-action@v1 - # with: - # draft: true - # allowUpdates: true - # replacesArtifacts: true - # omitDraftDuringUpdate: true - # omitNameDuringUpdate: true - # artifacts: "dist/*-linux.AppImage" + - name: Create Release + id: create_release + uses: ncipollo/release-action@v1 + with: + draft: true + allowUpdates: true + replacesArtifacts: true + omitDraftDuringUpdate: true + omitNameDuringUpdate: true + artifacts: "dist/*-linux.AppImage" build_docker: runs-on: ubuntu-latest @@ -149,9 +149,9 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: | - ghcr.io/g7ufo/reticulum-meshchat:latest - ghcr.io/g7ufo/reticulum-meshchat:${{ github.ref_name }} + ghcr.io/liamcottle/reticulum-meshchat:latest + ghcr.io/liamcottle/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/g7ufo/reticulum-meshchat/pkgs/container/reticulum-meshchat/ + org.opencontainers.image.url=https://github.com/liamcottle/reticulum-meshchat/pkgs/container/reticulum-meshchat/ diff --git a/README.md b/README.md index 2770ea7..792a917 100644 --- a/README.md +++ b/README.md @@ -280,43 +280,61 @@ Once completed, you should have a `.exe` or a `.dmg` in the `dist` folder. ## Running via Docker -A very simple example of a `docker-compose.yml` file, generating and storing conifg in a volume would look like this: +A very simple example of a `docker-compose.yml` file, generating and passing the .reticulum directory to the container: ```yaml services: reticulum-meshchat: container_name: reticulum-meshchat - image: ghcr.io/g7ufo/reticulum-meshchat:latest + image: ghcr.io/liamcottle/reticulum-meshchat:latest + pull_policy: always restart: unless-stopped ports: - 8000:8000 volumes: - reticulum-config:/config + .reticulum:/config/.reticulum devices: - /dev/ttyUSB0:/dev/ttyUSB0 - -volumes: - reticulum-config: ``` -By default the container will run `python meshchat.py --host=0.0.0.0 --reticulum-config-dir=/config/.reticulum --headless`. This can be overridden (for example to use an existing conifg) like: +To make the web interface accessible from the host, you will need to include the IP (or `0.0.0.0` for all) in the `ports` command, for example: ```yaml services: reticulum-meshchat: container_name: reticulum-meshchat - image: ghcr.io/g7ufo/reticulum-meshchat:latest + image: ghcr.io/liamcottle/reticulum-meshchat:latest + pull_policy: always + restart: unless-stopped + ports: + - 0.0.0.0:8000:8000 + volumes: + .reticulum:/config/.reticulum + devices: + - /dev/ttyUSB0:/dev/ttyUSB0 +``` + +By default the container will run `python meshchat.py --host=0.0.0.0 --reticulum-config-dir=/config/.reticulum --headless`. This can be overridden like: + +```yaml +services: + reticulum-meshchat: + container_name: reticulum-meshchat + image: ghcr.io/liamcottle/reticulum-meshchat:latest + pull_policy: always command: - python - meshchat.py - --host=0.0.0.0 - - --reticulum-config-dir=/a_different_path/.reticulum + - --reticulum-config-dir=/maybe-a-different-path/.reticulum - --headless + - --some-other-argument + - --and-another-argument restart: unless-stopped ports: - 8000:8000 volumes: - .reticulum:/a_different_path/.reticulum + .reticulum:/maybe-a-different-path/.reticulum devices: - /dev/ttyUSB0:/dev/ttyUSB0 ```