Compare commits

..

39 Commits

Author SHA1 Message Date
Conventional Changelog Action
a831772404 chore 🤖: Release v1.1.2 [skip ci] 2023-10-18 07:59:04 +00:00
Josh J
7ad182fba6 docs: update docs
fixes: #22
2023-10-18 08:55:29 +01:00
Conventional Changelog Action
fbdc16952c chore 🤖: Release v1.1.1 [skip ci] 2023-10-17 08:13:35 +00:00
Josh J
704859e91a ci: changelog needs permissions to commit to repo
consider breaking this out into another workflow to segregate permission
2023-10-17 09:09:03 +01:00
Josh J
63e3bea752 ci: must checkout before changelog 2023-10-17 08:59:47 +01:00
Josh J
fdd8bbbdda ci: needs to be able to publish security reports 2023-10-17 08:52:23 +01:00
546eeac920 Merge pull request #24 from dangeroustech/biodrone/issue22
ci: add permissions to actions file
2023-10-17 08:47:21 +01:00
Josh J
ffea17e8e8 ci: only do final build on main branch
oitherwise there's no tag to pull from
2023-10-17 08:43:10 +01:00
b144c39680 ci: only build PRs with main as base 2023-10-03 07:21:37 +00:00
a48a9286a2 ci: only build issue branches 2023-10-03 07:19:51 +00:00
511a78b182 ci: only build assigned PRs 2023-10-03 07:18:49 +00:00
2d7d9c7f3b ci: add permissions to actions file 2023-10-03 07:08:31 +00:00
46ee60cbc9 fix: set latest tag 2023-09-23 22:31:27 +00:00
bca9ec3df7 fix: 401 2023-09-23 21:49:35 +00:00
5cd683cb7a fix: remove tag to hopefully fix digest pushing 2023-09-23 21:44:42 +00:00
8d550748cd fix: push by digest again 2023-09-23 21:39:53 +00:00
f8d73263fd fix: re-setup buildx 2023-09-23 21:33:13 +00:00
2c987a3bbe fix: push by digest is breaking things 2023-09-23 21:30:17 +00:00
be55349cef fix: correct deps 2023-09-23 21:28:42 +00:00
593036c8ad fix: correct multiplatform builds
because apparently manifests are too difficult
2023-09-23 21:27:47 +00:00
Conventional Changelog Action
74c33dff3e chore 🤖: Release v1.1.0 [skip ci] 2023-09-23 21:07:49 +00:00
aab5c079dc feat: multi-platform builds 2023-09-23 21:06:25 +00:00
Conventional Changelog Action
344e30a1f0 chore 🤖: Release v1.0.13 [skip ci] 2023-09-22 21:10:45 +00:00
d3f10891c8 sec: lower vuln threshold 2023-09-22 21:09:20 +00:00
Conventional Changelog Action
7eb72f78f3 chore 🤖: Release v1.0.12 [skip ci] 2023-09-22 21:04:55 +00:00
6e3c2690fc fix: correct double message 2023-09-22 21:03:32 +00:00
Conventional Changelog Action
b651c5f8e9 chore 🤖: Release v1.0.11 [skip ci] [skip ci] 2023-09-22 20:59:18 +00:00
9908f656e7 Merge pull request #21 from dangeroustech/biodrone/issue20
Biodrone/issue20
2023-09-22 21:57:40 +01:00
977df48644 fix: only alert on CVEs that have a fix 2023-09-22 20:54:49 +00:00
fed1c28602 fix: pull correct deb package 2023-09-22 20:50:14 +00:00
b5e79ae24d Fix Grype Detected Security Problemos
Fixes #20
2023-09-22 20:49:29 +00:00
Conventional Changelog Action
09370a89a7 chore 🤖: Release v1.0.10 [skip ci] [skip ci] 2023-09-22 20:46:03 +00:00
1c41eb9e1b Merge pull request #19 from dangeroustech/biodrone/issue11
Integrate Grype for Scanning
2023-09-22 21:44:42 +01:00
89e29531f0 fix: upload sarif file 2023-09-22 20:37:00 +00:00
ec84d91bc3 Integrate Grype for Scanning
Fixes #11
2023-09-22 20:31:11 +00:00
Conventional Changelog Action
9cc7d36434 chore 🤖: Release v1.0.9 [skip ci] [skip ci] 2023-09-22 20:27:17 +00:00
ab9c1c4816 ci: remove duplicate artifact upload 2023-09-22 20:26:27 +00:00
Conventional Changelog Action
f94f69a8f7 chore 🤖: Release v1.0.8 [skip ci] [skip ci] 2023-09-22 20:25:23 +00:00
24c26bea0d ci: specify file output 2023-09-22 20:24:38 +00:00
8 changed files with 99876 additions and 42 deletions

