New Project Setup Checklist
Purpose: Comprehensive checklist for setting up new projects with proper infrastructure Context: Ensures no critical steps are forgotten when creating new projects Critical: Backup setup is mandatory for all production servers
๐ Pre-Development Setup
1. Project Documentation Structure
- [ ] Create project folder:
projects/[project-name]/
- [ ] Initialize documentation folder:
docs/[project-name]/
- [ ] Create base files:
- [ ]
index.md
- Project overview and goals - [ ]
implementation.md
- Technical implementation details - [ ]
status.md
- Current development status - [ ]
deployment.md
- Hosting and infrastructure setup - [ ]
TODO.md
- Project-specific tasks - [ ] Add project to main TODO index
- [ ] Update domain inventory if applicable
2. Development Environment
- [ ] Initialize git repository
- [ ] Create
.gitignore
appropriate for project type - [ ] Set up development dependencies
- [ ] Create
AI_CONTEXT.md
for AI development assistance - [ ] Create
deploy.sh
script with git workflow integration
๐ฅ๏ธ Server Infrastructure Setup
3. Server Provisioning
- [ ] Domain Configuration
- [ ] Purchase/configure domain
- [ ] Set up DNS records
-
[ ] Configure subdomains if needed
-
[ ] Server Setup
- [ ] Provision VPS/hosting account
- [ ] Configure SSH access
- [ ] Set up basic security (firewall, fail2ban, etc.)
- [ ] Install required software stack
4. SSL and Security
- [ ] SSL Certificate Setup
- [ ] Install Let's Encrypt/SSL certificates
- [ ] Configure nginx/apache with SSL
- [ ] Test SSL certificate validity
-
[ ] Set up auto-renewal
-
[ ] Security Hardening
- [ ] SSH key authentication
- [ ] Disable password authentication
- [ ] Configure firewall rules
- [ ] Set up fail2ban
- [ ] Regular security updates
๐ CRITICAL: Backup System Integration
5. Backup Configuration (MANDATORY FOR ALL PRODUCTION SERVERS)
โ ๏ธ CRITICAL: Never deploy to production without backup integration!
A. Server-to-Backup-Server Setup
- [ ] SSH Key Setup
- [ ] Generate SSH key pair on production server
- [ ] Add public key to backup server authorized_keys
-
[ ] Test SSH connection:
ssh backup.satoshihost.com
-
[ ] Backup Scripts Installation
- [ ] Install backup scripts on production server
- [ ] Configure backup destinations
- [ ] Set up cron jobs for automated backups
-
[ ] Test initial backup run
-
[ ] Backup Schedule
- [ ] Daily database backups (if applicable)
- [ ] Weekly full file system backups
- [ ] Monthly system configuration backups
- [ ] Log rotation and cleanup
B. Deploy Script Integration
- [ ] Local Deployment Backups
- [ ] Configure deploy script to create pre-deployment backups
- [ ] Set backup retention (recommend 5 most recent)
- [ ] Test rollback functionality
- [ ] Document rollback procedures
C. Backup Verification
- [ ] Test Backup System
- [ ] Verify backups are being created
- [ ] Test restore procedure (on test server)
- [ ] Confirm backup server has adequate space
- [ ] Set up monitoring alerts for backup failures
6. Monitoring and Alerting
- [ ] Health Monitoring
- [ ] Set up uptime monitoring
- [ ] Configure application health checks
- [ ] Set up log monitoring
-
[ ] Create backup failure alerts
-
[ ] Performance Monitoring
- [ ] Monitor server resources (CPU, RAM, disk)
- [ ] Set up application performance monitoring
- [ ] Configure disk space alerts
- [ ] Monitor backup storage usage
๐ Deployment Pipeline
7. Deployment Automation
- [ ] Enhanced Deploy Script
- [ ] Git workflow integration (auto-commit)
- [ ] Pre-deployment backup creation
- [ ] Automated file synchronization
- [ ] Post-deployment health checks
-
[ ] Rollback capabilities
-
[ ] CI/CD Integration (if applicable)
- [ ] Automated testing
- [ ] Staging environment deployment
- [ ] Production deployment approval
- [ ] Automated rollback on failure
8. Documentation and Handover
- [ ] Technical Documentation
- [ ] Server specifications and credentials
- [ ] Deployment procedures
- [ ] Backup and recovery procedures
- [ ] Monitoring and alerting setup
-
[ ] Emergency contact procedures
-
[ ] Operational Documentation
- [ ] User guides (if applicable)
- [ ] Admin procedures
- [ ] Troubleshooting guides
- [ ] Maintenance schedules
๐ Backup System Architecture Overview
Current Infrastructure
- Production Servers: ES1-ES7, BTCPay Server, etc.
- Backup Server: Servarica 1 (209.209.10.41) - 1TB storage
- Backup URL: https://backup.satoshihost.com/andy/
- SSL Status: Valid until 2025-09-07
Backup Types
- Deploy Script Backups (local, immediate rollback)
- System Backups (remote, disaster recovery)
- Git Repositories (source code protection)
โ ๏ธ CRITICAL REMINDERS
Never Forget These Steps:
- ๐ Backup Integration: No production deployment without backup setup
- ๐ SSL Certificates: All production sites need SSL
- ๐ Monitoring: Set up uptime and performance monitoring
- ๐ Documentation: Document everything for future reference
- ๐งช Testing: Test backup and restore procedures
Common Mistakes to Avoid:
- Deploying to production without backup system
- Forgetting to test SSL certificate renewal
- Not documenting server credentials and procedures
- Missing monitoring setup for new services
- Forgetting to add new servers to backup rotation
๐ Related Documentation
- Backup System Overview - Comprehensive backup documentation
- Deployment Workflow - Enhanced deployment procedures
- Domain Inventory - Domain and infrastructure tracking
- Infrastructure Overview - Network architecture
๐ Project-Specific Checklists
Use this as a template and customize for specific project types:
Web Application Projects
- [ ] Database backup procedures
- [ ] Application logs backup
- [ ] User data protection compliance
- [ ] Session management security
API/Service Projects
- [ ] API documentation
- [ ] Rate limiting configuration
- [ ] API key management
- [ ] Service health endpoints
Static Website Projects
- [ ] CDN configuration (if needed)
- [ ] Static file optimization
- [ ] SEO setup
- [ ] Analytics integration
Created: June 13, 2025
Purpose: Prevent forgetting critical infrastructure setup steps
Priority: Essential for all new production projects