{"id":34758356,"url":"https://github.com/spydisec/spydi-n8n-automation","last_synced_at":"2026-05-25T11:32:02.468Z","repository":{"id":329845034,"uuid":"1120750523","full_name":"spydisec/spydi-n8n-automation","owner":"spydisec","description":"Various n8n automation","archived":false,"fork":false,"pushed_at":"2025-12-22T12:15:32.000Z","size":211,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T11:23:06.599Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spydisec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-21T21:39:40.000Z","updated_at":"2025-12-22T12:15:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/spydisec/spydi-n8n-automation","commit_stats":null,"previous_names":["spydisec/spydi-n8n-automation"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/spydisec/spydi-n8n-automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spydisec%2Fspydi-n8n-automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spydisec%2Fspydi-n8n-automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spydisec%2Fspydi-n8n-automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spydisec%2Fspydi-n8n-automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spydisec","download_url":"https://codeload.github.com/spydisec/spydi-n8n-automation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spydisec%2Fspydi-n8n-automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33473700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T06:32:55.349Z","status":"ssl_error","status_checked_at":"2026-05-25T06:32:35.322Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-25T05:48:30.267Z","updated_at":"2026-05-25T11:32:02.459Z","avatar_url":"https://github.com/spydisec.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# n8n Automation Workflows\n\n\u003e Production-ready n8n workflow automations for infrastructure management, monitoring, and operations\n\n[![Validate Workflows](https://github.com/spydisec/spydi-n8n-automation/actions/workflows/validate-workflows.yml/badge.svg?branch=main)](https://github.com/spydisec/spydi-n8n-automation/actions/workflows/validate-workflows.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![n8n](https://img.shields.io/badge/n8n-2.0.3+-blueviolet)](https://n8n.io)\n\n## 🎯 Overview\n\nThis repository contains automated workflows for n8n, covering:\n\n- 🏗️ **Infrastructure** - Server and container management (Portainer, Docker, system updates)\n- 📊 **Monitoring** - System health checks, alerts, and observability\n- 💾 **Backup** - Automated backup routines and verification\n- 📢 **Notifications** - Centralized alerting and reporting\n\nAll workflows are:\n- ✅ Production-tested\n- ✅ Fully documented with setup guides\n- ✅ Versioned with semantic versioning\n- ✅ Secure (no credentials in repository)\n- ✅ CI/CD validated on every commit\n\n## ⚠️ Security Notice\n\n**This is a PUBLIC repository.**\n\n- ❌ NO credentials or sensitive data are stored here\n- ✅ All credentials must be configured via n8n GUI\n- ✅ Example files use placeholder values only\n- ✅ `.gitignore` prevents accidental credential commits\n- ✅ GitHub Actions scans for sensitive data\n\nSee [Security Guidelines](#-security-guidelines) below.\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- n8n installed (\u003e= 1.15.0) - [Installation Guide](https://docs.n8n.io/hosting/)\n- Access to target systems (servers, APIs, etc.)\n- Required credentials configured in n8n\n\n### Installation\n\n1. **Clone this repository:**\n   ```bash\n   git clone https://github.com/spydi/spydi-n8n-automation.git\n   cd spydi-n8n-automation\n   ```\n\n2. **Configure server inventory:**\n   ```bash\n   cp examples/configs/servers.example.json servers.json\n   nano servers.json  # Update with your actual server details\n   ```\n\n3. **Set up credentials in n8n:**\n   - See [examples/credentials/](examples/credentials/) for templates\n   - Configure SSH, SMTP, Slack, etc. in n8n GUI\n   - Never store actual credentials in files!\n\n4. **Import workflows:**\n   - Open n8n → Workflows → Import from File\n   - Select workflow JSON from `workflows/` directory\n   - Map credentials to your n8n credentials\n   - Test in development first!\n\nSee [docs/getting-started/](docs/getting-started/) for detailed setup instructions.\n\n## 📖 Workflows\n\n### Infrastructure Automation\n\n| Workflow | Version | Description | Status |\n|----------|---------|-------------|--------|\n| [Portainer Upgrade](workflows/infrastructure/portainer-upgrade/) | 1.0.0 | Automated Portainer container upgrades with validation | ✅ Stable |\n\n### Monitoring \u0026 Alerts\n\n| Workflow | Version | Description | Status |\n|----------|---------|-------------|--------|\n| *Coming soon* | - | Server health monitoring | 🚧 Planned |\n\n### Backup Automation\n\n| Workflow | Version | Description | Status |\n|----------|---------|-------------|--------|\n| *Coming soon* | - | Database backup automation | 🚧 Planned |\n\n### Notifications\n\n| Workflow | Version | Description | Status |\n|----------|---------|-------------|--------|\n| *Coming soon* | - | Centralized notification router | 🚧 Planned |\n\n[View full workflow catalog →](workflows/README.md)\n\n## 📁 Repository Structure\n\n```\nspydi-n8n-automation/\n├── workflows/              # n8n workflow files organized by category\n│   ├── infrastructure/     # Infrastructure management workflows\n│   ├── monitoring/         # Monitoring and alerting\n│   ├── backup/            # Backup automation\n│   └── notifications/     # Notification workflows\n├── docs/                  # Comprehensive documentation\n│   ├── getting-started/   # Setup and installation guides\n│   ├── guides/           # How-to guides and best practices\n│   ├── reference/        # Technical reference docs\n│   └── contributing/     # Contribution guidelines\n├── examples/             # Example configurations (NO sensitive data)\n│   ├── configs/         # Server inventory examples\n│   └── credentials/     # Credential setup templates\n├── templates/           # Workflow templates for new automations\n├── scripts/            # Validation and helper scripts\n└── .github/workflows/  # CI/CD automation\n```\n\n## 🔐 Security Guidelines\n\n### Never Commit:\n\n❌ Credentials or API keys  \n❌ Server IPs/hostnames (use `servers.example.json` for templates)  \n❌ Environment-specific data  \n❌ Database connection strings  \n❌ SSH keys or certificates  \n❌ Real webhook URLs  \n❌ Email passwords  \n\n### Always:\n\n✅ Use `.example` suffix for template files  \n✅ Configure credentials via n8n GUI  \n✅ Use n8n variables (`$vars`) for environment-specific data  \n✅ Review files before committing  \n✅ Let CI/CD catch sensitive data before merge  \n\n### Credential Management\n\nAll sensitive credentials must be stored in **n8n's credential manager**:\n\n1. n8n → Credentials → New Credential\n2. Select type (SSH, SMTP, API, etc.)\n3. Enter credentials\n4. Reference by name in workflows\n\n**Never hardcode credentials in workflow JSON files.**\n\nSee [examples/credentials/](examples/credentials/) for setup guides.\n\n## 🛠️ Development\n\n### Development Workflow\n\nThis project uses a **branch-based development workflow** to ensure stability:\n\n- **`main`** - Production-ready workflows (stable releases only)\n- **`develop`** - Pre-release testing (beta features, integration testing)\n- **`feature/*`** - Development branches for new workflows/features\n\n**Testing Stages:**\n1. **Local Testing** - Test on development servers first\n2. **Staging Testing** - Integration testing in staging environment (24-48 hours)\n3. **Production Release** - Phased rollout with monitoring\n\n**Quick Start:**\n```bash\n# Create feature branch\ngit checkout -b feature/my-new-workflow\n\n# Develop and test locally\n# ... make changes ...\n\n# Create PR to develop branch\ngit push origin feature/my-new-workflow\n# Open PR: feature/my-new-workflow → develop\n```\n\n**📖 Complete Guides:**\n- **[Development Workflow](DEVELOPMENT.md)** - Complete branching strategy, 16-step development lifecycle\n- **[Testing Workflows](docs/guides/testing-workflows.md)** - 3-stage testing process with validation checklists\n- **[Workflow Versioning](docs/guides/workflow-versioning.md)** - Semantic versioning and CHANGELOG management\n- **[Using Workflows Safely](docs/guides/using-workflows-safely.md)** - End-user safety guidelines\n\n### Adding a New Workflow\n\n1. **Create workflow directory:**\n   ```bash\n   git checkout develop\n   git checkout -b feature/new-workflow\n   mkdir -p workflows/[category]/[workflow-name]\n   cd workflows/[category]/[workflow-name]\n   ```\n\n2. **Use templates:**\n   ```bash\n   cp ../../../templates/_workflow-template/*.template.md .\n   # Rename .template.md to .md and customize\n   ```\n\n3. **Required files:**\n   - `workflow-name.json` - n8n workflow export with metadata\n   - `README.md` - Usage documentation\n   - `prerequisites.md` - Setup requirements\n   - `troubleshooting.md` - Common issues\n   - `CHANGELOG.md` - Version history\n\n4. **Add metadata to JSON:**\n   ```json\n   {\n     \"meta\": {\n       \"templateVersion\": \"1.0.0\",\n       \"author\": \"your-name\",\n       \"category\": \"infrastructure\",\n       \"description\": \"Brief description\",\n       ...\n     }\n   }\n   ```\n\n5. **Test locally (Stage 1):**\n   ```bash\n   # Validate workflow\n   python scripts/check-version.py\n   bash scripts/check-sensitive-data.sh\n   # Test on development servers\n   ```\n\n6. **Submit PR to develop:**\n   ```bash\n   git add workflows/[category]/[workflow-name]\n   git commit -m \"feat: add [workflow-name] automation\"\n   git push origin feature/new-workflow\n   ```\n\n7. **Staging testing (Stage 2):**\n   - PR merged to `develop`\n   - Test in staging environment for 24-48 hours\n   - Monitor execution logs\n\n8. **Production release (Stage 3):**\n   - PR from `develop` → `main`\n   - Tag release (e.g., `v1.1.0`)\n   - Phased rollout with monitoring\n\nSee **[CONTRIBUTING.md](CONTRIBUTING.md)** for complete contribution guidelines.\n\n### Running Validation Locally\n\n```bash\n# Validate all workflows\n./scripts/check-version.py           # Check version metadata\n./scripts/validate-changelogs.sh     # Validate CHANGELOG format\n./scripts/check-sensitive-data.sh    # Scan for credentials\n./scripts/check-workflow-consistency.py  # Check file structure\n```\n\n## 📚 Documentation\n\n### For End Users\n\n- **[Getting Started](docs/getting-started/)** - Installation and setup guides\n- **[Using Workflows Safely](docs/guides/using-workflows-safely.md)** - Safety guidelines for workflow usage\n- **[Workflow Catalog](workflows/README.md)** - Complete workflow listing\n\n### For Contributors \u0026 Developers\n\n- **[Contributing Guide](CONTRIBUTING.md)** - How to contribute workflows\n- **[Development Workflow](DEVELOPMENT.md)** - Branching strategy and development lifecycle\n- **[Testing Workflows](docs/guides/testing-workflows.md)** - 3-stage testing process\n- **[Workflow Versioning](docs/guides/workflow-versioning.md)** - Semantic versioning and CHANGELOG management\n- **[Repository Structure](docs/reference/repository-structure.md)** - Complete repo organization guide\n\n### Technical Reference\n\n- **[Reference Documentation](docs/reference/)** - Technical reference and API docs\n- **[Validation Scripts](scripts/)** - Script documentation\n\n## 🧪 Testing\n\n**Never test untested workflows on production servers!**\n\nThis project uses a **3-stage testing process**:\n\n### Stage 1: Local Testing (Development)\n\n- Test workflows on development/test servers only\n- Validate JSON syntax and metadata\n- Check for sensitive data exposure\n- Verify expected outcomes\n\n```bash\n# Validation\npython scripts/check-version.py\nbash scripts/check-sensitive-data.sh\n\n# Test execution on dev servers\n```\n\n### Stage 2: Staging Testing (Pre-Production)\n\n- Deploy to staging environment\n- Run workflows for 24-48 hours\n- Monitor execution logs\n- Verify integration with other systems\n- Performance and error rate monitoring\n\n### Stage 3: Production Deployment\n\n- Phased rollout (1-5 servers → 25% → 50% → 100%)\n- Continuous monitoring\n- Rollback plan ready\n- Post-deployment verification\n\n**📖 Complete Testing Guide:** [docs/guides/testing-workflows.md](docs/guides/testing-workflows.md)\n\nSee individual workflow documentation for specific testing instructions.\n\n## 🤝 Contributing\n\nWe welcome contributions! This project follows a structured development workflow to ensure quality and stability.\n\n### Quick Start\n\n1. Fork this repository\n2. Create feature branch from `develop`: `git checkout -b feature/new-automation`\n3. Add your workflow following [templates](templates/_workflow-template/)\n4. Test locally (Stage 1 testing required)\n5. Ensure all validations pass\n6. Update documentation\n7. Submit pull request to `develop` branch\n\n### Branching Strategy\n\n- **`main`** → Production releases only (stable workflows)\n- **`develop`** → Integration and staging testing\n- **`feature/*`** → New workflow development\n- **`bugfix/*`** → Bug fixes\n- **`hotfix/*`** → Critical production fixes\n\n### Required Before PR\n\n✅ Local testing complete (Stage 1)  \n✅ All validation scripts pass  \n✅ Documentation updated (README, prerequisites, troubleshooting, CHANGELOG)  \n✅ No sensitive data in commits  \n✅ Semantic versioning followed  \n✅ CHANGELOG updated  \n\n**📖 Complete Guides:**\n- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Full contribution guidelines\n- **[DEVELOPMENT.md](DEVELOPMENT.md)** - Development workflow and lifecycle\n- **[Testing Guide](docs/guides/testing-workflows.md)** - Testing process and checklists\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\n- **Documentation:** [docs/](docs/)\n- **Issues:** [GitHub Issues](https://github.com/spydi/spydi-n8n-automation/issues)\n- **Discussions:** [GitHub Discussions](https://github.com/spydi/spydi-n8n-automation/discussions)\n- **n8n Community:** [community.n8n.io](https://community.n8n.io)\n\n## 🗺️ Roadmap\n\n### v1.0 (Current)\n- ✅ Repository structure and documentation\n- ✅ Portainer upgrade automation\n- ✅ CI/CD validation pipeline\n- ✅ Security scanning\n\n### v1.1 (Next)\n- 🔄 Docker cleanup automation\n- 🔄 Server health monitoring\n- 🔄 Slack notification integration\n- 🔄 Batch server processing\n\n### v2.0 (Future)\n- 📋 Database backup automation\n- 📋 SSL certificate renewal\n- 📋 Log aggregation workflows\n- 📋 Incident response automation\n\n## 📊 Project Stats\n\n- **Workflows:** 1 (more coming soon!)\n- **Categories:** 4\n- **Documentation Pages:** 15+\n- **Automated Validations:** 5\n\n## 💡 Related Projects\n\n- [n8n](https://github.com/n8n-io/n8n) - Workflow automation tool\n- [n8n-nodes-base](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base) - n8n core nodes\n- [Awesome n8n](https://github.com/n8n-io/awesome-n8n) - Curated list of n8n resources\n\n## 🙏 Acknowledgments\n\n- n8n team for the amazing workflow automation platform\n- Community contributors\n- Open source projects that inspired this repository\n\n---\n\n**Maintained by:** [spydi](https://github.com/spydisec)  \n**Last Updated:** 2025-12-21  \n**Repository Version:** 1.0.0\n\n⭐ **Star this repo if you find it useful!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspydisec%2Fspydi-n8n-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspydisec%2Fspydi-n8n-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspydisec%2Fspydi-n8n-automation/lists"}