version: '3.0' services: app: image: mediawiki:1.37.1 container_name: limbowiki_app links: - db ports: - ${APP_PORT}:80 volumes: - app_data:/mediawiki_data command: > sh -c " chown -R www-data:www-data /mediawiki_data; rm /var/www/html/LocalSettings.php; rm /var/www/html/includes/PlatformSettings.php; rm -r /var/www/html/images; ln -s /mediawiki_data/config/LocalSettings.php /var/www/html/LocalSettings.php; ln -s /mediawiki_data/config/PlatformSettings.php /var/www/html/includes/PlatformSettings.php; ln -s /mediawiki_data/images /var/www/html/images; apache2-foreground;" restart: unless-stopped db: image: mariadb:10.6.2 container_name: limbowiki_db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} volumes: - db_data:/var/lib/mysql manager: container_name: limbowiki_manager image: alpine restart: unless-stopped links: - db tty: true volumes: - backups:/backups:ro - app_data:/mediawiki_data:ro - db_data:/db:ro environment: - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_HOST=${MYSQL_HOST} - BACKUP_USERNAME=${BACKUP_USERNAME} - BACKUP_PASSWORD=${BACKUP_PASSWORD} - BACKUP_ADDRESS=${BACKUP_ADDRESS} - BACKUP_DESTINATION_FOLDER=${BACKUP_DESTINATION_FOLDER} command: > sh -c " apk add --no-cache mysql-client; apk add --no-cache lftp; echo \"#!/bin/sh\" > /etc/periodic/daily/backup; echo \"DATAFILE=/tmp/LimboWiki_www_\$$(date +%Y%m%d%H%M%S).sql.gz \" >> /etc/periodic/daily/backup; echo \"tar -zcvf $$DATAFILE /mediawiki_data \" >> /etc/periodic/daily/backup; echo \"lftp -e \x22 put -O ${BACKUP_DESTINATION_FOLDER} \$$DATAFILE \x22 -u \$${BACKUP_USERNAME},\$${BACKUP_PASSWORD} \$${BACKUP_ADDRESS} \" >> /etc/periodic/daily/backup; echo \"rm $$DATAFILE\" >> /etc/periodic/daily/backup; echo \"SQLDMPFILE=/tmp/limboWiki_mariadb_\$$(date +%Y%m%d%H%M%S).sql.gz \" >> /etc/periodic/daily/backup; echo \"mysqldump --no-tablespaces -h \"\$${MYSQL_HOST}\" --databases \"\$${MYSQL_DATABASE}\" -u \"\$${MYSQL_USER}\" -p\"\$${MYSQL_PASSWORD}\" | gzip > \$$SQLDMPFILE \" >> /etc/periodic/daily/backup; echo \"lftp -e \x22 put -O ${BACKUP_DESTINATION_FOLDER} \$$SQLDMPFILE \x22 -u \$${BACKUP_USERNAME},\$${BACKUP_PASSWORD} \$${BACKUP_ADDRESS} \" >> /etc/periodic/daily/backup; echo \"rm $$SQLDMPFILE\" >> /etc/periodic/daily/backup; chmod +x /etc/periodic/daily/backup; crond -f -l 8;" volumes: backups: driver: ${VOLUME_BACKUPS_DRIVER} driver_opts: type: ${VOLUME_BACKUPS_DRIVER_OPTS_TYPE} o: ${VOLUME_BACKUPS_DRIVER_OPTS_O} device: ${VOLUME_BACKUPS_DRIVER_OPTS_DEVICE} db_data: app_data: