Add repository

This commit is contained in:
Jagi ᯅ
2025-07-21 15:20:40 +02:00
committed by Adrian Jagielak
parent 99e2cbec8c
commit 876cfb61e1
19 changed files with 387 additions and 1 deletions

15
futurehome/CHANGELOG.md Normal file
View File

@@ -0,0 +1,15 @@
<!-- https://developers.home-assistant.io/docs/add-ons/presentation#keeping-a-changelog -->
## 1.2.0
- Add an apparmor profile
- Update to 3.15 base image with s6 v3
- Add a sample script to run as service and constrain in aa profile
## 1.1.0
- Updates
## 1.0.0
- Initial release

12
futurehome/Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-dockerfile
ARG BUILD_FROM
FROM $BUILD_FROM
# Execute during the build of the image
ARG TEMPIO_VERSION BUILD_ARCH
RUN \
curl -sSLf -o /usr/bin/tempio \
"https://github.com/home-assistant/tempio/releases/download/${TEMPIO_VERSION}/tempio_${BUILD_ARCH}"
# Copy root filesystem
COPY rootfs /

3
futurehome/README.md Normal file
View File

@@ -0,0 +1,3 @@
# Futurehome Home Assistant add-on
Futurehome add-on for Home Assistant.

57
futurehome/apparmor.txt Normal file
View File

@@ -0,0 +1,57 @@
#include <tunables/global>
profile example flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
# Capabilities
file,
signal (send) set=(kill,term,int,hup,cont),
# S6-Overlay
/init ix,
/bin/** ix,
/usr/bin/** ix,
/run/{s6,s6-rc*,service}/** ix,
/package/** ix,
/command/** ix,
/etc/services.d/** rwix,
/etc/cont-init.d/** rwix,
/etc/cont-finish.d/** rwix,
/run/{,**} rwk,
/dev/tty rw,
# Bashio
/usr/lib/bashio/** ix,
/tmp/** rwk,
# Access to options.json and other files within your addon
/data/** rw,
# Start new profile for service
/usr/bin/my_program cx -> my_program,
profile my_program flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
# Receive signals from S6-Overlay
signal (receive) peer=*_example,
# Access to options.json and other files within your addon
/data/** rw,
# Access to mapped volumes specified in config.json
/share/** rw,
# Access required for service functionality
# Note: List was built by doing the following:
# 1. Add what is obviously needed based on what is in the script
# 2. Add `complain` as a flag to this profile temporarily and run the addon
# 3. Review the audit log with `journalctl _TRANSPORT="audit" -g 'apparmor="ALLOWED"'` and add other access as needed
# Remember to remove the `complain` flag when you are done
/usr/bin/my_program r,
/bin/bash rix,
/bin/echo ix,
/etc/passwd r,
/dev/tty rw,
}
}

14
futurehome/build.yaml Normal file
View File

@@ -0,0 +1,14 @@
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-dockerfile
build_from:
aarch64: "ghcr.io/home-assistant/aarch64-base:3.15"
amd64: "ghcr.io/home-assistant/amd64-base:3.15"
armhf: "ghcr.io/home-assistant/armhf-base:3.15"
armv7: "ghcr.io/home-assistant/armv7-base:3.15"
i386: "ghcr.io/home-assistant/i386-base:3.15"
labels:
org.opencontainers.image.title: "Home Assistant Add-on: Futurehome"
org.opencontainers.image.description: "Futurehome Home Assistant add-on"
org.opencontainers.image.source: "https://github.com/adrianjagielak/home-assistant-futurehome"
org.opencontainers.image.licenses: "MIT License"
args:
TEMPIO_VERSION: "2021.09.0"

20
futurehome/config.yaml Normal file
View File

@@ -0,0 +1,20 @@
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config
name: Futurehome add-on
version: "0.0.1"
slug: example
description: Futurehome Home Assistant add-on
url: "https://github.com/adrianjagielak/home-assistant-futurehome"
arch:
- armhf
- armv7
- aarch64
- amd64
- i386
init: false
map:
- share:rw
options:
message: "Hello world..."
schema:
message: "str?"
image: "ghcr.io/adrianjagielak/{arch}-home-assistant-futurehome"

BIN
futurehome/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
futurehome/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bashio
# ==============================================================================
# Take down the S6 supervision tree when example fails
# s6-overlay docs: https://github.com/just-containers/s6-overlay
# ==============================================================================
declare APP_EXIT_CODE=${1}
if [[ "${APP_EXIT_CODE}" -ne 0 ]] && [[ "${APP_EXIT_CODE}" -ne 256 ]]; then
bashio::log.warning "Halt add-on with exit code ${APP_EXIT_CODE}"
echo "${APP_EXIT_CODE}" > /run/s6-linux-init-container-results/exitcode
exec /run/s6/basedir/bin/halt
fi
bashio::log.info "Service restart after closing"

View File

@@ -0,0 +1,19 @@
#!/usr/bin/with-contenv bashio
# ==============================================================================
# Start the example service
# s6-overlay docs: https://github.com/just-containers/s6-overlay
# ==============================================================================
# Add your code here
# Declare variables
declare message
## Get the 'message' key from the user config options.
message=$(bashio::config 'message')
## Print the message the user supplied, defaults to "Hello World..."
bashio::log.info "${message:="Hello World..."}"
## Run your program
exec /usr/bin/my_program

View File

@@ -0,0 +1,3 @@
#!/bin/bash
echo "All done!" > /share/example_addon_output.txt

View File

@@ -0,0 +1,4 @@
configuration:
message:
name: Message
description: The message that will be printed to the log when starting this example add-on.