Spaces:
Paused
Paused
File size: 2,871 Bytes
8c1b9fe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | # Running Auralynq with Podman (production-shaped stack)
Auralynq is **Podman-first** — no Docker, no sudo required. This mode runs
the full 7-service topology behind a TLS reverse proxy: `caddy`, `web`, `api`,
`worker`, `mcp`, `qdrant`, `phoenix`.
For a lighter single-process setup with no containers, see
[no-podman.md](no-podman.md) instead.
## Prerequisites
- Podman + a Podman Compose (`podman compose` or `podman-compose`)
- No Docker needed anywhere in this flow
```bash
make runtime-check # verifies a Podman Compose command is available
```
## 1. Build and start
```bash
git clone https://github.com/MHHamdan/Auralynq.git && cd Auralynq
cp .env.example .env # optional; only HUGGINGFACE_TOKEN matters for gated models
make images # build versioned api/web/caddy images locally
make stack-up # start the stack (alias: make up)
```
`make stack-up` starts caddy (public TLS) + web + api + mcp + worker + qdrant +
phoenix, in a hardened order. Only the Caddy HTTPS port is meant to be public;
everything else binds to loopback by default.
## 2. Seed and index data
```bash
podman exec auralynq-api auralynq data --sample
podman exec auralynq-api auralynq index --input /app/data/corpus
```
Or upload documents directly through the web UI's Ingest tab — no shell access
needed.
## 3. Open it
- Web UI: **https://localhost:8443** (accept the self-signed cert warning, or
see [server.md](server.md) for a real domain / trusted cert)
- API docs: **https://localhost:8443/api/docs**
- Phoenix traces: loopback-only by default; SSH-tunnel to view, or expose
intentionally if you understand the trade-off
## Everyday commands
```bash
make stack-down # stop
make stack-logs # tail logs
make fresh # wipe corpus + Qdrant volumes and start clean
make status # container status (when using `make start`/`make stop`)
```
## Rebuilding after a code change
`podman-compose build` can silently reuse cached layers for both the
multi-stage web image and the single-stage API image. Always rebuild with
`podman build --no-cache` directly, then fully cycle the stack (compose pins
image IDs, so a plain restart won't pick up a new image):
```bash
make images
podman-compose -f compose.yml down && make stack-up
```
## Where your data lives (Podman mode)
Corpus, vector index, and page cache live in named Podman volumes (not the
host filesystem), so they survive `stack-down`/`stack-up` cycles but are
separate from whatever `./data/` holds if you also ran no-Podman mode on the
same machine. `make fresh` wipes exactly these volumes (`auralynq-data`,
`auralynq-qdrant`) and nothing else.
## Next steps
- Deploying to a remote server with a real domain/IP → [server.md](server.md)
- No containers at all → [no-podman.md](no-podman.md)
- Something not working → [troubleshooting.md](troubleshooting.md)
|