---
title: "Weblate com Docker Compose e hospedagem em um clique"
description: "Auto-hospede o Weblate, a plataforma de localização de código aberto: traduza apps e docs em equipe, em sincronia com o Git, com PostgreSQL, em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Ferramentas de desenvolvimento](https://pethost.dev/pt/templates/developer-tools/)

# Faça deploy de Weblate em um clique

Uma plataforma de localização sincronizada com o Git: traduza apps e documentação com a sua equipe

Uma alternativa auto-hospedada para Crowdin, Transifex e Lokalise.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=weblate)

## O que é Weblate?

O Weblate é uma plataforma web de localização de código aberto. Desenvolvedores, tradutores profissionais e voluntários traduzem software, sites e documentação em um só lugar, com papéis que definem quem pode traduzir, revisar e gerenciar. Michal Čihař o criou em 2012; é software livre com copyleft, sob a GNU GPL, e os desenvolvedores dele também o rodam para outras pessoas como Hosted Weblate.

O Weblate é feito para a localização contínua. Ele mantém um clone do seu repositório Git, recebe as strings novas quando você faz push e devolve as traduções em commits que dão crédito a cada tradutor, para fazer o push na sua branch ou abrir um pull request. Ele lê e escreve os arquivos que o seu projeto já tem: GNU gettext, XLIFF, JSON para i18next, Vue I18n ou go-i18n, strings do Android e da Apple, properties do Java, YAML, Markdown e dezenas de outros. Os tradutores contam com contexto, capturas de tela, glossário, memória de tradução e verificações de qualidade; a tradução automática e os LLMs são opcionais, como sugestões ou rascunhos que uma pessoa revisa.

Este template roda a imagem oficial do Weblate, a série 2026.10, com um banco de dados Postgres 18 e um Valkey 9 que o Novo projeto cria ao lado dele, conectados antes do primeiro início do Weblate; no lugar do Postgres novo, você pode escolher um dos seus. Esse início cria o administrador com o e-mail e a senha que você informa, antes de o Weblate responder a qualquer pessoa, e o cadastro continua fechado. O Celery, que cuida do trabalho em segundo plano do Weblate, roda em um só processo, o jeito documentado pelo Weblate de economizar memória. Os e-mails dele, para convites, notificações e redefinição de senha, saem pelo Resend, SendGrid ou Amazon SES, o que você escolher no Novo projeto, e nenhum sai até você escolher um.

## Hospedagem de Weblate no Pethost

