name: Deploy Monorepo to Opt on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 with: fetch-depth: 1 - name: Sync and Launch Nextcloud run: | mkdir -p /opt/docker/nextcloud # rsync -v (verbose) ensures the file is updated on the host rsync -v ./ovh/nextcloud.yml /opt/docker/nextcloud/docker-compose.yml cd /opt/docker/nextcloud # --force-recreate ensures Docker actually picks up the new file docker compose up -d --force-recreate --remove-orphans - name: Sync and Launch Plex run: | mkdir -p /opt/docker/plex rsync -v ./ovh/plex.yml /opt/docker/plex/docker-compose.yml cd /opt/docker/plex docker compose up -d --force-recreate --remove-orphans - name: Sync and Launch CV run: | mkdir -p /opt/docker/cv # -a (archive) preserves permissions; --delete removes old junk rsync -av --delete ./cv/ /opt/docker/cv/ cd /opt/docker/cv # --build is required to refresh your custom HTML/Dockerfile docker compose up -d --build --force-recreate --remove-orphans - name: Cleanup run: | # Removes old CV images so your Xeon disk doesn't fill up docker image prune -f