Skip to content
Snippets Groups Projects
backup@.service 887 B
Newer Older
Michiel de Jong's avatar
Michiel de Jong committed
[Unit]
Pierre Ozoux's avatar
Pierre Ozoux committed
Description=Back up domain data to a git repo and push it out
Michiel de Jong's avatar
Michiel de Jong committed

[Service]
Type=oneshot
Pierre Ozoux's avatar
Pierre Ozoux committed
Environment=DOMAIN=%i
Pierre Ozoux's avatar
Pierre Ozoux committed
ExecStartPre=/bin/bash -euxc ' \
  if [ -e /data/domains/$DOMAIN/mysql ]; then \
    echo "Backing up mysql databases for $DOMAIN"; \
    /usr/bin/docker run \
      --link mysql-$DOMAIN:db \
      --env-file /data/domains/$DOMAIN/mysql/.env \
      indiehosters/mysql \
        mysqldump \
          --all-databases \
          --events \
          -u admin \
          -p$(cat /data/domains/$DOMAIN/mysql/.env | cut -d'=' -f2) \
          -h db \
          > /data/domains/$DOMAIN/mysql/dump.sql; \
  fi'

ExecStart=/bin/bash -euxc ' \
  echo "Committing everything"; \
  cd /data/domains/$DOMAIN/; \
  git add *; \
  git status; \
  git commit -m"backup $DOMAIN @ `hostname` - `date`"; \
  # be careful: hidden sync functionnality; \
  git pull --rebase; \
  git push'