Compare commits

...

62 Commits

27 changed files with 136 additions and 58 deletions

View File

@@ -1,8 +0,0 @@
---
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: daily
time: "06:00"

59
.github/renovate.json vendored Normal file
View File

@@ -0,0 +1,59 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"rebaseWhen": "behind-base-branch",
"dependencyDashboard": true,
"labels": ["dependencies", "no-stale"],
"commitMessagePrefix": "⬆️",
"commitMessageTopic": "{{depName}}",
"regexManagers": [
{
"fileMatch": ["/Dockerfile$", "/build.yaml$"],
"matchStringsStrategy": "any",
"matchStrings": [
"ARG BUILD_FROM=(?<depName>.*?):(?<currentValue>.*?)\\s+",
"(aarch64|amd64|armhf|armv7|i386):\\s[\"']?(?<depName>.*?):(?<currentValue>.*?)[\"']?\\s"
],
"datasourceTemplate": "docker"
},
{
"fileMatch": ["/Dockerfile$"],
"matchStringsStrategy": "any",
"matchStrings": [
"\\s\\s(?<package>[a-z0-9-]+)=(?<currentValue>[a-z0-9-_.]+)\\s+"
],
"versioningTemplate": "loose",
"datasourceTemplate": "repology",
"depNameTemplate": "alpine_3_18/{{package}}"
},
{
"fileMatch": ["/Dockerfile$"],
"matchStrings": [
"ARG ZERO_TIER_ONE_VERSION=[\"']?(?<currentValue>.+?)[\"']?\\s+"
],
"datasourceTemplate": "github-releases",
"depNameTemplate": "zerotier/ZeroTierOne"
}
],
"packageRules": [
{
"matchDatasources": ["repology"],
"automerge": true
},
{
"groupName": "Add-on base image",
"matchDatasources": ["docker"]
},
{
"groupName": "Add-on base image",
"matchDatasources": ["docker"],
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
},
{
"matchDatasources": ["github-releases"],
"matchDepNames": ["zerotier/ZeroTierOne"],
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
}
]
}

View File

