name: Deploy Monorepo to Opt on: [push] jobs: deploy: - name: Checkout Code uses: actions/checkout@v4 # Use v4 for better Node 20+ support with: fetch-depth: 1 # This forces the runner to use the git binary instead of the REST API persist-credentials: false - name: Install NPM and Tools run: | apt-get update apt-get install -y nodejs npm gettext-base # gettext-base provides envsubst - name: Sync OVH Subfolder to Opt run: | # Create the target path on the host mkdir -p /opt/hurricane/apps/ovh # Copy only the contents of the 'ovh' folder from the repo # This avoids copying the top-level .git, ansible, or cloudflare folders cp -r ./ovh/. /opt/hurricane/apps/ovh/ - name: Launch Independent Stacks run: | cd /opt/hurricane/apps/ovh/ # Deploying as independent projects docker compose -p nextcloud -f nextcloud.yml up -d --remove-orphans docker compose -p plex -f plex.yml up -d --remove-orphans