scripts/install-weblate-docker

113 lines
2.9 KiB
Text
Raw Normal View History

2023-03-10 13:24:11 +01:00
#!/bin/sh
set -e
# shellcheck disable=SC1091
. /etc/weblate-bootstrap
adduser weblate --disabled-password --gecos Weblate
usermod --append --groups adm weblate
usermod --append --groups docker weblate
WEBLATE_HOME=~weblate
2023-03-10 13:38:42 +01:00
WEBLATE_DOCKER="$WEBLATE_HOME/weblate"
2023-03-10 13:24:11 +01:00
# Install Weblate and deps
2023-03-10 13:38:42 +01:00
mkdir -p "$WEBLATE_DOCKER" "$WEBLATE_HOME/data" "$WEBLATE_HOME/postgresql" "$WEBLATE_HOME/redis" "$WEBLATE_HOME/ssl-certs"
2023-03-10 14:11:11 +01:00
# Go to the docker dir
cd $WEBLATE_DOCKER
curl -fsSL https://raw.githubusercontent.com/WeblateOrg/docker-compose/main/docker-compose-https.yml > docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/WeblateOrg/docker-compose/main/environment > environment
2023-03-11 16:12:26 +01:00
if [ "$1" = "--nocert" ] ; then
HTTPS_STAGE=local
else
HTTPS_STAGE=production
fi
2023-03-10 14:11:11 +01:00
cat > docker-compose.override.yml <<EOT
2023-03-10 13:24:11 +01:00
services:
weblate:
image: weblate/weblate:latest
https-portal:
environment:
DOMAINS: '$WEBLATE_DOMAIN -> http://weblate:8080'
2023-03-11 16:12:26 +01:00
STAGE: $HTTPS_STAGE
2023-03-10 13:24:11 +01:00
volumes:
weblate-data:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '$WEBLATE_HOME/data'
postgres-data:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '$WEBLATE_HOME/postgresql'
redis-data:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '$WEBLATE_HOME/redis'
ssl-certs:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '$WEBLATE_HOME/ssl-certs'
EOT
2023-03-10 14:11:11 +01:00
cat >> environment <<EOT
2023-03-10 13:24:11 +01:00
# E-mail setup
WEBLATE_EMAIL_HOST=mail.cihar.com
WEBLATE_EMAIL_PORT=587
WEBLATE_EMAIL_HOST_USER=$WEBLATE_DOMAIN
WEBLATE_EMAIL_HOST_PASSWORD=$EXIM_PASS
WEBLATE_EMAIL_USE_TLS=1
# Hosted customization
WEBLATE_SERVER_EMAIL=noreply@weblate.org
WEBLATE_DEFAULT_FROM_EMAIL=noreply@weblate.org
WEBLATE_SITE_TITLE="$WEBLATE_TITLE"
WEBLATE_SITE_DOMAIN="$WEBLATE_DOMAIN"
WEBLATE_ADMIN_NAME='Michal Čihař'
WEBLATE_ADMIN_EMAIL='michal@cihar.com'
WEBLATE_DEFAULT_COMMITER_EMAIL='hosted@weblate.org'
WEBLATE_DEFAULT_COMMITER_NAME='Hosted Weblate'
WEBLATE_STATUS_URL="https://status.weblate.org/"
WEBLATE_GET_HELP_URL="https://care.weblate.org/"
WEBLATE_CONTACT_FORM="from"
WEBLATE_ADMINS_CONTACT='rt@weblate.org'
WEBLATE_SILENCED_SYSTEM_CHECKS=weblate.E012,weblate.E013
# Sentry integration
SENTRY_DSN="$WEBLATE_SENTRY"
SENTRY_TOKEN="$WEBLATE_SENTRY_TOKEN"
SENTRY_TRACES_SAMPLE_RATE="0.1"
# Registration
WEBLATE_REGISTRATION_OPEN=0
WEBLATE_REQUIRE_LOGIN=1
WEBLATE_LEGAL_INTEGRATION=wllegal
# Machinery, see https://github.com/WeblateOrg/weblate/issues/8908
WEBLATE_MT_APERTIUM_APY="http://172.16.0.9:2737/"
WEBLATE_MT_LIBRETRANSLATE_API_URL="http://172.16.0.9:5000/"
EOT
2023-03-10 13:38:42 +01:00
# Fix permissions
chown -R weblate:weblate $WEBLATE_HOME
# Start Weblate
2023-03-13 10:15:26 +01:00
sudo -u weblate docker compose up -d --wait
2023-03-10 13:52:34 +01:00
# Show logs
2023-03-11 15:55:42 +01:00
sudo -u weblate docker compose logs
2023-03-10 13:38:42 +01:00
# Check
2023-03-11 15:55:42 +01:00
sudo -u weblate docker compose exec --user weblate weblate weblate check --deploy