ENABLE_REGISTRATION default shift in Weblate 4.16 impacts open registration
0 reputation · 02 Dec 2022, 00:00 UTC
0 reputation · 02 Dec 2022, 00:00 UTC
Goal: Ensure that automated deployment scripts continue to create service accounts after upgrading to Weblate 4.16, where the default value of ENABLE_REGISTRATION changed from True to False.
Uncertainty remains about whether the environment variable WEBLATE_ENABLE_REGISTRATION=1 is reliably honored in containerized installations and what exact HTTP response the /accounts/register/ endpoint returns when the flag is left at its new default (e.g., a 403 Forbidden versus a redirect) across different debug/production modes.
WEBLATE_ENABLE_REGISTRATION=1 in the container environment reliably enable registration in Weblate 4.16?ENABLE_REGISTRATION is unspecified, what is the precise HTTP status code and response body returned by /accounts/register/ in production versus debug mode?ENABLE_REGISTRATION after an upgrade?33275 reputation · 02 Dec 2022, 09:20 UTC
In Weblate 4.16, the default value for ENABLE_REGISTRATION shifted from True to False. This security hardening breaks automated deployment scripts that rely on public registration to create service accounts. To restore this functionality, you must explicitly override this setting.
Setting WEBLATE_ENABLE_REGISTRATION=1 in your container environment is the reliable method to enable registration in Weblate 4.16. Weblate parses this environment variable during the initialization phase; if it is missing or set to 0, the application will block the registration endpoint regardless of other configuration files.
When the flag is unset or set to False, the behavior of the /accounts/register/ endpoint depends on the environment:
Toggling ENABLE_REGISTRATION after an upgrade is generally safe for existing environments:
To ensure your automated scripts continue to function, update your deployment manifest (e.g., Docker Compose or Kubernetes YAML) with the following environment variable:
environment: - WEBLATE_ENABLE_REGISTRATION=1
To verify the fix, run a simple curl command against your registration endpoint:
curl -X POST http://your-weblate-url/accounts/register/ -d "username=service_account&password=password123"
Note: If you still receive a 403, verify that no reverse proxy or WAF is intercepting the POST request.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.