@@ -14,5 +14,3 @@ on:
jobs:
workflows:
uses: hassio-addons/workflows/.github/workflows/addon-ci.yaml@main
secrets:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -16,5 +16,5 @@ jobs:
workflows:
uses: hassio-addons/workflows/.github/workflows/addon-deploy.yaml@main
secrets:
CAS_API_KEY: ${{ secrets.CAS_API_KEY }}
DISPATCH_TOKEN: ${{ secrets.DISPATCH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -10,5 +10,3 @@ on:
jobs:
workflows:
uses: hassio-addons/workflows/.github/workflows/labels.yaml@main
secrets:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -10,5 +10,3 @@ on:
jobs:
workflows:
uses: hassio-addons/workflows/.github/workflows/lock.yaml@main
secrets:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -13,5 +13,3 @@ on:
jobs:
workflows:
uses: hassio-addons/workflows/.github/workflows/pr-labels.yaml@main
secrets:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -10,5 +10,3 @@ on:
jobs:
workflows:
uses: hassio-addons/workflows/.github/workflows/release-drafter.yaml@main
secrets:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -10,5 +10,3 @@ on:
jobs:
workflows:
uses: hassio-addons/workflows/.github/workflows/stale.yaml@main
secrets:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,6 +1,6 @@
# MIT License
Copyright (c) 2019-2021 Franck Nijhof
Copyright (c) 2019-2023 Franck Nijhof
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -80,7 +80,7 @@ our [GitHub Repository][repository].
MIT License
Copyright (c) 2019-2021 Franck Nijhof
Copyright (c) 2019-2023 Franck Nijhof
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -121,7 +121,7 @@ SOFTWARE.
[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg
[issue]: https://github.com/hassio-addons/addon-zerotier/issues
[license-shield]: https://img.shields.io/github/license/hassio-addons/addon-zerotier.svg
[maintenance-shield]: https://img.shields.io/maintenance/yes/2021.svg
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
[patreon-shield]: https://frenck.dev/wp-content/uploads/2019/12/patreon.png
[patreon]: https://www.patreon.com/frenck
[project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg

View File

@@ -67,7 +67,7 @@ If you are more interested in stable releases of our add-ons:
[forum]: https://community.home-assistant.io/t/home-assistant-community-add-on-zerotier-one/109091?u=frenck
[github-sponsors-shield]: https://frenck.dev/wp-content/uploads/2019/12/github_sponsor.png
[github-sponsors]: https://github.com/sponsors/frenck
[maintenance-shield]: https://img.shields.io/maintenance/yes/2021.svg
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
[patreon-shield]: https://frenck.dev/wp-content/uploads/2019/12/patreon.png
[patreon]: https://www.patreon.com/frenck
[project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg

View File

@@ -1,8 +1,8 @@
# Home Assistant Community Add-on: ZeroTier One
ZeroTier delivers the capabilities of VPNs, SDN, and SD-WAN with a single
system. Manage all your connected resources across both local and wide area
networks as if the whole world is a single data center.
[ZeroTier][zerotier] delivers the capabilities of VPNs, SDN, and SD-WAN with
a single system. Manage all your connected resources across both local
and wide area networks as if the whole world is a single data center.
People use ZeroTier to seamlessly connect laptops, desktops, phones,
embedded devices, cloud resources, and apps any way they want anywhere they go.
@@ -14,8 +14,12 @@ can now add your Home Assistant instance using this add-on.
The installation of this add-on is pretty straightforward and not different in
comparison to installing any other Home Assistant add-on.
1. Search for the "ZeroTier One" add-on in the Supervisor add-on store
and install it.
1. Click the Home Assistant My button below to open the add-on on your Home
Assistant instance.
[![Open this add-on in your Home Assistant instance.][addon-badge]][addon]
1. Click the "Install" button to install the add-on.
1. Create a free account at [zerotier.com][zerotier] and get a network ID.
1. Set the "network_id" add-on option with your network ID.
1. Start the "ZeroTier One" add-on
@@ -114,7 +118,7 @@ check [the contributor's page][contributors].
MIT License
Copyright (c) 2019-2021 Franck Nijhof
Copyright (c) 2019-2023 Franck Nijhof
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -134,6 +138,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
[addon-badge]: https://my.home-assistant.io/badges/supervisor_addon.svg
[addon]: https://my.home-assistant.io/redirect/supervisor_addon/?addon=a0d7b954_zerotier&repository_url=https%3A%2F%2Fgithub.com%2Fhassio-addons%2Frepository
[api]: https://www.zerotier.com/manual.shtml#4_1
[contributors]: https://github.com/hassio-addons/addon-zerotier/graphs/contributors
[discord-ha]: https://discord.gg/c5DvZ4e
@@ -143,5 +149,5 @@ SOFTWARE.
[issue]: https://github.com/hassio-addons/addon-zerotier/issues
[reddit]: https://reddit.com/r/homeassistant
[releases]: https://github.com/hassio-addons/addon-zerotier/releases
[semver]: http://semver.org/spec/v2.0.0.htm
[semver]: https://semver.org/spec/v2.0.0.html
[zerotier]: https://www.zerotier.com/

View File

@@ -1,4 +1,4 @@
ARG BUILD_FROM=ghcr.io/hassio-addons/base/amd64:10.2.2
ARG BUILD_FROM=ghcr.io/hassio-addons/base:14.1.0
# hadolint ignore=DL3006
FROM ${BUILD_FROM}
@@ -6,26 +6,32 @@ FROM ${BUILD_FROM}
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Setup base
ARG ZERO_TIER_ONE_VERSION="1.12.0"
# hadolint ignore=DL3003
RUN \
apk add --no-cache --virtual .build-dependencies \
build-base=0.5-r2 \
linux-headers=5.10.41-r0 \
git=2.32.0-r0 \
build-base=0.5-r3 \
cargo=1.71.1-r0 \
git=2.40.1-r0 \
linux-headers=6.3-r0 \
openssl-dev=3.1.2-r0 \
pkgconf=1.9.5-r0 \
\
&& apk add --no-cache \
libgcc=10.3.1_git20210424-r2 \
libstdc++=10.3.1_git20210424-r2 \
libgcc=12.2.1_git20220924-r10 \
libstdc++=12.2.1_git20220924-r10 \
\
&& git clone --branch "1.8.2" --depth=1 \
&& git clone --branch "${ZERO_TIER_ONE_VERSION}" --depth=1 \
"https://github.com/zerotier/ZeroTierOne.git" /tmp/zerotier \
\
&& cd /tmp/zerotier \
&& make \
&& CARGO_NET_GIT_FETCH_WITH_CLI=true make \
&& make install \
\
&& apk del --no-cache --purge .build-dependencies \
&& rm -f -r /tmp/*
&& rm -f -r \
/root/.cargo \
/tmp/*
# Copy root filesystem
COPY rootfs /

View File

@@ -1,7 +1,10 @@
---
build_from:
aarch64: ghcr.io/hassio-addons/base/aarch64:10.2.2
amd64: ghcr.io/hassio-addons/base/amd64:10.2.2
armhf: ghcr.io/hassio-addons/base/armhf:10.2.2
armv7: ghcr.io/hassio-addons/base/armv7:10.2.2
i386: ghcr.io/hassio-addons/base/i386:10.2.2
aarch64: ghcr.io/hassio-addons/base:14.1.0
amd64: ghcr.io/hassio-addons/base:14.1.0
armhf: ghcr.io/hassio-addons/base:14.1.0
armv7: ghcr.io/hassio-addons/base:14.1.0
i386: ghcr.io/hassio-addons/base:14.1.0
codenotary:
base_image: codenotary@frenck.dev
signer: codenotary@frenck.dev

View File

@@ -4,6 +4,7 @@ version: dev
slug: zerotier
description: Radically simplify your network with a virtual networking layer that works the same everywhere
url: https://github.com/hassio-addons/addon-zerotier
codenotary: codenotary@frenck.dev
startup: services
init: false
arch:

View File

@@ -1,4 +1,5 @@
#!/usr/bin/with-contenv bashio
#!/command/with-contenv bashio
# shellcheck shell=bash
# ==============================================================================
# Home Assistant Community Add-on: ZeroTier One
# Generates an identiy in case it does not exists yet
@@ -42,7 +43,7 @@ bashio::log.info "ZeroTier node address: ${node}"
# Sets the auth token for the local JSON API
if bashio::config.has_value 'api_auth_token'; then
token=$(bashio::config 'api_auth_token')
echo "${token}" > /data/authtoken.secret
echo "${token}" > /var/lib/zerotier-one/authtoken.secret
fi
# Ensure network folder exists

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-zerotier/run

View File

@@ -0,0 +1,27 @@
#!/command/with-contenv bashio
# shellcheck shell=bash
# ==============================================================================
# Home Assistant Community Add-on: ZeroTier One
# Take down the S6 supervision tree when ZeroTier fails
# ==============================================================================
declare exit_code
readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
readonly exit_code_service="${1}"
readonly exit_code_signal="${2}"
readonly service="ZeroTier One"
bashio::log.info \
"Service ${service} exited with code ${exit_code_service}" \
"(by signal ${exit_code_signal})"
if [[ "${exit_code_service}" -eq 256 ]]; then
if [[ "${exit_code_container}" -eq 0 ]]; then
echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
fi
[[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
elif [[ "${exit_code_service}" -ne 0 ]]; then
if [[ "${exit_code_container}" -eq 0 ]]; then
echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
fi
exec /run/s6/basedir/bin/halt
fi

View File

@@ -1,4 +1,5 @@
#!/usr/bin/with-contenv bashio
#!/command/with-contenv bashio
# shellcheck shell=bash
# ==============================================================================
# Home Assistant Community Add-on: ZeroTier One
# Runs ZeroTier One

View File

@@ -0,0 +1 @@
longrun

View File

@@ -1,9 +0,0 @@
#!/usr/bin/execlineb -S0
# ==============================================================================
# Home Assistant Community Add-on: ZeroTier One
# Take down the S6 supervision tree when ZeroTier fails
# ==============================================================================
if -n { s6-test $# -ne 0 }
if -n { s6-test ${1} -eq 256 }
s6-svscanctl -t /var/run/s6/services