Prepare bridge image publishing via Gitea registry
Some checks failed
Build and Push EVS Bridge Image / docker (push) Has been cancelled
Some checks failed
Build and Push EVS Bridge Image / docker (push) Has been cancelled
This commit is contained in:
35
.gitea/workflows/bridge-image.yml
Normal file
35
.gitea/workflows/bridge-image.yml
Normal file
@@ -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
|
||||||
10
bridge/.dockerignore
Normal file
10
bridge/.dockerignore
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
*.pyo
|
||||||
|
*.pyd
|
||||||
|
*.log
|
||||||
|
data/
|
||||||
@@ -22,6 +22,16 @@ cp .env.example .env
|
|||||||
docker compose up -d --build
|
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
|
## 2) Configure ESP32
|
||||||
|
|
||||||
In `src/main.cpp`:
|
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
|
- Audio format: PCM16LE, mono, 16 kHz
|
||||||
- `SAVE_SESSIONS=true` stores `.wav` files in `bridge/data/sessions`
|
- `SAVE_SESSIONS=true` stores `.wav` files in `bridge/data/sessions`
|
||||||
- MQTT is recommended for control/events, WebSocket for streaming audio
|
- 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`
|
||||||
|
|||||||
Reference in New Issue
Block a user