Complete Ollama Web UI implementation featuring: Frontend (SvelteKit + Svelte 5 + Tailwind CSS + Skeleton UI): - Chat interface with streaming responses and markdown rendering - Message tree with branching support (edit creates branches) - Vision model support with image upload/paste - Code syntax highlighting with Shiki - Built-in tools: get_current_time, calculate, fetch_url - Function model middleware (functiongemma) for tool routing - IndexedDB storage with Dexie.js - Context window tracking with token estimation - Knowledge base with embeddings (RAG support) - Keyboard shortcuts and responsive design - Export conversations as Markdown/JSON Backend (Go + Gin + SQLite): - RESTful API for conversations and messages - SQLite persistence with branching message tree - Sync endpoints for IndexedDB ↔ SQLite synchronization - URL proxy endpoint for CORS-bypassed web fetching - Health check endpoint - Docker support with host network mode Infrastructure: - Docker Compose for development and production - Vite proxy configuration for Ollama and backend APIs - Hot reload development setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
31 lines
721 B
TypeScript
31 lines
721 B
TypeScript
import { sveltekit } from '@sveltejs/kit/vite';
|
|
import { defineConfig } from 'vite';
|
|
|
|
// Use environment variable or default to localhost (works with host network mode)
|
|
const ollamaUrl = process.env.OLLAMA_API_URL || 'http://localhost:11434';
|
|
const backendUrl = process.env.BACKEND_URL || 'http://localhost:9090';
|
|
|
|
export default defineConfig({
|
|
plugins: [sveltekit()],
|
|
server: {
|
|
port: 7842,
|
|
proxy: {
|
|
// Backend health check
|
|
'/health': {
|
|
target: backendUrl,
|
|
changeOrigin: true
|
|
},
|
|
// Go backend API (must be before /api to match first)
|
|
'/api/v1': {
|
|
target: backendUrl,
|
|
changeOrigin: true
|
|
},
|
|
// Ollama API
|
|
'/api': {
|
|
target: ollamaUrl,
|
|
changeOrigin: true
|
|
}
|
|
}
|
|
}
|
|
});
|