Merge branch 'master' of github.com:markqvist/NomadNet

This commit is contained in:
Mark Qvist 2022-05-17 13:11:15 +02:00
commit 467f02b379
4 changed files with 89 additions and 0 deletions

1
.dockerignore Symbolic link
View File

@ -0,0 +1 @@
.gitignore

42
.github/workflows/publish-container.yml vendored Normal file
View File

@ -0,0 +1,42 @@
name: Create and publish a Docker image
on:
push:
branches: ['master']
tags: ['*.*.*']
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

24
Dockerfile Normal file
View File

@ -0,0 +1,24 @@
FROM python:3.11-rc-alpine3.14 as build
RUN apk add --no-cache build-base linux-headers libffi-dev cargo
# Create a virtualenv that we'll copy to the published image
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
RUN pip3 install setuptools-rust pyopenssl cryptography
COPY . /app/
RUN cd /app/ && python3 setup.py install
# Use multi-stage build, as we don't need rust compilation on the final image
FROM python:3.11-rc-alpine3.14
LABEL org.opencontainers.image.documentation="https://github.com/jphastings/NomadNet#using-docker--running-a-daemon"
ENV PATH="/opt/venv/bin:$PATH"
COPY --from=build /opt/venv /opt/venv
VOLUME /root/.reticulum
VOLUME /root/.nomadnetwork
ENTRYPOINT ["nomadnet"]

View File

@ -53,6 +53,28 @@ You can install Nomad Network on Android using Termux, but there's a few more co
For a native Android application with a graphical user interface, have a look at [Sideband](https://unsigned.io/sideband).
### Using docker / running a daemon
Nomad Network is automatically published as a docker image on Github Packages. Image tags are one of either `master` (for the latest release) or the version number (eg `0.1.7`) for the specified version number (as tagged in this git repo).
```sh
$ docker pull ghcr.io/markqvist/nomadnet:master
# Run nomadnet interactively without installing it (with default config)
$ docker run -it ghcr.io/markqvist/nomadnet:master
# Run nomadnet as a daemon, using config stored on the host machine in specific
# directories, and allowing access to specific numbered ports openned by nomadnet
# on the host machine on the same port numbers.
$ docker run -d \
-v /local/path/nomadnetconfig/:/root/.nomadnetwork/ \
-v /local/path/reticulumconfig/:/root/.reticulum/ \
-p 37428:37428 \
-p 37429:37429 \
ghcr.io/markqvist/nomadnet:master
```
## Help & Discussion
For help requests, discussion, sharing ideas or anything else related to Nomad Network, please have a look at the [Nomad Network discussions pages](https://github.com/markqvist/Reticulum/discussions/categories/nomad-network).