Files
audio-engine-hub/README.md
stephan 2669af6cf1 docs: Update README with container registry workflow
This commit updates the main README.md file to reflect the recent changes related to the container registry integration.

- Clarifies the difference between Starting development environment by pulling image from registry...
export IMAGE_NAME=audio-engine-hub && \
export REGISTRY=git.wlkns.org && \
export USERNAME=stephan && \
export TAG=latest && \
docker compose up -d (for registry images) and Starting development environment (local build) on port 8000... (for local builds).
- Adds a dedicated "Container Registry" section explaining the push/pull workflow.
- Updates the "Makefile Commands" section with the new , , and  targets.
2025-12-04 22:48:33 +01:00

117 lines
4.2 KiB
Markdown

# AudioEngineHub
AudioEngineHub is a local-first, modular, multi-engine Text-to-Speech (TTS) server designed for homelabs and automation. It provides a single, unified API to interact with various TTS engines like Piper and StyleTTS.
## Features
- **Multi-Engine Support:** Easily switch between different TTS engines.
- **Configurable Engines:** Activate or deactivate engines on the fly via a simple configuration file.
- **Caching:** Caches generated audio to save resources and provide faster responses for repeated requests.
- **Dockerized:** Runs in a containerized environment for easy setup and dependency management.
- **Automatic Port Finding:** Automatically finds and uses a free port when building locally.
- **Container Registry Support:** Pre-configured to push to and pull from a container registry.
## Getting Started
This guide covers local development. For information on using the container registry, see the "Container Registry" section below.
### Prerequisites
- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
### Local Development Setup
1. **Clone the repository:**
```bash
git clone <repository_url>
cd AudioEngineHub
```
2. **Configure the environment:**
Create a `.env` file by copying the example file:
```bash
cp .env.example .env
```
Open the `.env` file and configure the `ACTIVE_ENGINES` list to include the engines you want to use. For example:
```
ACTIVE_ENGINES='["piper", "styletts"]'
```
3. **Build and start the container:**
Use the `make dev-up` command to build the Docker image from your local source and start the service.
```bash
make dev-up
```
This command will automatically find a free port, build the image, and run the application.
> **Note:** For the most reliable port detection, it is recommended to run the command with `sudo`:
> ```bash
> sudo make dev-up
> ```
## Container Registry
The project is configured to work with the container registry at `git.wlkns.org`.
### Pushing an Image
1. **Log in to the Registry:**
You only need to do this once per machine.
```bash
docker login git.wlkns.org
```
2. **Push the Image:**
This command will build your image, tag it correctly, and push it to the registry.
```bash
make push
```
### Pulling and Running an Image
1. **Pull the Image:**
To download the latest image from the registry:
```bash
make pull
```
2. **Run the Image:**
This command will start the application using the pre-built image from the registry (pulling it if necessary).
```bash
make up
```
## Usage
### Endpoints
- `POST /tts`: The main endpoint to synthesize text to speech.
- `GET /health`: Check the health of the API and the status of the loaded engines.
- `GET /engines`: List the currently active engines.
- `GET /models`: List the available models for each active engine.
_ `GET /speakers`: List the available speakers for a given engine and model.
### Makefile Commands
The project includes a `Makefile` with several commands to simplify development and management:
- `make dev-up`: Build the image from local source and start the application. Recommended for development.
- `make up`: Start the application using the image from the container registry (pulls if not present).
- `make down`: Stop the application container(s).
- `make logs`: View the application logs.
- `make health-check`: Run a sanity check to ensure the deployed container is healthy and all engines are "ok".
- `make pull`: Pull the latest image from the container registry.
- `make push`: Build, tag, and push the image to the container registry.
- `make test`: Run the `pytest` test suite.
- `make help`: Display a list of all available commands.
## Configuration
The application is configured through the `.env` file in the root of the project.
- `ACTIVE_ENGINES`: A comma-separated list of strings specifying which TTS engines to activate. Available engines are defined in `app/main.py`.
- `HOST`: The host address for the server (defaults to `0.0.0.0`).
- `PORT`: The internal port for the server (defaults to `8000`).
- `IMAGE_NAME`: The name of the Docker image to build (defaults to `audioenginehub`).