Aura is a blazing fast, privacy-focused search engine with an integrated AI assistant. It compiles to 100% native Rust using Axum on the backend and Leptos (WebAssembly) on the frontend. It proxies queries through SearXNG to protect privacy, and processes AI queries using a user-configured self-hosted Ollama server.
- Frontend: Leptos (WASM)
- Backend: Axum (Rust) / Tokio / SearXNG / Ollama
- Deployment: Nix-built Container / Unraid native / Docker Compose
- Privacy-First Search: Proxies queries through SearXNG to ensure absolute user anonymity.
- Integrated AI Assistant: Conversational answers using a local self-hosted Ollama instance.
- Access PIN Security: Lock down the interface with an optional numerical PIN for absolute privacy.
- Performance First: Tiny resource footprint, zero external JS engine dependencies, and rapid page load speeds.
Create a docker-compose.yml file with the following service definition:
services:
aura:
image: ubermetroid/aura:latest
container_name: aura
restart: unless-stopped
ports:
- ${PORT:-4408}:4408
volumes:
- ${AURA_DATA_PATH:-./data}:/app/data
environment:
PORT: 4408
SITE_TITLE: ${AURA_SITE_TITLE:-Aura}
AURA_PIN: ${AURA_PIN:-}
BASE_URL: ${AURA_BASE_URL:-http://localhost:4408}
ALLOWED_ORIGINS: ${AURA_ALLOWED_ORIGINS:-*}
TZ: ${TZ:-UTC}
ENABLE_TRANSLATION: ${ENABLE_TRANSLATION:-false}
ENABLE_THEMES: ${ENABLE_THEMES:-true}
ENABLE_PRINT: ${ENABLE_PRINT:-true}
MAX_ATTEMPTS: ${MAX_ATTEMPTS:-5}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-http://localhost:11434}
OLLAMA_MODEL: ${OLLAMA_MODEL:-llama3}| Environment Variable | Description | Default |
|---|---|---|
PORT |
The port number the backend HTTP server will bind to inside the container. | 4408 |
SITE_TITLE |
Custom website title rendered in navigation headers and browser tabs. | Aura |
ALLOWED_ORIGINS |
Comma-separated list of allowed HTTP request origins (CORS filter). | * |
AURA_PIN |
Optional 4–10 digit PIN (numerical only) to lock access to the interface. | None |
TZ |
Timezone for the container processes and logs. | UTC |
ENABLE_TRANSLATION |
Enable the multi-language / translation selector in the navigation header. | true |
MAX_ATTEMPTS |
Number of failed PIN attempts permitted before rate lockout. | 5 |
OLLAMA_BASE_URL |
Base URL of the self-hosted Ollama server for text inference. | http://localhost:11434 |
OLLAMA_MODEL |
Model ID to use for chat inference on the Ollama server. | llama3 |
STATIC_DIR |
Directory containing static compiled frontend assets served by Axum. | ./frontend/dist |
Ensure you have the Rust toolchain installed.
# 1. Run tests
cargo test
# 2. Run clippy checks
cargo clippy --workspace --all-targets
# 3. Start development server
cargo runLicensed under the Apache License, Version 2.0. Copyright 2026 UberMetroid.