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
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:/dataInitialisation
Exécutez ce script shell dans /opt/weblate :
#!/bin/sh
mkdir -p weblate_data weblate_cache
chown -R 1000:1000 weblate_data weblate_cachepour 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.
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,httpsConfigurer le démarrage automatique
TL;DR : Exécutez ceci dans /opt/weblate
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdinVoir 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.