Localization Server

Localization server is a server which continuously runs Serge and is configured to have proper access to your version control infrastructure. For example, for Git-based setups this means that you need to have Git properly configured there, with all the necessary public keys. If you decide to host a public-facing translation server software like Pootle, it will typically be the same server.

For better security, we recommend to setup a separate user to run localization-related scripts on behalf of.

Assuming your server runs under Linux-based OS, and your Serge configuration files are stored in e.g. /usr/local/share/serge folder, and the user is named l10n, a bare-bones setup would be to create a system-wide crontab file /etc/cron.d/serge with the following contents:

*/5 * * * * l10n serge sync /usr/local/share/serge >/var/log/serge.log 2>&1

The cron job above will run every 5 minutes and try to launch a new Serge sync cycle for all configuration files in the specified directory.

Note: in the scenario above, one needs to make sure that only one copy of Serge is running at a time. This is why we're overwriting the same log file (/var/log/serge.log) — this file is locked exclusively, and thus the other instance will fail until the previous copy finishes execution. If you want to append to a log instead, you need another approach to implement a 'one instance at a time' requirement (for example, use a wrapper script in a combination with flock utility).