From 4a41424bc9483d13646432f533942bdfb47b40f7 Mon Sep 17 00:00:00 2001 From: kvanzuijlen <8818390+kvanzuijlen@users.noreply.github.com> Date: Tue, 23 May 2023 17:38:19 +0000 Subject: [PATCH] Added ankerctl HA addon --- Dockerfile | 29 ++++++++++++++++++++++++++++- build.yaml | 14 +++++++------- config.yaml | 15 ++++++++++----- icon.png | Bin 0 -> 12398 bytes logo.png | Bin 0 -> 12398 bytes 5 files changed, 45 insertions(+), 13 deletions(-) create mode 100644 icon.png create mode 100644 logo.png diff --git a/Dockerfile b/Dockerfile index 170dc7c..f076903 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,4 +16,31 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \ FLASK_HOST=0.0.0.0 \ FLASK_PORT=4470 -LABEL org.opencontainers.image.version=${BUILD_VERSION} \ No newline at end of file +############ +# 5 Labels # +############ +ARG BUILD_ARCH +ARG BUILD_DATE +ARG BUILD_DESCRIPTION +ARG BUILD_NAME +ARG BUILD_REF +ARG BUILD_REPOSITORY +ARG BUILD_VERSION +LABEL \ + io.hass.name="${BUILD_NAME}" \ + io.hass.description="${BUILD_DESCRIPTION}" \ + io.hass.arch="${BUILD_ARCH}" \ + io.hass.type="addon" \ + io.hass.version=${BUILD_VERSION} \ + maintainer="ankermgmt (https://github.com/ankermgmt)" \ + org.opencontainers.image.title="${BUILD_NAME}" \ + org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ + org.opencontainers.image.vendor="Home Assistant Add-ons" \ + org.opencontainers.image.authors="kvanzuijlen (https://github.com/kvanzuijlen)" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.url="https://github.com/ankermgmt" \ + org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \ + org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \ + org.opencontainers.image.created=${BUILD_DATE} \ + org.opencontainers.image.revision=${BUILD_REF} \ + org.opencontainers.image.version=${BUILD_VERSION} diff --git a/build.yaml b/build.yaml index 714fc5c..ad0fd72 100644 --- a/build.yaml +++ b/build.yaml @@ -1,9 +1,9 @@ build_from: - aarch64: "ghcr.io/kvanzuijlen/ankerctl:v1.0.0" - amd64: "ghcr.io/kvanzuijlen/ankerctl:v1.0.0" - armv7: "ghcr.io/kvanzuijlen/ankerctl:v1.0.0" + aarch64: "ghcr.io/ankermgmt/ankermake-m5-protocol:v1.0.0" + amd64: "ghcr.io/ankermgmt/ankermake-m5-protocol:v1.0.0" + armv7: "ghcr.io/ankermgmt/ankermake-m5-protocol:v1.0.0" labels: - org.opencontainers.image.title: "Home Assistant Add-on: AnkerCTL" - org.opencontainers.image.description: "AnkerCTL" - org.opencontainers.image.source: "https://github.com/AnkerMGMT/AnkerMGMT-homeassistant-addons" - org.opencontainers.image.licenses: "Apache License 2.0" + org.opencontainers.image.title: "Home Assistant Add-on: ankerctl" + org.opencontainers.image.description: "ankerctl" + org.opencontainers.image.source: "https://github.com/ankermgmt/ankermgmt-homeassistant-addons" + org.opencontainers.image.licenses: "GPLv3" diff --git a/config.yaml b/config.yaml index 2c24050..6799bf9 100644 --- a/config.yaml +++ b/config.yaml @@ -1,12 +1,17 @@ -name: "AnkerCTL" -description: "The official AnkerCTL addon" -version: "1.0.0-5" +name: "ankerctl" +description: "The official ankerctl addon" +version: "1.0.0-0" slug: "ankerctl" -ingress: true +ingress: false # Doesn't work yet, might need some source code changes ingress_port: 4470 -ingress_stream: true +ingress_stream: false init: false +host_network: true arch: - aarch64 - amd64 - armv7 +ports: + "4470": 4470 +ports_description: + "4470": "The webinterface for ankerctl" diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ea05e5cb41e70dbdcaca27b3509a88e0761495d4 GIT binary patch literal 12398 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