View File

@@ -1,14 +1,38 @@
name: Publish Docker Image
permissions:
actions: read
checks: read
contents: write
deployments: read
issues: read
discussions: read
packages: read
pages: read
pull-requests: read
repository-projects: read
security-events: write
statuses: read
on:
pull_request:
branches:
- main
push:
branches:
- "main"
- main
env:
REGISTRY_IMAGE: registry.dangerous.tech/dangeroustech/zerotierbridge
jobs:
DockerBuildAndRelease:
Docker_Build:
name: Docker Build And Release
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
arch: [amd64, arm64]
version: [1.12.2]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
@@ -20,20 +44,108 @@ jobs:
uses: docker/setup-buildx-action@v3
- name: Login to Registry
id: registry_push
id: login
uses: docker/login-action@v3
with:
registry: registry.dangerous.tech
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Build and Push
- name: Build
id: docker_build
uses: docker/build-push-action@v5
with:
context: .
build-args: |
ARCH=${{ matrix.arch }}
VERSION=${{ matrix.version }}
push: true
tags: registry.dangerous.tech/dangeroustech/zerotierbridge:latest
platforms: linux/${{ matrix.arch }}
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true
- name: Export Digests
run: |
mkdir -p /tmp/digests
digest="${{ steps.docker_build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v3
with:
name: digests
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
MergeRefs:
name: Do The Horrible Merge Thing
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs:
- Docker_Build
steps:
- name: Download digests
uses: actions/download-artifact@v3
with:
name: digests
path: /tmp/digests
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Registry
id: login
uses: docker/login-action@v3
with:
registry: registry.dangerous.tech
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
# set latest tag for default branch
# https://github.com/docker/metadata-action#latest-tag
type=raw,value=latest,enable={{is_default_branch}}
- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
- name: Generate SBOM
uses: anchore/sbom-action@v0
id: sbom
with:
image: registry.dangerous.tech/dangeroustech/zerotierbridge:latest
registry-username: ${{ secrets.REGISTRY_USERNAME }}
registry-password: ${{ secrets.REGISTRY_PASSWORD }}
format: spdx-json
output-file: ./sbom.spdx.json
- name: Scan SBOM
uses: anchore/scan-action@v3
id: scan
with:
sbom: sbom.spdx.json
severity-cutoff: medium
fail-build: false
only-fixed: true
- name: upload Anchore scan SARIF report
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: ${{ steps.scan.outputs.sarif }}
- name: Checkout Repository
uses: actions/checkout@v4
- name: Changelog
uses: TriPSs/conventional-changelog-action@v3
@@ -41,24 +153,13 @@ jobs:
if: ${{ github.event_name != 'pull_request' }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
git-message: "chore 🤖: Release {version} [skip ci]"
output-file: "CHANGELOG.md"
tag-prefix: "v"
fallback-version: "1.0.0"
git-message: "chore 🤖: Release {version}"
output-file: CHANGELOG.md
tag-prefix: v
fallback-version: 1.0.0
release-count: 0 # preserve all versions in changelog
skip-on-empty: false # otherwise we don't publish fixes
- name: Generate SBOM
uses: anchore/sbom-action@v0
id: sbom
if: ${{ steps.changelog.outputs.skipped == 'false' }}
with:
image: registry.dangerous.tech/dangeroustech/zerotierbridge:latest
registry-username: ${{ secrets.REGISTRY_USERNAME }}
registry-password: ${{ secrets.REGISTRY_PASSWORD }}
format: spdx-json
artifact-name: sbom.spdx.json
- name: Create Release
uses: softprops/action-gh-release@v1
id: release

View File

@@ -1,3 +1,72 @@
## [1.1.2](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.1.1...v1.1.2) (2023-10-18)
## [1.1.1](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.1.0...v1.1.1) (2023-10-17)
### Bug Fixes
* 401 ([bca9ec3](https://github.com/dangeroustech/ZeroTierBridge/commit/bca9ec3df76f9c6ea114e099dd9317c58489d0b2))
* correct deps ([be55349](https://github.com/dangeroustech/ZeroTierBridge/commit/be55349cefbf291a9ce4233e65a785dad4ec3830))
* correct multiplatform builds ([593036c](https://github.com/dangeroustech/ZeroTierBridge/commit/593036c8ad8099a3a4e7b1ac9b1dcfbdb8e04a98))
* push by digest again ([8d55074](https://github.com/dangeroustech/ZeroTierBridge/commit/8d550748cde552ef5552e02770842d4e91f99253))
* push by digest is breaking things ([2c987a3](https://github.com/dangeroustech/ZeroTierBridge/commit/2c987a3bbe0492aaf22b26e446cb7d96a6c9115d))
* re-setup buildx ([f8d7326](https://github.com/dangeroustech/ZeroTierBridge/commit/f8d73263fdfd328ad38a77ff381e93bd8bda5750))
* remove tag to hopefully fix digest pushing ([5cd683c](https://github.com/dangeroustech/ZeroTierBridge/commit/5cd683cb7a83e37eb5b4717309d672f35b256c25))
* set latest tag ([46ee60c](https://github.com/dangeroustech/ZeroTierBridge/commit/46ee60cbc9091e93f977701a771ba9ce0216e5d1))
# [1.1.0](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.13...v1.1.0) (2023-09-23)
### Features
* multi-platform builds ([aab5c07](https://github.com/dangeroustech/ZeroTierBridge/commit/aab5c079dcd559b7c3123aa72d02f7691827083e))
## [1.0.13](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.12...v1.0.13) (2023-09-22)
## [1.0.12](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.11...v1.0.12) (2023-09-22)
### Bug Fixes
* correct double message ([6e3c269](https://github.com/dangeroustech/ZeroTierBridge/commit/6e3c2690fc612e42c1d2818cc8d4bdfb9d5e39ba))
## [1.0.11](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.10...v1.0.11) (2023-09-22)
### Bug Fixes
* only alert on CVEs that have a fix ([977df48](https://github.com/dangeroustech/ZeroTierBridge/commit/977df48644e0a7112dc25f9f04afa6d84ce87db9))
* pull correct deb package ([fed1c28](https://github.com/dangeroustech/ZeroTierBridge/commit/fed1c2860230d39aeb80178c79697c1c41fed23d))
## [1.0.10](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.9...v1.0.10) (2023-09-22)
### Bug Fixes
* upload sarif file ([89e2953](https://github.com/dangeroustech/ZeroTierBridge/commit/89e29531f070539935a93b6f55d791170ea42e72))
## [1.0.9](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.8...v1.0.9) (2023-09-22)
## [1.0.8](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.7...v1.0.8) (2023-09-22)
## [1.0.7](https://github.com/dangeroustech/ZeroTierBridge/compare/v1.0.6...v1.0.7) (2023-09-22)

View File

@@ -1,11 +1,11 @@
FROM debian:buster as stage
ARG PACKAGE_BASEURL=https://download.zerotier.com/debian/buster/pool/main/z/zerotier-one
FROM debian:bookworm as stage
ARG PACKAGE_BASEURL=https://download.zerotier.com/debian/bookworm/pool/main/z/zerotier-one
ARG ARCH=amd64
ARG VERSION=1.12.2
RUN apt-get update -qq && apt-get install -qq --no-install-recommends -y ca-certificates curl
RUN curl -sSL -o zerotier-one.deb "${PACKAGE_BASEURL}/zerotier-one_${VERSION}_${ARCH}.deb"
FROM debian:buster
FROM debian:bookworm
RUN mkdir /app
WORKDIR /app
COPY --from=stage zerotier-one.deb .

View File

@@ -6,7 +6,7 @@ A container to provide out-of-the-box bridging functionality to a ZeroTier netwo
### Prerequisites
- Docker running as your logged in user (i.e. not having to run `sudo docker-compose xyz`) - [Linux instructions here](https://docs.docker.com/engine/install/linux-postinstall/)
- Docker running as your logged in user (if `docker ps` runs then you're good, if not follow the link ->) - [Linux instructions here](https://docs.docker.com/engine/install/linux-postinstall/)
### ZeroTier UI Changes
@@ -22,17 +22,15 @@ You also need to add a static route into ZeroTier so that the traffic is routed
**You need to edit the `ZT_NETWORKS` and `ARCH` variable in the `docker-compose.yml` file first to add your networks and make sure your acrhitecture is correct (see [this page](http://download.zerotier.com/debian/buster/pool/main/z/zerotier-one/) for examples, usually either amd64 or arm64)**
Easy one-liner for Docker Compose:
Easiest way to bring up is via Docker Compose. Rename `docker-compose.yml.example` to `docker-compose.yml` and run `docker compose up -d`.
`docker-compose build && docker-compose up -d`
If you want to disable bridging, set `ZT_BRIDGE=false`. This can be done after the initial networks have been joined (just rebuild the container), as the ZeroTier config persists but IPTables forwarding is done on each container startup.
If you want to disable bridging, set `ZT_BRIDGE=false`. This can be done after the initial networks have been joined (just change the environment variable in the `docker-compose.yml` file and run `), as the ZeroTier config persists but IPTables forwarding is done on each container startup.
### OG Docker
`docker build -t zerotierbridge .`
`docker run --privileged -e ZT_NETWORKS=NETWORK_ID_HERE -e ZT_BRIDGE=true zerotierbridge:latest`
`docker run --privileged -e ZT_NETWORKS=NETWORK_1 NETWORK_2 -e ZT_BRIDGE=true zerotierbridge:latest`
Add your network ID(s) into the `ZT_NETWORKS` argument, space separated.
@@ -42,14 +40,10 @@ Disable bridging by passing `ZT_BRIDGE=false`. This can be done after the initia
If you would like the container to retain the same ZeroTier client ID on reboot, attach a volume as per the below.
`docker run --privileged -e ZT_NETWORKS=NETWORK_ID_HERE ZT_BRIDGE=true --volume zt1:/var/lib/zerotier-one/ zerotierbridge:latest`
`docker run --privileged -e ZT_NETWORKS=NETWORK_ID_HERE ZT_BRIDGE=true -v zt_config:/var/lib/zerotier-one/ zerotierbridge:latest`
#### Caveat: Architecture
If you need to run this on a device with different architecture (a raspberry pi, for instance), then just edit line 3 of the Dockerfile.
If you were using a Raspberry Pi 4, you would change this to `ARCH=arm64` and the container will pull the correct ZeroTier installer.
## TODO
- Add kubernetes deployment YAML

View File

@@ -3,12 +3,7 @@ version: "3"
services:
zerotierbridge:
container_name: zerotierbridge
build:
context: .
dockerfile: Dockerfile
args:
ARCH: amd64
VERSION: 1.12.2
image: registry.dangerous.tech/dangeroustech/zerotierbridge
restart: always
privileged: true
volumes:
@@ -17,4 +12,4 @@ services:
- ZT_NETWORKS=NETWORK_ID_1 NETWORK_ID_2 NETWORK_ID_3
- ZT_BRIDGE=true
volumes:
zt_config:
zt_config:

View File

@@ -1,3 +1,3 @@
{
"version": "1.0.7"
"version": "1.1.2"
}

16
results.sarif Normal file
View File

@@ -0,0 +1,16 @@
{
"version": "2.1.0",
"$schema": "https://json.schemastore.org/sarif-2.1.0-rtm.5.json",
"runs": [
{
"tool": {
"driver": {
"name": "Grype",
"version": "0.63.0",
"informationUri": "https://github.com/anchore/grype"
}
},
"results": []
}
]
}

99659
sbom.spdx.json Normal file

File diff suppressed because it is too large Load Diff