---
title: "Weblate: Docker Compose и хостинг в один клик"
description: "Self-hosted Weblate — open source платформа локализации: переводите приложения и документацию командой, синхронно с Git. С PostgreSQL в один клик."
---

[← Все шаблоны](https://pethost.dev/ru/templates/) · [Инструменты разработчика](https://pethost.dev/ru/templates/developer-tools/)

# Задеплойте Weblate в один клик

Платформа локализации: переводите приложения и документацию вместе с командой, синхронно с Git

Альтернатива Crowdin, Transifex и Lokalise на вашей машине.

[Задеплоить на Pethost](https://console.pethost.dev/?template=weblate)

## Что такое Weblate?

Weblate — это open source веб-платформа для локализации. Разработчики, профессиональные переводчики и волонтеры переводят программы, сайты и документацию в одном месте, а роли задают, кто может переводить, рецензировать и управлять. Проект начал Michal Čihař в 2012 году; это свободное ПО под копилефт-лицензией GNU GPL, а его разработчики также запускают его для других как сервис Hosted Weblate.

Weblate создан для непрерывной локализации. Он держит клон вашего Git-репозитория, забирает новые строки после каждого пуша и коммитит переводы обратно с указанием авторства каждого переводчика, чтобы запушить их в вашу ветку или открыть pull request. Он читает и пишет те файлы, которые уже есть в вашем проекте: GNU gettext, XLIFF, JSON для i18next, Vue I18n или go-i18n, строки Android и Apple, properties-файлы Java, YAML, Markdown и еще десятки форматов. У переводчиков есть контекст, снимки экрана, словарь, память переводов и проверки качества; машинный перевод и LLM — по желанию, в виде предложений или черновиков, которые проверяют люди.

Этот шаблон запускает официальный образ Weblate линейки 2026.10 с базами данных Postgres 18 и Valkey 9, которые «Новый проект» создает рядом и подключает до первого запуска Weblate; вместо новой базы Postgres можно выбрать одну из ваших. При этом запуске создается администратор с почтой и паролем, которые вы укажете, еще до того, как Weblate кому-либо ответит, а регистрация остается закрытой. Celery, на котором работают фоновые задачи Weblate, запущен в одном процессе: так документация Weblate советует экономить память. Письма с приглашениями, уведомлениями и сбросом пароля Weblate отправляет через Resend, SendGrid или Amazon SES — какой сервис вы выберете в окне «Новый проект», а пока сервис не выбран, не отправляет вовсе.

## Хостинг Weblate на Pethost

1. Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
2. Окно «Новый проект» открывается на приложении Weblate. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: **Электронная почта**, **Пароль администратора**.
3. Отправка почты необязательна: чтобы приложение Weblate отправляло письма, вы выбираете в окне «Новый проект» **Resend**, **SendGrid** или **Amazon SES** и вставляете то, что выдает провайдер.
4. Окно «Новый проект» также создает для приложения Weblate новые базы данных и подключает их до первого запуска приложения: **[Postgres](https://pethost.dev/ru/postgres/)** (512 MB) и **Valkey** (256 MB). Или вы выбираете одну из своих баз **Postgres**: приложение Weblate получает в ней отдельного пользователя и отдельную базу данных, которые другие приложения там не могут прочитать, а все приложения этой базы попадают в один бэкап и восстанавливаются вместе.
5. Через минуту-две Weblate работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
6. Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.

## Вопросы про Weblate

**Weblate бесплатный и с открытым кодом?**

Да. Weblate — свободное ПО под лицензией GNU GPL версии 3 или более поздней, так что запускать, изучать, менять и хостить его у себя можно бесплатно. Hosted Weblate — платный сервис его разработчиков с пробным периодом на 14 дней, а публичные свободные проекты могут бесплатно запросить его тариф Libre.

**Как Weblate работает с Git?**

Weblate держит клон каждого репозитория, который вы добавите. Он забирает новые строки, когда хостинг кода сообщает ему о пуше, и коммитит переводы обратно с указанием авторства каждого переводчика, а затем пушит их или открывает pull request. Для приватного репозитория добавьте в него публичный ключ из раздела «Управление» → «SSH-ключи» или подключите GitHub, GitLab и другие хостинги кода в разделе «Управление» → «Подключения к хостингу кода».

**Какие форматы файлов поддерживает Weblate?**

Десятки: GNU gettext PO, XLIFF, JSON (i18next, Vue I18n, go-i18n, Format.JS и обычный), строковые ресурсы Android, .strings и .stringsdict от Apple, ARB, properties-файлы Java и GWT, .NET RESX, Qt Linguist, YAML, TOML, строки PHP и Laravel, CSV, Markdown, HTML, субтитры и другие. В документации Weblate перечислены варианты и ограничения каждого формата.

**Может ли Weblate использовать машинный перевод или ИИ?**

Да, если вы этого хотите. Weblate может запрашивать предложения у DeepL, Google Cloud Translation, Azure AI Translator, Amazon Translate, LibreTranslate, OpenAI, Anthropic, Ollama и других сервисов; каждый настраивается в разделе «Автоматические предложения». Собственной памяти переводов Weblate внешний сервис не нужен, а сгенерированный текст может оставаться предложением, пока его не примет человек.

**Сколько памяти нужно Weblate?**

Документация Weblate называет минимумом для Weblate, его базы данных и веб-сервера на одном хосте 3 GB памяти и 2 ядра CPU, а для сотен компонентов — 4 GB. Этот шаблон выполняет фоновые задачи Weblate в одном процессе, как советует документация, чтобы сэкономить память: на нашей тестовой машине Weblate занимал около 1 GB в простое и до 1,5 GB при импорте проекта, а Postgres и Valkey рядом с ним — около 70 MB и 12 MB.

**Сколько памяти и диска нужно Weblate?**

Weblate: умеренные требования — около 1 GB памяти в простое и до 1,5 GB при импорте проекта, рядом с его базами Postgres на 512 MB и Valkey на 256 MB; диск хранит клон каждого репозитория, который переводят в Weblate. Окно «Новый проект» дает каждой базе данных приложения столько памяти, сколько рекомендует шаблон, если вы это не измените: Postgres (512 MB) и Valkey (256 MB). На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.

## Weblate: файл Docker Compose

Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан. Машина пишет туда, как приложение входит в свои базы данных, когда подключает их. Окно «Новый проект» пишет туда выбранные в нем настройки почты или оставляет их пустыми, если приложение не отправляет писем.

**Контейнеры:** weblate (weblate/weblate:2026.10).

**Базы данных, каждая — отдельный проект:** [Postgres](https://pethost.dev/ru/postgres/) (512 MB), Valkey (256 MB).

**Тома, в ночном бэкапе:** data, cache.

```
services:
  weblate:
    image: weblate/weblate:2026.10
    restart: unless-stopped
    environment:
      WEBLATE_SITE_DOMAIN: ${HOST}
      # The admin account, made at the first start before Weblate answers anyone. Weblate sets
      # its email and password again from these at every start.
      WEBLATE_ADMIN_EMAIL: ${ADMIN_EMAIL}
      WEBLATE_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      WEBLATE_REGISTRATION_OPEN: "0"
      # TLS ends at the machine's proxy, which says so in X-Forwarded-Proto and gives the
      # visitor's address in X-Forwarded-For. It reaches the project from the machine's networks,
      # 10.192.0.0/10, the one source Weblate's nginx takes that header from.
      WEBLATE_ENABLE_HTTPS: "1"
      WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
      WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
      WEBLATE_TRUSTED_PROXY_ADDRESSES: 10.192.0.0/10
      # Celery's queues in one process: Weblate's documented way to save memory on a small
      # machine.
      CELERY_WORKER_MODE: single
      # Its translations, users and history, in the Postgres database linked to the project.
      POSTGRES_HOST: ${DATABASE_HOST:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_PORT: ${DATABASE_PORT:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_DB: ${DATABASE_NAME:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_USER: ${DATABASE_USER:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      POSTGRES_PASSWORD: ${DATABASE_PASSWORD:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
      # Its task queue and cache, in the Valkey database linked to the project.
      REDIS_HOST: ${REDIS_HOST:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
      REDIS_PORT: ${REDIS_PORT:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
      REDIS_PASSWORD: ${REDIS_PASSWORD:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
      REDIS_DB: "0"
      # The mail provider picked in New project, by STARTTLS on its port. With none, Weblate's
      # mail goes nowhere, and its host stays set, which Weblate requires.
      WEBLATE_EMAIL_BACKEND: ${SMTP_BACKEND:-django.core.mail.backends.dummy.EmailBackend}
      WEBLATE_EMAIL_HOST: ${SMTP_HOST:-localhost}
      WEBLATE_EMAIL_PORT: ${SMTP_PORT:-25}
      WEBLATE_EMAIL_HOST_USER: ${SMTP_USER}
      WEBLATE_EMAIL_HOST_PASSWORD: ${SMTP_PASSWORD}
      WEBLATE_EMAIL_USE_TLS: "1"
      WEBLATE_EMAIL_USE_SSL: "0"
      WEBLATE_SERVER_EMAIL: ${SMTP_FROM}
      WEBLATE_DEFAULT_FROM_EMAIL: ${SMTP_FROM_HEADER}
    volumes:
      # The repositories Weblate translates, its settings and media.
      - data:/app/data
      - cache:/app/cache
    tmpfs:
      - /run
      - /tmp

volumes:
  data:
  cache:
```

[compose.yaml](https://pethost.dev/templates/weblate/compose.yaml)[Открыть на GitHub](https://github.com/pethost-dev/templates/tree/main/weblate)

## [Еще в категории «Инструменты разработчика»](https://pethost.dev/ru/templates/developer-tools/)

- [**Gitea**Git-хостинг с пул-реквестами и задачами](https://pethost.dev/ru/templates/gitea/)
- [**code-server**VS Code в браузере](https://pethost.dev/ru/templates/code-server/)
- [**Kroki**Диаграммы из текста: PlantUML, Mermaid, Graphviz и другие](https://pethost.dev/ru/templates/kroki/)
- [**Coder**Удалённые среды разработки из шаблонов Terraform, которые открываются в VS Code, JetBrains, браузере или по SSH](https://pethost.dev/ru/templates/coder/)
- [**Hasura**Готовые GraphQL- и REST-API поверх базы Postgres, с правами доступа, событиями и веб-консолью](https://pethost.dev/ru/templates/hasura/)
- [**InsForge**Бэкенд для приложений, которые пишут AI-агенты: Postgres, авторизация, файлы и edge functions](https://pethost.dev/ru/templates/insforge/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблоны](https://pethost.dev/ru/templates/)
- [О нас](https://pethost.dev/about/)
- [Документация](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/ru/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагин](https://github.com/pethost-dev/plugin)
- [Условия](https://pethost.dev/terms/)
- [Конфиденциальность](https://pethost.dev/privacy/)
- [Возвраты](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Базы данных

- [Postgres](https://pethost.dev/ru/postgres/)

Сравнения

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/ru/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/ru/blog/coolify-cloud-vs-dokploy-cloud/)
- [Цены Railway, Render и Fly.io](https://pethost.dev/ru/blog/railway-vs-render-vs-fly-io-pricing/)
- [Управляемый хостинг Docker Compose](https://pethost.dev/ru/blog/managed-docker-compose-hosting/)

Альтернативы

- [Альтернативы Railway](https://pethost.dev/ru/blog/railway-alternatives/)
- [Альтернативы Heroku](https://pethost.dev/ru/blog/heroku-alternatives/)
- [Альтернативы Dokploy](https://pethost.dev/ru/blog/dokploy-alternatives/)
- [Альтернативы Coolify](https://pethost.dev/ru/blog/coolify-alternatives/)
- [Альтернативы Render](https://pethost.dev/ru/blog/render-alternatives/)
- [Альтернативы Sliplane](https://pethost.dev/ru/blog/sliplane-alternatives/)