1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
2. Novo projeto abre em Weblate. Você preenche o que ele pede e clica em Criar projeto: **E-mail**, **Senha do administrador**.
3. O e-mail é opcional: para o app Weblate enviar e-mails, você escolhe **Resend**, **SendGrid** ou **Amazon SES** no Novo projeto e cola o que o provedor te dá.
4. Novo projeto também cria bancos de dados novos para Weblate e conecta todos antes de o app iniciar pela primeira vez: **[Postgres](https://pethost.dev/pt/postgres/)** (512 MB) e **Valkey** (256 MB). Ou você escolhe um dos seus bancos **Postgres**: o app Weblate ganha nele um usuário e um banco de dados próprios, que os outros apps de lá não conseguem ler, e todos os apps desse banco entram no mesmo backup e são restaurados juntos.
5. Em um ou dois minutos Weblate está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
6. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

## Perguntas sobre Weblate

**O Weblate é gratuito e de código aberto?**

Sim. O Weblate é software livre sob a GNU GPL, versão 3 ou posterior, então você pode rodá-lo, estudá-lo, alterá-lo e auto-hospedá-lo de graça. O Hosted Weblate é o serviço pago dos desenvolvedores dele, com um teste grátis de 14 dias, e projetos livres e públicos podem pedir o plano Libre dele sem pagar nada.

**Como o Weblate funciona com o Git?**

O Weblate mantém um clone de cada repositório que você adiciona. Ele busca as strings novas quando o serviço que hospeda o seu código avisa de um push, e devolve as traduções em commits que dão crédito a cada tradutor; depois faz o push ou abre um pull request. Para um repositório privado, adicione a ele a chave pública que aparece em Gerenciar → Chaves SSH, ou conecte o GitHub, o GitLab e outros serviços em Gerenciar → Code-hosting connections.

**Quais formatos de arquivo o Weblate suporta?**

Dezenas: GNU gettext PO, XLIFF, JSON (i18next, Vue I18n, go-i18n, Format.JS e JSON puro), recursos de string do Android, .strings e .stringsdict da Apple, ARB, properties do Java e do GWT, RESX do .NET, Qt Linguist, YAML, TOML, strings de PHP e Laravel, CSV, Markdown, HTML, legendas e outros. A documentação do Weblate lista as variantes e os limites de cada formato.

**O Weblate pode usar tradução automática ou IA?**

Sim, se você quiser. O Weblate pode pedir sugestões ao DeepL, Google Cloud Translation, Azure AI Translator, Amazon Translate, LibreTranslate, OpenAI, Anthropic, Ollama e outros serviços, cada um configurado em Sugestões automáticas. A memória de tradução do próprio Weblate não precisa de nenhum serviço externo, e o texto gerado pode ficar como sugestão até uma pessoa aceitá-lo.

**De quanta memória o Weblate precisa?**

A documentação do Weblate indica no mínimo 3 GB de memória e 2 núcleos de CPU para o Weblate, o banco de dados dele e um servidor web numa só máquina, e 4 GB para centenas de componentes. Este template roda as tarefas em segundo plano do Weblate em um só processo, o jeito documentado pelo Weblate de economizar memória: na nossa máquina de teste, o Weblate ocupou cerca de 1 GB em repouso e até 1,5 GB enquanto importava um projeto, ao lado de cerca de 70 MB do Postgres e 12 MB do Valkey.

**De quanta memória e disco Weblate precisa?**

O Weblate é moderado: cerca de 1 GB de memória em repouso e até 1,5 GB enquanto importa um projeto, ao lado do seu Postgres de 512 MB e do seu Valkey de 256 MB; o disco dele guarda um clone de cada repositório que ele traduz. Novo projeto dá a cada banco de dados do app a memória que o template recomenda, a menos que você a mude: Postgres (512 MB) e Valkey (256 MB). No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

## Arquivo Docker Compose de Weblate

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito. A máquina grava ali como o app entra nos seus bancos de dados, ao conectá-los. Novo projeto grava ali as configurações de e-mail escolhidas nele, ou as deixa vazias quando o app não envia e-mail.

**Containers:** weblate (weblate/weblate:2026.10).

**Bancos de dados, cada um como projeto próprio:** [Postgres](https://pethost.dev/pt/postgres/) (512 MB), Valkey (256 MB).

**Volumes, no backup noturno:** 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)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/weblate)

## [Mais em Ferramentas de desenvolvimento](https://pethost.dev/pt/templates/developer-tools/)

- [**Gitea**Hospedagem de Git com pull requests e issues](https://pethost.dev/pt/templates/gitea/)
- [**code-server**O VS Code no navegador](https://pethost.dev/pt/templates/code-server/)
- [**Kroki**Diagramas a partir de texto: PlantUML, Mermaid, Graphviz e mais](https://pethost.dev/pt/templates/kroki/)
- [**Coder**Ambientes de desenvolvimento remotos a partir de templates do Terraform, abertos no VS Code, JetBrains, no navegador ou por SSH](https://pethost.dev/pt/templates/coder/)
- [**Hasura**APIs GraphQL e REST instantâneas sobre um banco Postgres, com permissões, eventos e um console web](https://pethost.dev/pt/templates/hasura/)
- [**InsForge**Um backend para apps que agentes de código constroem: Postgres, autenticação, armazenamento e edge functions](https://pethost.dev/pt/templates/insforge/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

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

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
