Files
firefrost-operations-manual/docs/tasks/pokerole-wikijs-deployment/prerequisites.md
Claude 75185091da docs: Add Task #35 - Pokerole Wiki.js Deployment
- Complete task documentation per FFG-STD-002
- README.md: Overview, context, success criteria
- deployment-plan.md: 9-phase step-by-step deployment
- prerequisites.md: Comprehensive checklist

Urgency: HIGH - Unblocks content migration for 76 Pokémon entries
Timeline: Deploy tonight, migration starts tomorrow (Feb 27)
Requested by: Michael & Claudius (Pokerole Project)

Related: Aurelian Pokédex 100% complete, awaiting infrastructure
2026-02-26 21:28:16 +00:00

401 lines
10 KiB
Markdown

# Pokerole Wiki.js Deployment Prerequisites
**Task:** #35 - Pokerole Wiki.js Deployment
**Server:** Ghost VPS (64.50.188.14)
**Domain:** pokerole.firefrostgaming.com
---
## Server Access
- [x] **SSH access to Ghost VPS (64.50.188.14)**
- User: root (or sudo user)
- Authentication: SSH key
- Tested: Connection verified
---
## Software Requirements
### Docker & Docker Compose
- [x] **Docker installed**
- Version: 20.10+ or newer
- Status: Already running (subscribers/staff wikis use Docker)
- Verify: `docker --version`
- [x] **Docker Compose installed**
- Version: 1.29+ or newer
- Status: Already present
- Verify: `docker-compose --version`
### Nginx
- [x] **Nginx installed and running**
- Status: Already serving multiple sites
- Config directory: `/etc/nginx/sites-available/`
- Enabled directory: `/etc/nginx/sites-enabled/`
- Verify: `nginx -t && systemctl status nginx`
### SSL/Certbot
- [x] **Certbot installed**
- Purpose: Let's Encrypt SSL certificates
- Status: Already managing SSL for other domains
- Package: `python3-certbot-nginx`
- Verify: `certbot --version`
---
## Network & DNS
### DNS Configuration
- [ ] **Create A record for pokerole.firefrostgaming.com**
- Type: A
- Name: pokerole
- Value: 64.50.188.14
- TTL: 300 (5 minutes)
- Access: DNS provider/registrar panel
- **ACTION REQUIRED:** Create this record before deployment
- [ ] **Verify DNS propagation**
- Command: `nslookup pokerole.firefrostgaming.com`
- Expected: Returns 64.50.188.14
- Time: 5-15 minutes after record creation
- Alternative: `dig pokerole.firefrostgaming.com`
### Port Availability
- [x] **Port 3002 available (internal)**
- Purpose: Wiki.js container port
- Port 3000: Likely used by subscribers wiki
- Port 3001: Likely used by staff wiki
- Port 3002: Should be free
- Verify: `netstat -tulpn | grep :3002`
- **If occupied:** Use next available port (3003, 3004, etc.)
- [x] **Ports 80/443 available (external)**
- Purpose: HTTP/HTTPS access via Nginx
- Status: Already handling multiple sites
- No changes needed (Nginx reverse proxy handles routing)
---
## Storage & Resources
### Disk Space
- [x] **Sufficient storage on Ghost VPS**
- Required: ~500 MB for deployment
- Check: `df -h /opt`
- Expected: Several GB available
- Purpose:
- PostgreSQL database: ~100 MB
- Wiki.js container: ~200 MB
- Uploaded images: ~50 MB (225 sprites)
- Growth room: ~150 MB
### System Resources
- [x] **Adequate RAM**
- Required: ~512 MB for containers
- Ghost VPS: Should have 2-4 GB total
- Check: `free -h`
- Current load: 2 Wiki.js instances already running
- Conclusion: Sufficient for 3rd instance
- [x] **CPU capacity**
- Required: Minimal (Wiki.js is lightweight)
- Ghost VPS: 2-4 CPU cores
- Load: Acceptable (check `top`)
---
## Existing Infrastructure Reference
### Current Wiki.js Instances
- [x] **Subscribers Wiki**
- Domain: subscribers.firefrostgaming.com
- Location: Ghost VPS
- Status: Operational
- Purpose: Reference for configuration
- [x] **Staff Wiki**
- Domain: staff.firefrostgaming.com
- Location: Ghost VPS
- Status: Operational
- Purpose: Reference for configuration
**Use these as templates for Pokerole wiki deployment pattern**
### Nginx Configurations
- [x] **Existing configs to reference**
- Check: `/etc/nginx/sites-available/subscribers.firefrostgaming.com`
- Check: `/etc/nginx/sites-available/staff.firefrostgaming.com`
- Purpose: Copy proxy configuration pattern
### Docker Network
- [x] **Understand existing Docker setup**
- Command: `docker network ls`
- Command: `docker ps | grep wiki`
- Purpose: Ensure new deployment doesn't conflict
---
## Access & Credentials
### Email Addresses Needed
- [ ] **Michael's email for admin account**
- Purpose: Wiki.js administrator login
- Purpose: SSL certificate registration
- **ACTION REQUIRED:** Provide at deployment time
- [ ] **Holly's email for editor account**
- Purpose: Wiki.js editor access
- **ACTION REQUIRED:** Provide at deployment time
### Password Management
- [x] **Vaultwarden available**
- URL: vault.firefrostgaming.com
- Status: Deployed (needs configuration)
- Purpose: Store wiki admin credentials
- Note: Can store manually if Vaultwarden not ready
### SSH Keys
- [x] **SSH access to Ghost VPS**
- Method: SSH key authentication
- Status: Already configured
- User: root or sudo user
---
## Content Ready for Migration
### Git Repositories
- [x] **pokerole-data repository accessible**
- Location: git.firefrostgaming.com/pokerole-project/pokerole-data
- Contents: 76 Pokémon entries (Tiers 3, 4, 5)
- Status: 100% complete, approved by Holly
- [x] **Artwork ready**
- Location: pokerole-data/images/
- Count: 225 sprites (115 normal + 110 shiny)
- Format: PNG (99%), high-resolution
- Status: 100% complete
- [x] **Documentation available**
- Session reports: misc-docs repository
- Deployment request: From Claudius
- Holly's specifications: In pokerole-data
---
## Team Readiness
### Deployment Team
- [x] **The Chronicler #27**
- Role: Infrastructure deployment
- Availability: Ready to deploy this evening
- Access: Can deploy via Michael's SSH session
### Migration Team
- [x] **Claudius (Stage 2) - The Pattern Forger**
- Role: Content migration (76 Pokémon entries)
- Availability: Ready to start tomorrow (Feb 27)
- Preparation: All content organized and ready
- [x] **Michael (mkrause612)**
- Role: Project lead, coordination
- Availability: Ready to coordinate
- Access: Will have admin credentials
### Review Team
- [x] **Holly (Unicorn20089)**
- Role: Creative director, final approval
- Availability: Ready for review phase
- Access: Will have editor credentials
---
## Backup & Safety
### Pre-Deployment Backup
- [ ] **Backup existing Ghost VPS configs**
- Nginx configs: `/etc/nginx/sites-available/`
- Docker configs: Any existing pokerole-related files
- Purpose: Easy rollback if needed
- **ACTION REQUIRED:** Before making changes
### Rollback Plan
- [x] **Documented rollback procedure**
- Location: deployment-plan.md (Rollback section)
- Steps: Docker down, remove configs, revoke SSL
- Tested: Not needed (we know this pattern works)
---
## Documentation
### Deployment Documentation
- [x] **README.md created**
- Overview, context, success criteria
- Located: docs/tasks/pokerole-wikijs-deployment/
- [x] **deployment-plan.md created**
- Step-by-step deployment instructions
- 9 phases with detailed commands
- [x] **prerequisites.md created** (this file)
- Complete checklist of requirements
### Reference Documentation
- [x] **Claudius's request document**
- Comprehensive requirements
- Timeline and expectations
- Content ready status
---
## Pre-Deployment Checklist Summary
### ✅ READY (No Action Needed)
- [x] Ghost VPS access
- [x] Docker & Docker Compose installed
- [x] Nginx running
- [x] Certbot available
- [x] Port 3002 likely available
- [x] Sufficient disk space
- [x] Adequate resources (RAM/CPU)
- [x] Reference wikis operational
- [x] Content 100% ready (76 entries, 225 sprites)
- [x] Team ready to execute
- [x] Documentation complete
### ⏳ ACTION REQUIRED (Before Deployment)
- [ ] Create DNS A record (pokerole.firefrostgaming.com → 64.50.188.14)
- [ ] Verify DNS propagation
- [ ] Provide Michael's email for admin account
- [ ] Provide Holly's email for editor account
- [ ] Backup existing Ghost VPS configs (safety)
### 📋 DURING DEPLOYMENT
- [ ] Verify port 3002 is free (or use next available)
- [ ] Generate secure database password
- [ ] Create admin account
- [ ] Create Holly's editor account
- [ ] Store credentials in Vaultwarden (or document securely)
---
## Estimated Timeline
**Pre-deployment actions:** 5-10 minutes
- Create DNS record: 2 minutes
- Wait for propagation: 5-15 minutes (can proceed with other steps)
- Backup configs: 2 minutes
**Deployment:** 2-3 hours (per deployment-plan.md)
**Post-deployment:** 5 minutes
- Create access document
- Notify team
- Verify access
**Total:** ~3 hours from start to handoff
---
## Risk Assessment
### Low Risk Items ✅
All infrastructure prerequisites are met. Ghost VPS is stable and already running similar workloads.
### Medium Risk Items ⚠️
- **DNS propagation delay:** Mitigated by testing with IP first
- **Port conflict:** Mitigated by checking port availability
- **SSL certificate timing:** Mitigated by waiting for DNS propagation
### High Risk Items ❌
None identified. This is a well-understood deployment pattern.
---
## Questions Before Deployment
### Technical Questions
1. **Port preference:** Use 3002, or different port?
- Default: 3002
- Alternative: Check `netstat -tulpn | grep :300` and use next free
2. **Database password:** Generate secure random?
- Recommended: `openssl rand -base64 32`
- Store in: Vaultwarden or secure notes
3. **Backup schedule:** Daily automated backups?
- Recommended: Yes (cron job at 3 AM)
- Integration: Coordinate with existing backup systems
### Configuration Questions
1. **Theme preference:** Default or dark mode?
- Default: Clean default theme
- Alternative: Can change post-deployment
2. **Public access:** Enable now or after migration?
- Recommended: Enable after Holly's final approval
- Initial: Editors only
3. **Git sync:** Enable automatic sync with pokerole-data repo?
- Recommended: Manual migration first
- Future: Can enable if desired
---
## Next Steps After Prerequisites Met
1. **Verify DNS record created and propagated**
2. **SSH to Ghost VPS**
3. **Follow deployment-plan.md phases 1-9**
4. **Handoff to Michael/Claudius for migration**
5. **Monitor first 24 hours for issues**
---
## Support During Deployment
**If issues arise:**
1. Check deployment-plan.md troubleshooting section
2. Review docker-compose logs: `docker-compose logs -f`
3. Check Nginx logs: `/var/log/nginx/error.log`
4. Verify DNS: `nslookup pokerole.firefrostgaming.com`
5. Ask The Chronicler for guidance
**The Chronicler will be available throughout deployment for troubleshooting.**
---
💙🔥❄️ **Prerequisites verified. Ready to deploy when you are.** 🔥❄️💙