Weblate : Installation en 10 minutes avec docker-compose et Traefik

Voir Configuration simple de Traefik avec docker-compose et les challenges Lets Encrypt Cloudflare DNS-01, TLS-ALPN-01 et HTTP-01 pour la configuration Traefik que nous utilisons.

Toutes les données de Weblate, y compris la base de données, seront stockées dans des répertoires mappés, par opposition aux volumes Docker. Cela permet de garder toutes les données ensemble.

Créez d’abord le répertoire, par exemple /opt/weblate.

docker-compose.yml

Créez maintenant /opt/weblate/docker-compose.yml

docker-compose.yml
services:
  weblate:
    image: weblate/weblate
    tmpfs:
      - /run
      - /tmp
    volumes:
      - ./weblate_data:/app/data
      - ./weblate_cache:/app/cache
    restart: always
    read_only: true
    depends_on:
      - database
      - cache
    env_file:
      - .env
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.weblate-mydomain.rule=Host(`weblate.mydomain.com`)"
      - "traefik.http.routers.weblate-mydomain.entrypoints=websecure"
      - "traefik.http.routers.weblate-mydomain.tls.certresolver=cloudflare-ec384"
      - "traefik.http.routers.weblate-mydomain.tls.domains[0].main=mydomain.com"
      - "traefik.http.routers.weblate-mydomain.tls.domains[0].sans=*.mydomain.com"
      - "traefik.http.services.weblate-mydomain.loadbalancer.server.port=8080"
  database:
    image: postgres:16-alpine
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_DB=${POSTGRES_DB}

    restart: always
  cache:
    image: redis:7-alpine
    restart: always
    read_only: true
    env_file:
      - .env
    command: [redis-server, --save, '60', '1']
    volumes:
      - ./redis_data:/data

Initialisation

Exécutez ce script shell dans /opt/weblate :

init_weblate_dirs.sh
#!/bin/sh
mkdir -p weblate_data weblate_cache
chown -R 1000:1000 weblate_data weblate_cache

pour créer les répertoires nécessaires et définir les permissions correctes.

Créer .env (le fichier de configuration)

Voir la documentation Docker de Weblate pour plus d’informations sur toutes les options disponibles. Pour cet exemple, nous montrons uniquement toutes les options de configuration activées.

Créez ceci comme /opt/weblate/.env.

Notez que, par défaut, je le configure comme non ouvert à l’inscription, mais nécessitant une connexion. C’est la configuration la plus courante pour les installations privées / d’entreprise où l’administrateur gérera les comptes utilisateurs manuellement.

.env
WEBLATE_SITE_DOMAIN=weblate.mydomain.com
WEBLATE_DEBUG=0
WEBLATE_LOGLEVEL=INFO
WEBLATE_SITE_TITLE=Weblate Techoverflow
WEBLATE_ADMIN_NAME=uli
WEBLATE_ADMIN_EMAIL=[email protected]
WEBLATE_ADMIN_PASSWORD=Uditien0og9ohshohg0Ooj7XooC0io
WEBLATE_SERVER_EMAIL=[email protected]
WEBLATE_DEFAULT_FROM_EMAIL=[email protected]
WEBLATE_ALLOWED_HOSTS=*
WEBLATE_REGISTRATION_OPEN=0
WEBLATE_TIME_ZONE=Europe/Berlin
WEBLATE_IP_PROXY_HEADER=HTTP_X_FORWARDED_FOR
WEBLATE_REQUIRE_LOGIN=1
POSTGRES_PASSWORD=gahth9Geasautheejee8kies9sheeb
POSTGRES_USER=weblate
POSTGRES_DB=weblate
POSTGRES_HOST=database
POSTGRES_DATABASE=weblate
REDIS_HOST=cache
REDIS_PORT=6379
WEBLATE_EMAIL_HOST=mail.mydomain.com
WEBLATE_EMAIL_HOST_USER=[email protected]
WEBLATE_EMAIL_HOST_PASSWORD=Oora5phaej
CLIENT_MAX_BODY_SIZE=200M
WEBLATE_SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTO,https

Configurer le démarrage automatique

TL;DR : Exécutez ceci dans /opt/weblate

install_docker_compose_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin

Voir Créer un service systemd pour votre projet docker-compose en 10 secondes pour plus de détails.

Configuration via l’interface web

Ouvrez maintenant https://weblate.mydomain.com et suivez les instructions à l’écran pour terminer la configuration.


Check out similar posts by category: Weblate, Docker