# QRESPONDER — run the local-first web app with one command. # # cp .env.example .env # (optional — a local model needs no key) # docker compose up -d # → open http://localhost:8000 # # For a fully-local, zero-cloud stack (no API key), bring up the bundled model: # docker compose --profile local up -d # docker compose exec ollama ollama pull llama3.1 # # The app port is published to the HOST's LOOPBACK ONLY (127.0.0.1). The UI has no # auth by default — do NOT change this to expose it on a network without setting # QRESPONDER_AUTH_TOKEN and putting a reverse proxy + TLS in front (see docs/hosting.md). services: qresponder: build: context: . image: qresponder:latest env_file: - .env volumes: - qr-workspaces:/data # persistent workspaces + KB + runs ports: - "127.0.0.1:8000:8000" # reachable only from the host's localhost restart: unless-stopped # Optional fully-local model server (no API key). Enable with: # docker compose --profile local up -d ollama: image: ollama/ollama:latest profiles: ["local"] volumes: - ollama:/root/.ollama restart: unless-stopped # When enabled, point the app at it via .env: # LLM_PROVIDER=openai_compat # LLM_BASE_URL=http://ollama:11434/v1 # LLM_API_KEY=ollama # LLM_MODEL=llama3.1 volumes: qr-workspaces: ollama: