Metadata-Version: 2.4
Name: locopuente
Version: 0.1.0
Summary: Local AI stack orchestrator — privacy-first, pick-and-choose, upstream-only
Author: Michael Borck
License: MIT
Project-URL: Homepage, https://locopuente.org
Project-URL: Repository, https://github.com/michael-borck/loco-puente
Keywords: ai,llm,self-hosted,local-ai,orchestrator,ollama,docker,privacy
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer[all]>=0.12
Requires-Dist: pydantic>=2.0
Requires-Dist: jinja2>=3.1
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Dynamic: license-file

# Puente

**Your own AI platform. Runs on your hardware.**

Puente is a local-first AI orchestrator. It stands up a full stack of AI
services — chat, image generation, speech, search, notebooks — on modest
hardware, from one config file. Private by default. Yours to keep.

> Pay a **time tax**, not a **token tax**. Modest hardware, honest bills.

Puente is the deployment layer of [LocoPuente](https://locopuente.org), a
LocoLabo initiative: local AI for everyone who can't — or won't — send their
data to the cloud.

## Install

```bash
pip install locopuente
```

> The PyPI distribution is `locopuente` (the `puente` name belongs to another
> project). The command you run is `puente`.

Or from source:

```bash
git clone https://github.com/michael-borck/loco-puente.git
cd loco-puente && pip install -e .
```

## Quick start

```bash
puente init      # detect your hardware, choose services that fit
puente install   # pull Docker images, install native pieces (Ollama, models)
puente up        # start the stack + a launcher portal
```

Then `puente status` to see what's live. That's it.

## What it does

- **Detects your hardware** and proposes a service set it can actually run,
  pinning models to the right GPU.
- **Orchestrates the containers** — you toggle services in `puente.yml`, Puente
  handles Docker, GPUs, models, and (optionally) a reverse proxy.
- **Config as code.** The whole stack is one committable `puente.yml`. No web UI,
  no hidden state.
- **Coexists with what you already run.** A service you've already installed can
  stay (`managed: false`); Puente uses it instead of spinning up its own.

## Services

A pick-and-choose menu, all running locally:

| Service | What it is |
|---|---|
| **Ollama** | Local LLM inference |
| **Open WebUI** | Chat over your models |
| **SwarmUI / ComfyUI** | Image generation |
| **Chatterbox / Speaches** | Voice-cloning TTS, speech-to-text |
| **SearXNG** | Private meta-search |
| **AnythingLLM** | Docs + RAG workspaces |
| **Open Notebook, Stirling PDF, Excalidraw, Jupyter, …** | Tools |

Plus an optional **Caddy** reverse-proxy service (automatic TLS) that fronts
whichever services you expose — see [docs/caddy-migration.md](docs/caddy-migration.md).

## Commands

```
puente init      Interactive setup — detect hardware, pick services
puente install   Install native services + pull Docker images
puente up        Start the stack (or a specific service)
puente down      Stop the stack (or a specific service)
puente enable    Enable a service in puente.yml
puente disable   Disable a service in puente.yml
puente status    Status of all enabled services
puente doctor    Health-check enabled services
puente gpu       Detect and display GPUs
puente connect   Connection details for external tools
puente portal    Generate the service launcher page
```

## Requirements

- Python 3.10+
- Docker (for containerized services)
- A GPU is recommended but not required — a single consumer GPU is enough to start.

## License

MIT © Michael Borck. A LocoLabo initiative, Curtin University.
