3.4 KiB
3.4 KiB
Service Deprecation Policy
Guidelines for retiring services in the homelab
Purpose
This policy outlines the process for deprecating and removing services from the homelab infrastructure.
Reasons for Deprecation
Technical Reasons
- Security vulnerabilities with no fix
- Unsupported upstream project
- Replaced by better alternative
- Excessive resource consumption
Operational Reasons
- Service frequently broken
- No longer maintained
- Too complex for needs
Personal Reasons
- No longer using service
- Moved to cloud alternative
Deprecation Stages
Stage 1: Notice (2 weeks)
- Mark service as deprecated in documentation
- Notify active users
- Stop new deployments
- Document in CHANGELOG
Stage 2: Warning (1 month)
- Display warning in service UI
- Send notification to users
- Suggest alternatives
- Monitor usage
Stage 3: Archive (1 month)
- Export data
- Create backup
- Move configs to archive/
- Document removal in CHANGELOG
Stage 4: Removal
- Delete containers
- Remove from GitOps
- Update documentation
- Update service inventory
Decision Criteria
Keep Service If:
- Active users > 1
- Replaces paid service
- Critical infrastructure
- Regular updates available
Deprecate Service If:
- No active users (30+ days)
- Security issues unfixed
- Unmaintained (>6 months no updates)
- Replaced by better option
Exceptions
- Critical infrastructure (extend timeline)
- Security vulnerability (accelerate)
- User request (evaluate)
Archive Process
Before Removal
-
Export Data
# Database docker exec <db> pg_dump -U user db > backup.sql # Files tar -czf service-data.tar.gz /data/path # Config cp -r compose/ archive/service-name/ -
Document
- Date archived
- Reason for removal
- Data location
- Replacement (if any)
-
Update Dependencies
- Check for dependent services
- Update those configs
- Test after changes
Storage Location
archive/
├── services/
│ └── <service-name>/
│ ├── docker-compose.yml
│ ├── config/
│ └── README.md (removal notes)
└── backups/
└── <service-name>/
└── (data backups)
Quick Removal Checklist
- Notify users
- Export data
- Backup configs
- Remove from Portainer
- Delete Git repository
- Remove from Nginx Proxy Manager
- Remove from Authentik (if SSO)
- Update documentation
- Update service inventory
- Document in CHANGELOG
Emergency Removal
For critical security issues:
- Immediate - Stop service
- Within 24h - Export data
- Within 48h - Remove from Git
- Within 1 week - Full documentation
Restoring Archived Services
If service needs to be restored:
- Copy from archive/
- Review config for outdated settings
- Test in non-production first
- Update to latest image
- Deploy to production
Service Inventory Review
Quarterly review all services:
| Service | Last Used | Users | Issues | Decision |
|---|---|---|---|---|
| Service A | 30 days | 1 | None | Keep |
| Service B | 90 days | 0 | None | Deprecate |
| Service C | 7 days | 2 | Security | Migrate |