Compare commits
54 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bfa325775c | |||
| 10b4debdf5 | |||
| 62b412d28d | |||
| 81d3fd429b | |||
| 7cf16ee403 | |||
| ffddcfe663 | |||
| 1464c07280 | |||
| 5ebbd3ad4b | |||
| 4ae213d3b2 | |||
| cbe6bcf343 | |||
| f08b0ecaee | |||
| 5055e39cd0 | |||
|
|
1b71c11b96 | ||
|
|
3c54ffde6f | ||
|
|
c7709a773e | ||
|
|
8f3bfe5bde | ||
|
|
e392b03550 | ||
|
|
c2d080e2b2 | ||
|
|
9bce8fa493 | ||
|
|
da130f2c72 | ||
|
|
754930114e | ||
|
|
b849586bbf | ||
|
|
f1f688e61f | ||
|
|
7b804a8c6d | ||
|
|
409294db06 | ||
|
|
69e813fa24 | ||
|
|
d38ec25253 | ||
|
|
97ef0aacda | ||
|
|
7eaa2a34bf | ||
|
|
a7bc4ab7d4 | ||
|
|
b807fc5f3d | ||
|
|
1aef85d39c | ||
|
|
f75daad70c | ||
|
|
bae3a5124a | ||
|
|
16291df99c | ||
|
|
f05e84f2b7 | ||
|
|
2ae69f3620 | ||
|
|
64796e73ec | ||
|
|
91a4af13eb | ||
|
|
f238f0857b | ||
|
|
a0ca06a9fb | ||
|
|
e7302d0559 | ||
|
|
302a9020b8 | ||
|
|
a33beb344d | ||
|
|
67fe105489 | ||
|
|
8b111e9eed | ||
|
|
9a921b3d70 | ||
|
|
57d12e6c17 | ||
|
|
f7242ec678 | ||
|
|
0bbf0dd6cd | ||
|
|
118ff5927b | ||
|
|
5301d8e3d5 | ||
|
|
bbdb4c4ce6 | ||
|
|
4d538fd390 |
24
.devcontainer.json
Normal file
24
.devcontainer.json
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"name": "My custom Home Assistant add-on repository",
|
||||||
|
"image": "ghcr.io/home-assistant/devcontainer:addons",
|
||||||
|
"appPort": ["7123:8123", "7357:4357"],
|
||||||
|
"postStartCommand": "bash devcontainer_bootstrap",
|
||||||
|
"runArgs": ["-e", "GIT_EDITOR=code --wait", "--privileged"],
|
||||||
|
"containerEnv": {
|
||||||
|
"WORKSPACE_DIRECTORY": "${containerWorkspaceFolder}"
|
||||||
|
},
|
||||||
|
"extensions": ["timonwong.shellcheck", "esbenp.prettier-vscode"],
|
||||||
|
"mounts": ["type=volume,target=/var/lib/docker"],
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.profiles.linux": {
|
||||||
|
"zsh": {
|
||||||
|
"path": "/usr/bin/zsh"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"terminal.integrated.defaultProfile.linux": "zsh",
|
||||||
|
"editor.formatOnPaste": false,
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.formatOnType": true,
|
||||||
|
"files.trimTrailingWhitespace": true
|
||||||
|
}
|
||||||
|
}
|
||||||
7
.github/dependabot.yaml
vendored
Normal file
7
.github/dependabot.yaml
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: weekly
|
||||||
|
time: "06:00"
|
||||||
111
.github/workflows/builder.yaml
vendored
Normal file
111
.github/workflows/builder.yaml
vendored
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
name: Builder
|
||||||
|
|
||||||
|
env:
|
||||||
|
BUILD_ARGS: "--test"
|
||||||
|
MONITORED_FILES: "build.yaml config.yaml Dockerfile rootfs"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
init:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Initialize builds
|
||||||
|
outputs:
|
||||||
|
changed_addons: ${{ steps.changed_addons.outputs.addons }}
|
||||||
|
changed: ${{ steps.changed_addons.outputs.changed }}
|
||||||
|
steps:
|
||||||
|
- name: Check out the repository
|
||||||
|
uses: actions/checkout@v3.0.2
|
||||||
|
|
||||||
|
- name: Get changed files
|
||||||
|
id: changed_files
|
||||||
|
uses: jitterbit/get-changed-files@v1
|
||||||
|
|
||||||
|
- name: Find add-on directories
|
||||||
|
id: addons
|
||||||
|
uses: home-assistant/actions/helpers/find-addons@master
|
||||||
|
|
||||||
|
- name: Get changed add-ons
|
||||||
|
id: changed_addons
|
||||||
|
run: |
|
||||||
|
declare -a changed_addons
|
||||||
|
for addon in ${{ steps.addons.outputs.addons }}; do
|
||||||
|
if [[ "${{ steps.changed_files.outputs.all }}" =~ $addon ]]; then
|
||||||
|
for file in ${{ env.MONITORED_FILES }}; do
|
||||||
|
if [[ "${{ steps.changed_files.outputs.all }}" =~ $addon/$file ]]; then
|
||||||
|
if [[ ! "${changed_addons[@]}" =~ $addon ]]; then
|
||||||
|
changed_addons+=("\"${addon}\",");
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
changed=$(echo ${changed_addons[@]} | rev | cut -c 2- | rev)
|
||||||
|
|
||||||
|
if [[ -n ${changed} ]]; then
|
||||||
|
echo "Changed add-ons: $changed";
|
||||||
|
echo "::set-output name=changed::true";
|
||||||
|
echo "::set-output name=addons::[$changed]";
|
||||||
|
else
|
||||||
|
echo "No add-on had any monitored files changed (${{ env.MONITORED_FILES }})";
|
||||||
|
fi
|
||||||
|
build:
|
||||||
|
needs: init
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: needs.init.outputs.changed == 'true'
|
||||||
|
name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
addon: ${{ fromJson(needs.init.outputs.changed_addons) }}
|
||||||
|
arch: ["aarch64", "amd64", "armhf", "armv7", "i386"]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v3.0.2
|
||||||
|
|
||||||
|
- name: Get information
|
||||||
|
id: info
|
||||||
|
uses: home-assistant/actions/helpers/info@master
|
||||||
|
with:
|
||||||
|
path: "./${{ matrix.addon }}"
|
||||||
|
|
||||||
|
- name: Check if add-on should be built
|
||||||
|
id: check
|
||||||
|
run: |
|
||||||
|
if [[ "${{ steps.info.outputs.architectures }}" =~ ${{ matrix.arch }} ]]; then
|
||||||
|
echo "::set-output name=build_arch::true";
|
||||||
|
echo "::set-output name=image::$(echo ${{ steps.info.outputs.image }} | cut -d'/' -f3)";
|
||||||
|
if [[ -z "${{ github.head_ref }}" ]] && [[ "${{ github.event_name }}" == "push" ]]; then
|
||||||
|
echo "BUILD_ARGS=" >> $GITHUB_ENV;
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${{ matrix.arch }} is not a valid arch for ${{ matrix.addon }}, skipping build";
|
||||||
|
echo "::set-output name=build_arch::false";
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
if: env.BUILD_ARGS != '--test'
|
||||||
|
uses: docker/login-action@v2.0.0
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build ${{ matrix.addon }} add-on
|
||||||
|
if: steps.check.outputs.build_arch == 'true'
|
||||||
|
uses: home-assistant/builder@2022.07.0
|
||||||
|
with:
|
||||||
|
args: |
|
||||||
|
${{ env.BUILD_ARGS }} \
|
||||||
|
--${{ matrix.arch }} \
|
||||||
|
--target /data/${{ matrix.addon }} \
|
||||||
|
--image "${{ steps.check.outputs.image }}" \
|
||||||
|
--docker-hub "ghcr.io/${{ github.repository_owner }}" \
|
||||||
|
--addon
|
||||||
41
.github/workflows/lint.yaml
vendored
Normal file
41
.github/workflows/lint.yaml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
name: Lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * *"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
find:
|
||||||
|
name: Find add-ons
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
addons: ${{ steps.addons.outputs.addons_list }}
|
||||||
|
steps:
|
||||||
|
- name: ⤵️ Check out code from GitHub
|
||||||
|
uses: actions/checkout@v3.0.2
|
||||||
|
|
||||||
|
- name: 🔍 Find add-on directories
|
||||||
|
id: addons
|
||||||
|
uses: home-assistant/actions/helpers/find-addons@master
|
||||||
|
|
||||||
|
lint:
|
||||||
|
name: Lint add-on ${{ matrix.path }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: find
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
path: ${{ fromJson(needs.find.outputs.addons) }}
|
||||||
|
steps:
|
||||||
|
- name: ⤵️ Check out code from GitHub
|
||||||
|
uses: actions/checkout@v3.0.2
|
||||||
|
|
||||||
|
- name: 🚀 Run Home Assistant Add-on Lint
|
||||||
|
uses: frenck/action-addon-linter@v2.9
|
||||||
|
with:
|
||||||
|
path: "./${{ matrix.path }}"
|
||||||
19
.vscode/tasks.json
vendored
Normal file
19
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Start Home Assistant",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "supervisor_run",
|
||||||
|
"group": {
|
||||||
|
"kind": "test",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"reveal": "always",
|
||||||
|
"panel": "new"
|
||||||
|
},
|
||||||
|
"problemMatcher": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
26
README.md
Normal file
26
README.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# My cusstom Home Assistant add-on repository
|
||||||
|
|
||||||
|
## Contains the following add-ons:
|
||||||
|
</br>
|
||||||
|
|
||||||
|
| Add-On Name | Notes |
|
||||||
|
| --- | --- |
|
||||||
|
| [Portainer](https://www.portainer.io/) | Fork of: [Home Assistant Community Add-on: Portainer](https://github.com/hassio-addons/addon-portainer) </br> The official add-on is discontinued so i maintain it here for my own usage. |
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Notes to developers after forking or using the github template feature:
|
||||||
|
- While developing comment out the 'image' key from 'example/config.yaml' to make the supervisor build the addon
|
||||||
|
- Remember to put this back when pushing up your changes.
|
||||||
|
- When you merge to the 'main' branch of your repository a new build will be triggered.
|
||||||
|
- Make sure you adjust the 'version' key in 'example/config.yaml' when you do that.
|
||||||
|
- Make sure you update 'example/CHANGELOG.md' when you do that.
|
||||||
|
- The first time this runs you might need to adjust the image configuration on github container registry to make it public
|
||||||
|
- Adjust the 'image' key in 'example/config.yaml' so it points to your username instead of 'home-assistant'.
|
||||||
|
- This is where the build images will be published to.
|
||||||
|
- Rename the example directory.
|
||||||
|
- The 'slug' key in 'example/config.yaml' should match the directory name.
|
||||||
|
- Adjust all keys/url's that points to 'home-assistant' to now point to your user/fork.
|
||||||
|
- Share your repository on the forums https://community.home-assistant.io/c/projects/9
|
||||||
|
- Do awesome stuff!
|
||||||
|
-->
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
ARG BUILD_ARG
|
|
||||||
FROM $BUILD_FROM
|
|
||||||
|
|
||||||
# Add env
|
|
||||||
ENV LANG C.UTF-8
|
|
||||||
|
|
||||||
# Setup base
|
|
||||||
RUN apk add --no-cache jq
|
|
||||||
|
|
||||||
# Copy data
|
|
||||||
COPY run.sh /
|
|
||||||
RUN chmod a+x /run.sh
|
|
||||||
|
|
||||||
CMD [ "/run.sh" ]
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Coffee Maker",
|
|
||||||
"version": "1.2",
|
|
||||||
"slug": "coffee_maker",
|
|
||||||
"description": "Expose a web frontend to control my coffee maker",
|
|
||||||
"startup": "before",
|
|
||||||
"boot": "auto",
|
|
||||||
"ports": {
|
|
||||||
"80/tcp": 8080
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"device": null
|
|
||||||
},
|
|
||||||
"schema": {
|
|
||||||
"device": "str"
|
|
||||||
},
|
|
||||||
"image": "hub/{arch}-coffee-maker"
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
sed -e
|
|
||||||
|
|
||||||
CONFIG_PATH=/data/options.json
|
|
||||||
|
|
||||||
DEVICE=$(jq --raw-output ".device" $CONFIG_PATH)
|
|
||||||
|
|
||||||
echo "We can now make coffee on device: $DEVICE"
|
|
||||||
92
portainer/.README.j2
Normal file
92
portainer/.README.j2
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# Home Assistant Community Add-on: Portainer
|
||||||
|
|
||||||
|
[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield]
|
||||||
|
|
||||||
|
[![Discord][discord-shield]][discord] [![Community Forum][forum-shield]][forum]
|
||||||
|
|
||||||
|
[![Sponsor Frenck via GitHub Sponsors][github-sponsors-shield]][github-sponsors]
|
||||||
|
|
||||||
|
[![Support Frenck on Patreon][patreon-shield]][patreon]
|
||||||
|
|
||||||
|
Manage your Docker environment with ease.
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
Portainer is an open-source lightweight management UI which allows you to
|
||||||
|
easily manage your a Docker host(s) or Docker swarm clusters.
|
||||||
|
|
||||||
|
It has never been so easy to manage Docker. Portainer provides a detailed
|
||||||
|
overview of Docker and allows you to manage containers, images, networks and
|
||||||
|
volumes.
|
||||||
|
|
||||||
|
## WARNING 1
|
||||||
|
|
||||||
|
The Portainer add-on is really powerful and gives you access to virtually
|
||||||
|
your whole system. While this add-on is created and maintained with care and
|
||||||
|
with security in mind, in the wrong or inexperienced hands,
|
||||||
|
it could damage your system.
|
||||||
|
|
||||||
|
## WARNING 2
|
||||||
|
|
||||||
|
The Portainer add-on is meant for debugging Home Assistant and its containers.
|
||||||
|
It has not meant or designed for managing or deploying your custom software
|
||||||
|
or third-party containers.
|
||||||
|
|
||||||
|
**Home Assistant DOES NOT SUPPORT running third party containers**
|
||||||
|
on Home Assistant OS or Supervised installation types. Ignoring this, will
|
||||||
|
render your system as unsupported!
|
||||||
|
|
||||||
|
![Portainer screenshot][screenshot]
|
||||||
|
|
||||||
|
{% if channel == "edge" %}
|
||||||
|
## WARNING! THIS IS AN EDGE VERSION!
|
||||||
|
|
||||||
|
This Home Assistant Add-ons repository contains edge builds of add-ons.
|
||||||
|
Edge builds add-ons are based upon the latest development version.
|
||||||
|
|
||||||
|
- They may not work at all.
|
||||||
|
- They might stop working at any time.
|
||||||
|
- They could have a negative impact on your system.
|
||||||
|
|
||||||
|
This repository was created for:
|
||||||
|
|
||||||
|
- Anybody willing to test.
|
||||||
|
- Anybody interested in trying out upcoming add-ons or add-on features.
|
||||||
|
- Developers.
|
||||||
|
|
||||||
|
If you are more interested in stable releases of our add-ons:
|
||||||
|
|
||||||
|
<https://github.com/hassio-addons/repository>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
{% if channel == "beta" %}
|
||||||
|
## WARNING! THIS IS A BETA VERSION!
|
||||||
|
|
||||||
|
This Home Assistant Add-ons repository contains beta releases of add-ons.
|
||||||
|
|
||||||
|
- They might stop working at any time.
|
||||||
|
- They could have a negative impact on your system.
|
||||||
|
|
||||||
|
This repository was created for:
|
||||||
|
|
||||||
|
- Anybody willing to test.
|
||||||
|
- Anybody interested in trying out upcoming add-ons or add-on features.
|
||||||
|
|
||||||
|
If you are more interested in stable releases of our add-ons:
|
||||||
|
|
||||||
|
<https://github.com/hassio-addons/repository>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
[discord-shield]: https://img.shields.io/discord/478094546522079232.svg
|
||||||
|
[discord]: https://discord.me/hassioaddons
|
||||||
|
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg
|
||||||
|
[forum]: https://community.home-assistant.io/t/home-assistant-community-add-on-portainer/68836?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
|
||||||
|
[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-production%20ready-brightgreen.svg
|
||||||
|
[release-shield]: https://img.shields.io/badge/version-{{ version }}-blue.svg
|
||||||
|
[release]: {{ repo }}/tree/{{ version }}
|
||||||
|
[screenshot]: https://github.com/hassio-addons/addon-portainer/raw/main/images/screenshot.png
|
||||||
145
portainer/DOCS.md
Normal file
145
portainer/DOCS.md
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
# Home Assistant Community Add-on: Portainer
|
||||||
|
|
||||||
|
Portainer is an open-source lightweight management UI which allows you to
|
||||||
|
easily manage a Docker host(s) or Docker swarm clusters.
|
||||||
|
|
||||||
|
It has never been so easy to manage Docker. Portainer provides a detailed
|
||||||
|
overview of Docker and allows you to manage containers, images, networks and
|
||||||
|
volumes.
|
||||||
|
|
||||||
|
## WARNING 1
|
||||||
|
|
||||||
|
The Portainer add-on is really powerful and gives you access to virtually
|
||||||
|
your whole system. While this add-on is created and maintained with care and
|
||||||
|
with security in mind, in the wrong or inexperienced hands,
|
||||||
|
it could damage your system.
|
||||||
|
|
||||||
|
## WARNING 2
|
||||||
|
|
||||||
|
The Portainer add-on is meant for debugging Home Assistant and its containers.
|
||||||
|
It has not meant or designed for managing or deploying your custom software
|
||||||
|
or third-party containers.
|
||||||
|
|
||||||
|
**Home Assistant DOES NOT SUPPORT running third party containers**
|
||||||
|
on Home Assistant OS or Supervised installation types. Ignoring this, will
|
||||||
|
render your system as unsupported!
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
To install this add-on, you'll first need to go to your profile and turn on
|
||||||
|
"Advanced Mode", once that is done go back to Home Assistant add-ons and search
|
||||||
|
for "Portainer" and install it as you would any other add-on.
|
||||||
|
|
||||||
|
To be able to use this add-on, you'll need to disable protection mode on this
|
||||||
|
add-on. Without it, the add-on is unable to access Docker.
|
||||||
|
|
||||||
|
1. Search for the "Portainer" add-on in the Supervisor add-on store and
|
||||||
|
install it.
|
||||||
|
1. Set the "Protection mode" switch to off.
|
||||||
|
1. Start the "Portainer" add-on.
|
||||||
|
1. Check the logs of the "Portainer" add-on to see if everything went well.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
**Note**: _Remember to restart the add-on when the configuration is changed._
|
||||||
|
|
||||||
|
Example add-on configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
log_level: info
|
||||||
|
agent_secret: password
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note**: _This is just an example, don't copy and paste it! Create your own!_
|
||||||
|
|
||||||
|
### Option: `log_level`
|
||||||
|
|
||||||
|
The `log_level` option controls the level of log output by the addon and can
|
||||||
|
be changed to be more or less verbose, which might be useful when you are
|
||||||
|
dealing with an unknown issue. Possible values are:
|
||||||
|
|
||||||
|
- `trace`: Show every detail, like all called internal functions.
|
||||||
|
- `debug`: Shows detailed debug information.
|
||||||
|
- `info`: Normal (usually) interesting events.
|
||||||
|
- `warning`: Exceptional occurrences that are not errors.
|
||||||
|
- `error`: Runtime errors that do not require immediate action.
|
||||||
|
- `fatal`: Something went terribly wrong. Add-on becomes unusable.
|
||||||
|
|
||||||
|
Please note that each level automatically includes log messages from a
|
||||||
|
more severe level, e.g., `debug` also shows `info` messages. By default,
|
||||||
|
the `log_level` is set to `info`, which is the recommended setting unless
|
||||||
|
you are troubleshooting.
|
||||||
|
|
||||||
|
### Option: `agent_secret`
|
||||||
|
|
||||||
|
An option to set a shared agent secret. Must also be set in the remote agent
|
||||||
|
as an Environment variable.
|
||||||
|
|
||||||
|
## Changelog & Releases
|
||||||
|
|
||||||
|
This repository keeps a change log using [GitHub's releases][releases]
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
Releases are based on [Semantic Versioning][semver], and use the format
|
||||||
|
of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented
|
||||||
|
based on the following:
|
||||||
|
|
||||||
|
- `MAJOR`: Incompatible or major changes.
|
||||||
|
- `MINOR`: Backwards-compatible new features and enhancements.
|
||||||
|
- `PATCH`: Backwards-compatible bugfixes and package updates.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
Got questions?
|
||||||
|
|
||||||
|
You have several options to get them answered:
|
||||||
|
|
||||||
|
- The [Home Assistant Community Add-ons Discord chat server][discord] for add-on
|
||||||
|
support and feature requests.
|
||||||
|
- The [Home Assistant Discord chat server][discord-ha] for general Home
|
||||||
|
Assistant discussions and questions.
|
||||||
|
- The Home Assistant [Community Forum][forum].
|
||||||
|
- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit]
|
||||||
|
|
||||||
|
You could also [open an issue here][issue] GitHub.
|
||||||
|
|
||||||
|
## Authors & contributors
|
||||||
|
|
||||||
|
The original setup of this repository is by [Franck Nijhof][frenck].
|
||||||
|
|
||||||
|
For a full list of all authors and contributors,
|
||||||
|
check [the contributor's page][contributors].
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2018-2021 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
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
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.
|
||||||
|
|
||||||
|
[contributors]: https://github.com/hassio-addons/addon-portainer/graphs/contributors
|
||||||
|
[discord-ha]: https://discord.gg/c5DvZ4e
|
||||||
|
[discord]: https://discord.me/hassioaddons
|
||||||
|
[forum]: https://community.home-assistant.io/t/home-assistant-community-add-on-portainer/68836?u=frenck
|
||||||
|
[frenck]: https://github.com/frenck
|
||||||
|
[issue]: https://github.com/hassio-addons/addon-portainer/issues
|
||||||
|
[reddit]: https://reddit.com/r/homeassistant
|
||||||
|
[releases]: https://github.com/hassio-addons/addon-portainer/releases
|
||||||
|
[semver]: http://semver.org/spec/v2.0.0.htm
|
||||||
50
portainer/Dockerfile
Executable file
50
portainer/Dockerfile
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
ARG BUILD_FROM=ghcr.io/hassio-addons/base/amd64:14.0.5
|
||||||
|
# hadolint ignore=DL3006
|
||||||
|
FROM ${BUILD_FROM}
|
||||||
|
|
||||||
|
# Set shell
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
# Setup base
|
||||||
|
ARG BUILD_ARCH=amd64
|
||||||
|
RUN \
|
||||||
|
if [ "${BUILD_ARCH}" = "aarch64" ]; then ARCH="arm64"; fi \
|
||||||
|
&& if [ "${BUILD_ARCH}" = "armhf" ]; then ARCH="arm"; fi \
|
||||||
|
&& if [ "${BUILD_ARCH}" = "armv7" ]; then ARCH="arm"; fi \
|
||||||
|
&& if [ "${BUILD_ARCH}" = "amd64" ]; then ARCH="amd64"; fi \
|
||||||
|
\
|
||||||
|
&& curl -L -s \
|
||||||
|
"https://github.com/portainer/portainer/releases/download/2.18.4/portainer-2.18.4-linux-${ARCH}.tar.gz" \
|
||||||
|
| tar zxvf - -C /opt/
|
||||||
|
|
||||||
|
# Copy root filesystem
|
||||||
|
COPY rootfs /
|
||||||
|
|
||||||
|
# Build arguments
|
||||||
|
ARG BUILD_ARCH
|
||||||
|
ARG BUILD_DATE
|
||||||
|
ARG BUILD_DESCRIPTION
|
||||||
|
ARG BUILD_NAME
|
||||||
|
ARG BUILD_REF
|
||||||
|
ARG BUILD_REPOSITORY
|
||||||
|
ARG BUILD_VERSION
|
||||||
|
|
||||||
|
# Labels
|
||||||
|
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="Nico Störzbach <nico@nstoerzbach.de>" \
|
||||||
|
org.opencontainers.image.title="${BUILD_NAME}" \
|
||||||
|
org.opencontainers.image.description="${BUILD_DESCRIPTION}" \
|
||||||
|
org.opencontainers.image.vendor="Home Assistant Community Add-ons" \
|
||||||
|
org.opencontainers.image.authors="Nico Störzbach <nico@nstoerzbach.de>" \
|
||||||
|
org.opencontainers.image.licenses="MIT" \
|
||||||
|
org.opencontainers.image.url="https://addons.community" \
|
||||||
|
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}
|
||||||
8
portainer/build.json
Normal file
8
portainer/build.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"build_from": {
|
||||||
|
"aarch64": "ghcr.io/hassio-addons/base/aarch64:14.0.5",
|
||||||
|
"amd64": "ghcr.io/hassio-addons/base/amd64:14.0.5",
|
||||||
|
"armhf": "ghcr.io/hassio-addons/base/armhf:14.0.5",
|
||||||
|
"armv7": "ghcr.io/hassio-addons/base/armv7:14.0.5"
|
||||||
|
}
|
||||||
|
}
|
||||||
26
portainer/config.json
Executable file
26
portainer/config.json
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "Portainer",
|
||||||
|
"version": "3.4.0",
|
||||||
|
"slug": "portainer",
|
||||||
|
"description": "Manage your Docker environment with ease.",
|
||||||
|
"url": "https://git.nstoerzbach.de/nico.stoerzbach/hassio-repository",
|
||||||
|
"advanced": true,
|
||||||
|
"ingress": true,
|
||||||
|
"ingress_stream": true,
|
||||||
|
"startup": "services",
|
||||||
|
"panel_icon": "mdi:docker",
|
||||||
|
"arch": ["aarch64", "amd64", "armhf", "armv7"],
|
||||||
|
"init": false,
|
||||||
|
"ports": {
|
||||||
|
"8000/tcp": null
|
||||||
|
},
|
||||||
|
"ports_description": {
|
||||||
|
"8000/tcp": "Edge Agent Api (Enable when managing remote edge agents)"
|
||||||
|
},
|
||||||
|
"hassio_api": true,
|
||||||
|
"docker_api": true,
|
||||||
|
"schema": {
|
||||||
|
"log_level": "list(trace|debug|info|notice|warning|error|fatal)?",
|
||||||
|
"agent_secret": "str?"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
portainer/icon.png
Normal file
BIN
portainer/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
BIN
portainer/logo.png
Normal file
BIN
portainer/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
6
portainer/rootfs/etc/cont-init.d/portainer.sh
Executable file
6
portainer/rootfs/etc/cont-init.d/portainer.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: Portainer
|
||||||
|
# Runs some initializations for Portainer
|
||||||
|
# ==============================================================================
|
||||||
|
bashio::require.unprotected
|
||||||
9
portainer/rootfs/etc/services.d/portainer/finish
Normal file
9
portainer/rootfs/etc/services.d/portainer/finish
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/execlineb -S0
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: Portainer
|
||||||
|
# Take down the S6 supervision tree when Portainer fails
|
||||||
|
# ==============================================================================
|
||||||
|
if { s6-test ${1} -ne 0 }
|
||||||
|
if { s6-test ${1} -ne 256 }
|
||||||
|
|
||||||
|
s6-svscanctl -t /var/run/s6/services
|
||||||
21
portainer/rootfs/etc/services.d/portainer/run
Executable file
21
portainer/rootfs/etc/services.d/portainer/run
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: Portainer
|
||||||
|
# Runs portainer
|
||||||
|
# ==============================================================================
|
||||||
|
declare -a options
|
||||||
|
export AGENT_SECRET
|
||||||
|
|
||||||
|
bashio::log.info 'Starting Portainer...'
|
||||||
|
|
||||||
|
options+=(--data /data)
|
||||||
|
options+=(--bind 0.0.0.0:8099)
|
||||||
|
options+=(--host unix:///var/run/docker.sock)
|
||||||
|
|
||||||
|
# Export agent secret, if defined
|
||||||
|
if bashio::config.has_value 'agent_secret' ; then
|
||||||
|
AGENT_SECRET=$(bashio::config 'agent_secret')
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run Portainer
|
||||||
|
exec /opt/portainer/portainer "${options[@]}"
|
||||||
13
portainer/translations/en.yaml
Normal file
13
portainer/translations/en.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
configuration:
|
||||||
|
log_level:
|
||||||
|
name: Log level
|
||||||
|
description: >-
|
||||||
|
Controls the level of log details the add-on provides.
|
||||||
|
agent_secret:
|
||||||
|
name: Agent Secret
|
||||||
|
description: >-
|
||||||
|
An option to set a shared agent secret. Must also be set in the remote
|
||||||
|
agent as an Environment variable.
|
||||||
|
network:
|
||||||
|
8000/tcp: Edge Agent Api (Enable when managing remote edge agents)
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Hass.IO example add-on repository",
|
|
||||||
"url": "https://home-assistant.io/",
|
|
||||||
"maintainer": "HomeAssistant <info@home-assistant.io>"
|
|
||||||
}
|
|
||||||
4
repository.yaml
Normal file
4
repository.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# https://developers.home-assistant.io/docs/add-ons/repository#repository-configuration
|
||||||
|
name: My custom Home Assistant add-on repository
|
||||||
|
url: 'https://git.nstoerzbach.de/nico.stoerzbach/hassio-repository'
|
||||||
|
maintainer: Nico Störzbach <nico@nstoerzbach.de>
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
ARG BUILD_FROM
|
|
||||||
FROM $BUILD_FROM
|
|
||||||
|
|
||||||
# Add env
|
|
||||||
ENV LANG C.UTF-8
|
|
||||||
|
|
||||||
# Setup base
|
|
||||||
RUN apk add --no-cache jq
|
|
||||||
|
|
||||||
# Copy data
|
|
||||||
COPY run.sh /
|
|
||||||
RUN chmod a+x /run.sh
|
|
||||||
|
|
||||||
CMD [ "/run.sh" ]
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Sync",
|
|
||||||
"version": "0.4",
|
|
||||||
"slug": "sync",
|
|
||||||
"description": "Sync config files over sftp",
|
|
||||||
"startup": "once",
|
|
||||||
"boot": "manual",
|
|
||||||
"map": ["config"],
|
|
||||||
"options": {
|
|
||||||
"target": null,
|
|
||||||
"username": null,
|
|
||||||
"password": ""
|
|
||||||
},
|
|
||||||
"schema": {
|
|
||||||
"target": "url",
|
|
||||||
"username": "str",
|
|
||||||
"password": "str"
|
|
||||||
},
|
|
||||||
"image": "hub/{arch}-sync"
|
|
||||||
}
|
|
||||||
10
sync/run.sh
10
sync/run.sh
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
CONFIG_PATH=/data/options.json
|
|
||||||
|
|
||||||
TARGET=$(jq --raw-output ".target" $CONFIG_PATH)
|
|
||||||
USERNAME=$(jq --raw-output ".username" $CONFIG_PATH)
|
|
||||||
PASSWORD=$(jq --raw-output ".password" $CONFIG_PATH)
|
|
||||||
|
|
||||||
echo "fake copy from /config to $TARGET@$USERNAME"
|
|
||||||
Reference in New Issue
Block a user