72 Commits

Author SHA1 Message Date
Oliver Hofmann
92ed7368eb Remove redundant run_tests.py wrapper 2026-05-10 11:51:13 +02:00
Oliver Hofmann
5a50d0be04 Remove obsolete test_api.sh 2026-05-10 11:47:15 +02:00
Oliver Hofmann
21cab46365 Remove docs/ from tracking, add to gitignore 2026-05-10 11:44:10 +02:00
Oliver Hofmann
fcaea9e3a9 Add license section to DockerHub descriptions 2026-05-10 11:21:39 +02:00
Oliver Hofmann
eb83c52b7f Rename settings save button to 'Änderungen übernehmen' 1.0.0 2026-05-10 10:50:09 +02:00
Oliver Hofmann
f551b2a421 Harmonize typography: remove log uppercase, normalize label font sizes 2026-05-10 10:45:41 +02:00
Oliver Hofmann
79a30dd179 Route /api/logs to admin API in Vite proxy config 2026-05-10 10:40:41 +02:00
Oliver Hofmann
0353e0299f Use Promise.allSettled so log fetch failures don't break settings display 2026-05-10 10:34:28 +02:00
Oliver Hofmann
5a94fc6d90 Reset lastUpdated on logout 2026-05-10 10:22:33 +02:00
Oliver Hofmann
cf1b3f7786 Add 5-minute auto-reload and last-updated timestamp to admin UI 2026-05-10 10:20:03 +02:00
Oliver Hofmann
02b4ad06ca Fix pre whitespace, log-pre-error margin, error log heading 2026-05-10 10:18:27 +02:00
Oliver Hofmann
ca55783b90 Show last 10 log lines in settings section 2026-05-10 10:15:48 +02:00
Oliver Hofmann
a9b0168c71 Add GET /api/logs/{name} endpoint to admin API 2026-05-10 10:11:55 +02:00
Oliver Hofmann
7ce4d3a895 Add implementation plan: log viewer and auto-reload 2026-05-10 10:09:34 +02:00
Oliver Hofmann
fff9d1048d Add design spec: log viewer and auto-reload for admin UI 2026-05-10 10:07:44 +02:00
Oliver Hofmann
cdd55880d6 Remove unnecessary bold formatting from Anthropic API feature entries 2026-05-10 10:00:34 +02:00
Oliver Hofmann
6b2ae4b072 Remove BACKEND_API_KEY from public documentation 2026-05-10 09:58:50 +02:00
Oliver Hofmann
4c8a8d4afb Update Kurzanleitung: add gemma4:e4b, Claude Code section 2026-05-10 09:56:35 +02:00
Oliver Hofmann
9872175fb0 Add LICENSE, update docs with Anthropic endpoint and free-claude-code attribution 2026-05-10 09:53:12 +02:00
Oliver Hofmann
cc3ee5a03c Add Anthropic Messages API compatibility layer (/v1/messages)
- POST /v1/messages endpoint with full quota enforcement and auth
- Accepts x-api-key and anthropic-auth-token headers (for Claude Code)
- Transforms Anthropic request/response format ↔ Ollama /api/chat
- Streaming support via Anthropic SSE format
- Tool use support (request and response transformation)
- ANTHROPIC_DEFAULT_MODEL env var for model selection without admin UI
- BACKEND_API_KEY env var for forwarding auth to upstream proxies
- Fix SQLite path always resolved relative to database.py location
- start.sh and start_claude.sh load .env relative to script location
2026-05-10 09:45:38 +02:00
Oliver Hofmann
70fd61608b Log actual tokens and elapsed time for all endpoints incl. streaming
For streaming /v1/chat/completions: inject stream_options.include_usage,
parse usage from SSE chunks, log actual ↑↓ tokens and wall time in the
generator's finally block. Add elapsed time to all second log entries.
0.9.9.2
2026-05-08 09:47:32 +02:00
Oliver Hofmann
07f6fec4bf Show app version in admin UI and /version endpoint
Embed APP_VERSION build arg in Docker image (default: dev).
build_push.sh passes the git tag as build arg. Proxy exposes
GET /version, admin UI shows it as read-only field in settings.
0.9.9.1
2026-05-08 09:30:23 +02:00
Oliver Hofmann
6761a73364 Add /api/ps example to Kurzanleitung 2026-05-08 09:25:44 +02:00
Oliver Hofmann
0d1ce96c99 Expose /api/ps to show currently loaded model 2026-05-08 09:22:17 +02:00
Oliver Hofmann
b16b3af44d Mention VPN as alias for Intranet in Kurzanleitung 2026-05-08 09:17:08 +02:00
Oliver Hofmann
fdbe0a74e8 Exclude .tex and .pdf from Docker build context 0.9.9 2026-05-08 08:41:49 +02:00
Oliver Hofmann
0154c89c6b Improve Python examples and opencode description in Kurzanleitung
Split second example into focused model listing only, remove repeated
prompt code. Replace TUI with 'interaktive Terminal-Oberfläche'.
2026-05-08 08:40:25 +02:00
Oliver Hofmann
e3dbed9f5e Ignore generated KURZANLEITUNG.tex and .pdf 2026-05-08 08:15:07 +02:00
Oliver Hofmann
5b37718120 Fix list indentation in KURZANLEITUNG.md 2026-05-08 08:07:02 +02:00
Oliver Hofmann
f823e7d314 Return 422 when model field is missing and no force_model is set
Prevents an opaque Ollama error from reaching the client by failing fast
with a clear message before the request is forwarded.
2026-05-08 08:04:52 +02:00
Oliver Hofmann
34b108f4df Replace default_model with force_model (model lock)
Removes DEFAULT_MODEL in favour of a force_model setting configurable
via the admin UI. When set, every proxy request's model field is
overridden, preventing uncoordinated model switches during lab sessions.
Updates schemas, admin API, all three proxy endpoints, frontend,
init_db, and docs (README, DOCKERHUB, KURZANLEITUNG).
2026-05-08 08:02:16 +02:00
Oliver Hofmann
cced65693c Log actual Ollama token counts and add user guide
Add a second usage log line after each proxy response with actual ↑prompt ↓completion
token counts from Ollama (prompt_eval_count/eval_count for native endpoints,
usage object for OpenAI endpoint). Also adds KURZANLEITUNG.md for students and
colleagues covering API access, model selection, Python examples, opencode setup,
and quota/admin information.
2026-05-08 07:21:36 +02:00
Oliver Hofmann
256bafe30d Explain network_mode: host motivation in README 0.9.8 2026-05-07 16:14:44 +02:00
Oliver Hofmann
555d9899fe Fix build_push.sh tag detection 2026-05-07 16:11:50 +02:00
Oliver Hofmann
31504d1a5b Remove DOCKERHUB.md reference from README 2026-05-07 16:09:22 +02:00
Oliver Hofmann
2e7b13227d Make ADMIN_HOST consistent across dev and prod 2026-05-07 16:08:05 +02:00
Oliver Hofmann
5469981eb5 Add ADMIN_HOST to env tables and .env example 2026-05-07 16:04:23 +02:00
Oliver Hofmann
a1e293b1d7 Add ADMIN_HOST env var, restructure docs
- docker-entrypoint.sh: Admin-API bindet auf ADMIN_HOST (default 0.0.0.0)
  statt hardcoded 0.0.0.0 — ermöglicht Einschränkung auf 127.0.0.1
