Sign inSign up

tolgee/tolgee

By tolgee

Updated about 3 hours ago

Open-source localization platform. Self-host the whole Tolgee server in one container.

Image
Developer tools
7

1M+

tolgee/tolgee repository overview

Docker Image Version GitHub Release License github stars github stars

Read the Docs Slack YouTube LinkedIn

Tolgee: open-source localization platform

Tolgee

An open-source alternative to Crowdin, Phrase and Lokalise. This image runs the Tolgee server (web app, REST API and background workers) against a PostgreSQL database.

linux/amd64 · linux/arm64 · JRE 25 on Alpine

The Tolgee translation editor


Quick start

Create docker-compose.yaml:

services:
  app:
    image: tolgee/tolgee:latest
    volumes:
      - ./data:/data
      - ./config.yaml:/config.yaml
    ports:
      - '8080:8080'
    environment:
      spring.config.additional-location: file:///config.yaml
    depends_on:
      - db
  db:
    image: postgres:17
    environment:
      POSTGRES_PASSWORD: change_me
    volumes:
      - ./data/postgres:/var/lib/postgresql/data

and config.yaml next to it:

tolgee:
  authentication:
    enabled: true
    jwt-secret: change_me   # keeps sessions valid across restarts
spring:
  datasource:
    url: jdbc:postgresql://db:5432/postgres
    username: postgres
    password: change_me

Then:

docker compose up -d

Tolgee is on http://localhost:8080. Sign in as admin. The initial password is generated on first boot and written into the data directory:

cat data/initial.pwd

Full walkthrough: Running with Docker.

Tags

TagUse it for
latestTracks the newest release. Fine for trying Tolgee out.
v3.218.6, one per releaseImmutable. Pin one of these in production.

Every tag is a multi-arch manifest for linux/amd64 and linux/arm64. Releases go out several times a week. See the changelog.

Image reference

Port 8080Web app + REST API
Volume /dataUploaded screenshots, initial.pwd
HealthcheckGET /actuator/health (already declared in the image)
RuntimeAlpine, Eclipse Temurin JRE 25
ConfigA YAML file mounted into the container, pointed at by spring.config.additional-location, or environment variables.

Common configuration

Everything below goes into the config.yaml mounted in the quick start, under the prefix shown. Full list, with the .env and application.properties equivalents: configuration reference.

PropertyWhat it does
spring.datasource.urlYour database, e.g. jdbc:postgresql://db:5432/postgres.
spring.datasource.username / .passwordDatabase user and password.
tolgee.front-end-urlPublic URL where Tolgee is reachable. Set it: if it is missing, password reset links are built from the incoming request, which allows account takeover.
tolgee.authentication.enabledTurn authentication on (do this).
tolgee.authentication.initial-usernameFirst admin account. Defaults to admin.
tolgee.authentication.initial-passwordSet it yourself, or read the generated one from /data/initial.pwd.
tolgee.authentication.jwt-secretSigns sessions. Set it, or everyone is logged out on restart.
tolgee.smtp.host, .port, .username, .password, .fromOutgoing mail server. Needed for invitations and password resets to work.
tolgee.file-storage.s3.*Store screenshots in S3 instead of the volume.
server.portPort inside the container. Defaults to 8080.

One setting is not a Spring property: OTEL_JAVAAGENT_ENABLED=true starts the bundled OpenTelemetry agent for traces. The container start script reads it, so it is always an environment variable.

What you get

Translating Web editor with comments, translation history and an activity log · translation memory with similarity scoring · glossaries · machine translation via DeepL, Google Translate, AWS Translate and LLM providers · auto-translation of new keys · review and task workflows.

In your app In-context editing: ALT-click a string in your running app and edit it, production included · one-click screenshots with the phrases highlighted · SDKs for React, Vue, Svelte, Angular, Next.js, Nuxt, i18next and more · content delivery to a CDN · webhooks · a CLI · a Figma plugin, a VS Code extension and a Chrome extension.

For teams Organizations, granular permissions and SSO/SAML · branching, so translations follow your feature branches · batch operations across thousands of keys · an MCP server so AI coding assistants can manage translations directly.

Licensing

The platform is Apache 2.0. The ee/ directory is covered by the Tolgee Enterprise License and its features need a license key. Everything else in this image is free to self-host, with no seat or key limit. Details: self-hosted licensing.

Documentation · GitHub · Report a bug · Slack community · Tolgee Cloud

Tag summary

Content type

Image

Digest

sha256:29dc78d96

Size

410 MB

Last updated

about 3 hours ago

docker pull tolgee/tolgee