Update for PR submission

This commit is contained in:
Neil G7UFO 2024-12-17 13:14:47 +00:00
commit 7c0fe0618f
No known key found for this signature in database
2 changed files with 145 additions and 127 deletions

View file

@ -2,123 +2,123 @@ name: Build and Release
on: on:
push: push:
# tags: tags:
# - '*' - "*"
jobs: jobs:
# build_windows: build_windows:
# runs-on: windows-latest runs-on: windows-latest
# permissions: permissions:
# contents: write contents: write
# steps: steps:
# - name: Clone Repo - name: Clone Repo
# uses: actions/checkout@v1 uses: actions/checkout@v1
# - name: Install NodeJS - name: Install NodeJS
# uses: actions/setup-node@v1 uses: actions/setup-node@v1
# with: with:
# node-version: 18 node-version: 18
# - name: Install Python - name: Install Python
# uses: actions/setup-python@v5 uses: actions/setup-python@v5
# with: with:
# python-version: '3.11' python-version: "3.11"
# - name: Install Python Deps - name: Install Python Deps
# run: pip install -r requirements.txt run: pip install -r requirements.txt
# - name: Install NodeJS Deps - name: Install NodeJS Deps
# run: npm install run: npm install
# - name: Build Electron App - name: Build Electron App
# run: npm run dist run: npm run dist
# - name: Create Release - name: Create Release
# id: create_release id: create_release
# uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
# with: with:
# draft: true draft: true
# allowUpdates: true allowUpdates: true
# replacesArtifacts: true replacesArtifacts: true
# omitDraftDuringUpdate: true omitDraftDuringUpdate: true
# omitNameDuringUpdate: true omitNameDuringUpdate: true
# artifacts: "dist/*-win-installer.exe,dist/*-win-portable.exe" artifacts: "dist/*-win-installer.exe,dist/*-win-portable.exe"
# build_mac: build_mac:
# runs-on: macos-13 runs-on: macos-13
# permissions: permissions:
# contents: write contents: write
# steps: steps:
# - name: Clone Repo - name: Clone Repo
# uses: actions/checkout@v1 uses: actions/checkout@v1
# - name: Install NodeJS - name: Install NodeJS
# uses: actions/setup-node@v1 uses: actions/setup-node@v1
# with: with:
# node-version: 18 node-version: 18
# - name: Install Python - name: Install Python
# uses: actions/setup-python@v5 uses: actions/setup-python@v5
# with: with:
# python-version: '3.11' python-version: "3.11"
# - name: Install Python Deps - name: Install Python Deps
# run: pip install -r requirements.txt run: pip install -r requirements.txt
# - name: Install NodeJS Deps - name: Install NodeJS Deps
# run: npm install run: npm install
# - name: Build Electron App - name: Build Electron App
# run: npm run dist run: npm run dist
# - name: Create Release - name: Create Release
# id: create_release id: create_release
# uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
# with: with:
# draft: true draft: true
# allowUpdates: true allowUpdates: true
# replacesArtifacts: true replacesArtifacts: true
# omitDraftDuringUpdate: true omitDraftDuringUpdate: true
# omitNameDuringUpdate: true omitNameDuringUpdate: true
# artifacts: "dist/*-mac.dmg" artifacts: "dist/*-mac.dmg"
# build_linux: build_linux:
# runs-on: ubuntu-latest runs-on: ubuntu-latest
# permissions: permissions:
# contents: write contents: write
# steps: steps:
# - name: Clone Repo - name: Clone Repo
# uses: actions/checkout@v1 uses: actions/checkout@v1
# - name: Install NodeJS - name: Install NodeJS
# uses: actions/setup-node@v1 uses: actions/setup-node@v1
# with: with:
# node-version: 18 node-version: 18
# - name: Install Python - name: Install Python
# uses: actions/setup-python@v5 uses: actions/setup-python@v5
# with: with:
# python-version: '3.11' python-version: "3.11"
# - name: Install Python Deps - name: Install Python Deps
# run: pip install -r requirements.txt run: pip install -r requirements.txt
# - name: Install NodeJS Deps - name: Install NodeJS Deps
# run: npm install run: npm install
# - name: Build Electron App - name: Build Electron App
# run: npm run dist run: npm run dist
# - name: Create Release - name: Create Release
# id: create_release id: create_release
# uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
# with: with:
# draft: true draft: true
# allowUpdates: true allowUpdates: true
# replacesArtifacts: true replacesArtifacts: true
# omitDraftDuringUpdate: true omitDraftDuringUpdate: true
# omitNameDuringUpdate: true omitNameDuringUpdate: true
# artifacts: "dist/*-linux.AppImage" artifacts: "dist/*-linux.AppImage"
build_docker: build_docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -149,9 +149,9 @@ jobs:
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: |
ghcr.io/g7ufo/reticulum-meshchat:latest ghcr.io/liamcottle/reticulum-meshchat:latest
ghcr.io/g7ufo/reticulum-meshchat:${{ github.ref_name }} ghcr.io/liamcottle/reticulum-meshchat:${{ github.ref_name }}
labels: | labels: |
org.opencontainers.image.title=Reticulum MeshChat org.opencontainers.image.title=Reticulum MeshChat
org.opencontainers.image.description=Docker image for 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/

View file

@ -280,43 +280,61 @@ Once completed, you should have a `.exe` or a `.dmg` in the `dist` folder.
## Running via Docker ## 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 ```yaml
services: services:
reticulum-meshchat: reticulum-meshchat:
container_name: 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 restart: unless-stopped
ports: ports:
- 8000:8000 - 8000:8000
volumes: volumes:
reticulum-config:/config .reticulum:/config/.reticulum
devices: devices:
- /dev/ttyUSB0:/dev/ttyUSB0 - /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 ```yaml
services: services:
reticulum-meshchat: reticulum-meshchat:
container_name: 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: command:
- python - python
- meshchat.py - meshchat.py
- --host=0.0.0.0 - --host=0.0.0.0
- --reticulum-config-dir=/a_different_path/.reticulum - --reticulum-config-dir=/maybe-a-different-path/.reticulum
- --headless - --headless
- --some-other-argument
- --and-another-argument
restart: unless-stopped restart: unless-stopped
ports: ports:
- 8000:8000 - 8000:8000
volumes: volumes:
.reticulum:/a_different_path/.reticulum .reticulum:/maybe-a-different-path/.reticulum
devices: devices:
- /dev/ttyUSB0:/dev/ttyUSB0 - /dev/ttyUSB0:/dev/ttyUSB0
``` ```