Skip to content

lancewilhelm/guage

Repository files navigation

Guage

Nuxt Vue Tailwind SQLite Drizzle

A clean and simple front-end for large-language models.

Notable Features

  • Nuxt 4 / Vue 3
  • Drizzle ORM
  • SQLite backend by default, Postgres optional
  • TypeScript
  • Tailwind CSS
  • Multiple LLM provider support (local and remote)
    • Ollama
    • LM Studio (localhost only atm)
    • OpenAI
    • Gemini
    • Anthropic
    • Cerebras
  • Themes and fun things

Usage

Docker (recommended)

Easiest

Easiest way with minimal setup, but the least secure or capable.

docker run -p 3000:3000 -v guage:/app/data ghcr.io/lancewilhelm/guage:stable

This will run the app on port 3000 and create a persistent volume called "guage" to store the SQLite database. You can access the app at http://localhost:3000.

With LLM Provider API Key

To use a remote provider api for llm inference, you can set an environmental variable at runtime with your key. Given that we are using Nuxt, we must prepend NUXT_ to the key (I know...I hate it). Below are the currently supported keys:

  • NUXT_OPENAI_API_KEY for OpenAI
  • NUXT_GEMINI_API_KEY for Gemini
  • NUXT_ANTHROPIC_API_KEY for Anthropic
  • NUXT_CEREBRAS_API_KEY for Cerebras
Example

If you want to use OpenAI's API, you can set the NUXT_OPENAI_API_KEY environment variable. This is required for the app to work with OpenAI.

docker run -p 3000:3000 -e NUXT_OPENAI_API_KEY=sk-xxx -v guage:/app/data ghcr.io/lancewilhelm/guage:stable

NODE_ENV=production

If you want to run the app in production mode, you can set the NODE_ENV environment variable to production. This currently only affects the logging level and auth. You will need to generate a secret key for the app to work in production mode. You can do this by running the following command:

openssl rand -base64 32

Replace xxx with the generated key.

docker run -p 3000:3000 -e NODE_ENV=production -e AUTH_SECRET=xxx -v guage:/app/data ghcr.io/lancewilhelm/guage:stable

Customizing the volume

If you want to use a local directory for the volume data (so that you can more easily access the SQLite database), you can do so by changing "guage" in the volume to the path you want to use. Example:

docker run -p 3000:3000 -v /path/to/local/dir:/app/data ghcr.io/lancewilhelm/guage:stable

You can mix and match these options as you like.

Manual (for development)

  1. Clone the repo
git clone https://github.com/lancewilhelm/guage.git
cd guage
  1. Run setup script. This will install the dependencies with pnpm and create the SQLite database. If you would like to use a different package manager, please manually do so. npm should work.
./init.sh
  1. (Optional) Add your API keys for supported providers to the .env file:
# .env
AUTH_SECRET=
OPENAI_API_KEY=
GEMINI_API_KEY=
ANTHROPIC_API_KEY=
CEREBRAS_API_KEY=
  1. Run the app
pnpm dev

About

Self-hosted front-end web application for LLMs (local and remote). Built in Vue/Nuxt.

Topics

Resources

License

Stars

Watchers

Forks

Packages