diff --git a/.gitea/workflows/beets-sync.yml b/.gitea/workflows/beets-sync.yml deleted file mode 100644 index 1e22952..0000000 --- a/.gitea/workflows/beets-sync.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Beets -on: - # schedule: - # # Run 4 times a day: 6am, 12pm, 6pm, 12am UTC - # - cron: '0 6,12,18,0 * * *' - workflow_dispatch: # Allow manual trigger - -jobs: - sync-beets: - runs-on: [home-server] - steps: - - name: Run Beets sync - working-directory: /home/gitea-runner/infrastructure/infrastructure/home-server/beets - run: | - git pull - docker compose pull -q - docker compose up -d - docker compose restart - sleep 2 - docker exec -u 1000 beets bash -c 'beet -v import -i -q /managed/*' || true - # Clean up empty directories after import (but not /managed itself) - docker exec -u 1000 beets bash -c 'find /managed -mindepth 1 -type d -empty -delete' || true - echo "Beets sync completed" diff --git a/.github/workflows/backup-zfs.yml b/.github/workflows/backup-zfs.yml new file mode 100644 index 0000000..50e6933 --- /dev/null +++ b/.github/workflows/backup-zfs.yml @@ -0,0 +1,46 @@ +name: ZFS Backup +on: + schedule: + - cron: 0 1 * * * + workflow_dispatch: +jobs: + update-infrastructure: + runs-on: [self-hosted, home-server] + steps: + - name: run syncoid + run: | + zpool status + echo "" + zfs list + echo "" + syncoid \ + --recursive \ + --no-privilege-elevation \ + data-ssd/data \ + backup/data + + syncoid \ + --recursive \ + --no-privilege-elevation \ + data-ssd/media \ + backup/media + # steps: + # - name: run syncoid + # run: | + # zpool status + # echo "" + # zfs list + # echo "" + # syncoid \ + # --recursive \ + # --no-privilege-elevation \ + # --no-rollback \ + # data-ssd/data \ + # backup/data + + # syncoid \ + # --recursive \ + # --no-privilege-elevation \ + # --no-rollback \ + # data-ssd/media \ + # backup/media \ No newline at end of file diff --git a/.github/workflows/libation-sync.yml b/.github/workflows/libation-sync.yml new file mode 100644 index 0000000..daef933 --- /dev/null +++ b/.github/workflows/libation-sync.yml @@ -0,0 +1,18 @@ +name: Libation +on: + schedule: + # Run 4 times a day: 6am, 12pm, 6pm, 12am UTC + - cron: '0 6,12,18,0 * * *' + workflow_dispatch: # Allow manual trigger + +jobs: + sync-audiobooks: + runs-on: [home-server] + steps: + - name: Run Libation sync + working-directory: /home/gitea-runner/infrastructure/infrastructure/home-server/libation + run: | + echo "Starting Libation audiobook sync at $(date)" + docker compose pull -q + docker compose run --rm libation + echo "Libation sync completed at $(date)"