Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
e902d221ea
|
|||
|
e19bffc90c
|
|||
|
5a13183123
|
|||
|
deb26c4945
|
|||
|
c0e3ac1fe0
|
@@ -1,3 +1,6 @@
|
|||||||
|
when:
|
||||||
|
event: [tag]
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
APP:
|
APP:
|
||||||
- ui
|
- ui
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
when:
|
||||||
|
event: [tag]
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- build
|
||||||
|
- predeploy
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
APP:
|
APP:
|
||||||
- ui
|
- ui
|
||||||
@@ -24,6 +31,3 @@ steps:
|
|||||||
exclude:
|
exclude:
|
||||||
- refs/tags/*-configchange
|
- refs/tags/*-configchange
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- build
|
|
||||||
- predeploy
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
when:
|
||||||
|
event: [tag]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
create_namespace:
|
create_namespace:
|
||||||
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
|
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
|
|||||||
MQTT_PORT=1883 \
|
MQTT_PORT=1883 \
|
||||||
REDIS_HOST=localhost \
|
REDIS_HOST=localhost \
|
||||||
REDIS_PORT=6379 \
|
REDIS_PORT=6379 \
|
||||||
REDIS_DB=0
|
REDIS_DB=0 \
|
||||||
|
REDIS_CHANNEL=ui:updates
|
||||||
|
|
||||||
|
|
||||||
# Create non-root user
|
# Create non-root user
|
||||||
RUN addgroup -g 10001 -S app && \
|
RUN addgroup -g 10001 -S app && \
|
||||||
|
|||||||
30
apps/homekit/Dockerfile
Normal file
30
apps/homekit/Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
# Environment defaults (can be overridden at runtime)
|
||||||
|
ENV PYTHONUNBUFFERED=1 \
|
||||||
|
HOMEKIT_NAME="Home Automation Bridge" \
|
||||||
|
HOMEKIT_PIN="031-45-154" \
|
||||||
|
HOMEKIT_PORT="51826" \
|
||||||
|
API_BASE="http://api:8001" \
|
||||||
|
HOMEKIT_API_TOKEN="" \
|
||||||
|
HOMEKIT_PERSIST_FILE="/data/homekit.state"
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy only requirements first for better build caching
|
||||||
|
COPY apps/homekit/requirements.txt ./apps/homekit/requirements.txt
|
||||||
|
|
||||||
|
RUN pip install --no-cache-dir --upgrade pip \
|
||||||
|
&& pip install --no-cache-dir -r apps/homekit/requirements.txt
|
||||||
|
|
||||||
|
# Copy full source tree
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
# Expose HomeKit TCP port (mDNS uses UDP 5353 via host network)
|
||||||
|
EXPOSE 51826/tcp
|
||||||
|
|
||||||
|
# Volume for persistent HomeKit state (pairings etc.)
|
||||||
|
VOLUME ["/data"]
|
||||||
|
|
||||||
|
# Start the HomeKit bridge
|
||||||
|
CMD ["python", "-m", "apps.homekit.main"]
|
||||||
28
apps/homekit/docker-compose.yaml
Normal file
28
apps/homekit/docker-compose.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
services:
|
||||||
|
homekit-bridge:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: apps/homekit/Dockerfile
|
||||||
|
container_name: homekit-bridge
|
||||||
|
|
||||||
|
# Required for mDNS/Bonjour to work properly
|
||||||
|
network_mode: host
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- HOMEKIT_NAME=Home Automation Bridge
|
||||||
|
- HOMEKIT_PIN=031-45-154
|
||||||
|
- HOMEKIT_PORT=51826
|
||||||
|
|
||||||
|
- API_BASE=http://homea2-api-internal.hottis.de
|
||||||
|
- HOMEKIT_API_TOKEN=
|
||||||
|
|
||||||
|
- HOMEKIT_PERSIST_FILE=/data/homekit.state
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- homekit_data:/data
|
||||||
|
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
homekit_data:
|
||||||
|
driver: local
|
||||||
@@ -6,7 +6,7 @@ FROM python:3.14-alpine
|
|||||||
# Prevent Python from writing .pyc files and enable unbuffered output
|
# Prevent Python from writing .pyc files and enable unbuffered output
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||||
PYTHONUNBUFFERED=1 \
|
PYTHONUNBUFFERED=1 \
|
||||||
RULES_CONFIG=config/rules.yaml \
|
RULES_CONFIG=/app/config/rules.yaml \
|
||||||
MQTT_BROKER=172.16.2.16 \
|
MQTT_BROKER=172.16.2.16 \
|
||||||
MQTT_PORT=1883 \
|
MQTT_PORT=1883 \
|
||||||
REDIS_HOST=localhost \
|
REDIS_HOST=localhost \
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
||||||
<meta name="apple-mobile-web-app-title" content="Garage">
|
<meta name="apple-mobile-web-app-title" content="Garage">
|
||||||
<meta name="theme-color" content="#667eea">
|
<meta name="theme-color" content="#667eea">
|
||||||
<link rel="manifest" href="/static/manifest.json">
|
<link rel="manifest" href="/manifest.json">
|
||||||
<style>
|
<style>
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
||||||
<meta name="apple-mobile-web-app-title" content="Räume">
|
<meta name="apple-mobile-web-app-title" content="Räume">
|
||||||
<meta name="theme-color" content="#667eea">
|
<meta name="theme-color" content="#667eea">
|
||||||
<link rel="manifest" href="/static/manifest.json">
|
<link rel="manifest" href="/manifest.json">
|
||||||
<style>
|
<style>
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|||||||
@@ -52,11 +52,6 @@ spec:
|
|||||||
configMapKeyRef:
|
configMapKeyRef:
|
||||||
name: home-automation-environment
|
name: home-automation-environment
|
||||||
key: SHARED_REDIS_DB
|
key: SHARED_REDIS_DB
|
||||||
- name: REDIS_CHANNEL
|
|
||||||
valueFrom:
|
|
||||||
configMapKeyRef:
|
|
||||||
name: home-automation-environment
|
|
||||||
key: API_REDIS_CHANNEL
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config-volume
|
- name: config-volume
|
||||||
mountPath: /app/config
|
mountPath: /app/config
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ data:
|
|||||||
UI_API_BASE: "https://homea2-api.hottis.de"
|
UI_API_BASE: "https://homea2-api.hottis.de"
|
||||||
UI_BASE_PATH: "/"
|
UI_BASE_PATH: "/"
|
||||||
|
|
||||||
# API specific environment variables
|
|
||||||
API_REDIS_CHANNEL: "ui:updates"
|
|
||||||
|
|
||||||
# Rules specific environment variables
|
|
||||||
RULES_RULES_CONFIG: "/app/config/rules.yaml"
|
|
||||||
@@ -59,4 +59,21 @@ spec:
|
|||||||
services:
|
services:
|
||||||
- name: api
|
- name: api
|
||||||
port: 80
|
port: 80
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: api-internal
|
||||||
|
spec:
|
||||||
|
ingressClassName: traefik-internal
|
||||||
|
rules:
|
||||||
|
- host: homea2-api-internal.hottis.de
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: api
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
|||||||
@@ -48,11 +48,6 @@ spec:
|
|||||||
configMapKeyRef:
|
configMapKeyRef:
|
||||||
name: home-automation-environment
|
name: home-automation-environment
|
||||||
key: SHARED_REDIS_DB
|
key: SHARED_REDIS_DB
|
||||||
- name: RULES_CONFIG
|
|
||||||
valueFrom:
|
|
||||||
configMapKeyRef:
|
|
||||||
name: home-automation-environment
|
|
||||||
key: RULES_RULES_CONFIG
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config-volume
|
- name: config-volume
|
||||||
mountPath: /app/config
|
mountPath: /app/config
|
||||||
|
|||||||
Reference in New Issue
Block a user