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
61 lines
1.7 KiB
Markdown
61 lines
1.7 KiB
Markdown
# English Style Converter
|
|
|
|
A SvelteKit web app that converts English text into various styles and tones using an LLM.
|
|
|
|
## Quick Start (Docker)
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
docker compose down
|
|
docker compose up --build
|
|
```
|
|
|
|
## Local Development (without Docker)
|
|
|
|
Prerequisites: [Ollama](https://ollama.ai) running locally with a model pulled.
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
npm test
|
|
``` |