Skip to content

LowLex v0.1: light translation server (Go + embedded CodeAtlas UI) - #1

Merged
FabioHAraujo merged 8 commits into
mainfrom
feat/lowlex-v0.1
Oct 23, 2026
Merged

FabioHAraujo merged 8 commits into
mainfrom
feat/lowlex-v0.1

Conversation

@FabioHAraujo

Copy link
Copy Markdown
Contributor

LowLex v0.1: a light translation server to replace Tolgee. One static Go binary with the web UI embedded, or Docker Compose.

What is in it

  • Backend (Go): standard library HTTP, pure-Go SQLite (WAL), argon2id passwords, provider keys encrypted at rest (AES-256-GCM). Listens on 4747 or LOWLEX_HOST/LOWLEX_PORT from .env.
  • First admin: admin / lowlex, must be changed at first sign-in; or set LOWLEX_ADMIN_PASSWORD. lowlex reset-password <user> for recovery.
  • People: global admin/user accounts; per-project manager, developer, reviewer, translator, viewer, with per-language limits for translators and reviewers.
  • Translation: editor with filters and side-by-side languages; suggestions and batch fill from Google Cloud Translation, DeepL, Microsoft Translator, LibreTranslate and any OpenAI-compatible model.
  • Files: import/export JSON (flat, nested), CSV, PO, Android, iOS .strings, .properties, ZIP of many (Tolgee export ZIPs import directly).
  • Integration: per-project read/write API keys, activity log.
  • UI: SvelteKit static app with CodeAtlas UI 4.5 and the LowBloat theme, in English and Brazilian Portuguese.
  • Packaging: scripts/build.sh (Linux, macOS, Windows × amd64/arm64), distroless Dockerfile, compose.yaml, release workflow for tags.

Verified

  • go test ./... (API flow, roles, import/export, API keys, cross-origin check, AI provider with a fake server, format round trips).
  • Linux binary on Arch Linux: forced password change flow.
  • Docker Compose deploy on the dev server: healthy, ~25 MB image, ~45 MB RAM, end-to-end smoke test.
  • This workflow's build job under act: check, tests, six platform builds, artifact upload.
  • Not run: the macOS binaries (no Mac available).

CodeAtlas UI workarounds

Translations

Go backend (stdlib HTTP, pure-Go SQLite, argon2id) with the SvelteKit UI
(CodeAtlas UI, LowBloat theme) embedded into one static binary for
Linux, macOS and Windows, plus Dockerfile and compose.yaml.

- First admin with a forced password change, or LOWLEX_ADMIN_PASSWORD
- Global admin/user accounts; per-project manager, developer, reviewer,
  translator and viewer roles, with per-language limits
- Translation editor, machine translation (Google, DeepL, Microsoft,
  LibreTranslate) and any OpenAI-compatible AI, single and batch
- Import/export: JSON flat/nested, CSV, PO, Android, iOS, .properties, ZIP
- Per-project API keys, activity log, en and pt-BR UI
@FabioHAraujo
FabioHAraujo merged commit 88a27ed into main Oct 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant