---
version: 0.4

networks:
  production:
    hosts:
      - dayoff@vakhrushev.me

env:
  HOME_DIR: /home/dayoff
  IMAGE: cr.yandex/crplfk0168i4o8kd7ade/dayoff
  DATA_PATH: $HOME_DIR/data
  CONTAINER_NAME: dayoff-server
  REGISTRY_KEY_FILE: $HOME_DIR/yandex_registry_key.json

commands:
  make-data-dir:
    run: mkdir -p $DATA_PATH

  copy-yandex-registry-key:
    local: scp $REG_AUTH_FILE dayoff@vakhrushev.me:$REGISTRY_KEY_FILE

  docker-login:
    run: cat $REGISTRY_KEY_FILE | docker login --username json_key --password-stdin cr.yandex

  docker-reload-container:
    run: >
      source $HOME_DIR/.env ;

      docker pull "$IMAGE" ;

      docker stop "$CONTAINER_NAME" || true ;
      docker rm "$CONTAINER_NAME" || true ;

      docker run \
        --init \
        --detach \
        --name "$CONTAINER_NAME" \
        --restart=unless-stopped \
        -u "$(id -u):$(id -g)" \
        -p "$WEB_SERVER_PORT:3000" \
        -v "$DATA_PATH:/opt/dayoff" \
        $IMAGE ;

      echo "Done."

  clear:
    run: rm $REGISTRY_KEY_FILE

targets:
  deploy:
    - make-data-dir
    - copy-yandex-registry-key
    - docker-login
    - docker-reload-container
    - clear