From 72c0fa19c6e904648db57a39204c6d8c3f3f75f2 Mon Sep 17 00:00:00 2001 From: Kai Date: Fri, 13 Feb 2026 11:05:31 +0100 Subject: [PATCH] Prepare bridge image publishing via Gitea registry --- .gitea/workflows/bridge-image.yml | 35 +++++++++++++++ bridge/.dockerignore | 10 +++++ bridge/README.md | 74 +++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 .gitea/workflows/bridge-image.yml create mode 100644 bridge/.dockerignore diff --git a/.gitea/workflows/bridge-image.yml b/.gitea/workflows/bridge-image.yml new file mode 100644 index 0000000..2096d92 --- /dev/null +++ b/.gitea/workflows/bridge-image.yml @@ -0,0 +1,35 @@ +name: Build and Push EVS Bridge Image + +on: + push: + branches: [ "main" ] + paths: + - "bridge/**" + - ".gitea/workflows/bridge-image.yml" + workflow_dispatch: + +env: + REGISTRY: git.khnm-zimmerling.de + IMAGE_NAME: kai/evs-bridge + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Log in to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and push latest + uses: docker/build-push-action@v6 + with: + context: bridge + file: bridge/Dockerfile + push: true + tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest diff --git a/bridge/.dockerignore b/bridge/.dockerignore new file mode 100644 index 0000000..a76e656 --- /dev/null +++ b/bridge/.dockerignore @@ -0,0 +1,10 @@ +.git +.gitignore +.env +.env.* +__pycache__/ +*.pyc +*.pyo +*.pyd +*.log +data/ diff --git a/bridge/README.md b/bridge/README.md index 94c43da..da40e6f 100644 --- a/bridge/README.md +++ b/bridge/README.md @@ -22,6 +22,16 @@ cp .env.example .env docker compose up -d --build ``` +## 1.1) Registry image naming + +Recommended image path in your Gitea registry: +- `git.khnm-zimmerling.de/kai/evs-bridge:latest` +- `git.khnm-zimmerling.de/kai/evs-bridge:v0.1.0` + +Recommended tags: +- `latest` for current default deployment +- `vX.Y.Z` for stable releases + ## 2) Configure ESP32 In `src/main.cpp`: @@ -71,3 +81,67 @@ You can build automations on these events (for STT/TTS pipelines or Node-RED han - Audio format: PCM16LE, mono, 16 kHz - `SAVE_SESSIONS=true` stores `.wav` files in `bridge/data/sessions` - MQTT is recommended for control/events, WebSocket for streaming audio + +## 7) Build and push to Gitea registry + +From repository root: + +```bash +docker login git.khnm-zimmerling.de +docker build -f bridge/Dockerfile -t git.khnm-zimmerling.de/kai/evs-bridge:latest bridge +docker push git.khnm-zimmerling.de/kai/evs-bridge:latest +``` + +Optional release tag: + +```bash +docker tag git.khnm-zimmerling.de/kai/evs-bridge:latest git.khnm-zimmerling.de/kai/evs-bridge:v0.1.0 +docker push git.khnm-zimmerling.de/kai/evs-bridge:v0.1.0 +``` + +## 8) Portainer stack with registry image + +```yaml +services: + evs-bridge: + image: git.khnm-zimmerling.de/kai/evs-bridge:latest + container_name: evs-bridge + restart: unless-stopped + ports: + - "8765:8765" + environment: + WS_HOST: "0.0.0.0" + WS_PORT: "8765" + WS_PATH: "/audio" + ECHO_ENABLED: "true" + LOG_LEVEL: "INFO" + MQTT_ENABLED: "true" + MQTT_HOST: "10.100.3.247" + MQTT_PORT: "1883" + MQTT_USER: "" + MQTT_PASSWORD: "" + MQTT_BASE_TOPIC: "evs" + MQTT_TTS_TOPIC: "evs/+/play_pcm16le" + MQTT_STATUS_RETAIN: "true" + HA_WEBHOOK_URL: "" + SAVE_SESSIONS: "true" + SESSIONS_DIR: "/data/sessions" + PCM_SAMPLE_RATE: "16000" + volumes: + - evs_bridge_data:/data + +volumes: + evs_bridge_data: +``` + +## 9) Optional: auto-push via Gitea Actions + +Workflow file: +- `.gitea/workflows/bridge-image.yml` + +Required repository secrets: +- `REGISTRY_USERNAME` +- `REGISTRY_TOKEN` + +The workflow builds `bridge/Dockerfile` and pushes: +- `git.khnm-zimmerling.de/kai/evs-bridge:latest`