- README: Zweck-Beschreibung, HTTPS-Reverse-Proxy-Abschnitt (Caddy/Nginx),
  Port-8001-Abschnitt korrigiert (Docker-Port-Mapping greift bei
  network_mode: host nicht), ADMIN_HOST in Konfig-Tabelle ergänzt
- DOCKERHUB.md / DOCKERHUB.en.md: Auf drei Szenarien reduziert
  (network_mode: host, Ollama als Container + SQLite/PostgreSQL);
  host.docker.internal-Varianten entfernt
- review_priorities.md: gelöscht (alle Punkte behoben)
2026-05-07 16:03:03 +02:00
9f92c09586 Add container_name, remove ineffective extra_hosts with network_mode host 0.9.7.2 2026-05-07 15:09:04 +02:00
3974010156 Use network_mode: host so container can reach Ollama on 127.0.0.1 0.9.7 0.9.7.1 2026-05-07 13:58:26 +02:00
8d3f9a7661 Fix OpenAI array content, add error logging, Ollama reachability warning
- Normalize OpenAI array-format content to string to fix connection reset
- Add error.log with rotating handler for proxy and stream errors
- Add global unhandled exception handler returning JSON 500
- Write OLLAMA_URL/DEFAULT_MODEL env vars to DB on startup (reset on restart)
- Add extra_hosts to docker-compose.yml for host.docker.internal on Linux
- Show warning in admin UI when Ollama URL is unreachable
- Return reachable: true/false from /api/ollama-models endpoint
2026-05-07 11:43:17 +02:00
Oliver Hofmann
280b3b0762 Add open: true to Vite dev server config 0.9.3 0.9.4 0.9.5 0.9.6 2026-04-29 17:13:14 +02:00
Oliver Hofmann
89661dafcc Update README: new endpoints, Docker Hub, streaming, PyCharm config, port 8001 security 2026-04-29 10:19:31 +02:00
Oliver Hofmann
3ccc7f325d Explain port 8001 security model in docs 2026-04-29 10:17:59 +02:00
Oliver Hofmann
25f19b6ada Show reset date below quota progress bars in admin UI 0.9.2 2026-04-29 09:55:25 +02:00
Oliver Hofmann
5b97ed0ef7 Expose port 8001 on 127.0.0.1 only, explain why in docs 2026-04-29 09:52:13 +02:00
Oliver Hofmann
222b204d4b build_push.sh: show current tag, offer to set new one before build 0.9.1 2026-04-29 09:36:50 +02:00
Oliver Hofmann
9910e6e062 Exclude .claude from Docker build context 2026-04-29 09:35:17 +02:00
Oliver Hofmann
6e704da86b Expand .dockerignore with standard entries 2026-04-29 09:34:19 +02:00
Oliver Hofmann
bd0dc0478f Add local docker-compose pulling from DockerHub with SQLite and .env 2026-04-29 09:33:04 +02:00