name: Deploy Interior Site on: push: branches: [master, main] paths: - 'Ремонт квартира/**' jobs: deploy: runs-on: self-hosted steps: - name: Checkout run: | git clone --depth=1 https://daniil:${{ secrets.REPO_TOKEN }}@git.digital-home.site/daniil/obsidian.git /tmp/obsidian-deploy-${{ github.run_id }} || \ (cd /tmp/obsidian-deploy-${{ github.run_id }} && git pull) - name: Update interior site run: | VAULT=/tmp/obsidian-deploy-${{ github.run_id }} # Синхронизировать контент из vault rm -rf /opt/digital-home/interior/content/notes mkdir -p /opt/digital-home/interior/content/notes cp -r "$VAULT/Ремонт квартира/." /opt/digital-home/interior/content/notes/ # Убедиться что index.md есть if [ ! -f /opt/digital-home/interior/content/index.md ]; then printf '---\ntitle: Ремонт квартиры\n---\n\n# Ремонт квартиры\n\n- [[notes/Интерьер]]\n- [[notes/Интерьер кухня]]\n- [[notes/Интерьер спальни]]\n' \ > /opt/digital-home/interior/content/index.md fi # Пересобрать и перезапустить cd /opt/digital-home/interior docker build -t interior:latest . docker rm -f interior || true docker run -d \ --name interior \ --network coolify \ -p 3007:80 \ --restart unless-stopped \ --label traefik.enable=true \ --label 'traefik.http.routers.interior.rule=Host(`interior.digital-home.site`)' \ --label traefik.http.routers.interior.entrypoints=https \ --label traefik.http.routers.interior.tls=true \ --label traefik.http.routers.interior.tls.certresolver=letsencrypt \ --label traefik.http.services.interior.loadbalancer.server.port=80 \ interior:latest echo 'Deploy done' - name: Cleanup if: always() run: rm -rf /tmp/obsidian-deploy-${{ github.run_id }}