Add full Docker setup so the app runs with a single 'docker compose up':
- Dockerfile: multi-stage build (node:22-alpine) for the SvelteKit app
- docker-compose.yml: three services:
1. ollama: runs Ollama server with persistent volume for models
2. model-init: one-shot container that pulls the configured model
after Ollama is healthy, then exits
3. app: the SvelteKit app, starts only after model-init succeeds
- .env.docker: set OLLAMA_MODEL to control which model is pulled
- .dockerignore: keeps image lean
- Switched adapter-auto to adapter-node (required for Docker/Node hosting)
- Updated README with Docker and local dev instructions
Usage:
docker compose up # default: llama3
OLLAMA_MODEL=gemma2 docker compose up # any Ollama model
English Style Converter
A SvelteKit web app that converts English text into various styles and tones using an LLM.
Quick Start (Docker)
# Option 1: Use default model (llama3)
docker compose up
# Option 2: Choose a different model
OLLAMA_MODEL=gemma2 docker compose up
- App: http://localhost:3000
- Ollama API: http://localhost:11434
First startup pulls the model from Ollama, which may take a few minutes depending on model size and your connection. Subsequent starts are instant (model is cached in a Docker volume).
To change the model later, edit .env.docker and run:
docker compose down
docker compose up --build
Local Development (without Docker)
Prerequisites: Ollama running locally with a model pulled.
# Install dependencies
npm install
# Copy env config (defaults to Ollama at localhost:11434)
cp .env.example .env
# Start dev server
npm run dev
Configuration
| Variable | Default | Description |
|---|---|---|
OPENAI_BASE_URL |
http://localhost:11434/v1 |
OpenAI-compatible API endpoint |
OPENAI_API_KEY |
ollama |
API key (use ollama for local Ollama) |
OPENAI_MODEL |
llama3 |
Model to use |
PORT |
3000 |
App port (Docker/adapter-node only) |
For Docker, set OLLAMA_MODEL in .env.docker — it controls both the model Ollama pulls and the model the app requests.
Styles
6 categories, 25 styles: Sarcastic, Formal, British (Polite, Formal, Witty, Gentlemanly, Upper Class, Royal, Victorian, Downton Abbey), American (New Yorker, AAVE, Southern, Redneck), Pirate, Shakespearean, Gen Z, Game of Thrones (King's Landing, Wildlings, Winterfell), and Newspeak (Orwellian).
Testing
npm test